Content Delivery Networks
More technical interview questions
What is a CDN and what advantages or disadvantages does it have?
A Content Delivery Network(CDN) is a cluster of geographically distributed servers being used to deliver static content like images, scripts, CSS and libraries quickly to visitors from the nearest server. In simpler words; when visitors browse any website, CDN chooses the nearest server to deliver static content used in website. CDN allows the visitors faster page loads and enhanced user experience...
What are the Advantages of Content Delivery Network (CDN)?
- CDN is extremely useful for the Websites with larger Images and videos but struggling with loading speeds. Despite the obvious benefits, following are some potential downside of CDN.
- CDN copies your static contents to geographically dispersed servers, hence your website load is divided among them. Ultimately, your website is highly available to your visitors.
- CDN service is probably primary step to improve your SEO strategies and lift Google page rankings. Because, poor and slow loading websites will face more challenges to rank good in search engines.
Having learning the advantages/benefits of CDN (Content Delivery Network), it will be cool to also know what are the disadvantages/drawsback of using CDN (Content Delivery Network), because knowing the Do's and Dont's of a thing makes one utilize it very well and be conscious of what it can do.
What are the Disadvantages of Content Delivery Network (CDN)?
- Storing some sensitive files on CDN network may open potential security vulnerabilities. Because, does not matter what you store at CDN; it will be copied to all distributed servers.
- CDN network contains most updated static data. Hence, you may find difficulties in application development. In other words, to preview latest changes you made, you will need Internet connection as you won’t have a local copy. This could be a headache for non technical writer or Blogger.
- Using CDN, you are creating additional “point of failure”. If the CDN network goes down you may lose website visibility.


[gecode-users] FW: Help:How to compute Autocorrelation of a v-length sequence
George Rudolph
george.rudolph at citadel.edu
Wed Oct 24 02:41:30 CEST 2007
Below I am posting an answer from Christian Schulte to some questions
that I thought I had also posted to the mailing list, but did not.
So here they are.
George
-----------------------------------------------------------------------
Dear George,
thank you for your constructive attitude, I would also like to apologize
to
you for being quite rude: I fear that we have to be focused in what kind
of
discussions take place on the mailing list: Gecode does not target
people
not knowing constraint programming in general; we would like to keep the
discussions on a level that assumes prior knowledge.
However, questions those such as you phrase below are very good! After
you
took the effort to isolate questions their answers can be reused and
capture
nicely some knowledge required to implement a model in Gecode (or
Gecode/J).
So let me try.
1. You can't. You have (as you hint yourself) create an additional
IntVar
and constraint it to a single value (either by how you initialize it or
by
operations such as rel or dom). While doing otherwise is difficult in a
statically typed language such as C++ or Java, Mozart will do quite
often
exactly the same thing without you knowing.
2. I assume that you mean posting a constraint that compares for
equality
when you refer to "compare".
The following steps should work:
- You declare an array of BoolVarArgs, say b, of the right size.
- You iterate over all element with a loop.
- You initialize (yes, BoolVarArgs does not initialize its elements)
each
b[i], say with
b[i].init(this,0,1)
- You post a comparison constraint between x[i] and y[i]
rel(this, x[i], IRT_EQ, y[i], b[i]);
- Counting is then just a linear constraint, say you have an IntVar c
for
the result
linear(this, b, IRT_EQ, c);
Hope that helps.
All the best
Christian
-----Original Message-----
From: George Rudolph [mailto:george.rudolph at citadel.edu]
Sent: Sunday, October 21, 2007 4:13 AM
To: cschulte at kth.se
Subject: RE: [gecode-users] Help:How to compute Autocorrelation of a
v-length sequence
Christian,
No need to apologize. I know that development time is precious.
Especially yours.
I completely agree that it is a modeling issue.
Unquestionably. And non-trivial, or not simple.
My intent was to ask for help from the community,
and I do not intend someone to spend time they don't have.
I do not understand what you mean by "Gecode-specific", however.
For example, I have Oz Mozart code that computes this algorithm,
and in fact I'm doing a translation to Gecode/J because
it allows me to use Java tools, and I'm hoping it's more
efficient, and syntactically cleaner than what I have.
And it will help me learn the language/API.
>From that perspective, I thought I was asking Gecode-specific questions,
and not about general modeling questions. I can specify the constraints
mathematically, I just don't know how to implement/model them in
Gecode/J.
I suppose it would be helpful if I broke the larger problem down into
more specific questions, such as:
1. Suppose I have a list like [0,x,y] where 0 is a definite integer and
x
and y
are finite domain variables. How do I represent such a list in
Gecode/J?
(Note: By definite integer, I mean that I know the element is 0, so
it
doesn't
have to be a finite domain variable.)
2. Suppose I want compare the list [0,x,y], defined as above, with
another
list [y,0,x], element by element, and count the number of positions
in
which
they match. How should I do this comparison in Gecode/J?
(Note: I have tried comparing two list element-by-element,
generating a
Boolean
list of the results by position, where true = match, and false =
mismatch,
then casting the BooleanVar array to an IntVar array, where 0=false
and
1=true,
then counting the 1's, but this did not work as I expected.)
More information about the gecode-users
mailing list


Sinitta claims she pitched X Factor replacement to ITV before Simon Cowell
EXCLUSIVE: The former girlfriend of Simon Cowell says she dreamed up a talent show idea last year
by Kelly AllenWhile Simon Cowell and Little Mix battle over who’s idea it was to form a band for a new show - Sinitta says in fact she actually came up with the format first.
She says she’s been working on a show for 18 months long before either the girl group’s The Search or Simons’ The X Factor : The Band was planned.
In the footage from the pilot, which was filmed in November 2018, she explains: “Little Mix are all grown up and there isn’t a new girlband that’s killing it so we are going to make one.”
She claims she pitched the show to Simon Cowell as well as Syco MD Tyler Brown.
She continued: “We created our show late summer 2018. I showed the orginal idea to Tyler at Syco music then a little bit to Simon.”
Simon even features in some of the clips giving advice to some of the singers telling them “there is no guarantees” in the music industry.
There’s no guarantees your mate won’t take your idea either Simon!
But Sinitta has no hard feelings that her pal has gone with a similar format.
A well placed source explained: “Sinitta pitched the show to Simon last year. She’s already has her series edited. She’s been snapped up by a TV agent and has been meeting with networks. This was long before either Simon or Little Mix announced their shows.”
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033


Professional Activities
Journals
- Associate Editor, Journal of Systems and Software (JSS), 2017--present
Conferences
-
2018: ICSE 2018 (PC)
-
2017: ASE 2017 (PC), ICSE 2017 (PC), ESEC/FSE 2017 (PC), ICST 2017 (PC), ISSTA 2017 (PC)
-
2016: ICSE 2016 (PC), ICST 2016 (PC), MSR 2016 (PC), ISEC 2016 (PC), ESEM 2016 (PC), FSE 2016 DS (PC)
- 2015: ESEC/FSE 2015 (Tutorial track), MSR 2015 (PC), ICWE 2015 (PC Co-Chair, Research Track on Web User Interfaces), ICSE 2015 (Demonstrations track), SANER 2015 (PC), SANER 2015 (ERA track)
- 2014: ICWE 2014 (PC), ICSME 2014 (Tool Demo track), ICSME 2014 (ERA track), CSMR-WCRE 2014 (ERA track)
- 2013: WWW 2013 (PC), ICST 2013 (PC), WCRE 2013 (PC), MOBL 2013 (PC), ACM CompArch 2013 (Finance chair), CSMR 2013 (Co-chair ERA track), ICSE 2013 (NIER track)
- 2012: ICST 2012, WCRE 2012, CASCON 2012 (PC), ICST 2012 (Doctoral symposium), ICSE 2012 (Poster and Tool Demos track)
- Before 2012: WCRE 2011 (PC), WSE 2010 (PC), WCRE 2009 (PC), WSE 2009 (PC), ESEC/FSE 2009 (Web chair), WebTest 2009 (PC), WSE 2008 (PC)


Data Design Project
Student: Will Tredway
Cohort 23
Website: Stack Overflow
Home
Persona
Use Case
Conceptual Model


Hey! I'm Alyssa, a software developer with an affinity for Java. I currently study Computer Science and Business at Lehigh University and will graduate in May of 2018. I am humbled and awed by today's technical achievements and love learning how things work. When I am not coding you can find me spending my time outdoors, primarily at the beach.
I developed the Android and Backend for a social media app named The Buzz.
I worked on the Backend team to develop a customer relationship managment platform for the Computer Science and Business Department at Lehigh.
I lead the executive board of the Women in Computer Science Club at Lehigh where we foster a sense of community, friendship, and strength among females in STEM fields. We believe that bringing all of the Women in Computer Science together for social and professional development events will make them more confident and comfortable in and out of the classroom and will guide them through their Lehigh experience and the rest of their careers.
I am part of a team of 4 head coordinators that plan a 3-day leadership and communication skills building trip to the Pocono Mountains for 100 incoming first year students. The coordinators and 20 other student leaders take the first years into the outdoors where we spend our time taking day and night hikes, rafting down the Delaware River, playing paintball, riding a zip line, and using these activities to build skills we all use throughout college and the rest of our lives.
I have twice attended the Grace Hopper Celebration of Women in Computing produced by AnitaB.org and am a member of Systers, the world’s largest email community of women in technical computing roles founded by Anita Borg herself. GHC is the world's largest gathering of women technologists and it has inspired me and driven me to become a catalyst for change in the world of technology.
I am part of a team of artists that paints the sets for the productions put on by the Lehigh University Theatre Department.


Countries
Back To Home
Add Another Store
Name :
Min Number Of Customers :
Max Number Of Customers :
Avg Cookies Per Customer :


To avoid all the errors we have seen it is useful to have a C coding pattern for handling PyObjects that does the following:
The basic pattern in C is similar to Python’s try/except/finally pattern:
try:
/* Do fabulous stuff here. */
except:
/* Handle every abnormal condition and clean up. */
finally:
/* Clean up under normal conditions and return an appropriate value. */
Firstly we set any local PyObject (s) and the return value to NULL:
static PyObject *function(PyObject *arg_1) {
PyObject *obj_a = NULL;
PyObject *ret = NULL;
Then we have a little bit of Pythonic C - this can be omitted:
goto try; /* Pythonic 'C' ;-) */
try:
Check that there are no lingering Exceptions:
assert(! PyErr_Occurred());
An alternative check for no lingering Exceptions:
if(PyErr_Occurred()) {
goto except;
}
Now we assume that any argument is a “Borrowed” reference so we increment it (we need a matching Py_DECREF before function exit, see below). The first pattern assumes a non-NULL argument.
assert(arg_1);
Py_INCREF(arg_1);
If you are willing to accept NULL arguments then this pattern would be more suitable:
if (arg_1) {
Py_INCREF(arg_1);
}
Of course the same test must be used when calling Py_DECFREF, or just use Py_XDECREF.
Now we create any local objects, if they are “Borrowed” references we need to incref them. With any abnormal behaviour we do a local jump straight to the cleanup code.
/* Local object creation. */
/* obj_a = ...; */
if (! obj_a) {
PyErr_SetString(PyExc_ValueError, "Ooops.");
goto except;
}
/* If obj_a is a borrowed reference rather than a new reference. */
Py_INCREF(obj_a);
Create the return value and deal with abnormal behaviour in the same way:
/* More of your code to do stuff with arg_1 and obj_a. */
/* Return object creation, ret should be a new reference otherwise you are in trouble. */
/* ret = ...; */
if (! ret) {
PyErr_SetString(PyExc_ValueError, "Ooops again.");
goto except;
}
You might want to check the contents of the return value here. On error jump to except: otherwise jump to finally:.
/* Any return value checking here. */
/* If success then check exception is clear,
* then goto finally; with non-NULL return value. */
assert(! PyErr_Occurred());
assert(ret);
goto finally;
This is the except block where we cleanup any local objects and set the return value to NULL.
except:
/* Failure so Py_XDECREF the return value here. */
Py_XDECREF(ret);
/* Check a Python error is set somewhere above. */
assert(PyErr_Occurred());
/* Signal failure. */
ret = NULL;
Notice the except: block falls through to the finally: block.
finally:
/* All _local_ PyObjects declared at the entry point are Py_XDECREF'd here.
* For new references this will free them. For borrowed references this
* will return them to their previous refcount.
*/
Py_XDECREF(obj_a);
/* Decrement the ref count of externally supplied the arguments here.
* If you allow arg_1 == NULL then Py_XDECREF(arg_1). */
Py_DECREF(arg_1);
/* And return...*/
return ret;
}
Here is the complete code with minimal comments:
static PyObject *function(PyObject *arg_1) {
PyObject *obj_a = NULL;
PyObject *ret = NULL;
goto try;
try:
assert(! PyErr_Occurred());
assert(arg_1);
Py_INCREF(arg_1);
/* obj_a = ...; */
if (! obj_a) {
PyErr_SetString(PyExc_ValueError, "Ooops.");
goto except;
}
/* Only do this if obj_a is a borrowed reference. */
Py_INCREF(obj_a);
/* More of your code to do stuff with obj_a. */
/* Return object creation, ret must be a new reference. */
/* ret = ...; */
if (! ret) {
PyErr_SetString(PyExc_ValueError, "Ooops again.");
goto except;
}
assert(! PyErr_Occurred());
assert(ret);
goto finally;
except:
Py_XDECREF(ret);
assert(PyErr_Occurred());
ret = NULL;
finally:
/* Only do this if obj_a is a borrowed reference. */
Py_XDECREF(obj_a);
Py_DECREF(arg_1);
return ret;
}


Applications have errors. Sometimes these are our fault, like a null reference, or they are out of our domain, like a faulty connection from the user’s side. But regardless from where they come, we should treat them so our application gracefully continues.
To treat errors in ECMA/TypeScript we surround our code with a try/catch
block or we append .catch()
to a Promise. These can quickly generate nested code and boilerplate, specially if we need to deal with many types of errors.
Decorators, as its name indicates, decorate our code (functions, classes) to add information to it or to modify its behavior. Decorators are a stage 2 proposal for JavaScript and are available as an experimental feature of TypeScript.
To enable experimental support for decorators, you must enable the experimentalDecorators
compiler option in your tsconfig.json
:
{
"compilerOptions": {
"target": "ES6",
"experimentalDecorators": true
}
}
The basic structure of a decorator factory, simply a function that returns the expression that will be called by the decorator at runtime, is the following:
const Log = (msg: string): any => {
return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
// target: class constructor or current object's prototype
// propertyKey: name of the decorated method
// descriptor: property descriptor of the method
modify class or method...
}
}
Then we would use it as follows:
@Log('decorating class')
class Test {
@Log('decorate method')
testMethod() {}
}
Now that we know what a decorator is and how it is implemented, let us code our own decorator.
What we want to program is:
There is a lot to unpack here so let’s go line by line.
[1]
Definition for the handler function that we need to pass to the decorator. The function receives the caught error and the context of the function (this
).
[3]
The decorator's signature. The Catch
decorator needs the specific error to catch and the function that will be executed to handle the error.
[5–6]descriptor.value
holds a reference to the original decorated method. We save this reference for later use.
[9]
We overwrite the decorated method with a new function.
[10, 23-25]
Our surrounding try/catch
block.
[11]
The execution and result of the original decorated method. If an error is thrown, it will be caught by the aforementioned try/catch
block.
[13–19]
We check if the decorated method is asynchronous (AKA returns a Promise). If so, we return the result of the original method and we add a .catch
that handles the error, if there is one.
[21–22]
If the decorated method is synchronous, we return its result.
[27–28]
We return the new descriptor, that is the original method surrounded by a try/catch
and adding .catch
if it is asynchronous.
[32]
With the implementation of the Catch
decorator, which is just a function that returns a decorator function, we can define CatchAll
simply as Catch
but already specifying that it should catch any error.
[34–44]
The error handler function. We confirm that the passed function is indeed a function and that the error is of the specified type. If so, we execute the given function. Otherwise we throw the error again to forward to the next decorator or to the decorated method.
If we decorate a class, we want to go through all of the class’ methods and decorate them.
If we decorate a class, we can use the target
to obtain all of its (non static) methods. Then we can overwrite those with the same approach as before.
[4–7]
If descriptor
is defined, then we are decorating a method. We generate a descriptor as before and return it.
[8–17]
Otherwise, we are decorating a class. In this case, target
is the class constructor and we can access its prototype. We use Reflect.ownKeys(target.prototype)
to obtain the name of all its (non static) methods, including the constructor, so we need to filter it out.
Then we get the method’s descriptor, confirm it is a method, and generate the new descriptor as before. We also need to redefine the modified class property.
[21–50]
The _generateDescriptor
function does the exact same thing it was doing previously in the Catch
decorator.
We now have programmed a decorator that surrounds our methods with a try/catch
block that will handle the errors we define.
With this decorator we can transform this:
classMessenger {
getMessages() {
try {
...
} catch(err) {
if (err instanceof TypeError) {
console.log(this, err);
} else {
throw err;
}
}
}
//and the same surrounding block for all the classfunctions
}
To:
@Catch(TypeError, (err, ctx) =>console.log(ctx, err))
classMessenger {
getMessages() {
...
}
// all the other functions
}
Thank you for reading my article! I hope you learned something new from it or it can help you making your code cleaner. If you do not want to implement the decorator yourself, you can install this NPM package. You can also find the source code if you want to see everything together.


AngularJS 2 and TypeScript Workshop (SOLD OUT)Jeremy Likness
AngularJS is the incredibly popular framework for building single-page web applications. Version 2.0 is a major leap from the 1.x version designed to address shortcomings in the original 5+ year old framework and to embrace modern browsers and language features. It is being written using TypeScript, a superset of JavaScript that allows you to build code using next generation features and compile it to JavaScript that will run on current browsers. In this session Jeremy Likness goes hands-on to show you how to set up your environment and build your first application while teaching you about the advantages of the framework and language based on his years of in-the-field experience architecting enterprise Angular applications.
React.js Hands-on workshop (SOLD OUT)Taggart Bowen-Gaddy & Andrew Smith
React.js is a view library from Facecbook for building performant user-interfaces in JavaScript. In this session, we'll explore React.js and understand why it's a great step forward for building complex UI's that run fast. We'll code up an example web application using React.js and step through the basics of using the library while discussing concepts like the virtual DOM and components.
This is a HAND-ON WORKSHOP, INTRODUCTORY LEVEL. Please come with a laptop, and if possible, with the software needed pre-installed (Instructions below). We'll cover these topics - both in code and in discussion format, and do as many as we can in the time alloted
Practically Functional Programming in JavaScriptBrian Lonsdorf
Functional programming is all the rage these days, but our codebases, libraries, and built-in methods are predominately Object-Oriented. Using OO syntax with functional constructs, we can write in a style compatible with either paradigm and enjoy the benefits of both. We will explore disjunction, monoids, monads, and other algebraic abstractions to produce highly composable, safer, and simpler code.
Swift for iOS KickstartDaniel Steinberg
In this one day workshop, you’ll learn the syntax and patterns of Swift. We’ll begin with functions, collections, constants and variables. You learn about optionals, generics, and higher order functions before moving on to classes, subclasses, structs, enumerations, and protocols. Along the way, we’ll mix in "here's how we used to do it ... now let's make it Swift-like."
Animating the User Interface: Designing for MotionAngie Terrell
From transitions to loaders, user interfaces are coming alive with motion like we've never seen before. Animation, or “motion design,” has become an essential part of the designer’s toolkit for expressing fundamental interaction design principles.
In this workshop, the instructor will show how the aims of interaction design are fulfilled through animation and will discuss what to consider when using animation in your own designs.
Through discussion and hands-on implementation, attendees will learn to design and prototype animation using tools like Keynote, Principle, Pixate, or Invision.
ES6 (and beyond) WorkshopKent C Dodds
The EcmaScript standard is now on a yearly release cycle. With ES6 complete and ES2016 ratified, we have a ton of awesome new features to use in our daily software development. In this training, we'll learn about the features you're likely to use and benefit from on a day-to-day basis. In the afternoon, we'll take an existing application and update it to leverage these features using with modern tools like Babel. My goal is that after this training, you'll be able to go back to your projects and add these tools so you can write ES.next code today.
Advanced JavaScript: FoundationsKyle Simpson
In this one-day intensive course, we will dive deep into core mechanisms of the JS language, probably more than you ever have before. Our goal is to not merely understand what these things do, but how and why.
We will cover:
• nested lexical scope
• hoisting
• closures
• modules
• 'this' keyword
• common oo patterns
• object prototypes
• delegation vs inheritance
Developing Modern Applications with AureliaRob Eisenberg
Aurelia is a next generation JavaScript client framework for mobile, desktop and web. It's the most standards-compliant, highly performing and simplest technology of its kind today. In this course you'll have an opportunity to learn directly from Aurelia's architect and project lead, Rob Eisenberg. He'll teach you how to create modern web applications using an MVVM approach with Aurelia. You also will learn how to extend HTML with custom elements and attributes, how to handle client-side routing and even cover best practices in project organization, maintenance and deployment.
Up and Running with Ionic 2 and Angular 2Mike Hartington
In this workshop you will be introduced to the Ionic v2 framework, a powerful hybrid mobile solution. Built atop of Angular 2 and Apache Cordova, this framework gives developers an incredibly powerful set of mobile components to create app store-ready apps.
During the workshop you will become familiar with the Ionic CLI, and the frameworks new features while creating an actual mobile app. Whether you are a seasoned Ionic v1 developer, or looking to get started with Ionic, this workshop will have something for you.


Seach for the best music
Genres: {{genre}} not available
Type: {{artist.type}}
Loved By: {{artist.followers.total}}


Top 5 Songs For 88Rising
Rank
Artist
Title
Album
1
88rising
Midsummer Madness
2
Rich Brian
History
3
NIKI
History
4
Joji
Head In The Clouds
5
Joji&NIKI
La Cienega


|
A TALE OF TWO SERIES-BOSTON
LEGAL AND LAW & ORDER: TRIAL BY JURY
By Michael Asimow
It's not quite the best of
times or the worst of times for fans of courtroom drama on TV.
Of the two new lawyer series this season, Boston Legal
and Law & Order: Trial by Jury, one's pretty bad but
one's pretty good.
Personally,
I dislike Boston Legal. After watching the initial episode
last fall, I didn't see another until our intrepid chief webitor
John Denvir asked me to
take another look. So I watched four episodes but I don't plan
to see any more. Now, I really respect series creator and writer
David E. Kelley. I almost always enjoyed The Practice
which morphed into Boston Legal. In addition, there are
some really skilled actors working on this show. Finally, my
esteemed brother in the law and film movement David
Papke thinks the show is a brilliant satire. For these reasons,
I want to give Boston Legal the benefit of the doubt.
And there are some good things
about Boston Legal. First, each of the four recent episodes
involved two legal cases handled by the law firm and most of
them were pretty interesting. For example, the lawyers confronted
- the substantive due process
aspects of a small town's decision to ban the sale of red meat
- the First Amendment implications
of a high school's decision to block Fox News but not any other
news programs
- the personal autonomy aspects
of a dying lawyer's demand to freeze himself so he could be thawed
out in a hundred years and resume his legal career.
- the guidelines for police
conduct when the cops are desperately trying to find a kidnapped
child (is torture permissible in such circumstances?)
- a Texas death penalty case
where the condemned wanted to die and the Texas Court of Criminal
Appeals just couldn't care less.
|
These interesting and meaty
legal issues distinguish Boston Legal from Kelley's previous
show, Ally McBeal. On Ally, the legal issues presented
were silly and just an excuse for keeping the lawyers busy doing
something while they worked out their romantic problems. Even
better, we see the lawyers on both sides of the Boston Legal
cases making solid legal arguments before judges and juries who
take them seriously.
So what's not to like? Well,
two things. First, I can't stand the characters. They really
grate on me. I think a successful television series must feature
at least some human beings that the audience finds empathetic.
On The Practice we cared about the characters in the law
firm, particularly Eugene Young, Elinor Frutt, James Berluti,
and Rebecca Washington. (I wasn't a fan of Bobby Donnell however)
We liked them as human beings and we liked the way they represented
their clients and struggled with the business and ethical dilemmas
of making a living as a bottom-feeder law firm. The same was
true of many of the characters on LA Law, which Kelley
produced during its middle years.
You don't get that in Boston
Legal-not at all. Take Alan Shore (played by James Spader).
Shore is arrogant, obnoxious and unpleasant. He mouths off to
everybody including the other lawyers and the judges. I guess
Kelley is trying to write a show with "attitude" or
"edge," and maybe you've got to do that to appeal to
the target demographic, but I don't like it. Maybe it's an attempt
to capture the nasty element in Judge Judy that viewers
seem to enjoy so much. The humor in Shore's character wore off
long ago.
Even worse is Denny Crane (William
Shatner). This one-joke character takes extreme pride in saying
his own name. That joke was cute when they did it on the last
episodes of The Practice, but why is it still funny after
being repeated over and over again?  Like Shore, Crane's obnoxious,
just about all the time. I don't like these characters, I don't
find them funny, and I don't choose to invite them into my family
room any more.
 Now I realize
that there's lots of sex going on in law firms (since the people
who work there have no time for any life outside the firm), and
sex can be a very funny subject when handled in a sophisticated
manner. But the sexual dialogue in Boston Legal is anything
but sophisticated.
- Examples of this scintillating
dialogue: Shore, when introduced to a new associate who says
we haven't officially met: "I've peeked at you in the girl's
room, unofficially."
- After winning a case, Crane
suggests to Schmidt that they celebrate by having sex. Schmidt:
"It's a long time since you've hit my button, I doubt you'd
know where to find it."
- Crane to his alienated son
and adversary: "I love you-it's hard for me to say that
except in foreplay."
 Is
that what this is all about-your unconscious desire to bed me?
- Schmidt: "Come again?"
"Crane: I don't like it when you say that, Shirley, it puts
pressure on me."
|
Well, yuk, yuk. Do you find
this stuff funny or just sophomoric? Perhaps the inane sexual
banter is considered necessary to appeal to the target demographic,
and perhaps it's considered cutting edge writing, but to me it's
annoying.
Now to Law & Order:
Trial by Jury. This new Dick Wolf spinoff focuses much more
heavily on the criminal trial process (and much less on the police)
than does the original Law & Order. It stars a terrific
actor, Bebe Neuwirth, as the chief prosecutor (Arthur Branch,
the DA on both shows, is played by Fred Dalton Thompson who I
find grievously miscast). These shows involve really interesting
criminal trials and often take us into the jury room before we
learn the outcome. The writing is crisp and accurate and, like
Law & Order, it's all plot-driven, not character-driven.
One show featured an interesting vigilante killing of an accused
child molester, for example. Another involved the trial of a
cop-killer who had taken 41 bullets from the police. Another
involved three young men all involved somehow in a killing and
all trying to make their own deals. There's next to nothing about
the personal lives of the lawyers and that's fine with me. So,
from my point of view, this show is vastly superior to Boston
Legal and really is enjoyable and stimulating to watch.
Yet there's one thing about
Law & Order: Trial by Jury that I don't like: the
scummy way the defense lawyers are portrayed. The show seems
to be about the prosecutors' view of what defense lawyers are
really like. One lawyer puts on knowingly perjured testimony.
Another turns out to have actually driven the getaway car during
the murder and is handling the case (and selling out her client)
just to promote her political career. A third arranges a phony
marriage to improve his client's media image (he promises the
"wife" a good cut of the damages he plans to recover
from the city when he sues it for civil rights violations).
Now the original Law &
Order often features irritating defense lawyers who are always
handing the prosecutors motions to suppress or dismiss or asserting
privilege and otherwise obstructing the course of justice, but
they're just doing their job. On Trial by Jury, it's quite
different: there seems to be a truly malevolent view about the
character of defense lawyers. Dick Wolf knows better than that.
A good TV show shouldn't just feed the public's prejudice against
lawyers who are doing an difficult and unpopular but very necessary
job.
Posted April 4, 2005
|


Welcome back to my technical blog. I missed you too. The topic chosen today (did you pick this?) is the Enumerable Cycle.
I know you’re thinking, why would I use the enumerable cycle? Is it useful? What is an enumerable? Enumerable is a fun word to say. Indubitably. Well, I am here to answer all your questions… Well, at least about the enumerable cycle in Ruby anyway. I’m not going to cover the meaning of life in this short tech blog... 42.
The enumerable module offers a set of methods search, sort and manipulate arrays and hashes. It simplifies. It makes your code “prettier,” at least most of the time.
Now, the enumerable method “cycle” does pretty much what you would expect it to do, it cycles through your array or hash however many times you like or even infinitely. It’s a bit cleaner than using .times. You can use the enumerable cycle (the enumerable cycle is starting to sound like a super hero’s name) with the enumerable #next to retrieve the next element as many times a necessary - which I would like to point out that you CANNOT do with the enumerable#each (unlike each, it returns a fresh enumerator everytime!). Although you can use each and cycle together which is useful if you want to reverse cycle through your collection as there is no reverse cycle enumerable but there is a reverse each enumerable.
Well, I hope this was useful and if it wasn’t, I hope you do your research and find an enumerable that will be beneficial for your needs. Until next time!


Tic-tac-toe or Xs and Os is paper and pencil game for two players, X and O, who take turns marking the spaces in a 3x3 grid.
The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row is the winner.
© Veličković Đorđe


Current version:
In this exercise we'll walk through extending a basic web application to the OpenFin Runtime.


Builds running out of memory?
As your project grows, and you use new tools to either build or analyze your code, you will inevitably exceed the memory settings which your JVM provides by default. This is especially true on 64 bit JVM's since they double the size of the reference pointer. This page aims to show you how to increase the memory available to your build process.
Heap or Permgen?
There are two OutOfMemoryErrors which people usually encounter. The first is related to heap space: java.lang.OutOfMemoryError: Heap space
When you see this, you need to increase the maximum heap space. You can do this by adding the following to your JVM arguments -Xmx200m
where you replace the number 200 with the new heap size in megabytes.
The second is related to PermGen: java.lang.OutOfMemoryError: PermGen space
. When you see this, you need to increase the maximum Permanent Generation space, which is used for things like class files and interned strings. You can do this by adding the following to your JVM arguments -XX:MaxPermSize=128m
where you replace the number 128 with the new PermGen size in megabytes.
Various Build Tools
This section demonstrates how to set these JVM switches depending on the kind of build you are running.
Maven2/3 Project Type
If you are using a Maven2/3 project type, you can set the -Xmx
or -XX:MaxPermSize
in your Jenkins global configuration. To do this, navigate to Jenkins global configuration page (Manage Jenkins -> Configure System) and look for the Maven Project Configuration. Add the necessary JVM settings to the Global MAVEN_OPTS field and press save. Subsequent Maven2/3 builds will use these new settings.
You can adjust the MAVEN_OPTS individually per job by navigating to the job, then clicking "configure" on the job menu, then under the "Build" section clicking advanced, then specifying a setting for the MAVEN_OPTS option.
Freestyle projects with Maven Build Steps
If you have a Freestyle project with a "Invoke Top Level Maven Targets" build step, you can add the appropriate JVM switches for a given build by clicking the Advanced button on the build step and entering the JVM arguments in the JVM Options field.
Alternatively, you can affect all free style Maven build steps by adding a MAVEN_OPTS global environment variable in the Jenkins global configuration. To do this, click Manage Jenkins, then Configure System. In the Global properties section, click the Environment Variables checkbox, then add a new environment variable called MAVEN_OPTS with the value set appropriately:
Gradle build steps
You can set the -Xmx
or -XX:MaxPermSize
by adding a GRADLE_OPTS global environment variable in the Jenkins global configuration. To do this, click Manage Jenkins, then Configure System. In the Global properties section, click the Environment Variables checkbox, then add a new environment variable called GRADLE_OPTS with the value set appropriately, similar to the screen shot above regarding MAVEN_OPTS
Ant build steps
For Ant steps, there is no global environment variable; you must set the Ant options in each individual build step. In the configuration for the build, find the Invoke Ant step, click Advanced, and enter the options into the Java Options box.
Attachments:
screenshot-global-maven-opts.png (image/png)
screenshot-maven-opts-small.png (image/png)
correct-maven-opts.png (image/png)


{% extends "base.html" %} {% block title %} Group {% endblock %} {% block body %}
{{user.username}}
Member since
Contact info


L.O.T.I.O.N.
Haram & Pharmakon
Trash Talk, Afropunk 2018
Death Grips
Joe Plonsker
| Photography | Shows
Info


The next arg must be a format control, and the one after it a list; both are consumed by the ~? directive. The two are processed as a control-string, with the elements of the list as the arguments. Once the recursive processing has been finished, the processing of the control string containing the ~? directive is resumed. Example:
(format nil "~? ~D" "<~A ~D>" '("Foo" 5) 7) => "<Foo 5> 7" (format nil "~? ~D" "<~A ~D>" '("Foo" 5 14) 7) => "<Foo 5> 7"Note that in the second example three arguments are supplied to the format string "<~A ~D>", but only two are processed and the third is therefore ignored.
With the @ modifier, only one arg is directly consumed. The arg must be a string; it is processed as part of the control string as if it had appeared in place of the ~@? construct, and any directives in the recursively processed control string may consume arguments of the control string containing the ~@? directive. Example:
(format nil "~@? ~D" "<~A ~D>" "Foo" 5 7) => "<Foo 5> 7" (format nil "~@? ~D" "<~A ~D>" "Foo" 5 14 7) => "<Foo 5> 14"


Step by step tutorial of using naz¶
In this demo, we will see how to use
naz
step by step.We are going to start off on an empty directory
mkdir /tmp/demo_naz/ && \
cd /tmp/demo_naz
Next we install
naz
and confirm that it is installedpip install naz && \
naz-cli --version
naz v0.7.6
In order to use
naz
, we need to have a place where messages are going to be stored before been submitted to the SMSC.Messages are stored in a broker in
naz
. But whereas other smpp clients force you to use a particular queue/broker implementation(redis, rabbitMQ, kafka,, AWS SQS etc), naz
is broker agnostic.naz
will happily use any queue/broker so long as its implementation in software satisfies naz
’s broker interfaceFor this demo we will use redis as our broker of choice. We will use docker to start a redis server;
docker run -p 6379:6379 redis:5.0-alpine
Redis is starting
Ready to accept connections
redis server is running inside a docker container and it is available for connection on the host at
localhost:6379
Now we need a way for
naz
to be able to communicate with the redis server, ie we need to implemnet naz
’s broker interface for our redis server.Let’s do that, we’ll create a file called
/tmp/demo_naz/my_broker.py
import os
import asyncio
import naz
import aioredis # pip install aioredis
class MyRedisBroker(naz.broker.BaseBroker):
"""
use redis as our broker.
This is an implementation of the `naz.broker.BaseBroker` interface
"""
def __init__(self):
self.host = "localhost"
self.port = 6379
self.password = None # use a password in prod
self.timeout = 8
self.queue_name = "naz_benchmarks_queue"
self._redis = None
async def _get_redis(self):
if self._redis:
return self._redis
self._redis = await aioredis.create_redis_pool(
address=(self.host, self.port),
db=0,
password=self.password,
minsize=1,
maxsize=10,
timeout=self.timeout,
)
return self._redis
async def enqueue(self, message):
_redis = await self._get_redis()
await _redis.lpush(self.queue_name, message.to_json())
async def dequeue(self):
_redis = await self._get_redis()
while True:
item = await _redis.brpop(self.queue_name, timeout=self.timeout)
if item:
dequed_item = item[1].decode()
return naz.protocol.json_to_Message(dequed_item)
else:
await asyncio.sleep(5)
With that we are now ready to have
naz
communicating with redis.Now what we need is an smpp client to talk to SMSC.
naz
is that client, but we need to instantiate a class instance of naz ClientLets do that in a file called
/tmp/demo_naz/my_client.py
import naz
from my_broker import MyRedisBroker
my_naz_client = naz.Client(
smsc_host="localhost",
smsc_port=2775,
system_id="smppclient1",
password="password",
broker=MyRedisBroker(),
)
We have instantiated a
naz
client and passed in the redis broker implementation.The
naz
client expects to be communicating with an SMSC
server listening on localhost:2775
.We are going to run an SMSC simulator in this demo, however, if you have a real SMSC server to connect to; you can replace the
smsc_host
, smsc_port
, system_id
, password
and any other SMSC related settings.Consult the naz Client documentation to see all the options that you can use to instantaite a naz Client.
So lets run the SMSC simulator, we’ll use a docker container for that.
docker run -p 2775:2775 komuw/smpp_server:v0.3
StandardConnectionHandler waiting for connection
Okay, lets start the
naz-cli
which is a command line application that ships with naz
. When you do pip install naz
, the CLI was also installed.naz-cli
typically takes one command line option --client
which is the dotted path to a naz.Client
instance. You can run help to see the optionsnaz-cli --help
usage: naz [-h] [--version] --client CLIENT [--dry-run]
naz is an async SMPP client. example usage: naz-cli --client
dotted.path.to.naz.Client.instance
optional arguments:
-h, --help show this help message and exit
--version The currently installed naz version.
--client CLIENT The dotted path to a `naz.Client` instance. eg: --client
dotted.path.to.a.naz.Client.class.instance
--dry-run Whether we want to do a dry-run of the naz cli. This is
typically only used by developers who are developing naz.
eg: --dry-run
Okay lets run the thing.
naz-cli --client my_client.my_naz_client
Naz: the SMPP client.
{'timestamp': '2019-06-16 07:52:59,412', 'event': 'naz.cli.main', 'stage': 'start', 'client_id': '7WJF935MQGSJPLQ7E'}
{'timestamp': '2019-06-16 07:52:59,435', 'event': 'naz.Client.connect', 'stage': 'start', 'log_id': 'b526gdnxfbf8sqlzz', 'smsc_host': 'localhost', 'system_id': 'smppclient1', 'client_id': '0R5ND6BSD3G4ATWUX', 'pid': 28125}
So we have started
naz
with the dotted path to the naz Client that we had instantiated in the file /tmp/demo_naz/my_client.py
NB: the file where you have instantiated the naz Client needs to be in your PYTHON_PATH
So the naz-cli is running and communicating to both redis server and SMSC server. However, we have not sent any messages. Let’s do that now.
We will create another file
/tmp/demo_naz/app.py
that contains our business logic for sending out messagesimport asyncio
from my_client import my_naz_client
async def send():
"""
send out messages to customers once they make purchases.
"""
tracking_code = "kLqk248JSK8"
msg = "Thanks for purchasing the Awesome shoes. Tracking code: {0}".format(tracking_code)
log_id = tracking_code
source_addr = "AwesomeStore"
destination_addr = "254722000111"
msg = naz.protocol.SubmitSM(
short_message=msg,
log_id=log_id,
source_addr=source_addr,
destination_addr=destination_addr
)
await my_naz_client.send_message(msg)
loop = asyncio.get_event_loop()
loop.run_until_complete(send())
We can execute that file, to send out messages;
python app.py
And if you look at the
naz-cli
logs, you should see log events of the message been sent out and the SMSC making responses.{
"timestamp": "2019-06-16 08:08:35,975",
"event": "naz.Client.dequeue_messages",
"stage": "end",
"log_id": "kLqk248JSK8",
"smpp_command": "submit_sm",
"send_request": True,
"smsc_host": "localhost",
"system_id": "smppclient1",
"client_id": "0R5ND6BSD3G4ATWUX",
"pid": 28125,
}
{
"timestamp": "2019-06-16 08:08:35,974",
"event": "naz.Client.send_data",
"stage": "start",
"smpp_command": "submit_sm",
"log_id": "kLqk248JSK8",
"msg": "@@@à@@@è@@@@@@@ΣCMT@££AwesomeStore@££254722000111@¥@@@@£@@@CThanks for purchasing the Awesome shoes. Tracking code: kLqk248JSK8",
"connection_lost": False,
"smsc_host": "localhost",
"system_id": "smppclient1",
"client_id": "0R5ND6BSD3G4ATWUX",
"pid": 28125,
}
{
"timestamp": "2019-06-16 08:08:35,980",
"event": "naz.Client.receive_data",
"stage": "end",
"smsc_host": "localhost",
"system_id": "smppclient1",
"client_id": "0R5ND6BSD3G4ATWUX",
"pid": 28125,
}
{
"timestamp": "2019-06-16 08:08:35,980",
"event": "naz.Client.command_handlers",
"stage": "start",
"smpp_command": "submit_sm_resp",
"log_id": "kLqk248JSK8",
"command_status": 0,
"state": "Success",
"smsc_host": "localhost",
"system_id": "smppclient1",
"client_id": "0R5ND6BSD3G4ATWUX",
"pid": 28125,
}
naz
gives you a lot more possibilities; you can change brokers at will, you can change the way logging is done(including passing in your own logging implementation), you can have custom rate limiting, custom throttle handling, hooks that get called at various stages of messages passing in through naz, and so much more.Go through the documentation to learn much more.


About: Visualization of bitcoin transactions (unconfirmed ones).
Node size scale:- auto remove transactions older then x min or verified - show transaction details on hover - connect disconect button - listen for a specyfic address and color it and display alert when present - render graph for specyfic address/transaction - categorise transactions (simple, payments, mixing etc )Found this interesting :-) Please send some Satoshis here to keep me going:
1NGBYHnYYM1i4HZkLsoRy3oFB2DzqusCoU
This visualisation was possible thanks to blockchain.info api and vivagraph.js library.


X ^
P is recognized as meaning “there exists an
X such that P is true”, and is treated as equivalent to
simply calling P. The use of the explicit existential
quantifier outside setof/3
and bagof/3
is superfluous.
Variables occurring in Generator will not be treated as free if they are explicitly bound within Generator by an existential quantifier. An existential quantification is written:
Y^Q
meaning “there exists a Y such that Q is true”, where Y is some Prolog variable. For example:
| ?- setof(X, Y^likes(X,Y), S).
would produce the single result
X = _400, Y = _415, S = [bill,dick,harry,jan,tom] ; no
in contrast to the earlier example.
Furthermore, it is possible to existentially quantify a term, where all the variables in that term are taken to be existentially quantified in the goal. e.g.
A=term(X,Y), setof(Z, A^foo(X,Y,Z), L).
will treat X and Y as if they are existentially quantified.


This sample demonstrates that custom points can be made as well. This sample contains many points, derived from boost::tuple, created from scratch, read only points, legacy points, etc.
#include <iostream>
#include <boost/geometry/io/dsv/write.hpp>
struct my_color_point
{
double red, green, blue;
};
struct my_array_point
{
int c[3];
};
struct my_2d
{
float x,y;
};
class my_class_ro
{
public:
my_class_ro(double x, double y) : m_x(x), m_y(y) {}
double x() const { return m_x; }
double y() const { return m_y; }
private:
double m_x, m_y;
};
class my_class_rw
{
public:
const double& x() const { return m_x; }
const double& y() const { return m_y; }
double& x() { return m_x; }
double& y() { return m_y; }
private:
double m_x, m_y;
};
class my_class_gs
{
public:
const double get_x() const { return m_x; }
const double get_y() const { return m_y; }
void set_x(double v) { m_x = v; }
void set_y(double v) { m_y = v; }
private:
double m_x, m_y;
};
namespace my
{
struct my_namespaced_point
{
double x, y;
};
}
int main()
{
my_color_point c1 = boost::geometry::make<my_color_point>(255, 3, 233);
my_color_point c2 = boost::geometry::make<my_color_point>(0, 50, 200);
std::cout << "color distance "
<< boost::geometry::dsv(c1) << " to "
<< boost::geometry::dsv(c2) << " is "
my_array_point a1 = {{0}};
my_array_point a2 = {{0}};
std::cout << "color distance "
<< boost::geometry::dsv(a1) << " to "
<< boost::geometry::dsv(a2) << " is "
my_2d p1 = {1, 5};
my_2d p2 = {3, 4};
std::cout << "float distance "
<< boost::geometry::dsv(p1) << " to "
<< boost::geometry::dsv(p2) << " is "
my_class_ro cro1(1, 2);
my_class_ro cro2(3, 4);
std::cout << "class ro distance "
<< boost::geometry::dsv(cro1) << " to "
<< boost::geometry::dsv(cro2) << " is "
my_class_rw crw1;
my_class_rw crw2;
std::cout << "class r/w distance "
<< boost::geometry::dsv(crw1) << " to "
<< boost::geometry::dsv(crw2) << " is "
my_class_gs cgs1;
my_class_gs cgs2;
std::cout << "class g/s distance "
<< boost::geometry::dsv(crw1) << " to "
<< boost::geometry::dsv(crw2) << " is "
my::my_namespaced_point nsp1 = boost::geometry::make<my::my_namespaced_point>(1, 2);
my::my_namespaced_point nsp2 = boost::geometry::make<my::my_namespaced_point>(3, 4);
std::cout << "namespaced distance "
<< boost::geometry::dsv(nsp1) << " to "
<< boost::geometry::dsv(nsp2) << " is "
return 0;
}


You could try using the polyfill for IndexedDB API. I have not yet added the polyfill to this performance analysis.
Longer graphs imply faster operations. X axis is operations per second. Uses BenchmarkJs.


Titanium Android module for select multiple images from Gallery. This module developed from existing Android open source library MultipleImagePick. Also this module uses Universal image loader library for asynchronous loading and caching.
To access this module from JavaScript, you would do the following:
var gallerypicker = require('titutorial.gallerypicker');The gallerypicker variable is a reference to the Module object.
Method to open custom gallery with multiple image select option.
Parameters
| Property | Description | Default | Is Required? |
|---|---|---|---|
| cancelButtonTitle | Cancel button title text | Cancel | No |
| doneButtonTitle | Done button title text | Done | No |
| title | Custom gallery window title | Gallery | No |
| errorMessage | Message used to show, if maximum image selection limit reached | Max limit reached | No |
| limit | maximum image selection limit | 5 | No |
| success | callback function to handle success response | - | Yes |
| error | callback function to handle error response | - | Yes |
| cancel | callback function to handle cancel response | - | No |
Method to scale down the bitmap
The system Gallery application displays photos taken using your Android devices's camera which are typically much higher resolution than the screen density of your device
Given that you are working with limited memory, ideally you only want to load a lower resolution version in memory. The lower resolution version should match the size of the UI component that displays it. An image with a higher resolution does not provide any visible benefit, but still takes up precious memory and incurs additional performance overhead due to additional on the fly scaling.
This method used to decode large bitmaps without exceeding the per application memory limit by loading a smaller subsampled version in memory
Reference: Android guild lines
Parameters
| Property | Description | Is Required? |
|---|---|---|
| path | Input image file path | Yes |
| width | Required thumbnail image width | Yes |
| height | Required thumbnail image height | Yes |
gallerypicker.openGallery({
cancelButtonTitle: "Cancel",
doneButtonTitle: "Okay",
title: "Custom Gallery",
errorMessage: "Limit reached",
limit: 10,
success: function (e) {
Ti.API.info("response is => " + JSON.stringify(e));
var imgArray = e.filePath.split(",");
for (var i = 0; i < imgArray.length; i++) {
if (imgArray[i]) {
var imgView = Ti.UI.createImageView({
left: '10dp',
top: '10dp',
image: gallerypicker.decodeBitmapResource(imgArray[i], 100, 100)
});
imageHolder.add(imgView);
}
}
},
error: function (e) {
alert("error " + JSON.stringify(e));
},
cancel : function(e) {
alert("cancel " + JSON.stringify(e));
}
});
refer example/app.js for more info
If you want to use custom resource in your App you can override default resource. For that you have to place your custom resource inside app_root/platform/android/res or app_root/modules/android/titutorial.gallerypicker/0.1/platform/android/res in the same name.
For example, if you want to override default image in Gallery item you have to override your custom image with name of no_media.png
Karthi Ponnusamy -<EMAIL_ADDRESS>Copyright (c) 2013 titaniumtutorial.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


ProjectA09
Dashboard
Students
Faculty
{{user.username}}
Profile
Settings
Logout
Course Details
Add Course Details
Independent Study / Additional Project
Add Course Details
×
{% csrf_token %}
Course Name
Faculty
Max Students
Rigour
Level
Pre Requisite
Yes
No
Delivery Mode
Description
Independent Study / Additional Project
×
{% csrf_token %}
Request
Independent Study
Additional Project
Course: {{ course.course_name }}
Professor: {{ course.course_prof }}
Special Requests
#
Course Name
Student
Request
Status
{% for request in course.bufferspecialpermissionstable_set.all %}
{{request.id}}
{{request.course}}
{{user.username}}
{{request.req}}
{{request.status}}
{% endfor %}


Cover your page.
Before contacting us we recommend that you check out our FAQ page where we have answers to the most commonly asked questions about the EDGE Rewards Program. If you still have questions, please call us at 1-855-4EB-EDGE (1-855-432-3343)
or send an email to<EMAIL_ADDRESS>Learn more


Some people really want Elsa to come out in 'Frozen 2'
New female character raises hopes
by Lisa Respers France, CNN(CNN) - Speculation over Elsa's sexuality is ramping up in anticipation of "Frozen II."
Yes, people actually are interested in whether the Disney character is gay.
Here's the back story: In 2016, Twitter got behind a #GetElsaAGirlfriend campaign for the sequel to the hit 2013 film.
When the first trailer for "Frozen II" dropped in February 2019, some were convinced that the character of Iduna, voiced by Evan Rachel Wood, was the ice queen's new love interest.
The theory got even bigger once social media started circulating a story by NPC Daily headlined "IT'S OFFICIAL: Disney announces Elsa will be a lesbian in Frozen 2" in March.
The problem was NPC Daily is a satire site and the story is totally not true.
But that hasn't stopped people from hoping. Elsa's struggle to come to terms with her powers in "Frozen" marked her as both a feminist and an outsider. And she doesn't have the prince boyfriend that's typical of these kinds of characters.
For the record, Disney never has addressed Elsa's, or any of the other character's, sexuality.
And don't look to the woman who voices Elsa, actress Idina Menzel, to be able to tell us either.
In 2015, Menzel awkwardly had to let it go during a talk show appearance after she tried to talk about whether Elsa was looking for a "gentleman friend." A video of the appearance made the rounds on social media.
What we do know is that "Frozen II" hits theaters November 22 and it looks to be intense.
As for whom Elsa loves, we are sure the wondering never bothered her anyway.


v2.4.0 Locale Module
Enhancements
-
Locale support
- Supports translation through chrome api.
- Translation to Swedish done at present.
-
Improved History
- History searchable
- Settings to define how my much history to load.
- New list format shows both title, timestamp and url.
v2.4.1 Minor Bugfix
v2.4.2 Minor Bugfix
- Wrong data got selected for deleting in Clear Settings


Surf slowly declining, but still dangerous on north, west shores of islands
by HNN StaffHONOLULU, Hawaii (HawaiiNewsNow) - Dangerously large surf is slowly declining into north- and west-facing shores of the Hawaiian islands, the National Weather Service said.
A high surf warning that was posted for the north and west shores of Kauai and Oahu has been downgraded to a high surf advisory until 6 a.m. Friday.
A high surf advisory also remains in effect for the north and west shores of Molokai, the north shores of Maui and the west shores of the Big Island, also until 6 a.m. Friday.
Surf was expected in the 16 to 22 foot range overnight for north shores, with 12 to 18 foot waves for the west shores of the smaller islands. Surf of 6 to 8 feet is forecast for the west shore of the Big Island.
The National Weather Service also issued a high surf advisory for the east-facing shores of Kauai, Oahu, Molokai, Maui and the Big Island for an increasing rough and choppy swell generated by increasing trade winds.
Expect dangerous ocean conditions, including strong breaking waves and longshore and rip currents.
Copyright 2019 Hawaii News Now. All rights reserved.


Log-out
Qubercomm Locatum Simulation Tool
Processing..
Customer Name:
Gateway Count
Simulation Via
MQTT
REST
Tag Count:
Split Size Of Tag Count:
Submit


Parses Sass files in a directory and exposes a graph of dependencies
Install with npm
npm install --save-dev sass-graph
Usage as a Node library:
var sassGraph = require('./sass-graph');
Usage as a command line tool:
The command line tool will parse a graph and then either display ancestors, descendents or both.
$ ./bin/sassgraph --help
Usage: bin/sassgraph <command> [options] <dir> [file]
Commands:
ancestors Output the ancestors
descendents Output the descendents
Options:
-I, --load-path Add directories to the sass load path
-e, --extensions File extensions to include in the graph
-j, --json Output the index in json
-h, --help Show help
-v, --version Show version number
Examples:
./bin/sassgraph descendents test/fixtures test/fixtures/a.scss
/path/to/test/fixtures/b.scss
/path/to/test/fixtures/_c.scss
Parses a directory and builds a dependency graph of all requested file extensions.
Parses a file and builds its dependency graph.
Type: Array
Default: [process.cwd]
Directories to use when resolved @import
directives.
Type: Array
Default: ['scss', 'css', 'sass']
File types to be parsed.
Type: Boolean
Default: false
Follow symbolic links.
var sassGraph = require('./sass-graph');
console.log(sassGraph.parseDir('test/fixtures'));
//{ index: {,
// '/path/to/test/fixtures/a.scss': {
// imports: ['b.scss'],
// importedBy: [],
// },
// '/path/to/test/fixtures/b.scss': {
// imports: ['_c.scss'],
// importedBy: ['a.scss'],
// },
// '/path/to/test/fixtures/_c.scss': {
// imports: [],
// importedBy: ['b/scss'],
// },
//}}
You can run the tests by executing the following commands:
npm install
npm test
Sass graph was originally written by Lachlan Donald. It is now maintained by Michael Mifsud.
MIT


Multiple name fields mean there’s more risk that:
- a person’s name won’t fit the format you’ve chosen
- users will enter their names in the wrong order
- users will try to enter their full name in the first field
{% extends "design-system-page-layout-guide.html" %} {% set section_id = "patterns" %} {% set section_name = "Ask users for..." %} {% set page_id = "names" %} {% set page_title = "Names" %} {% block sectionOneTop %}{% endblock %} {% block sectionLeftHandColumn %} {% include "includes/design-system/design-system-side-nav.html" %} {% endblock %} {% block sectionOneRightContent %}
Use a single name field because it can accommodate the broadest range of name types and requires less effort for users to understand.

Full name
<input class="form-control" id="full-name" type="text" name="full-name">

Multiple name fields mean there’s more risk that:
For single name fields, use ‘Your full name’.
For multiple name fields, use:
You shouldn’t ask users for their title.
It’s extra work for users and you’re forcing them to potentially reveal their gender and marital status, which they may not want to do.
There are ways to address people in correspondence without using title, for example by using their name.
If you have to use a title field, make it an optional free-text field and not a drop-down list. Predicting the range of titles your users will have is impossible, and you’ll always end up upsetting someone.
Remember to deal with the name data sensibly in any resulting correspondence.


--- layout: page title: "Blog" description: "Hear our voice!" header-img: "img/blog-bg.jpg" meta_description: "We're an indie game studio located in Toronto. Find out more about our journey from humble beginnings to hopefully a well renowned game studio!" ---


A theoretical model to simulate radical polymerization. Material, energy and population balances are integrated for batch, semi batch and continuous process in a ideally mixed reactor. Limitations: single monomer (i.e.homo polymer), one phase (organic, aqueous). Datasets with chemical-physical data for the most common monomers is included. Some background in polymer science is suggested for its use. Graphical interface for a quick and friendly use is available.
| Version: | 1.0 |
| Depends: | R (≥ 3.0.0), RGtk2, MenuCollection |
| Imports: | deSolve |
| Published: | 2015-01-12 |
| Author: | Gianmarco Polotti |
| Maintainer: | Gianmarco Polotti <gianmarco.polotti at gmail.com> |
| License: | GPL-2 |
| NeedsCompilation: | no |
| CRAN checks: | HomoPolymer results |
| Reference manual: | HomoPolymer.pdf |
| Vignettes: |
HomoPolymer: Data and Equations HomoPolymer: User Manual |
| Package source: | HomoPolymer_1.0.tar.gz |
| Windows binaries: | r-devel: HomoPolymer_1.0.zip, r-release: HomoPolymer_1.0.zip, r-oldrel: HomoPolymer_1.0.zip |
| OS X binaries: | r-release: not available, r-oldrel: not available |
Please use the canonical form https://CRAN.R-project.org/package=HomoPolymer to link to this page.


The last part of this experience is a conversation with our chatbot, Bo. A chatbot is a computer program that is created to talk to people over the internet. In fact, the term chatbot is a combination of the words "chatter" and "robot"! We programmed our chatbot to lead a group discussion about egalitarianism. To start your discussion, just hit the small button in the bottom right hand corner of the screen.


{% extends "layout-share-code.html" %} {% block page_title %} Example - Forms {% endblock %} {% block content %} Back What information do you need to share? Select all that apply: What information do you need to share? First name Surname Date of birth Place of birth Gender Nationality Current address {% endblock %}
Select all that apply:


Vega Test Interact with jstat
This example combines some of the examples included in the vega.js package to do a scatter plot of a normal distribution provided by jstat.


Before Change
5-Tuple with the BLEU score, n-gram precisions, brevity penalty,
reference length, and translation length
precision_numerators = Counter()
precision_denominators = Counter()
ref_length, trans_length = 0, 0
assert len(reference_corpus) == len(translation_corpus), \
"The number of translations and their references do not match"
After Change
5-Tuple with the BLEU score, n-gram precisions, brevity penalty,
reference length, and translation length
precision_numerators = [0 for _ in range(max_n)]
precision_denominators = [0 for _ in range(max_n)]
ref_length, trans_length = 0, 0
for references in reference_corpus_list:


2021-12-08T17:47:00+0100
2021-12-08T08:47:00-0800
2021-12-08T16:47:00+0000
24h00m59s
4h 18m 3s
00:01
12:30:39.929
P2DT20H00M10S
600 days, 3:59:12


Tue Jul 03 2018 17:00:00 GMT-0700 (PDT)
This is my second post.
Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.
Section Header
Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.
Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.


Changing Lives
See how you can make a difference in the life of an unemployed and unskilled girl
Get to know us---
layout: single-page
title: Home
category: Templates
---
See how you can make a difference in the life of an unemployed and unskilled girl Your donation gives the hope of a second chance to a teenage mother and disadvantaged girlChanging Lives
We need you
The Design26 Foundation hosts Sewing Projects twice a week, for teen mothers. There is currently one branch located in Westgate Mitchells Plain run by Suraya Williams, Sulayla Adhikari, Rashieda Lanie, Naeema Petersen and Gadija Sait.
Our aim is to skill teenage mothers and young disadvantaged girls from Mitchells Plain and surrounding areas with the tools to sew, learn to earn and to be self-sustainable. The classes also include counselling and motivational sessions.
The sewing training will help teen mothers realise their dreams of generataing an income from garment making and working with material they will be enabled to support themselves and also their child from their earnings


Module: SpatialStats::Global
- Defined in:
- lib/spatial_stats/global.rb,
lib/spatial_stats/global/stat.rb,
lib/spatial_stats/global/moran.rb,
lib/spatial_stats/global/bivariate_moran.rb
Overview
The Global module provides functionality for global spatial statistics. Global spatial statistics describe the entire dataset with one value, like how clustered the observations are across the entire dataset.
All global classes define a stat
method that returns the described statistic and an mc
method that runs a permutation test determine a pseudo p-value for the statistic. Some also define variance
and z_score
methods that can be used to calculate p-values if the distribution is known.
Defined Under Namespace
Classes: BivariateMoran, Moran, Stat


Its important to make sure that you have one list of everything that needs to be resolved, with photo evidence to back it up.
{{ item.title }}


What's New in LSDK 20.12
Highlights
- LTS 4.19.139 and LTS 5.4.47 update
- Support of PREEMPT_RT on LTS kernel 5.4.47-rt28
- U-Boot v2020.04 update
- Support of LX2162A QDS
- Support of PREEMPT_RT on LS1028
- Dropping the support of LX2160A rev1. Rev2 is supported
- Removal of Edgescale support
- ACPI mode on LX2160A and LS1046A
- MC 10.24.0 update
- OPTEE 3.8.0 update
- Refer to Fixed, open and closed issues which has a list of all fixed issues
- Inclusion of additional workarounds for Chip Errata: A-008098, A-009531, A-010194, A-010305, A-011127, A-011264, A-0011334, A-050426, A-050479
List of changes
Processor and Board Support
- Support of LX2162A QDS
- Dropping the support of LX2160A rev1. Rev2 is supported.
NXP LSDK Userland
- No change since the last LSDK
Linux Kernel Core, Virtualization
- LTS kernel 4.19.139 update
- LTS kernel 5.4.47 update
- Support of PREEMPT_RT on LTS kernel 5.4.47-rt28
- Support of PREEMPT_RT on LS1028A
Linux Kernel Drivers
- Support of LX2162A QDS
- ACPI mode on LX2160A and LS1046A
- DPAA2: adding bulking to XDP, building Tx S/G frames instead of realloc-ing skb, update bridge link status
- ENETC: adaptive interrupt coalescing
- Felix switch: configurable MTU for (jumbo frame support), port and flow policers (DSA)
- IEEE1588: one-step timestamping on DPAA2, pps and periodical clock signal on Felix switch, FIPER3 on DPAA2, external trigger
- PCIe: power management support
- PPFE: driver be built-in instead of module
- SDHC: eMMC RPBM partition, HS200 on LS1088A
Data Plane Development Kit (DPDK)
- Support of LX2162A QDS
- Crypto: SEC PDCP-SDAP format on LX2160A, non-HMAC auth algorithm on LX2160A
- Memory pool: optimizing the buffer allocation time
Virtualization - OVS-DPDK
- No change since the last LSDK
Trust Firmware - A (TF-A)
- TF-A v2.3 on LX2160A and LX2162A
U-Boot Boot Loader
- U-Boot v2020.04 update
- Support of LX2162A QDS
- GPIO on LX2160A
- SDHC: HS200 and HS400 on LX2162A
- Watchdog: SBSA on LX2160A
Unified Extensible Firmware Interface (UEFI)
- ACPI mode on LX2160A and LS1046A
Other Tools and Utilities
- eIQ machine learning applications update
- Flexbuild
- Support of LX2162A QDS
- No LX2160A rev1 image being released
- Building LSDK on ARM board with non-root account
- Supporting secure ARM-COT, updating the composite firmware for LX2160ARDB and LX2162AQDS
- Configurable boot partition and root partition in flex-installer
- Integrating mmc-utils for eMMC RPMB partition
- Supporting secure verified boot
- PPFE: driver built-in instead of module
- MC 10.24.0 update. Changes are listed on CHANGELOG
- OPTEE 3.8.0 update


{{userName}}
Verified Cook
My Cook Book
Summary
Today
Meals Served
2
Earnings
$120
Orders
Name
Stephen Parker
Address
1234 Street, Hong Kong University
Status
Pending


My name is Patrick Abromeit and I was born in Toronto, Canada. I hold a business degree from Western University and have worked in finance for the last 5 years. One of the years I worked in Frankfurt, Germany and the subsqeuent 4 years in Toronto. I dabbled in coding on the job and my interest has grown every since, so much so that I enrolled in the UofT SCS Coding Bootcamp to expand my programming knowledge. Subsequent to completion of the course, I will pursue a career as a software developer in Toronto.
My hobbies include tennis, skiing, and travelling (when I get the chance).


Welcome to the homepage. Learn more about my favorite colors.
I play the ukulele and have included a sample recording on this page.
I have included an example video file on the page.


Banks - Game Website
Author: Szymon Klimek
Middlesex University London
Student number: M00644986
Short info
Game based on top view shooter type game. The aim is to shoot as many ballons as possible. There is no time limit. The points are granted one for each accurate shoot. The map grid is x= 0-400pt y= 0-300pt. To drop a bomb type command x:y and hit the button Drop. The bomb will smash the ballons at possition x:y and grant you the score.
annotation: center point of a object bomb is not defined, so the top left corner is treated as default
Features list
- Random generated unique maps and balloons colors are random
- Explosion sprite type animation
- Interactive gui
- Real time scoring system with JSON
- Scalable game code
- Mobile friendly game with canvas objects
- Bespoke design
- Most recent game development techniques with Ticker for sprite animations and elements rendering
- Game under 100 lines of code!
Code editors:
- WebStorm
- PhpStorm
- Atom


Minitel (est.1987) is a leading value added, multi-platform distributor of IT software/hardware and consumer electronics in Portugal, with indirect sales through a 1200-strong reseller network and all major Portuguese retail chains.
Minitel main distribution brands include Adobe, Symantec, Kaspersky, Micron, Lexar, Crucial, Kensington, LaCie, Qnap, Infortrend, Sony Media, GFI, FileMaker, Pinnacle, Iris, Wacom, Seiko Instruments, Innergie, Port Designs, Allsop, Clingo and Swissvoice .
In 2006 Minitel began distribution activities into the Spanish market, operating from Madrid.
Minitel distributes its product lines exclusively through indirect sales channels.
Minitel began as a high-end, value-added distributor selling complex, multi-platform technology products through computer VARs and specialized corporate resellers selling to medium , large corporations and government accounts. Probably one of the oldest Symantec distributors in the world, Minitel is also the main distributor in Portugal for Adobe and a distributor for Kaspersky,Unitrends,FileMaker, Qnap, LaCie and Infortrend, amongst others.
The technical requirements of its value-added product lines, given the complexities of the imaging, security, storage and cloud computing technologies has driven Minitel to build a strong technical team offering its resellers comprehensive pre and after-sales support .
In addition to its value lines, the growth of consumer electronics and tablet/smartphone markets in recent years led Minitel to position itself as a leading distributor of consumer IT accessories in Portugal , through a separated, specialized retail division selling to the main Portuguese retailers such as Sonae (Worten), Fnac, MediaMarkt, Auchan, El Corte Inglès, The Phone House and Ensitel. |


Welcome to Wallaclone 👋
> Wallaclones is a project that unifies an API Rest and a web application for buying and selling items.
### 🏠 [Homepage](https://wallaclone-frontend.herokuapp.com/)
### ✨ [Demo](https://wallaclone-frontend.herokuapp.com/)
## Install
```sh
npm install
```
## Configuration of environment variables (.env)
Copy .env.example file and apply the necessary configuration parameters following the example.
```
cp .env.example .env
```
## How to start a local mongoDB instance for development
```sh
./bin/mongod --dbpath ./data/db --directoryperdb
```
## Load inital database
To load the initial database, run the following command in your Terminal
```sh
npm run initDB
```
**Warning!** Tris script will delete database contents before the load.
**Use it in production only in the first deployment.**
## Usage
```sh
npm run start
```
## Development Start
```sh
npm run dev
```
## Authentication
In this version of the API, the routes are protected by JWT.
- To be able to access the routes, first we must make a POST with the email and password to the following address:
```
http://localhost:5000/api/
```
- The next step is to add the token that returns the "POST" to "/api" in the HEADER of each request we want to have access to the different API routes.
```
key value
Authorization:
```
- In addition, in each request we will be able to see the ID of the user who is logged in.
## API Methods
### List of all adverts
GET --> /api/adverts
**An example of an expected response in JSON format.**
```
{
"result": {
"tags": [
"mobile",
"work"
],
"createdAt": "2021-03-24T23:05:44.658Z",
"description": "Nintendo Switch de segunda mano",
"name": "Nitendo Switch"
"type": "sell",
"price": 230,
"image": "http://res.cloudinary.com/diregndkr/image/upload/v1616612196/advert/image-1616627144130}",
"__v": 0
"_id": _id: "605bc5c869841300155a1477",
}
}
```
## Get an advert
GET --> /api/adverts/\_id
- Example: http://localhost:5000/api/adverts/605bc5c869841300155a1477
```
{
"result": {
"tags": [
"mobile",
"work"
],
"createdAt": "2021-03-24T23:05:44.658Z",
"description": "Nintendo Switch de segunda mano",
"name": "Nitendo Switch"
"type": "sell",
"price": 230,
"image": "http://res.cloudinary.com/diregndkr/image/upload/v1616612196/advert/image-1616627144130}",
"__v": 0
"_id": _id: "605bc5c869841300155a1477",
}
}
```
### Paginated Results
- Example: http://localhost:5000/api/adverts?limit=4&skip=0
```
- After a request for all ads, we will get a paginated result of 10 in 10 ads.
- We can modify the page limit by changing the limit value in the request, in this example the limit is 4.
```
### Apply search filters
We can apply four different search filters.:
- name: http://localhost:5000/api/adverts?name=Super+Bike
```
[
{
"tags": [
"motor",
"lifestyle"
],
"_id": "6000a39df385c8396f484de5",
"name": "Super Bike",
"description": "Some description."
"type": "sell",
"price": 5000,
"image": "moto.jpg",
"__v": 0
}
]
```
- tag: http://localhost:5000/api/adverts?tag=motor
```
[
{
"tags": [
"motor",
"lifestyle"
],
"_id": "6000a39df385c8396f484de5",
"name": "Super Bike",
"type": "sell",
"price": 5000,
"description": "Some description."
"image": "moto.jpg",
"__v": 0
},
{
"tags": [
"motor",
"lifestyle"
],
"_id": "6000a39df385c8396f484de6",
"name": "Mustang GT",
"description": "Some description.",
"type": "sell",
"price": 32000,
"image": "mustang.jpg",
"__v": 0
}
]
```
- Type: http://localhost:5000/api/adverts?type=false
```
[
{
"tags": [
"lifestyle"
],
"_id": "6000a39df385c8396f484de4",
"name": "Snow Table",
"description": "Some description."
"type": "sell",
"price": 200,
"photo": "table.jpg",
"__v": 0
}
]
```
- Price and Price range:
- 1000 will looks for ads with an equal price as the assigned:
http://localhost:5000/api/adverts?price=1000
- -1000 will look for ads that have a price less than 1000:
http://localhost:5000/api/adverts?price=-1000
- 10000- will look for ads that have a price higher than 1000:
http://localhost:5000/api/adverts?price=1000-
- 100-1000 will look for ads that have a price between 100 and 1000:
http://localhost:5000/api/adverts?price=100-5000
- This is a GET request with all search parameters, result limits and order:
http://localhost:5000/api/adverts?name=iphone&sort=price&price=-1200&onsale=true&tag=mobile&limit=2&skip=0
### Sort Adverts by name, price, tags
- We can apply parameters in the query to sort the results by name, price, onsale or tag.
- This example will show the results in alphabetical order:
```
http://localhost:5000/api/adverts?sort=name
```
## Create an advert
POST --> /api/adverts
- Example: http://localhost:5000/api/adverts/
* body: { name: 'Jeep', price: 4500, onsale: true, ... }
```
{
"result": {
"tags": [],
"_id": "5ffec6f6bb78932c9e6243af",
"name": "Jeep",
"description": "Some description."
"type": "sell",
"price": 4500,
"image": "jeep.jpg",
"__v": 0
}
}
```
## Update an advert
PUT -> /api/adverts/<\_id>
- Example: http://localhost:5000/api/adverts/5ffec6f6bb78932c9e6243af
* body: { price: 5000 }
```
{
"result": {
"tags": [],
"_id": "5ffec6f6bb78932c9e6243af",
"name": "Jeep",
"description": "Some description."
"type": "sell",
"price": 4500,
"image": "jeep.jpg",
"__v": 0
}
}
```
## Delete an advert
DELETE -> /api/adverts/<\_id>
- Example: http://localhost:5000/api/adverts/5ffec6f6bb78932c9e6243af
```
Returns: 'HTTP Code 2000'
Message on console: 'Advert deleted succesfully!'
```
## Create an user
POST --> /api/user
- Example: http://localhost:5000/api/user/
* body: { name: 'Jhon', surname: 'Doe', ... }
```
{
"message": "Se ha registrado correctamente"
}
```
## Update an user
PUT -> /api/user/<\_id>
- Example: http://localhost:5000/api/users/5ffec6f6bb78932c9e6243af
* body: { name: 'Other name', surname: 'Other surname', ... }
```
```
## Delete an user
DELETE -> /api/user/<\_id>
- Example: http://localhost:5000/api/users/5ffec6f6bb78932c9e6243af
```
Returns: 'HTTP Code 200'
Message on console: 'User has been deleted succesfully!'
```
## Website Routes
If we visit the following URL: http://localhost:5000/adverts , we will get all ads. In adittion we can apply the same search criteria as in the API.
```
http://localhost:5000/adverts?skip=1&limit=2&sort=name&tag=lifestyle
```
## Author
👤 **Kiara Mendoza, Jose Manuel Signoret, Jonathan Rodríguez**
* Github: [@KiaraMendoza, jsignoretfdez, Jrod-Dev](https://github.com/KiaraMendoza, jsignoretfdez, Jrod-Dev)
## Show your support
Give a ⭐ if this project helped you!
***
_This README was generated with ❤ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_


The larger and more complex a vocabulary is, the more difficult is the development and maintenance process. In this regard, modularization is an important aspect of collaborative vocabulary development [Suarez-Figueroa et al., 2012]. [Poveda-Villalón, 2012] describes an ontology module as a loosely coupled and self-contained component of an ontology that keeps relationships with other ontology modules. Even though in some cases ontology modules are considered to be independent ontologies [d’Aquin et al., 2008], from the development perspective components are not treated as independent elements.
Organizing a vocabulary in files where each file represents a module, is a way of managing modularity within the development process. Furthermore, some reports show that a module in a mid-sized vocabulary should contain between 200 and 300 lines of code [Schlicht and Stuckenschmidt, 2006]. Since modularity depends on the overall size of the vocabulary, we see the following three possibilities how the file structure should be organized with respect to modularity.


-
The Fieldwork programme is an integral part of the HRM & LR curriculum and provides opportunities for students to reflect, apply and integrate acquired skills to work situations in organizations. It thereby serves as an interface between theory and practice.
The HRM & LR students are placed in four different organizations, representing different industry sectors, during the two year duration of their programme. The fieldwork programme comprises of the following -
- Concurrent placement - In the first three semesters, students attend fieldwork in three different organizations, twice a week
- Corporate block placement - In the final semester, students undertake a month long block fieldwork placement in an organization
- NGO block placement - At the end of the fourth semester, the students work in a Non governmental organization for one month
-
The programme is overseen by the Dean of the School of Management and Labour Studies and by the School Board. Currently, the school deals with more than 100 organizations with respect to fieldwork. The fieldwork curriculum and practice is regularly revised and timely inputs are solicited from industry experts.
The students are expected to record their learnings and to compare actual business practices with theory. Focus group discussions as well as individualized feedback sessions are conducted on a weekly basis with a faculty mentor.
-
- Banking, Financial Services and Insurance (BFSI)
- Fast Moving Consumer Goods (FMCG)
- Pharma/Healthcare/Biotech
- IT/ITES/Telecom
- Services
- Media and Entertainment
- Manufacturing/Oil & Natural Gas
- Consulting
- Banking, Financial Services and Insurance (BFSI)