This is a brief description of some of the most commonly used features of gdb.
-g
flag. So, if your program is in a source
file called memsim.c
and you want to put the executable in the file
memsim
, then you would compile with the following command: gcc -g -o memsim memsim.c
gdb
at
the unix prompt. Gdb will give you a prompt that looks like this:
(gdb)
. From that prompt you can run your program, look at
variables, etc., using the commands listed below (and others not listed). Or,
you can start gdb and give it the name of the program executable you want to
debug by saying gdb executable
To exit the program just type quit
at the (gdb)
prompt (actually just typing q
is good enough).
help
will give you a list of topics. Then you can type help topic
to get information about that topic (or it will give you more specific terms
that you can ask for help about). Or you can just type help
command
and get information about any other command.
file executable
specifies which program you
want to debug.
run
will start the program running under gdb. (The
program that starts will be the one that you have previously selected with the
file
command, or on the unix command line when you started gdb. You
can give command line arguments to your program on the gdb command line the same
way you would on the unix command line, except that you are saying
run
instead of the program name: run 2048 24 4
You can even do input/output redirection: run >
outfile.txt
.
break
command.
break function
sets the breakpoint at the beginning of
function
. If your code is in multiple files, you might need
to specify filename:function
.
break linenumber
or break
filename:linenumber
sets the breakpoint to the given line number
in the source file. Execution will stop before that line has been executed.
delete
will delete all breakpoints that you have
set.
delete number
will delete breakpoint numbered
number
. You can find out what number each breakpoint is by
doing info breakpoints
. (The command info
can also be
used to find out a lot of other stuff. Do help info
for more
information.)
clear function
will delete the breakpoint set
at that function. Similarly for linenumber
,
filename:function
, and
filename:linenumber
.
continue
will set the program running again,
after you have stopped it at a breakpoint.
step
will go ahead and execute the current source
line, and then stop execution again before the next source line.
next
will continue until the next source line in the
current function (actually, the current innermost stack frame, to be precise).
This is similar to step
, except that if the line about to be
executed is a function call, then that function call will be completely executed
before execution stops again, whereas with step
execution will stop
at the first line of the function that is called.
until
is like next
, except that if you
are at the end of a loop, until
will continue execution until the
loop is exited, whereas next
will just take you back up to the
beginning of the loop. This is convenient if you want to see what happens after
the loop, but don't want to step through every iteration.
list linenumber
will print out some lines from
the source code around linenumber
. If you give it the
argument function
it will print out lines from the beginning
of that function. Just list
without any arguments will print out
the lines just after the lines that you printed out with the previous
list
command.
print expression
will print out the value of
the expression, which could be just a variable name. To print out the first 25
(for example) values in an array called list
, do print list[0]@25
where
will print out the stack trace
for where you are currently at. It shows the sequence of functions that were
called (starting with main()) to reach the present location. The arguments for
each function are also displayed.


|
SuanShu, a Java numerical and statistical library | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.numericalmethod.suanshu.matrix.doubles.factorization.qr.QR
public class QR
QR decomposition of a matrix.
It decomposes a m x n
matrix A
so that
A = Q %*% R
Q
is an m x n
orthogonal matrix,R
is a n x n
upper triangular matrix
Alternatively, we can have
A = sqQ %*% tallR
where
sqQ
is a square m x m
orthogonal matrix,
tallR
is a m x n
matrix
This decomposition can be used to
| Nested Class Summary | |
|---|---|
static class |
QR.Method
the methods available to do the QR decomposition |
| Field Summary | |
|---|---|
double |
epsilon
a precision parameter: when a number |x| ≤ ε, it is considered 0 |
| Constructor Summary | |
|---|---|
QR(Matrix A)
Construct an instance of the QR decomposition. |
|
QR(Matrix A,
QR.Method method,
double epsilon)
Construct an instance of the QR decomposition. |
| Method Summary | |
|---|---|
PermutationMatrix |
P()
Get a copy of P , the pivoting matrix in the QR decomposition. |
Matrix |
Q()
Get a copy of the orthogonal Q matrix in the QR decomposition. |
UpperTriangularMatrix |
R()
Get a copy of the upper triangular matrix R in the QR decomposition. |
int |
rank()
Get the numerical rank of the matrix A as computed by the QR decomposition. |
Matrix |
squareQ()
Get a copy of the square Q matrix. |
Matrix |
tallR()
Get a copy of the tall R matrix. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public final double epsilon
| Constructor Detail |
|---|
public QR(Matrix A, QR.Method method, double epsilon)
QR.Method
.
A
- a matrixmethod
- a QR algorithm implementationepsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0public QR(Matrix A)
A
- a matrix| Method Detail |
|---|
public Matrix Q()
QRDecomposition
Q
matrix in the QR decomposition.
A = QR
Dimension of Q
is nrows x ncols
, same as A
, the matrix to orthogonalize.
Q
in interface QRDecomposition
Q
matrix in the QR decompositionpublic UpperTriangularMatrix R()
QRDecomposition
R
in the QR decomposition.
A = QR
Dimension of R
is ncols x ncols
, a square matrix.
R
in interface QRDecomposition
R
in the QR decompositionpublic PermutationMatrix P()
QRDecomposition
P
, the pivoting matrix in the QR decomposition.
P
in interface QRDecomposition
P
pivoting matrix in the QR decompositionpublic int rank()
QRDecomposition
Get the numerical rank of the matrix A
as computed by the QR decomposition.
Numerical determination of rank requires a criterion to decide when a value should be treated as zero.
This is a practical choice which depends on both the matrix and the application. For instance, for a matrix with a big first eigenvector, we should accordingly decrease the precision to compute the rank.
You may need to change the precision parameter to accurately compute the rank. See the test cases for example.
rank
in interface QRDecomposition
A
public Matrix squareQ()
QRDecomposition
Q
matrix.
This is an arbitrary orthogonal completion of the Q
matrix in the QR decomposition.
Dimension is nrows x nrows
(square).
A = square_Q %*% tall_R
squareQ
in interface QRDecomposition
Q
matrixpublic Matrix tallR()
QRDecomposition
R
matrix.
This is completed by binding zero rows beneath the square upper triangular matrix R
in the QR decomposition.
Dimension is nrows x ncols
. Note that this may no longer be square.
A = square_Q %*% tall_R
tallR
in interface QRDecomposition
R
matrix
|
SuanShu, a Java numerical and statistical library | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Syntax:
array-in-bounds-p array &rest subscripts => generalized-boolean
Arguments and Values:
array---an array.
subscripts---a list of integers of length equal to the rank of the array.
generalized-boolean---a generalized boolean.
Description:
Returns true if the subscripts are all in bounds for array; otherwise returns false. (If array is a vector with a fill pointer, that fill pointer is ignored.)
Examples:
(setq a (make-array '(7 11) :element-type 'string-char)) (array-in-bounds-p a 0 0) => true (array-in-bounds-p a 6 10) => true (array-in-bounds-p a 0 -1) => false (array-in-bounds-p a 0 11) => false (array-in-bounds-p a 7 0) => false
Affected By: None.
Exceptional Situations: None.
See Also:
Notes:
(array-in-bounds-p array subscripts) == (and (not (some #'minusp (list subscripts))) (every #'< (list subscripts) (array-dimensions array)))


This documentation relates to Opera's now deprecated .oex Extension API framework for Opera versions <= 12.15 and also provided by our OEX2NEX shim library.
For the latest Opera Extensions API documentation for Opera versions > 12.15 please consult the latest Opera Extensions API documentation online.
This method creates a Button
from a given property object. Note: The item can only be used within the ToolbarContext
that it is created in.
properties
: The ButtonProperties
to use when creating the Button
.The available properties include:
Button createItem (<ButtonProperties> properties)
The below button would include a badge (saying '42') and display a popup window when clicked.
Note that buttons must be defined in the background process (e.g. in index.html) in order to work.
//
// The background process (e.g. index.html)
//
var i = 0; // count the number of times the button get clicked
// The button properties
var properties = {
disabled: false,
title: "My Extension",
icon: "icon.18x18.png",
onclick: function() {
i++; // counting how often the button is clicked
},
popup: {
href: 'popup.html',
width: 100,
height: 100
},
badge: {
display: 'block',
backgroundColor: '#5566ff',
color: '#ffffff',
textContent: '42'
}
};
// Create the button
var button = opera.contexts.toolbar.createItem(properties);
You can also define the properties on the fly when creating the button:
//
// The background process (e.g. index.html)
//
// Create a button
var button = opera.contexts.toolbar.createItem({
title: 'Weather Extension',
icon: 'yr.png'
});


 Get help with a resume and cover letter https://grindreel.com
My Courses: https://grindreel.academy/
SHOW MORE
Hafiz Hamidi
last month agoJosh I just want to let you know that these consistent uploads have been a huge inspiration for me and I'm sure many others. Informative video !
Zakarie Paul
2 month agoAfter 15 years, I never had a good experience with recruiters or LinkedIn - both are used car salesmen’s and spamming as hell. Avoid both like the plague, get jobs on from recommendations and usually the recommender gets a nice $$$ too
Jenny Peter
2 month agoAfter that live stream the other day where I asked you to talk about how recruiters get paid, this video popped up in my list. Your initial response in the live stream was helpful but I'm glad you made this one! Thanks, Josh!
Simi Bello
3 month agoKeep going on man , appreciate your video
Ashia love
3 month agoKeep your expectations low and you’ll never be disappointed. Also when interviewing, have you had extremely difficult technical interview questions or are they average for the most part!? !
lilly stones
3 month agoThanks for this video, no one ever talks about the incentive aspect for recruiters. It's good to know they're there if you need help getting placement in anything, but definitely not ideal if you dont need the help.
kenneth samsomn/p> 4 month ago
You are the CAR on a used car lot. You may have to do it just to get some experience, but avoid recruiters if at all possible.
Ahmed Hamidi
4 month agoI've found all my jobs without recruiters. All they do is just ghost you without a second thought and bug you 10 times a day. Recruiters are like vultures. Pointless.
Hamidi Hafiz
4 month agoJoshua, I love your videos. They're very informative, and teach real life experiences, in which people can relate to – so valuable for learning. But, I find them too long. I find that many of your ~15 minute videos only hold essential value in 7 minutes of them. If you could please take my opinion into consideration and try to work on cutting down the in-between verbose, I'm sure a lot of viewers will be happier. Cheers! ♥
Maji Dele
5 month agoJosh I just want to let you know that these consistent uploads have been a huge inspiration for me and I'm sure many others. Informative video !
Stella Crank
6 month agoYou seem like a nice guy. You're young and with that comes a lot of inexperience particularly to the business side of things. I've recruited software developers for years, so how about I open your eyes up to a lot what you don't see. Let's assume a recruiter (in-house or agency) gets a call from a hiring manager indicating that they need five UI developers immediately. (Because everything is urgent). The recruiter requests a job description. They either don't get one, or one that they get is canned and not very "descriptive". That said, the hiring manager wants "immediate" results. Seriously, at the end of the next day they're expecting five or six people to interview. So after about two weeks of searching you get four people interested. That's after looking at 1100 profiles on LinkedIn, sending out 600 emails, receiving 15 responses, and interviewing the eight that were available to talk when they said they would be. The other seven dropped off never to be heard from again. You called it "ghosting". Now you get a call from the hiring manager that they only need two UI developers and that one must be Sr. and the other must be able to speak Spanish but is OK if they're Jr to Sr level. The entire search has now changed. Who gets the blame??? The r-e-c-r-u-i-t-e-r. Or...you get a call that the team doesn't have the budget to hire anyone. Or...you get a call that they moved people around internally and don't need any developers. Or...you get a call that they decided to move the project to another team in a different state. Or...you get a call that they've decided to dump the project.  It starts with management. I'd say about 75% of the time, management doesn't know what it wants. I could talk for days about the crap I've been through. Don't get me started on the developers that signed contracts and NEVER showed up.


In Unit 1 we learned that the main type of document on the web is HTML. We also learned that web files can be plain text, HTML, images, videos, and music.
HTML-stands for Hyper Text Markup Language. It utilizes -text content, -markup, references to other documents, and -links to other pages
Basic HTML Vocabulary-consists of
o A Tag- An HTML tag is always contained within angled brackets. Most tags have an opening tag and closing tag. Some tags (called "void"tags) do not require a closing tag
o An Element- An HTML element consists of the content contain within the opening and closing tag.
o An Attribute- is a property of an HTML element.
I have learned the so far there are two types of elements:
Inline and Block
Examples of Inline are: "b", "em", and "img". An example of a block element is "p". A block element encapsulates the content into an "invisible box". "Span" and "Div" are also examples of inline and block elements.I have much more to learn as I cannot yet use the < or > in my text without the code trying to create a new element.
An example of a tag that uses an HTML Attribute woulds be the "a" or anchor tag. It would contain an attribute, followed by a "value", the content, and a closing tag.
A useful job aid that the instructor provided to practice code is called "HTML_Playground" and can be found HERE. I tried to practice a bit with it but much prefer using an alternate site called scratchpad.


@greg_not_so set the channel purpose: there's probably a dedicated slack for it somewhere and maybe someone will send me an invite
karlkay
2016-12-13 14:08
has joined #interledger
adrianhopebailie
2017-01-23 11:54
has joined #interledger
adrianhopebailie
2017-01-23 12:01
The Interledger project doesn’t use Slack (the community decided against it) but I am happy to answer any questions and keep the dialogue between our projects open here if that’s useful to you?
We use Gitter: https://gitter.im/interledger/Lobby
and IRC: http://irc.w3.org #interledger
We also have two mailing lists at W3C () and IETF ().
Joining the W3C community group will cover you as a contributor and sign you up to the mailing list: https://www.w3.org/community/interledger/
The IETF list is a bit more old skool: https://www.ietf.org/mailman/listinfo/ledger


Audio class-specific Input Terminal Descriptor (LUFA naming conventions). More...
#include <Audio.h>
Data Fields | |
| USB_Descriptor_Header_t | Header |
| uint8_t | Subtype |
| uint8_t | TerminalID |
| uint16_t | TerminalType |
| uint8_t | AssociatedOutputTerminal |
| uint8_t | TotalChannels |
| uint16_t | ChannelConfig |
| uint8_t | ChannelStrIndex |
| uint8_t | TerminalStrIndex |
Type define for an Audio class-specific input terminal descriptor. This indicates to the host that the device contains an input audio source, either from a physical terminal on the device, or a logical terminal (for example, a USB endpoint). See the USB Audio specification for more details.
ID of associated output terminal, for physically grouped terminals such as the speaker and microphone of a phone handset.
CHANNEL_* masks indicating what channel layout is supported by this terminal.
Index of a string descriptor describing this channel within the device.
Regular descriptor header containing the descriptor's type and length.
Sub type value used to distinguish between audio class-specific descriptors, must be AUDIO_DSUBTYPE_CSInterface_InputTerminal.
ID value of this terminal unit - must be a unique value within the device.
Index of a string descriptor describing this descriptor within the device.
Type of terminal, a TERMINAL_* mask.
Total number of separate audio channels within this interface (right, left, etc.)


Peter Butler
Unafffiliated
Self-Employed working in water quality and mine remediation, particularly in policy and regulation. Coordinator, Animas River Stakeholders Group. Chairman, Bonita Peak Community Advisory Group for a large Superfund site. See attached resume.
Bachelor Degree - Physics - Colorado College - 1983 Masters Degree - Economics - Univ. of Colorado, Boulder - 1988 PhD. - Natural Resources Policy (a combination of economics, water law, hydrology and water quality management) - Univ. of Michigan, Ann Arbor - 1994
81301
I have many years of experience working with diverse interests to find common ground. I worked with the Animas River Stakeholders Group (ARSG) for 25 years to find ways to implement cleanup of abandoned mines in the Silverton area. ARSG consisted of federal regulatory and land management agencies, state regulatory agencies, local governments, mining companies, environmental groups and interested citizens. For the last ten years of its existence, I ran monthly ARSG meetings and coordinated all the partners involved. The group, along with its partners, characterized approximately 140 mine sites and completed 60 mine remediation projects. I was the co-author of a major study recommending feasible, water-quality standards for the upper Animas River Basin. I represented the group during hearings where those standards were formally adopted by the State of Colorado. The group had no formal voting membership and operated by consensus. After EPA caused the Gold King Mine spill, the upper Animas River Basin was designated a Superfund site in 2016. I initiated the formation of a Community Advisory Group (CAG) and have served as its chair since its inception. CAG's are a formal component of the Superfund process, and ours has been recognized by EPA under CERCLA. CAG's must represent a diverse set of local interests. Our group includes representatives of mining, agriculture, local governments, environmental non-profits, the local health department, municipal water utilities, etc. I have also served on both the Colorado Water Quality Control Commission and Colorado Air Quality Control Commission and at times have chaired both commissions. I have presided over a number of complex, contentious regulatory hearings involving a wide range of interests. I'm quite familiar with working with state public processes including staff and attorneys. In addition, I have also served as a commissioner on the State of Colorado/Southern Ute Indian Tribe Environmental Commission and as the president or chair of a water authority (water utility), road association, and advisory group to our local county commission on water issues.
none
Nine years on the Colorado Water Quality Control Commission (three years as chair). Six years on the Colorado Air Quality Control Commission (one year as chair).
It would be an honor to serve on this commission. I care deeply about Colorado, Other than a few years away at school, I have lived in the state all my life. I was born and raised in Denver, but have lived over half my life in rural areas of the Western Slope and have good understanding of both urban and rural cultures. At one time or another, I have traveled through all but two counties in the state. The state legislators and voters have provided a tremendous opportunity for Colorado to be a leader in reducing partisan fighting over congressional redistricting. It's a historical opportunity for the state to demonstrate that its citizens can work together to minimize political discord, and with my skill set, I'd like to be a part of that process.
I have many years of experience developing consensus among diverse interests. I listen carefully and try to understand different people's perspectives. I treat everyone with respect and tamp down any personal attacks that may surface within a group. Most importantly, I try to keep people on task. I'm good at sifting through volumes of information and identifying the key questions and issues that need to be discussed and decided in order for a group or commission to move forward. I believe I can be impartial in making decisions. I have no political, financial, or personal stake in how the districts are ultimately drawn. I simply want to see a transparent and fair process where the people of Colorado feel their voices have been heard.
I have strong analytical skills as evidenced by my different degrees. For years, I've developed numerous water quality analyses comparing existing quality to standards which have been the basis for instigating cleanup of abandoned mine sites.


Maybe your verification code is incorrect?
To complete your registration, please enter the verification code for your school.


Interview Schedule
11/11/17
Grace Hopper Qualcomm Interviews
9/9/18 - 9/10/18
Where: GHC ’18, Dallas
Owner: Elle Bass
- 4 confirmed signups
- 4 pending signups


---
layout: post
status: publish
published: true
title: Some Days
author: Leask
author_login: leask
author_email<EMAIL_ADDRESS>author_url: https://leaskh.com
wordpress_id: 430
wordpress_url: http://leaskh.wordpress.com/2006/10/31/some-days
date: '2006-10-31 08:29:29 +0800'
date_gmt: '2006-10-31 08:29:29 +0800'
categories:
- Life
tags: []
comments: []
---
Oct 29, 2006: Daylight Saving Time Ends
Oct 30, 2006: Reformation Day
Oct 31, 2006: Halloween & 将公诞辰纪念日(Taiwan of China)
Nov 1, 2006: All Saints Day
*PS: Protestant day. On this day in 1517 Martin Luther posted his Ninety-five Theses on the door of the church in Wittenberg Germany, thereby beginning the Protestant Reformation. Lutherans observe this day on the preceding of following Sunday.


Tutorial
This page shows from the ground up how to create a Meson build definition for a simple project. Then we expand it to use external dependencies to show how easily they can be integrated into your project.
The humble beginning
Let's start with the most basic of programs, the classic hello example. First we create a file main.c
which holds the source. It looks like this.
#include<stdio.h>
int main(int argc, char **argv) {
printf("Hello there.\n");
return 0;
}
Then we create a Meson build description and put it in a file called meson.build
in the same directory. Its contents are the following.
project('tutorial', 'c')
executable('demo', 'main.c')
That is all. We are now ready to build our application. First we need to initialise the build by going into the source directory and issuing the following commands.
$ meson build
We create a separate build directory to hold all of the compiler output. Meson is different from some other build systems in that it does not permit in-source builds. You must always create a separate build directory. Common convention is to put the default build directory in a subdirectory of your toplevel source directory.
When Meson is run it prints the following output.
The Meson build system
version: 0.13.0-research
Source dir: /home/jpakkane/mesontutorial
Build dir: /home/jpakkane/mesontutorial/build
Build type: native build
Project name is "tutorial".
Using native c compiler "ccache cc". (gcc 4.8.2)
Creating build target "demo" with 1 files.
Now we are ready to build our code.
$ cd build
$ ninja
Once that is done we can run the resulting binary.
$ ./demo
This produces the expected output.
Hello there.
Adding dependencies
Just printing text is a bit old fashioned. Let's update our program to create a graphical window instead. We'll use the GTK+ widget toolkit. First we edit the main file to use Gtk. The new version looks like this.
#include<gtk/gtk.h>
int main(int argc, char **argv) {
GtkWidget *win;
gtk_init(&argc, &argv);
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(win), "Hello there");
g_signal_connect(win, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show(win);
gtk_main();
}
Then we edit the Meson file, instructing it to find and use the Gtk libraries.
project('tutorial', 'c')
gtkdep = dependency('gtk+-3.0')
executable('demo', 'main.c', dependencies : gtkdep)
Now we are ready to build. The thing to notice is that we do not need to recreate our build directory, run any sort of magical commands or the like. Instead we just type the exact same command as if we were rebuilding our code without any build system changes.
$ ninja
Once you have set up your build directory the first time, you don't ever need to run the meson
command again. You always just run ninja
. Meson will automatically detect when you have done changes to build definitions and will take care of everything so users don't have to care. In this case the following output is produced.
[1/1] Regenerating build files
The Meson build system
version: 0.13.0-research
Source dir: /home/jpakkane/mesontutorial
Build dir: /home/jpakkane/mesontutorial/build
Build type: native build
Project name is "tutorial".
Using native c compiler "ccache cc". (gcc 4.8.2)
Found pkg-config version 0.26.
Dependency gtk+-3.0 found: YES
Creating build target "demo" with 1 files.
[1/2] Compiling c object demo.dir/main.c.o
[2/2] Linking target demo
Note how Meson noticed that the build definition has changed and reran itself automatically. The program is now ready to be run:
$ ./demo
This creates the following GUI application.
The results of the search are


Once free has been called, ptr is no longer valid and attempts to dereference it result in undefined behavior. (Pedantically, in fact, even using the value of ptr may produce undefined behavior.) Passing ptr to free a second or subsequent time (unless of course the same pointer value is again returned from malloc) is particularly likely to provoke undefined behavior in most implementations.
free(NULL) has no effect.
In practice it is desirable for implementations of free to detect, to the extent practically possible, pointers that were not previously allocated by one of the above functions or that are passed to free multiple times. However, this can be difficult and there is no useful standard mechanism for error reporting.
free does not necessarily unmap free memory or return it to the operating system, but may do so if it chooses.


Find out how our team of highly qualified financial consultants can help you achieve your financial goals.
View Dashboard


CastleDB is a structured static database easing collaboration.
New version includes Map Editor !
CastleDB is used to input structured static data.
Everything that is usually stored in XML or JSON files can be stored and modified with CastleDB instead.
For instance, when you are making a game, you can have all of your items and monsters including their names, description, logic effects, etc. stored in CastleDB.
CastleDB looks like any spreadsheet editor, except that each sheet has a data model.
The model allows the editor to validate data and eases user input.
For example, when a given column references another sheet row, you will be able to select it directly.
CastleDB stores both its data model and the data contained in the rows into an easily readable JSON file.
It can then easily be loaded and used by any program.
It makes the handling of item and monster data that you are using in you video game much easier.
CastleDB allows efficient collaboration on data editing.
It uses the JSON format with newlines to store its data, which in turn allows RCS such as GIT or SVN to diff/merge the data files.
Unlike online spreadsheet editors, changes are made locally. This allows local experiments before either commiting or reverting.
A database consists of several sheets. Each sheet is a collection of structured objects (similar to a TABLE in a traditional database)
Each sheet contains several named columns. The columns represent the stored data object fields.
Each column has a given type which represents the kind of data that is stored in this column.
CastleDB handles column renaming, deleting and conversion between column types.
The following types are available for columns types:
[A-Za-z_][A-Za-z0-9_]*
.
true
or false
.
Yes,No,Cancel,Error
hasHat,hasShirt,hasShoes
.
The following table tells how each type is stored into the CDB/JSON file:
| Column Type | Storage | Default Value |
|---|---|---|
| Unique Identifier | the identifier String | "" |
| Text | the text String | "" |
| Boolean | true or false |
false |
| Integer | the integer value | 0 |
| Float | the number value | 0 |
| Color | the color value as integer | 0 (black) |
| Enumeration | the integer index of the selected value | 0 (first value) |
| Flags | a bit is set for each index of the selected values | 0 (no selected value) |
| Reference | the string of the target's unique identifier | "" (missing identifier) |
| File | the relative (if possible) or absolute path to the file | "" (missing file) |
| Image | the string of the MD5 of the image content bytes, stored in the separate .img JSON data | "" (missing image) |
| Tile | a structure in the form of {file:'my.png',size:16,x:5,y:5} with optional width and height fields. |
null (missing tile) |
| List | an Array of structured objects (learn more) | [] (empty array) |
| Custom | a mixed array representation (learn more) | null (missing type) |
| Dynamic | the parsed JSON data value | null |
| Data Layer | width x height bytes indexes encoded as Base64 (learn more) | "" (empty layer) |
| Tile Layer | either the same as DataLayer or an array of objects (learn more) | "" (empty layer) |
If you uncheck the Required checkbox when creating/modifying a column, the default data will be null
. It will also remove the field from the stored object in case no data is present.
Using the File menu, you can create a New
file and Load
and Save As
your .cdb
file.
Everytime you make a change the database file is automatically saved.
Here are the most frequently used keys for CastleDB:
F2
or Enter
to edit it.Esc
to exit cell edition or close opened ListInsert
to insert a new row at the cursor positionDelete
to remove the current cell or whole lineCtrl+Z
and Ctrl+Y
to Undo/Redo your changesTab
and Shift+Tab
to navigate to next/prev cell on the same rowF4
to go the row referenced by the cell and F3
to search for references of this rowCtrl+Tab
and Shift+Ctrl+Tab
to move between sheetsCtrl+F
to quick filter your database viewArrow keys
to navigate in your database, Enter/F2
to edit content and Esc
to exit editingCtrl+Up/Down
to move line(s)Ctrl+X/C/V
to cut/copy/pasteIn order to manage sheets, right click on the sheet title in the bottom bar of the editor. You will be able to:
Right click on the column title in order to access the following options:
CastleDB offers automatic conversion between column types. This is useful when changing the column type or copy/pasting data between columns/sheets.
If no conversion is available, you will get an error when changing the column type.
Right click on a row index to select the row and access the following options:
Ctrl+Up
and Ctrl+Down
arrowsInsert
keyDelete
keyYou can select one row by clicking on its index, then select several of them by clicking while holding shift and clicking on other row indices.
You can select a range of cells by first selecting a cell then holding shift while clicking on another cell.
You can cut/copy/paste using Ctrl+X
, Ctrl+C
and Ctrl+V
between columns and rows.
If you right click on a column and check Display Column
, this column will be used instead of the unique identifier when displaying a row reference.
This can be useful to display the real name of an item instead of its unique identifier.
The stored data and that data input is still made using the unique identifier, this only affects how things are displayed in the CastleDB editor.
If you right click on a column of type Tile
and check Display Icon
, this tile icon will be displayed in front of the name of each instance when displaying a row reference.
When you open CastleDB, each row is referenced by a 0-based index.
Usually this index is not part of the exported data but you can add it by right-clicking on the sheet name, then check Index
. It will add an index
object field to your data.
For List column types, the index will be unique for the given column.
If you right click on a row index, you can check Separator
which will create a small visible separator between this row and the previous one.
You can double-click on the separator to name it.
If you right-click on the sheet name and check the Add Group
, it will create a group
field that will be an integer index for each row .
The index starts at 0, then each time a new separator with a defined title is reached, it will increment by one (unless the first row separator has a title)
This will allow you to categorize your sheet rows easily without having to create a specific column for it.
When you set the type of a column as List
a new hidden sheet will be created.
You can then add columns to this sub-sheet and modify it as you would any another sheet.
However, the difference is that the data of this sheet is split between your original sheet rows.
You can click on the list to toggle its content and insert rows into it.
A List is similar to the one-to-many database association.
The images inserted into the database are stored into a separate .img
file. Only the MD5 key of the image is stored into the .cdb
database.
As a consequence, the same image can be used multiple times without increasing overall file size.
If you do a lot of images changes, you can use the Clean Images
command in the application file menu. This will remove all images that are no longer used from the .img
file.
Custom types are a structured types declared as enums, consisting of several constructors.
Custom types can be created and modified by using the Edit Types
link at the bottom-right of the editor.
Here's an example of a custom type with four constructors:
enum MyCustomType {
Fixed;
Random( v : Float );
Monster( ?m : monsters );
Or( a : MyCustomType, b : MyCustomType );
}
In that case, a column of this custom type can be one of the following values:
Fixed Random(0.5) Monster(MyMonsterId) Or(Random(0.5),Fixed)
A custom type constructor parameter can use the following types:
Int
an integer valueBool
a boolean valueFloat
any number valueString
a string valueCustomType
any custom type, including itselfSheetName
any sheet name created in the database
If a constructor parameter is prefixed with a ?
, then it means it's optional and can be omited.
Custom types are stored as a mixed array content. The first element of the Array is the index in the constructors list followed by the eventual parameters for this constructor.
| Value example | Stored value |
|---|---|
Fixed |
[0] |
Random(0.5) |
[1,0.5] |
Monster(MyMonsterId) |
[2,"MyMonsterId"] |
Or(Random(0.5),Fixed) |
[3,[1,0.5],[0]] |
Custom type input is strictly validated by CastleDB editor.
Starting with CastleDB 1.1, you can now have a 2D Map Editor that uses CastleDB data for all its input.
Download the sample project, we will use it as a reference in the following description.
Important: The difference between using CastleDB to create your levels and an external editor is that you can assign images/tiles to each of your data, then place them using the CDB map editor. This allows you to have a unified framework for creating the whole content of your game.
When creating a new sheet, check the Create Level
option in order to create a level sheet. This will automatically create the necessary columns that let you create and edit tile layers.
A layer is a set of information that is stored in one of the fields of the Level sheet. There are several kind of layers:
x
and y
numerical properties, a list layer which you can visually edit will be created.
You can add extra properties/columns to the List that you will be able to input directly into the editor. In particular, if you add a Reference
to another sheet which has a Tile
or Image
, you will be able to place these directly into your map.
Layer
to your level sheet. As a restriction, you will not be able to add custom per-cell properties. If you are not on the first layer, the first element of your layer (which has 0
index) will not be displayed and will act as a transparent element.
width
and height
numerical properties. It will be displayed as a given zone in the map editor.
In the sample level, our layers consists of :
layers
several tile layers for the ground and unbreakable elementstriggers
zone layers for placing in-game (blue) triggerscollide
an index layer of collisions (which are also defined in CDB)npcs
a list layer of characters that enable us to place them into a map with extra propertiesA layer extracts the information from the reference it targets:
Image
, it will use the image for displayColor
, it will use the color for display
Index layers are always grid-aligned. Other layers can have more precise positions if you use Float
instead of Int
for their positions. In that case it's still be possible to activate the Lock Grid option.
By default, the grid size is set to 16
pixels. This can be modified in the level options.
By default, layer data is stored uncompressed. If you are creating a lot of tile/index levels this can result in very big files.
You can enable/disable the compression of these layer data by doing File / Enable Compression
.
This will compress using the LZ4 algorithm which is easy and fast to decompress.
You can modify the following properties when clicking on any layer:
Visible
toggle visibility. Please note that this is only used for editing, it is not stored as part of the CDB data.Lock
allows to lock the layer, making it impossible to modify it until it's unlocked.Alpha
changes the alpha value of the layer. Unlike Visible, it is stored in CDB data.Additionaly, you can right-click on a layer to get the following options:
Show Only
will hide all layers except this one.Show All
restores all layers to visible.Rename
changes the layer name (tile layer only, other layers names can be changed by renaming the corresponding column)Clear
clears the layer data.Delete
removes the layer (tile layer only, other layers can be removed by deleting the corresponding column)A tile layer consists of an array of tiles from a single tileset.
You can change the following properties when clicking on a layer:
Mode
a tile layer can work in three different modes. The default mode is Tiles, other modes are detailed below.File
allows you to change the tileset for this layer.Size
by default CDB uses 16x16 tiles. You can change it on a per layer basis. Please note that you should also change your level tile size by using the Options
menu.Objects mode is a different way of storing your tiles.
While in Tile Mode, the layer data consists of an array of width x height tiles, the object mode is a list of X,Y,Tile.
In order to use Object Mode, you must first group one or several tiles into an Object
by using the tile palette. Select the Object
mode and you will be able to group several tiles by using the (+) button or pressing O
You can now put your objects into your Tile Layer. Objects are sorted accordingly to their lower Y, so it means that unlike in Tile Mode you can have several objects that mask each other.
Object positions are in pixels, not in the grid. You can still align the objects to the grid by using the G
key.
You can also flip and rotate the tiles that are put into the Object Layer by using F
and D
keys.
The encoding of Object Layer is a list of base64 encoded 16-bits values as follows:
0xFFFF
: marks this layer as Object Layer, followed by the below information, for each object :X
the X position of the object in the level in pixelsY
the Y position of the object in the level in pixelsID
the object id (top-left tile id if the object contains several tiles), which is its position in the tilesetEach of these three values can have their higher bit set: the object rotation is encoded into the higher bit of X and Y. The flip flag is encoded into the higher bit of the ID value.
The ground mode is similar to the tiles mode except that you can configure Grounds and Borders so they get automatically generated for you.
Try changing the ground
layer in the sample between Ground and Tile to see the difference.
At the moment, documentation on how to setup grounds and borders is not available yet.
Each tile of each tileset can have some properties which are shared between levels.
You can specify these properties by modifying the level tileProps
columns.
In the sample, we have created a collide
column which references our collide
sheet and allows us to
specify a per-tile collision.
In order to edit the per-tile properties, select the property name in the drop down menu of the tile palette. You will be able to set the property value for each tile. Please note that this information is shared between levels, so modifying a tile property for a level will also modify it for other levels.
List layers allows you to place some instances referencing another sheet in your level.
In our example level, we have an npcs
column which is a List
containing kind
, x
, y
and item
values.
kind
references the npc
sheet, so the npc image will be used to display the instance in the level editor.
Once an instance is put into the level, you can use the E
key with your mouse over it to edit its properties.
Unlike tile layers, list layers are normal CDB data which can also be edited directly through the spreadsheet editor.
Zone layers are similar to list layers except that they also have width
and height
properties, allowing them to cover a zone of your level.
Their properties can also be edited with the E
key.
Left-click
place tile (default), move the selected area (if any), paint with selected tile (in Paint mode)Right-click
pick tile under cursorS
select tile under the cursor (hold and drag to select an area)Del/Ctrl+X
delete tile under the cursor (default) or in the selected area (if any)Ctrl+Del
delete all tiles like the one under the cursorTab
next layerShift+Tab
previous layerV
toggle visibility for current layerL
toggle lock for current layerG
toggle grid lock (tile layers in Objects mode and List/Zone layers with Float positions only)I
toggle palette visibilityP
paint with current tileR
toggle random mode (select a random element as part of current palette selection)+/-
(numpad) zoom in/zoom outShift+Mouse Wheel
zoom in/zoom out/
(numpad) return to default zoomE
edit list/zone layer instance propertiesEsc
clear selectionSpace
hold to scrollF
flip current tile (tile objects only)D
rotate current tile (tile objects only)O
create object group in tile paletteArrow keys
navigate in the tile paletteCtrl+F4
close the current levelCastleDB was created using the Haxe technology, it also allows some Haxe-specific integration.
The powerful Haxe Macros will allow direct generation of all the type declarations from the CastleDB Data Model.
This is simply done by creating a source file such as:
// Data.hx private typedef Init = haxe.macro.MacroType<[cdb.Module.build("myDataFile.cdb")]>;
When compiling with -lib castle
, this will create all the types stored in the CDB model.
You can still initialize your CDB data at runtime, then access it using the accessors:
var content : String = .... // load CDB file content Data.load(content); Data.monsters.all; // all the objects of the "monsters" sheet var dragon : Data.Monsters = Data.monsters.get(Dragon); // using the unique ID generated enum trace(d.loot.name); // automatically fetch the Refenced objects
All the accesses are strictly typed by Haxe.
The main type of the module is generated with the load
static field and for each declared sheet a static field corresponding to the sheet name will be created.
If the sheet does not have an unique identifier, only the all
field is available.
If the sheet has an unique identifier, you can access the all
field, but also use get
(by id) and resolve
(by string)
For each sheet named mySheet
we will generate the following types:
MySheetDef
is the original object as parsed by JSON.MySheet
is an abstract type that allows only reading the fields and perform some conversions (see below)MySheetKind
is an enum containing all the unique identifiers found in mySheet
The MySheetKind
type is an abstract value so the actual runtime value is still the identifier string. However, it allows for strictly typing the identifiers. You can still use .toString()
to access the original string.
The different column types are mapped to the following types:
SheetNameKind
: an abstract enum is created for each sheet
String
Bool
Int
Float
Int
SheetName_ColumName
: an abstract enum is created. If they have the same values in the same order, they are all aliases to the same enum.
cdb.Types.Flags<SheetName_ColumnName>
: an abstract enum is created as for Enumeration. The bits are wrapped using the Flags
abstract which allows typed has
and iterator
methods.
TargetSheetName
: referenced object is fetched when accessed. You can access only the identifier by using columnNameId
field.
String
String
: the MD5 key only, no image loading is supported at the moment.
cdb.Types.TilePos
: contains the tileset file and size, the x/y position and optional width/height (by default it is 1)
cdb.Types.ArrayRead<SheetName_ColumnName>
: a read-only array of the structured objects, allows indexed access, length and iteration.
SheetName_ColumnName
: values are converted on-the-fly to the enum created as it has been declared.
Dynamic
: data as-it.
cbd.Types.Layer<SheetName>
: you can decode the layer by passing the Data.sheetName.all
array to the decode()
function.
cbd.Types.TileLayer
: you can decode the layer by using the t.data.decode()
function. It will automatically decompress data and will return an Array of 16-bits values.
If the tile layer is in tile/ground mode, this gives you width x height values. If it is in object mode, see the object layer encoding section.
You can see a small example of Haxe integration on GitHub here.
If you want to see what code is being actually generated, you can compile with -D dump=pretty
and look at the dump
directory after successful compilation.
Warning : castle library requires either Haxe 3.2+ or a recent Haxe build to work. You can download it from this page
CastleDB was created by @ncannasse using Haxe and Node Webkit. It's hosted on GitHub and used professionally by Shiro Games.
CastleDB was notably used to create the whole content for Evoland 2
CastleDB is an open source software usable in commercial projects without any restriction.


Engine 10V1600
Serial Number: 10232003
Owner: CDTM
Status: Running
warning Maintenance Alert
Please replace marked component


Hello World! My name is Steven but I go by VirusTotal online. I have a Bachelor's of Science in Computer Science and nearly a decade of programming experience. I have worked on a number of projects throughout the years while working at Club Obsidian. Below you can see some of the projects that I have worked on at Club Obsidian and some of my personal projects.


Point
Package : com.danehansen.geom
Class : public class Point
Inheritance : Point > Object
The Point object represents a location in a two-dimensional coordinate system, where x represents the horizontal axis and y represents the vertical axis. Mostly based on the AS3 Point class, but with some added features/useless ones removed.
Public Properties
- x : Number
The horizontal coordinate of the point.
- y : Number
The vertical coordinate of the point.
Public Methods
- Point(x:Number = 0, y:Number = 0)
Creates a new point.
- add(v:Point):Point
Adds the coordinates of another point to the coordinates of this point to create a new point.
- angle():Number
Returns the angle in radians of this point from (0,0).
- clone():Point
Creates a copy of this Point object.
- copyFrom(sourcePoint:Point)
Copies all of the point data from the source Point object into the calling Point object.
- distance(pt1:Point, pt2:Point):Number
[static] Returns the distance between pt1 and pt2.
- equals(toCompare:Point):Boolean
Determines whether two points are equal.
- interpolate(pt1:Point, pt2:Point, f:Number):Point
[static] Determines a point between two specified points.
- intersection(aStart:Point, aEnd:Point, bStart:Point, bEnd:Point):Point
[static] Returns a point where to traveling points intersect, or null if never.
- length():Number
[read-only] Gets the length of the line segment from (0,0) to this point.
- normalize(thicknes:Number)
Scales the line segment between (0,0) and the current point to a set length.
- offset(dx:Number, dy:Number)
Offsets the Point object by the specified amount.
- polar(len:Number, angle:Number):Point
[static] Converts a pair of polar coordinates to a Cartesian point coordinate.
- randomPointInCircle(center:Point, radius:Number):Point
[static] Returns a random point within a given circle.
- relativePosition(evt:Event, relativeTo:Element):Point
[static] When passed a mouse event, will return the position of the mouse relative to a chosen DOM element.
- setTo(xa:Number, ya:Number)
Sets the members of Point to the specified values
- subtract(v:Point):Boolean
Subtracts the coordinates of another point from the coordinates of this point to create a new point.
- toString():String
Returns a string that contains the values of the x and y coordinates.
- deviceOrientation():Point
Returns a point with x representing device gamma, y representing device beta, and z representing device alpha.
Rectangle
Package : com.danehansen.geom
Class : public class Rectangle
Inheritance : Rectangle > Object
The Rectangle object represents an object with an x, y, width, and height.
Public Properties
- height : Number
The height of the rectangle.
- width : Number
The width of the rectangle.
- x : Number
The x coordinate of the top-left corner of the rectangle.
- y : Number
The y coordinate of the top-left corner of the rectangle.
Public Methods
- Rectangle(x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0)
Creates a new rectangle.
- containsPoint(point:Point):Boolean
Determines whether the specified point is contained within the rectangular region defined by this Rectangle object.
- corners():Array
Returns an array of points clockwise from top-left.
- topLeft():Point
Returns a point at the top left of the rectangle.
- topRight():Point
Returns a point at the top right of the rectangle.
- bottomRight():Point
Returns a point at the bottom right of the rectangle.
- bottomLeft():Point
Returns a point at the bottom left of the rectangle.
Triangle
Package : com.danehansen.geom
Class : public class Triangle
Inheritance : Triangle > Object
The Triangle object represents an object with 3 points: a, b and c.
Public Properties
- a : Point
The first point of the triangle.
- b : Point
The second point of the triangle.
- c : Point
The third point of the triangle.
- corners : Array
An array containing a, b, and c.
Public Methods
- Triangle(a:Point = new Point, b::Point = new Point, c:Point = new Point)
Creates a new triangle.
- area():Number
Returns the area of the triangle.
- bottom():Number
Returns the bottom of the triangle.
- containsPoint(point:Point):Boolean
Determines whether the specified point is contained within the triangular region defined by this Triangle object.
- height():Number
Returns the height of the triangle.
- left():Number
Returns the left of the triangle.
- right():Number
Returns the top of the triangle.
- top():Number
Returns the top of the triangle.
- width():Number
Returns the width of the triangle.


class TestClass
attr_accessor :test
def initialize(test)
@test = test
end
def test
"this is defined in the method"
end
def test_method(test)
test
end
end
t = TestClass.new("this is the instance variable")
p t.test_method("this is the method parameter")


ObjectIDs¶
Libbson provides a simple way to generate ObjectIDs. It can be used in a single-threaded or multi-threaded manner depending on your requirements.
The bson_oid_t structure represents an ObjectID
in MongoDB. It is a 96-bit identifier.
Composition¶
4 bytes : The UNIX timestamp in big-endian format.
5 bytes : A random number.
3 bytes : A 24-bit monotonic counter incrementing from
rand()
in big-endian.
Sorting ObjectIDs¶
The typical way to sort in C is using qsort()
. Therefore, Libbson provides a qsort()
compatible callback function named bson_oid_compare(). It returns less than 1
, greater than 1
, or 0
depending on the equality of two bson_oid_t structures.
Comparing Object IDs¶
If you simply want to compare two bson_oid_t structures for equality, use bson_oid_equal().
Generating¶
To generate a bson_oid_t, you may use the following.
bson_oid_t oid;
bson_oid_init (&oid, NULL);
Parsing ObjectID Strings¶
You can also parse a string containing a bson_oid_t. The input string MUST be 24 characters or more in length.
bson_oid_t oid;
bson_oid_init_from_string (&oid, "123456789012345678901234");
bson_oid_t oid;
bson_oid_init_from_string_unsafe (&oid, "123456789012345678901234");
Hashing ObjectIDs¶
If you need to store items in a hashtable, you may want to use the bson_oid_t as the key. Libbson provides a hash function for just this purpose. It is based on DJB hash.
unsigned hash;
hash = bson_oid_hash (oid);
Fetching ObjectID Creation Time¶
You can easily fetch the time that a bson_oid_t was generated using bson_oid_get_time_t().
time_t t;
t = bson_oid_get_time_t (oid);
printf ("The OID was generated at %u\n", (unsigned) t);


This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.
Alexis Giovanni Roman Valdovinos
Pagina Registrada


[C9] Visualizing Uncertainty and Alternatives in Event Sequence Predictions
Shunan Guo, Fan Du, Sana Malik, Eunyee Koh, Sungchul Kim, Zhicheng Liu, Donghyun Kim, Hongyuan Zha, Nan Cao
The ACM CHI Conference on Human Factors in Computing Systems (CHI'19, full paper)
[C8] Domain Switch-Aware Holistic Recurrent Neural Network for Modeling Multi-Domain User Behaviors
Donghyun Kim, Sungchul Kim, Handong Zhao, Sheng Li, Ryan Rossi, Eunyee Koh
2019 ACM International Conference on Web Search and Data Mining (WSDM'19, full paper, long talk presentation (34/511), 6.65% accepted)
[C7] Collaborative Translational Metric Learning
Chanyoung Park, Donghyun Kim, Xing Xie, Hwanjo Yu
2018 IEEE International Conference on Data Mining (ICDM'18, full paper, 8.86% accepted)
[C2] Discovery of Prostate Specific Antigen Pattern to Predict Castration Resistant Prostate Cancer of Androgen Deprivation Therapy
Yejin Kim, Yong Hyun Park, Ji Youl Lee, In Young Choi, Donghyun Kim, Hwanjo Yu
ACM 9th International Workshop on Data and Text Mining in Biomedical Informatics (DTMBIO'15)
[C1] Predicting User Purchase in E-commerce by Comprehensive Feature Engineering and Decision Boundary Focused Under-Sampling
Chanyoung Park, Donghyun Kim, Jinoh Oh, Hwanjo Yu
9th ACM Conference on Recommender Systems Challenge (ACM RecSysChallenge'15, 10th place, top 1.7%)


China's Xi arrives in Athens to 'deepen cooperation'
ATHENS: Chinese President Xi Jinping touched down in Athens on Sunday (Nov 10), for a three-day visit looking at "a deeper cooperation with Greece in all sectors".
Xi is expected to meet President Prokopis Pavlopoulos and Prime Minister Kyriakos Mitsotakis, and the two countries are due to sign cooperation documents on education, shipping and energy.
"It is our duty to steadily upgrade our cooperation in all sectors, by delving deeply into existing fields and expanding the range of investments", the Chinese president said in an article published in "Kathimerini" newspaper on Sunday.
"Relations with Greece are a priority for China," Greek Foreign Minister Nikos Dendias told Thema radio on Thursday.
"They came and invested in Greece when others stayed away" during the crisis, Dendias said.
Xi's visit comes on the heels of a four-day trip to Shanghai by Mitsotakis earlier this week, when he led a delegation representing more than 60 businesses.
The front-page headline in pro-government newspaper "To Vima" refers to Greece's "Wedding with the Chinese Dragon" expecting a "deal signing fever in Athens".
"We have a number of important deals that open the Chinese market to Greek products," Mitsotakis told the paper in an interview published Sunday.
Greece has been building progressively closer trade relations with China for more than a decade.
The initiative started with a 2008 deal by a previous conservative government to cede container terminals at the main port of Piraeus to Chinese shipping giant Cosco.
Cosco's 600-million-euro ($660 million) investment in Piraeus deemed "the head of the Dragon" by Xi, could reach one billion euros, Mitsotakis said during his Shanghai visit.
Greece has also signed up to China?s new 'Belt and Road' project, a US$1-trillion global investment programme aiming to forward Chinese goods to markets further afield.


Send your abstracts to<EMAIL_ADDRESS>Last date for submission has been extended to FEB 26.
INDCON is a national level symposium that is one of a kind in incorporating both management and technical aspects within its events. This is a two-day festival that witnesses the confluence of the greatest minds from across various engineering disciplines, and provides an ideal platform for them to network and interact. This year we will be proudly celebrating the 25th Silver Jubilee Edition of Indcon, and we hope to make it the most extravagant edition yet. The annual occurrence of this symposium celebrates the department’s close association to its esteemed alumni and industrial network. With connections from all over the world, the Industrial Engineering department at Anna University is one of the most reputed in the nation.
College of Engineering Guindy (CEG), Chennai, a premier institution for post-secondary education in India, has been a renowned center for academic and professional excellence. The rectangular scarlet structure of one of the country’s oldest technical institute effectively encases not just an architecturally fine courtyard and corridors, but also the evolution of technical education in the city.What started as a survey school with eight students in 1794 at Fort St. George, shifted to several campuses including Kalas Mahal in Chepauk before moving to its current premises on what is today the Anna University campus in 1920. The original survey school became a civil engineering school, Civil Engineering College and an engineering college before becoming the College of Engineering, Guindy.
THE INDUSTRIAL ENGINEERING programs at Anna University, as a specialization under the faculty of Mechanical Engineering has been given due recognition by forming into a division under the Department of Management studies, in the year 1973. The same division has been upgraded to a full-fledged Department of Industrial Engineering in the year 2002. Our vision is to emerge as a center of excellence in the field of Industrial Engineering where the excellent practices of teaching, learning and research synergize
SOCIETY OF INDUSTRIAL ENGINEERS (SIE) is a non-profit, completely student run organization that aims to widen the technical horizon of the student community. We do this by helping students turn promising ideas into projects and provide assistance to convert projects to real time products. Industrial Engineers around the world are known for their innovative optimization skills, and the Department of Industrial Engineering, CEG, is one of the best in the entire nation. It is in celebration of this culture of innovation and optimization that students of our department organize annually, INDCON - an International Techno - Management fest, which will be held from March 2nd - March 4th, 2017.


Chapter 1: Lexical Pitfalls (词法陷阱)
Notes
- A character enclosed in single quotes is just another way of writing the integer that corresponds to the given character in the implementation’s collating sequence. A string enclosed in double quotes is a short-hand way of writing a pointer to the initial character of a nameless array that has been initialized with the characters between the quotes and an extra character whose binary value is zero (
'\0'
).
Exercise
1-1. Some C compilers allow nested comments. Write a C program that finds out if it is being run on such a compiler without any error messages. In other words, the program should be valid under both comment rules, but should do different things in each. Hint. A comment symbol /*
inside a quoted string is just part of the string; a double quote " "
inside a comment is part of the comment.
/*/**/"*/"/*"/**/
This expression is equivalent to "*/"
if comments nest and "/*"
if they don’t.
/*/*/0*/**/1
This expression is equivalent to 1
if comments nest and 0*1
if they don’t.
Chapter 2: Syntactic Pitfalls (语法陷阱)
Notes
-
Wrong examples of operator precedence:
if (flags & FLAG != 0) === if (flags & (FLAG != 0)) r = hi<<4 + low === r = hi<< (4 + low) r = (hi<<4) + low === r = hi<<4 | low *p++ === *(p++) while(c=getc(in) != EOF) === while(c = (getc(in) != EOF))
-
Do not forget
break
in eachcase
ofswitch
statement. -
C requires a function call to have an argument list even if there are no arguments.
f();
is a statement that calls the function, butf;
does nothing at all. More precisely, it evaluates the address of the function
but does not call it. -
An
else
is always associated with the closest unmatchedif
inside the same pair of braces.
Chapter 3: Semantic Pitfalls (语义陷阱)
Notes
-
Apply
sizeof()
for Arrays and Pointers:int calendar[12][31]; /* sizeof(calendar) = 31 * 12 * sizeof(int) */ calendar[4]; /* sizeof(calendar[4]) = sizeof(*monthp) = 31 * sizeof(int) */ int *p=calendar[4]; /* sizeof(p) = 2 * sizeof(int); sizeof(*p) = 1 * sizeof(int) */ int (*monthp)[31]=calendar; /* sizeof(monthp) = 2 * sizeof(int) */
In addtion, calendar[4][7] == *(calendar[4] + 7) == *((calendar + 4) + 7)
.
-
Copying a pointer does not copy the thing it addresses.
-
Using asymmetric bounds, that is, when traverse a array
int a[10]
, usingfor(i = 0; i < 10; i++ )
rather thanfor(i = 0; i <= 9; i++ )
. -
Pointer declaration syntax overview:
char cff [5][5]; /* array of arrays of chars; a char can be any sign */ char *cfp [5]; /* array of pointers to chars */ char **cpp; /* pointer to pointer to chars ("double pointer") */ char (*cpf) [5]; /* pointer to an array of chars */ char *cpF(); /* function which returns a pointer to chars */ char (*CFp)(); /* pointer to a function which returns chars */ char (*cfpF*())[5]; /* function which returns pointers to an array of chars */ char (*cpFf[5])(); /* an array of pointers to functions, which all return chars */
The ()
and []
have a higher priority than *
.
-
the
&&
and||
operators do not even evaluate their right-hand operands if their results can be determined from their left-hand operands.&
and|
unlike&&
, must always evaluate both of its operands. -
Overflow can occur if both operands are signed; the result of an overflow is undefined. To prevent overflow, try use
if ((unsigned) a + (unsigned) b > INT_MAX)
orif (a > INT_MAX - b)
instead ofif (a + b < 0)
. P.S. ANSI C definesINT_MAX
in<limits.h>
. -
The
main
is presumed to yield an int value if no other return type is declared for it. Typically, a 0 return indicates success and any other value indicates failure. If you forgot write areturn
in your main function, it usually implicitly returns some garbage integer.
Exercise
3-3. Write a function to do a binary search in a sorted table of integers. Its input is a pointer to the beginning of the table, a count of the elements in the table, and a value to be sought. Its output is a pointer to the element sought or a NULL pointer if the element is not present.
“pure pointer” form
int *bsearch(int *t, int n, int x)
{
int *lo = t, *hi = t + n; // we cannot just initialize hi to t+n-1 because t+n-1 is an invalid address if n is 0
while (lo < hi) {
int *mid = lo + ((hi - lo) >> 1); // NOT mid = (lo + hi) / 2
if(x < *mid)
hi = mid; // NOT hi = mid -1
else if (x > *mid)
lo = mid + 1;
else
return mid;
}
return NULL;
}
“array” form
int *bsearch(int *t, int n, int x)
{
int lo = 0, hi = n - 1;
while(lo <= hi)
{
int mid = (lo + hi) / 2;
if(x < t[mid])
hi = mid - 1;
else if(x > t[mid])
lo = mid + 1;
else
return t + mid;
}
return NULL;
}
Chapter 4: Linkage (链接)
Notes
-
The declaration
extern int a;
is not a definition ofa
, such a declaration is a reference to the external objecta
but does not define it. -
A program that includes
extern int a;
must sayint a;
somewhere else, either in the same program file or a different one. -
The declaration
static int a;
means the same thing asint a;
within a single source program file, but a is hidden from other files. -
Arguments(形参), parameters(实参)。
-
A function called before it is defined or declared is assumed to return
int
. -
A program with this definition:
char filename[] = "/etc/passwd";
in one file and this declaration:extern char *filename;
in another. Although arrays and pointers are very similar in some contexts, they are not the same.
Chapter 5: Library functions (库函数)
Notes
-
use
setbuf
in a program that copies its standard input to its standard output:#include <stdio.h> main() { int c; char buf[BUFSIZ]; // error in this line. setbuf(stdout, buf); while (c = getchar()) != EOF) putchar (c); }
There are two ways to prevent this sort of trouble: First, make the buffer
static, either by declaring it explicitly as static:
static char buf[BUFSIZ];
or by moving the declaration outside the main program entirely.
Another possibility is to allocate the buffer dynamically and never free it:
char *malloc();
setbuf(stdout, malloc(BUFSIZ);
-
stdarg.h
is a header in the C standard library hat allows functions to accept an indefinite number of arguments. Example 1:#include <stdio.h> #include <stdarg.h> /* print all args one at a time until a negative argument is seen; all args are assumed to be of int type */ void printargs(int arg1, ...) { va_list ap; int i; va_start(ap, arg1); for (i = arg1; i >= 0; i = va_arg(ap, int)) printf("%d ", i); va_end(ap); putchar('\n'); } int main(void) { printargs(5, 2, 14, 84, 97, 15, -1, 48, -1); printargs(84, 51, -1); printargs(-1); printargs(1, -1); return 0; }
This program yields the output:
5 2 14 84 97 15
84 51
1
Example 2:
#include <stdarg.h>
int printf(char *format, ...)
{
va_list ap;
int n;
va_start(ap,format);
n = vprintf(format, ap);
va_end(ap);
return n;
}
Chapter 6: Preprocessor (预处理器)
Notes
-
It is important to to enclose each parameter in parentheses and parenthesize the entire result expression to defend against using the macro in a larger expression.
-
Some examples:
#define abs(x) (((x)>=0) ? (x) : (-x) ) #define max(a,b) ((a)>(b) ? (a):(b)) #define toupper(c) ((c)=>'a' && (c)<='z' ? (c + ('A'-'a')) : (c)) #define assert(e) ((e) || assert_error(__FILE__, __LINE__))
-
Macros are not type definitions. Using
typedef
instead of#define
. For example, if you defined#define T1 struct foo *
andtypedef struct foo *T2
. These definitions make T1 and T2 conceptually equivalent to a pointer to
a struct foo. But when we try to use them with more than one variable:T1 a, b; T2 c, d;
The first declaration gets expanded to struct foo * a, b;
This defines a
to be a pointer to a structure, but defines b
to be a structure (not a pointer). The second declaration, in contrast, defines both c
and d
as pointers to structures, because T2
behaves as a true type.
Exercise
6-1. Write a macro version of max with integer arguments that evaluates its arguments only once.
static int max_temp1, max_temp2;
#define max(p,q) (max_temp1=(p),max_temp2=(q),\
max_temp1>max_temp2? max_temp1:max_temp2)
This will work as long as calls to max are not nested; making it work in that case may be impossible.
Chapter 7: Portability pitfalls (可移植性缺陷)
Notes
-
The three sizes of integers are nondecreasing. That is, a
short
integer can contain only values that will also fit in aint
integer and aint
integer can contain only values that will also fit in along
integer. -
The ANSI standard requires
long
integers to be at least 32 bits andshort
orint
integers to be at least 16 bits. -
In most C, the remainder has the same sign as the dividend.
Exercise
7-2. Write a portable version of the atol
function, which takes a pointer to a null-terminated character string as its argument and returns the corresponding long
value. Assume:
-
The input will always represent a valid
long
integer, soatol
need not check for the input being out of bounds; -
The only valid input characters are digits and
+
and-
signs. The input ends at the first invalid character.long atol(char *s) { long r = 0; int neg = 0; switch (*s){ case '-' : neg = 1; /* no break here*/ case '+' : s++; break; } while (*s >= '0' && *s <= '9'){ int n = *s++ - '0'; if(neg) n = -n; r = r * 10 + n; } return r; }
This work is licensed under a CC A-S 4.0 International License.


---
layout: page
title: About
permalink: /about/
---
About Me
biography
- born in: Seoul South Korea
- grew up in: Houston, TX
- undergrad school: University of Texas at Austin (Biology/Plan II Honors)
- grad school: University of Illinois at Chicago (Forensic Science)
- work experience: ~5 years total in forensic science (Texas - breath alcohol and New York City - biology/DNA)
random info
- three adjectives: ambitious, introverted, helpful
- likes: reading fiction, trying new foodie spots, dogs (and all cute critters), wine, traveling, musicals, Harry Potter...list continues!
- pets: a dog named Rylee
- currently watching: An Unfortunate Series of Events (netflix), Westworld, 30 Rock


BusinessToSystemMappingModel : use case diagram
Created:
16/05/2018 17:14:21
Modified:
16/05/2018 17:41:36
Project:
Author:
alfiva
Version:
1.0
Advanced:
ID:
{EAACB13A-EB8D-4e06-9391-F3AAA82D07FF}


Ayodhya Verdict Live: Supreme Court’s Judgement Not Victory Or Defeat For Anyone, Says Narendra Modi
BJP ministers from Rajnath Singh, Nitin Gadkari to Home Minister Amit Shah welcomed the verdict and asked the people of the country to maintain peace.
by Rohini ChatterjiThe Supreme Court announced the Ayodhya verdict on Saturday, saying the disputed land will be given to the Hindus. And that Muslims must be given alternate land. The court ordered that the Central or the state government would have to give a land of upto 5 acres to the Sunni WaThis was after a marathon hearings for 40 days on the sensitive Ram Janmbhoomi-Babri Masjid title case, the court had reserved it’s order on October 16. Chief Justice of India Ranjan Gogoi is heading a 5 judge Constitution bench that will announce the verdict. As the country holds its breath for the historic verdict, political leaders including Prime Minister Narendra Modi have appealed for peace, matter what the verdict is.
Here are live updates:
1:33 pm: Asaduddin Owaisi Reacts To Ayodhya Verdict With Single Photo
Meanwhile AIMIM chief Asaduddin Owaisi reacted to the Supreme Court’s Ayodhya verdict with a single photo on Twitter. Owaisi posted the book cover of Supreme But Not Infallible: Essays in Honour of the Supreme Court of India.
Find out what he tweeted here.
1:25 pm: Case That Has Gone On For Decades Has Reached Right Conclusion, RSS Chief Mohan Bhagwat On Ayodhya Verdict
RSS chief Mohan Bhagwat welcomed the Supreme Court verdict on Ayodhya, saying the case that has gone on for decades has reached the right conclusion. Bhagwat also lauded people’s efforts to maintain peace and harmony.
1:00 pm: Supreme Court’s Ayodhya Verdict Not Victory Or Defeat For Anyone, Says Narendra Modi
Prime Minister Narendra Modi reacted to the Ayodhya verdict by the Supreme Court of India saying, this should not be seen as a victory or defeat for anyone.
“The Supreme Court of the country has pronounced its verdict on Ayodhya. This decision should not be seen as a victory or defeat of anyone. Be it Ramabhakti or Rahimabhakti, this is the time for all of us to strengthen the spirit of Bhakti. My appeal to the countrymen is to maintain peace, harmony and unity,” he said.
He highlighted the need for judicial procedure and said this will reaffirm people’s faith in judicial process. Modi said, “This decision will further strengthen the confidence of the common man in judicial processes. In accordance with the spirit of brotherhood, we have to show peace and restraint for 130 crore Indians”
12:52 pm: Supreme Court Verdict Will Close Doors On Politicisation Of Ayodhya Issue By BJP And Others, Says Congress
Congress spokesperson Randeep Singh Surjewala welcomed the Supreme Court’s Ayodhya verdict and said that this verdict would close doors on all sorts of politics being played in the name of the Ram Mandir.
“This judgement not only opened the doors for the temple’s construction but also closed the doors for BJP and others to politicise the issue,” Surjewala said.
12:50 pm: You Take 67 Acres Of Land And Give Us 5 Acres, What Justice Is This? Asks Advocated AIMPLB Lawyer
12:40 pm: SC Judgement Will Further Strengthen Unity And Integrity Of India, Says Amit Shah
Home Minister Amit Shah in a series of tweets welcomed the Supreme Court judgement. He said, “I am confident that this landmark judgment given by the Supreme Court will prove to be a milestone in itself. This decision will give further strengthen to the unity, integrity and great culture of India.”
Shah also said, “I appeal to people of all communities and religions to accept this decision with ease and remain committed to our pledge of ‘Ek Bharat-Shreshtha Bharat’, full of peace and harmony.
12:18 pm: Huge Ram Mandir Will Be Constructed In Ayodhya, Says RSS Ideologue MG Vaidya
RSS ideologue MG Vaidya told Huffpost India’s Pavan Dahat, “I am satisfied with the Supreme Court verdict. The disputed land is undisputed now. Huge Ram Mandir will be constructed there. Muslims have been given five acres of land in Ayodhya for the construction of Masjid and nobody should take objection to that. My only wish is that the land for Masjid should be outside the Pradskshina land of Mandir.”
12:07 pm: Prohibitory Orders Issued Across Delhi
Right after the Supreme Court announced its judgement in the Ayodhya title case, the Delhi police said on Twitter that prohibitory orders have been issued in Delhi.
11:59 am: Supreme Court’s Ayodhya Verdict Not Satisfactory, Says Lawyer For Muslim Parties
Zafaryab Jilani, lawyer of the Muslim litigants, reiterated in a press conference that the judgement was not satisfactory.
(Read his interview with Huffpost India here.)
11:53 am: Landmark Judgement, Says Rajnath Singh
11:45 am Respect Judgement Of Supreme Court, Says Litigant Iqbal Ansari
Iqbal Ansari, one of the main litigants in the Ram Janmbhoomi-Babri Masjid title case said that he was happy that the Supreme Court had finally delivered a judgement.
11:36 am: We Are Not Satisfied, Says Sunni Waqf Board Lawyer
Zafaryab Jilani, the lawyer, who litigated the case for the Sunni Waqf Board for three decades said that while the Supreme Court’s order should be respected, he was not satisfied and that he would soon decided further course of action.
He had told Huffpost India in an interview, “We are fighting for the rule of law and rule of democracy, not just for one mosque. If we surrender, no mosque will be secure in the country and no minority community will feel safe. We are not just fighting for a piece of land.”
11:32 am: Lawyer Of Hindu Mahasabha Calls It ’Historic Judgement’
11:25: Right Of Ram Lalla To Disputed Site Subject To Maintenance Of Peace, Says SC
11:19 am: Supreme Court Orders Disputed Land Goes To Hindus, Alternate Land For Muslims
The Supreme Court says that the disputed land will be given to the Hindus. And that Muslims must be given alternate land. And that the Centre must formulate the a scheme within three months.
The court has said that a suitable plot of land measuring 5 acres should be handed over to the Sunni Waqf Board either by central government or the state government.
11:04 am: SC Reads Out Order
11:00 am: Section 144 Imposed Across Mumbai Till 11 am Tomorrow
Meanwhile, Section 144 has been imposed across Mumbai, the city that burned after the Babri Demolition. Official government reports from 1992 had said at least 900 people died in the Mumbai riots.
10:53 am: Title Should Be Decided On Evidence, Not On Faith And Belief, Says SC
The Supreme Court says that while the faith of Hindus that Ayodhya was the birth place of Ram could not be disputed, people of both faiths offered prayers on the disputed land in Ayodhya.
But court says title has to be decided base on law and not faith.
10:47 am: Supreme Court Quotes ASI Report ‘Babri Masjid Not Constructed On Vacant Land’
Bar& Bench quotes the Supreme Court as saying, “There is adequate material in ASI report to conclude the following: Babri Masjid not constructed on vacant land. There was a structure underlying the disputed structure. The underlying structure was not an Islamic structure, Supreme Court.”
10:45 am: Ramjanmabhoomi Not A Legal Personality, ASI’s Findings Can’t Be Brushed Aside, Says Supreme Court
The Supreme Court says that Archaeological Survey of India’s report cannot be brushed aside and that Ramjanmabhoomi is not a legal personality but the deity is a juridical person: SC
10:42 am: Suit By Nirmohi Akhara Barred By Limitation, Says Supreme Court
10:40 am: Court Should Defer From Interfering With Faith And Believe Of Worshippers, Says Supreme Court On Ayodhya Verdict.
10:38 am: Court Must Accept Faith Of Worshippers, Says SC
The Supreme Court says the Ayodhya verdict is unanimous. It says, “This court must accept faith and belief of worshippers.”
10:34 We Have Dismissed Special Leave Peition By Shia Wakf Board: SC
10:30 am: SC Bench Assembles For Ayodhya Verdict
The Supreme Court constitution bench has assembled for announcing the verdict. It is headed by CJI Ranjan Gogoi and includeds Justices SA Bobde, DY Chandrachud, Ashok Bhushan and S Abdul Nazeer.
10:10 am: Let’s Show The World This Is Gandhi’s Country: Lalu’s Message Of Peace Ahead Of Ayodhya Verdict
10:03 am: Amit Shah Calls Security Meeting With NSA Ajit Doval, IB Chief Arvind Kumar
Ahead of the Ayodhya verdict by the Supreme Court, Home Minister Amit Shah called a high level security meeting with that will be attended by NSA Ajit Doval, and IB Chief Arvind Kumar.
9:59 am: Mobile Internet Services Suspended In Aligarh District
9:55 am: Lawyers Gather Outside CJI Ranjan Gogoi’s Office In SC
Ahead of the historic verdict on the politically sensitive Ram Janmbhoomi-Babri Masjid title case, a sea of lawyers were seen outside Chief Justice of India Ranjan Gogoi’s office.
Gogoi is heading a give judge constitution bench that will announce verdict.
9:45 am: Amethi Police Threatens Journalist Rana Ayyub With Legal Action Over Tweet On Babri Demolition
Journalist Rana Ayyub took to Twitter on Friday night to tweet about how the Babri Masjid demolition changed India, ahead of the Ayodhya verdict. “Tomorrow is a big day for India. The Babri Masjid, a monument of faith for Indian muslims was demolished on 6th Dec 1992 by those in power today. It changed my life and a generation of Muslims who were ‘othered’ overnight. I hope my country does not disappoint me tomorrow,” she wrote.
Amethi police replied to her tweet asking her to delete it and warning of legal action. Later the Amethi police Twitter handle block Ayyub’s account. They also later deleted the tweet with the warning to Ayyub.
9:30 am: Internet Services Suspended In Jaipur For 24 Hours
9:15 am: Huge Security Outside Supreme Court
8:34 am: Section 144 Imposed In Jaisalmer
8:20 am: RSS Chief Mohan Bhagwat Says ‘Maintain Peace’
8:15 am: Congress Top Brass To Meet Ahead Of Ayodhya Verdict
Congress top brass would be meeting on Saturday morning to discuss its strategy in the wake of the Ayodhya verdict by the Supreme Court.
Congress general secretary organisation KC Venugopal said the meeting of the CWC would be held tomorrow morning. It was earlier to be held on Sunday.
“The CWC meeting has been rescheduled to tomorrow 09.11.19, 0945 am at 10 Janpath. CWC members, Permanent Invitees & Special invitees will be attending the meeting,” Venugopal tweeted.
The Congress working committee, the highest decision making body of the party, decides on the party strategy on crucial issues.
It would discuss the party strategy to be adopted in the wake of the Supreme Court verdict on Ayodhya. (PTI)
8:05 am Huge Security Cover In Ayodhya
Ayodhya, the city that burned on the day the Babri Masjid was demolished, is a fortess. ANI tweeted some visuals.
8:00 am: Supreme Court To Deliver Ayodhya Verdict At 10:30 am Today
The Supreme Court is going to pronounce its verdict in the historic and politically sensitive Ram Janmbhoomi-Babri Masjid land dispute case of Ayodhya at 10:30 am today.
Prime Minister Narendra Modi on Friday evening took to Twitter to appeal to the people of the country to maintain peace and harmony as the verdict is announced.
A five-judge Constitution bench, headed by Chief Justice Ranjan Gogoi, will pronounce the verdict. The bench had heard the case for 40 days this year and had reserved its judgement on October 16.
For the latest news and more, follow HuffPost India on Twitter, Facebook, and subscribe to our newsletter.
Gogoi met with Uttar Pradesh chief secretary and director general of police on Friday to assess the law and order arrangement in the state ahead of the verdict.
Ayodhya has been under complete lockdown since last month in anticipation of the verdict. Reports earlier this week had said that 12,000 security personnel had been deployed in Ayodhya district, while 16,000 volunteers were appointed by the UP police to keep an eye on social media to ensure no “objectionable content” or rumours are spread.
“Adequate forces have been provided to Ayodhya and all sensitive districts of the state in good measure. The force has been sufficiently strengthened in terms of CAPF and PAC companies,” Additional Director General of Police (Law and Order) PV Ramasastry told PTI.
Ramasastry said not only their number had been increased but the efficiency of the deployed forces was also being improved for the past two months by giving them better equipment and training.
Apart from this, senior officers were also involved in planning, he said.
When asked whether drone cameras will be used for monitoring purposes, Ramasastry said, “Drone cameras are being used in the preparatory phase so that the deployment of the forces can be planned correctly.”
He said drone cameras would also be used to closely monitor vulnerable spots and rooftops to prevent the accumulation of stones.
Because of the crucial nature of the case and the communal riots that ensued after the demolition of the Babri Masjid on 6 December 1992, political leaders cutting across party lines have appealed for peace. The riots, according to official numbers, had killed 2,000 people.
On Friday night, Prime Minister Narendra Modi urged all sections of people to maintain harmony, saying the verdict would not be a victory or defeat for anyone. He reportedly also told his council of ministers to avoid making unnecessary statements on it.
The Delhi Police has also asked its top officials to identify sensitive areas in the city for deployment of additional force, officials said. The police, PTI reported, has planned elaborate security arrangements.
Clerics and priest across the country have asked people to maintain restraint. Lucknow Eidgah Maulana Khalid Rasheed Firangi Mahali told PTI, “We should all respect the judgment. We should exercise restraint and not hurt religious sentiments of any community.”
He said an all-religious meeting was recently organised at the Islamic Centre here to discuss several aspects before the judgment.
“The Ayodhya case is the biggest and most sensitive case of independent India. Hence, it is the responsibility of every citizen to honour the verdict and maintain peace,” Mahali said.
Meanwhile, priest at the Dakshinmukhi Hanuman Mandir in Hazratganj Sarvesh Shukla said, “My only appeal to the people is to honour and respect the judgment of the Supreme Court in the case.”
“I am confident that people of this country are quite mature, and they will accept the judgement delivered by the court,” he said.
Fourteen appeals have been filed in the apex court against the 2010 Allahabad High Court judgment, delivered in four civil suits, that the 2.77-acre land in Ayodhya be partitioned equally among three parties ― the Sunni Waqf Board, the Nirmohi Akhara and Ram Lalla.
(With PTI inputs)


This LSH code is implemented with two classes (index and lsh) and one test class (TestDataClass). These classes are used to implement the LSH algorithm described in this article: Malcolm Slaney, Yury Lifshits, Junfeng He, "Optimal Locality-Sensitive Hashing," Submitted to Proceedings of the IEEE, Special Issue on Web-Scale Multimedia, Summer 2012.
This document describes three classes: index, lsh (internal use only),
TestDataClass. It also describes a simple
command-line interface useful for
testing the LSH code.
To use this class, create an index object and initialize it with the desired LSH index parameters. Then send data to the object with AddToIndex(). Finally, call Find() or FindMP() to retrieve the nearest neighbors.
Note: All data passed to the LSH class must be a NumPy Dx1 array. (Transposed data doesn't work.)
Each index class includes L lsh classes. The lsh class implements the guts of the LSH algorithm, the k-dimensional projections.
This class implements one k-dimensional projection, the T1/T2 hashing
and stores the results in a table for later retrieval. Input parameters
are the bin width (w, a floating point number, or float('inf') to get binary LSH),
and the number of projections to compute for one table entry (k, an integer).
Class: index
This is the primary class used to implement an LSH index. The index class accepts data, computes the projections, stores a pointer to the data in the tables, and answers nearest-neighbor queries. The index class uses L copies of the lsh class to implement the projections. This class just bundles the individual lsh classes together so one call hits all L lsh objects.
Class: lsh (internal class)
The lsh class is for internal use only. It's documented here for completeness and to allow others to extend the class. Do not class this class directly. Instead use the index class above.
At each iteration, this iterator returns a two-element tuple with the T1 and T2 hash values.
Class: TestDataClass
This is a useful base class upon which data storage representations can be built. The basic class stores a set of data in memory, and provides several services that are useful when implementing an index based on LSH. This is important since the LSH class does not provide any data storage. This class implements a simple storage mechanism. Specializations of this class can be built to handle custom storage requirements. (Such as reading custom file formats to get the raw data.)
The base class reads data from a flat file, stores it in memory, and puts it into an LSH index. This code distribution provides one specialization, RandomTestData that creates random data for testing. Further extensions of this class might leave data on disk, or consult a real database.
This function stores the data internally, so nothing is returned.
This data can be read into Matlab and used to create the d_nn and d_any histograms that are input
to the Matlab routine CalculateLSHParameters()
This function returns a tuple consisting of the following fields.
This routine prints the following quantities to standard output
If all goes well, the result is a curve that looks like this one.
This routine prints the following quantities to standard output
If all goes well, the result is a curve that looks like this one.
To be done!
If all goes well, the result is a curve that looks like this one.
To be done!


Alex and William have only known each other for a few months and shouldn’t rush into a serious commitment.
Greg is probably in it for Brian’s money.
Wendy claims she loves Margaret, but she hasn’t put her feelings for Julia behind her.
Lisa is too career driven for an emotionally needy person like Amy.

Complex System Knowledge is Not Transferrable
Imagine if someone were to say something like:
> Node uses async I/O so that it can read files faster.
While many of the words in this sentence are sensible, and perhaps even somewhat close to the truth, there are several glaring errors with it:
First of all, Node doesn’t use AIO. It uses nonblocking I/O for sockets and pipes, but for files, it uses a thread pool.
More subtly, doing fs operations in a worker thread does not make them faster. Since we’re usually limited by the system’s fs response anyway, adding the overhead of threads and callbacks makes those operations strictly slower than doing them synchronously.
The point of using an event loop and doing fs operations in a thread pool is so that your server’s latency is not affected (as much). The speed of the fs operation itself is presumably less important than making sure that the server can continue to service requests in the meantime.
If someone said this, and a knowledgeable Node user was around to hear it, the speaker would be promptly corrected.
Now imagine that the person saying this was a very highly educated lawyer, with many years of experience in IP law, international copyright litigation, trademarks, and patents.
Do you have any more belief in their clearly false statement? Do you now think, “Well, this guy’s a lawyer after all, and he’s dealt with some pretty hairy IP and technology issues, so he probably does know a thing or two about technology.” Or do you start to think less of him, and his craft?
My fellow programmers, this is what you sound like when you make authoritative-sounding claims about trademark, copyright, and patent law.
Not only is it more complicated than you probably realize, the complications differ from place to place and from situation to situation. The law is a giant software program with legacy code going back literally thousands of years, and the hardware it runs on is human brains, which are notoriously buggy.
I am so glad IANAL. Software that runs on computers is so much easier to reason about.


|
FTCAndroidLibrary
|
Public Member Functions | |
| LookupTable () | |
| LookupTable (Hashtable< String, T > other) | |
| LookupTable (LookupTable< T > other) | |
| void | setValue (String id, T value) |
| T | getValue (String id) |
| void | deleteValue (String id) |
| int | count () |
Protected Member Functions | |
| Hashtable< String, T > | getTable () |
Implements a variable LUT.
Instantiate a lookup table for variables.
| com.lasarobotics.library.util.LookupTable< T >.LookupTable | ( | Hashtable< String, T > | other | ) |
Create a clone from another Hashtable.
| other | Another Hashtable. |
| com.lasarobotics.library.util.LookupTable< T >.LookupTable | ( | LookupTable< T > | other | ) |
Create a clone based on another LookupTable.
| other | Another LookupTable of the same type. |
| int com.lasarobotics.library.util.LookupTable< T >.count | ( | ) |
The count of items in the table.
| void com.lasarobotics.library.util.LookupTable< T >.deleteValue | ( | String | id | ) |
Remove a value from the table at a specific ID.
| id | The ID of an item in the table. |
|
protected |
Gets the underlying Hashtable instance.
| T com.lasarobotics.library.util.LookupTable< T >.getValue | ( | String | id | ) |
Get the value of an id in the LUT.
| id | The ID of the item to retrieve. |
| void com.lasarobotics.library.util.LookupTable< T >.setValue | ( | String | id, |
| T | value | ||
| ) |
Set the value of an item in the table, or create if new.
| id | The ID of the item in the LUT. |
| value | The value to set the id to. |


macro¶
Start recording a macro for later invocation as a command:
macro(<name> [arg1 [arg2 [arg3 ...]]])
COMMAND1(ARGS ...)
COMMAND2(ARGS ...)
...
endmacro(<name>)
Define a macro named <name>
that takes arguments named arg1
,
arg2
, arg3
, (...).
Commands listed after macro, but before the matching
endmacro()
, are not invoked until the macro is invoked.
When it is invoked, the commands recorded in the macro are first
modified by replacing formal parameters (${arg1}
) with the arguments
passed, and then invoked as normal commands.
In addition to referencing the formal parameters you can reference the
values ${ARGC}
which will be set to the number of arguments passed
into the function as well as ${ARGV0}
, ${ARGV1}
, ${ARGV2}
,
... which will have the actual values of the arguments passed in.
This facilitates creating macros with optional arguments.
Additionally ${ARGV}
holds the list of all arguments given to the
macro and ${ARGN}
holds the list of arguments past the last expected
argument.
Referencing to ${ARGV#}
arguments beyond ${ARGC}
have undefined
behavior. Checking that ${ARGC}
is greater than #
is the only
way to ensure that ${ARGV#}
was passed to the function as an extra
argument.
See the cmake_policy()
command documentation for the behavior
of policies inside macros.
Macro Argument Caveats¶
Note that the parameters to a macro and values such as ARGN
are
not variables in the usual CMake sense. They are string
replacements much like the C preprocessor would do with a macro.
Therefore you will NOT be able to use commands like:
if(ARGV1) # ARGV1 is not a variable
if(DEFINED ARGV2) # ARGV2 is not a variable
if(ARGC GREATER 2) # ARGC is not a variable
foreach(loop_var IN LISTS ARGN) # ARGN is not a variable
In the first case, you can use if(${ARGV1})
.
In the second and third case, the proper way to check if an optional
variable was passed to the macro is to use if(${ARGC} GREATER 2)
.
In the last case, you can use foreach(loop_var ${ARGN})
but this
will skip empty arguments.
If you need to include them, you can use:
set(list_var "${ARGN}")
foreach(loop_var IN LISTS list_var)
Note that if you have a variable with the same name in the scope from which the macro is called, using unreferenced names will use the existing variable instead of the arguments. For example:
macro(_BAR)
foreach(arg IN LISTS ARGN)
[...]
endforeach()
endmacro()
function(_FOO)
_bar(x y z)
endfunction()
_foo(a b c)
Will loop over a;b;c
and not over x;y;z
as one might be expecting.
If you want true CMake variables and/or better CMake scope control you
should look at the function command.


include war
`Prev `__
I
`Next `__
--------------
**include war**: n.
Excessive multi-leveled inclusion within a discussion
`*thread* <../T/thread.html>`__, a practice that tends to annoy readers.
In a forum with high-traffic newsgroups, such as Usenet, this can lead
to `*flame* <../F/flame.html>`__\ s and the urge to start a `*kill
file* <../K/kill-file.html>`__.
--------------
+----------------------------+----------------------------+---------------------------------+
| `Prev `__ | `Up <../I.html>`__ | `Next `__ |
+----------------------------+----------------------------+---------------------------------+
| include | `Home <../index.html>`__ | indent style |
+----------------------------+----------------------------+---------------------------------+


Trigger a Heavy Ad Intervention in Chrome. Ensure these chrome://flags are set:
🚩 ✔ Enable enable-heavy-ad-intervention 🚩 ❌ Disable heavy-ad-privacy-mitigations


techlanka caters to a wide range of web design needs; from delicate personal web site to complete online presence for large scale corporate companies. Taking advantage of the most advanced technological tools, we are poised to provide you with creative design that is distinctive, world standard, professional, user-focused and easy to navigate. A well-balanced website is what we aim for with the following qualities in mind:
- Effective general layout
- Efficient use of space
- User friendly navigation
- Compatible Color theme
- Productive user interactivity
techlanka Redesign, Maintenance and Support
In today’s world it is not enough to just have a website; the competition is fierce and experts agree that website performances should be evaluated constantly and the site’s design and functionality refined, updated and improved on a regular basis in order to keep up with the competitors.
Whether it is new, advanced features and functionality, content update, or an eye catching face lift your website need in order to enhance your online image, you require our website redesign services. If a thorough overhaul of your website is what you need, keep in mind that your visitors need a look, as well as a persuasive message. And wwwXpert can provide just that.
Development strategies
- Tableless Full CSS design
- Web 2.0 design implementation, in line with current design trend and industry standards
- Compliance with W3C standards: xHTML 1.0 or HTML 4.01., CSS 2.1 standard
- Use of Javascript frameworks and libraries like MooTools, Jquery, Prototype etc.
- Elegant use of Flash when appropriate
- Rationality of screen density, effective information presentation and directional sense
- Cross Browser Support for IE, Mozilla, Opera, FireFox, Netscape, Safari and others
- Use of single CSS file to define overall color theme and style definitions
- Intuitive navigation system


Search with keyword(s) to get 9 inspiring images, or click an existing image below to zoom in and scroll through. Have fun!