A Super Tiny Framework-Agnostic CSS-in-JS
Rajasegar Chandran
Hello everyone, My name is Rajasegar Chandran. I am from Chennai, India. It’s really been an honour and privilege for me to be part of Javascript and Friends, thank you for having me here.
About me
Front-end @ Freshworks Inc
This is about me. I am working as a Front-end Developer at a company called Freshworks. We build simple and innovative SAAS products which offer CRM solutions for businesses of all sizes.
CSS-in-JS
csz
This is a talk about a CSS-in-JS library called csz. Before diving into the topic let’s set some context about CSS-in-JS solutions, how it all started, why it became a viable option for styling components in the first place.
CSS: Problems at Scale
Global Namespace
Dependencies
Dead Code Elimination
Minification
Sharing Constants
Non-deterministic resolution
Isolation
Blog post
He talked about problems of using CSS at scale such as Global Namespace, Dependencies, Dead Code elimination and so on. He also showed us how we can use CSS in JS to solve these problems without bringing in any kind of hacky solutions.
Styled Components
Emotion
Glamorous
Fela
aphrodite
glamor
styletron
JSS
linaria
react-jss
From then on, the web development community has come up with a lot of CSS-in-JS solutions
CSS-in-JS
“ the overall ecosystem is still very fragmented and in
constant movement. So it remains to be seen what
place CSS-in-JS will occupy in the overall ecosystem in
the long run.”
CSS 2019
According to the State of CSS 2019, some libraries like Styled Components and Emotion have established themselves as solid options, the overall ecosystem is still very fragmented and in constant movement. So it remains to be a big question what place CSS-in-JS will occupy in the long run.
Compilation
Build
Static
Plugins
Syntax
Loaders
And using CSS-in-JS comes with its own set of challenges. We need to compile them because they use a special syntax which is not supported and again we need to load the necessary plugins and a build step is essential to generate the final css output.
Why?
Framework Agnostic CSS-in-JS
Load styles dynamically from .css files withouth FOUC
Efficient Caching of styles
Write CSS in SASS like Way
No Bundling / Compilation
You might be thinking why should I choose csz over other solutions, what kind of problems it solves for us?
Let’s look at a list of scenarios where we can make use of csz. If you are looking for a framework-agnostic CSS-in-JS solution, then csz can be the right candidate for you. If you want to load styles dynamically from .css files without having to worry about flashes of unstyled content then you should go for csz. If you want your style definitions to be cached effectively then csz might be the right choice for you. If you want to write CSS in SASS like style with nested selectors and all, then csz might be able to help you out. And finally if you are the one who is looking for a bundle-less solution for your css assets then csz is the perfect tool for the job.
Runtime CSS Modules with SASS like pre-processing
github.com/lukejacksonn/csz
It’s a runtime CSS Modules with SASS like preprocessing. It is created by Luke Jackson. Luke is a front-end developer from London. He also created some other amazing tools like perflink, servor, etc.,
Super Tiny
Just 49 lines of JavaScript
csz is super tiny in the sense that it’s just 49 lines of JS. What I mean by 49 lines is the physical lines including all the line breaks.
Source code
import stylis from './stylis.js';
const cache = {};
const hash = () => Math.random() .toString(36) .replace('0.', '');
const sheet = document.createElement('style');
document.head.appendChild(sheet);
const none = hash => `.${hash}{display:none}`;
const hide = hash => (sheet.innerHTML = none(hash) + sheet.innerHTML);
const show =
hash => (sheet.innerHTML = sheet.innerHTML.replace(none(hash), ''));
const isExternalStyleSheet = key => /^(\/|https?:\/\/)/.test(key.trim());
const process = key => hash => rules => {
sheet.innerHTML += (cache[key] = {
hash,
rules: stylis()(`.${hash}`, rules)
}).rules;
if (isExternalStyleSheet(key)) show(hash);
};
export default (strings, ...values) => {
const key = strings[0].startsWith('/')
? strings[0]
: strings.reduce(
(acc, string, i) =>
(acc += string + (values[i] == null ? '' : values[i])),
''
);
if (cache[key]) return cache[key].hash;
const className = 'csz-' + hash();
const append = process(key)(className);
if (isExternalStyleSheet(key)) {
hide(className);
fetch(key)
.then(res => res.text())
.then(append);
} else append(key);
return className;
};
And if you remove the line breaks it’s just 31 lines and it can fit entirely in a single slide.
BundlePhobia
csz
And there is this thing called BundlePhobia.com where you can check the production footprint of the libraries you are using. And csz is just 12.3 kb when it is minified and 5 Kb when compressed with gzip. It has got no external dependencies.
Framework-Agnostic
React, Vue, Ember, Preact, Svelte, ...
And it is completely framework agnostic. It is not specifically tailored for any Javascript frameworks to work with. Unlike Styled Components which is mainly targeted for component based frameworks like React.js. Whereas csz can work with any framework. You can use it in frameworks like React, Ember, Vue.js, Preact and Svelte. It just works seamlessly.
Run-time only class name generation &
Ruleset Isolation
Luke was inspired by emotion and styled-components but unfortunately neither of these packages expose an ES module compatible build and come with quite a lot of extraneous functionality that isn't required when the scope of the project is restricted to runtime only class name generation and ruleset isolation.
Loading in stylesheets (.css) dynamically
during runtime in the browser (not compile time)
Loading in stylesheets dynamically – from .css files – is supported out of the box, so you can write your styles in .css files and import them via url without having to worry about flashes of unstyled content.
SASS like preprocessing
Nested Selectors
Global style injection
Vendor prefixing
csz supports SASS like preprocessing which means you can use nested selectors, or simply you can write your CSS in SASS like style. This would definitely help people who want to move from SASS to get rid of all the compilation and build stuff but still want to keep the good parts of SASS conventions. How does csz do that?
Csz actually relies on something called Stylis.
I am a center aligned text.
↓
It uses stylis to parse styles from tagged template literals and append them to the head of the document at runtime.
stylis
Sultan Tarimo
github.com/thysultan/stylis.js
Stylis is a light-weight CSS preprocessor created by Sultan Tarimo. Stylis is the preprocessor which is internally used by libraries like Styled-components and Emotion.
Stylis
Features:
Nesting a { &:hover {} }
Selector namespacing
Vendor prefixing (flex-box, etc...)
Minification
ESM module compatible
Tree-shaking-able
Stylis supports a wide array of features like Nesting, Selector namespacing, vendor prefixing and so on.
No build tools required
Just works in the browser on the fly...
 This is one of the distinguishing features of csz when compared with other CSS-in-JS libraries. csz does not need any compilation or build process. It is specifically designed to work directly in the browser.
Using csz
Now we will see how to use csz inside your applications. We will take a look at different use-cases, patterns and examples.
Importing csz (Node)
import css from 'csz';
if you are using any build tools like Webpack or any other bundlers, you import csz directly from the package as an ES6 Import.
Importing csz (Browser)
import css from 'https://unpkg.com/csz';
And you can also hotlink the package directly from unpkg.com.
unpkg
unpkg.com/:package@:version/:file
<EMAIL_ADDRESS>🛫
unpkg is a fast, global CDN for everything on npm. You can use it to quickly and easily load any file from any package using a URL. It was created by Michael Jackson. Did you know he hacked something together in an airport one night as he was waiting to board the plane and published it as npmcdn.com. About a year later he changed the name to unpkg.com and it stuck.
Inline usage
// static
// generate class name for ruleset
const inlined = css`background: blue;`;
If a ruleset is provided as a string then it is processed immediately
Using external stylesheets
// dynamic (from stylesheet)
// generate class name for file contents
const relative = css`/index.css`;
// dynamic (from url)
// generate class name for file contents
const absolute = css`https://example.com/index.css`;
but if a filepath is provided then processing is deferred until the contents of the file has been fetched and parsed.
Hello world example
This is a typical hello world example for csz. Just like the same example you might have seen in the Styled components documentation. Here we are using the inline style by applying the ruleset from tagged template literals to the class names of the elements.
Dynamically generated class names
.csz-pr8icladqd9 {
font-size:1.5em;
text-align:center;
color:palevioletred;
}
.csz-1vhdvy1k9f8 {
padding:4em;
background:papayawhip;
}
Output
Hello world example - variation 2
This is another variation, a more standard and common pattern of using style objects. Instead of applying inline we create an object for the parent element and apply that to the className and the style definitions and classes are automatically applied.
Adapting to props
Output
This is another example of using csz for adapting styles based on properties to a component. If the primary property is passed to this button component here, the background color and color property will be changed accordingly.
Pseudo selectors
Output
This is another example of using pseudo elements, pseudo selectors and sibling selectors,
Animations
Output
csz also supports Keyframe and animation namespacing
Theming - component definition
Output
This is an example of how you can implement themes using csz. This is a simple button component with theming provisions for the color and border. By default both of them will be having palevioletred color, if a theme prop is passed to the button, it will take the colors from the theme for styling the button.
Theming - component usage
Output
How?
Now we will take a look at the internals of csz. We will see how it works, what are the different moving parts involved. Since it is a simple library, we can visualise them in just 8 simple steps.
1. Import stylis
import stylis from './stylis.js';
csz
So the first stage is importing stylis. csz actually keeps a local copy of minified stylis.js within its repository to make sure it does not pull in any kind of npm dependencies.
2. Creating the hash
const hash = () =>
Math.random()
.toString(36)
.replace('0.', '');
0.9443615549023372
↓
"0.uzmb2hdq59f"
↓
"uzmb2hdq59f"
The second step is to create the hash. csz is using the random number generator from the standard Math library in JS and then converting it to a base 36 string representation and finally removing the whole number and the decimal point by just keeping the fractional part for the hash.
Base 36
hexatridecimal
A small trivia for the audience. Do you know what is base 36 number system is known as? You know there are binary, octal number systems, so similarly base 36 is called hexatridecimal. You know I found a new way to annoy people, so when someone ask me how old are you next time, I am going to say, Hey I am hexatridecimal.
3. Adding Internal Stylesheet
const sheet = document.createElement('style');
document.head.appendChild(sheet);
The 3rd step is to create a new internal stylesheet with the style tag and append it to the head of the document.
4. Temporary ruleset to prevent FOUC
const none = hash => `.${hash}{display:none}`;
const hide = hash => (sheet.innerHTML = none(hash) + sheet.innerHTML);
const show = hash => (sheet.innerHTML = sheet.innerHTML.replace(none(hash), ''));
Styles imported from a file are inevitably going to take some time to download. Whilst the stylesheet is being downloaded, a temporary ruleset is applied to the element, which hides it (using display: none) until the fetched files have been processed. This was implemented to prevent flashes of unstyled content.
Flash of Unstyled Content
Have you ever noticed an annoying "flash of unstyled content" (FOUC) when a web page first loads? That happens because browsers render things as quickly as possible, often BEFORE your JavaScript executes the first time. So what if some of your initial styles are set via JavaScript…
5. Caching
Inline Styles
External Stylesheets (both local and remote)
When it comes to caching styles, csz is having one of the best caching mechanisms. It enables csz to cache the inline style definitions as well as the external stylesheets fetched from both local and remote.
Cache Key
const key = strings[0].startsWith('/')
? strings[0]
: strings.reduce(
(acc, string, i) =>
(acc += string + (values[i] == null ? '' : values[i])),
''
);
This is how the cache keys are created.
Cache {}
Code
Cache Key
css`text-align:center;`
text-align:center;
css`/index.css`
/index.css
css`https://unpkg.com/tailwind.css`
https://unpkg.com/tailwind.css
if (cache[key]) return cache[key].hash;
Basically the keys are just the style definitions if it is an inline usage or the file name or url if it is an external stylesheet.
Code
Cache Key
css`text-align:center;`
text-align:center;
Let’s see an example of class name caching, in this example we have two p tags with classnames having the same ruleset, Since the cache key here is the same csz just creates a single class definition instead of two and apply the same class to both the p tags.
Output
6. Create class name & Process
const className = 'csz-' + hash();
const append = process(key)(className);
Next we are prepending the class names with csz- and then using the keys and classnames to process.
const process = key => hash => rules => {
sheet.innerHTML += (cache[key] = {
hash,
rules: stylis()(`.${hash}`, rules)
}).rules;
if (isExternalStyleSheet(key)) show(hash);
};
This is where all the processing takes place. This is where stylis comes into play to compile the styles and generate the css output.
External stylesheets
// Utility to check external stylesheet
const isExternalStyleSheet = key => /^(\/|https?:\/\/)/.test(key.trim());
The isExternalStyleSheet is just a utility function to check whether the given template literal is just a style definition or an url, either local stylesheet or remote.
Fetch & show stylesheets
if (isExternalStyleSheet(key)) {
hide(className);
fetch(key)
.then(res => res.text())
.then(append);
} else append(key);
Then based on the type of stylesheet it will append the style definitions. If it is an external stylesheet, it will fetch the resource and append, otherwise just append the styles to the document head.
import stylis from './stylis.js';
const cache = {};
const hash = () => Math.random() .toString(36) .replace('0.', '');
const sheet = document.createElement('style');
document.head.appendChild(sheet);
const none = hash => `.${hash}{display:none}`;
const hide = hash => (sheet.innerHTML = none(hash) + sheet.innerHTML);
const show =
hash => (sheet.innerHTML = sheet.innerHTML.replace(none(hash), ''));
const isExternalStyleSheet = key => /^(\/|https?:\/\/)/.test(key.trim());
const process = key => hash => rules => {
sheet.innerHTML += (cache[key] = {
hash,
rules: stylis()(`.${hash}`, rules)
}).rules;
if (isExternalStyleSheet(key)) show(hash);
};
export default (strings, ...values) => {
const key = strings[0].startsWith('/')
? strings[0]
: strings.reduce(
(acc, string, i) =>
(acc += string + (values[i] == null ? '' : values[i])),
''
);
if (cache[key]) return cache[key].hash;
const className = 'csz-' + hash();
const append = process(key)(className);
if (isExternalStyleSheet(key)) {
hide(className);
fetch(key)
.then(res => res.text())
.then(append);
} else append(key);
return className;
};
And finally it just returns the class name that was dynamically generated using the hash. That’s all in csz, as you can see it’s just a simple library with wonderful capabilities.


--- layout: default title: "MassTransit" subtitle: Lightweight messaging framework for .NET ---
MassTransit is a free, open source, lightweight message bus for creating distributed applications using the .NET framework. MassTransit provides an extensive set of features on top existing message transports, resulting in a developer friendly way to asynchronously connect services using message-based conversation patterns. Message-based communication is a reliable and scalable way to implement a service oriented architecture.
{{item.subtitle}}
{{item.subtitle}}
{{item.subtitle}}
{{item.subtitle}}
{{item.subtitle}}


Audacity
Audacity allows editing sound.
See Music.html for creating music.
For Windows:
https://www.audacityteam.org/download
For Ubuntu:
Install Audacity using Synaptic or command line.
sudo apt-get install audacity
Open a sound file in Audacity.
Sound Explanation
For Ubuntu:
- Start Audacity using Activities and enter Audacity in the "Type to search box".
- If Audacity is not available, install Audacity
Use one of the following to open a sound file (.mp3, .wav, .ogg, etc.).
- Select File/Open, then search for the image.
- If a folder is showing the image filename, press the mouse button down on the image,
move the mouse to Audacity, and then release the mouse button.
Get Part of a Sound File
- The main part of the Audacity program displays a picture of the sound.
- Press the mouse button down on the picture, move the mouse, and then
release the mouse button.
- Press the Play button (green triangle) to hear the selection. A new
area can be selected to get a different part of the sound file.
- Select the part to delete before the part to keep and select the
Edit/Cut or Edit/Delete menu options.
- Select the part to delete after the part to keep and select the
Edit/Cut or Edit/Delete.
Generate a Sound
Audacity can generate sounds using the Generate menu. There are Generate/Tone,
Generate/Chirp, etc.


When opening a dialog through .openModal()
the first focusable (yes, even [tabindex="-1"]
) gets focus,
unless a form element has [autofocus]
. Positive tabindex ([tabindex="1"]
) is prepended to the tab-order,
making it accessible directly through Shift + Tab or after a full loop through the browser chrome (address bar, etc.).
If the first focusable DOM element has a positive tabindex ([tabindex="3"]
), the tabbing-sequence is entered at that
point, continuing with [tabindex="4"]
on Tab and going back to [tabindex="2"]
on
Shift Tab. While opening the dialog [autofocus]
is respected, it is ignored upon the document gaining focus
again, after focus was on browser UI. In this case, the tabbing sequence starts with [tabindex="1"]
if available,
otherwise with the first focusable DOM element.
Note: it is not possible to focus the browser chrome from script.
Note: <dialog>
is currently only supported by Blink.


Prototypes are pretty confusing thing in JavaScript, but like everything else in programming, one needs to understand them. Creating this page was a pairing challenge and neither my partner nor myself knew much about prototypes going in. We had to do some research to create a whole page dedicated to this subject. In our search for the truth about prototypes, we came to realisation that they are crucial.
When we look at a language like Ruby where inheritance is a link between classes, everything seems pretty straight forward. Create the first class and put some methods in it. When creating another class, make it 'less than' the first one and the second class gets all the methods from the first one.
This isn't so easy in JavaScript, and the main reason is that it doesn't have classes, it only has objects. And objects in JavaScript mostly have property/value pairs, and not only methods like in Ruby. What we need to do to inherit this values or methods from object1 to object2 is to use a special '__proto__' object.
So how does it works?
object2.__proto__ = object1;
Would makes object2 get everything object1 has.
There's another way to inherit from object, and this one is more recommended as '__proto__' isn't part of standard interface of JavaScript. We can assign our object to inherit right at the creation of it. Like so:
var object2 = Object.create(object1);
This achieves the same effect as previous example.
There are many pages that explain this concept in detail, and they explain it very well. We gathered some for you to have a look if you're intersted in it.
While some people might describe JavaScript's prototypes as the equivalent of Ruby's classes, the writer suggests otherwise in his article. Prototypes might share some similarites, but they are not the same as classes. The primary responsiblities of a Ruby's class is to:
1) manufacture new objects
2) define the behavior of the objects they manufacture
Within JavaScript, a function is known as a constructor. When a constructor is used with the keyword new
it makes a new object and initializes the new object with a prototype. The primary responsibilities of JavaScript's prototypes are:
1) manufacturing new objects with constructor
2) using prototypes to define the behavior of new objects created by the constructor
The difference stems from the fact that within JavaScript, the methods of a prototype are the methods of the objects it defines, whereas within Ruby, class methods are specific to the business of being a class that are not shared by "original" objects.
The writer, Sam Schlinkert, explores the basics of JavaScript protoypes while comparing prototypes to Ruby. His writing is more reader-friendly than the first article referenced. The following code was used by Schlinkert used to explain prototypes.
var Animal = function (name, type, sound) {
this.name = name;
this.type = type;
this.sound = sound;
};
Animal.prototype = {
makeNoise: function () {
return this.sound + " is the sound that " + this.name + " makes!";
},
getWeightAtAge: function(age) {
if (this.type === "dog"){
return 5 * age;
} else if (this.type == "fish"){
return 2 * age;
} else {
return age;
}
},
toString: function () {
return this.name + " is a " + this.type;
}
}
Schlinkert created a new variable called Animal, setting it equal to a function that takes the following parameters: name, type and sound. The purpose of the Animal function is to initialize methods for our prototype. Notice how JavaScript used this
? Within JavaScript, this
is the equivalent of Ruby's self
. JavaScript's initialize function goes outside the prototype, and contrary to JavaScript, Ruby's initialize method goes within the Ruby class. The three functions defined by Schlinkert, makeNoise
, getWeightAtAge
and toString
, belong to the instances of the JavaScript objects.
The above article explains how all JavaScript objects inherit their properties and methods from their prototype. The standard way to create an object prototype is to use an object constructor with the keyword, new. If a new property needed to be added to a constructor, the property must be added directly to the constructor function.


Auto sales rose 3.8% in October
by Othel V. CamposVehicle sales rose 3.8 percent in October to 34,397 units from 33,150 units a year ago, two industry groups said Thursday.
The Chamber of Automotive Manufacturers of the Philippines Inc. and the Truck Manufacturers Association said deliveries also climbed 8.1 percent from 31,820 units in September. This was the highest monthly sales growth this year.
“The current market demand for vehicles along with creative and aggressive sales promotion efforts give us a positive outlook as we aim to sustain the growth trend for the remaining months of the year,” CAMPI president Rommel Gutierrez said in a statement.
Data also showed vehicle sales in the first 10 months increased 2.5 percent to 301,761 units this year from 294,311 units in 2018.
“We remain positive that our industry target for the end of the year will be achieved as all brands remain committed to provide innovative mobility solutions to the Filipino people,” Gutierrez said.
The two industry groups said that on a monthly basis, passenger car sales went up by 3.72 percent to 10,083 units in October 2019 from 9,721 units in September while commercial vehicle sales improved 10 percent to 24,314 units from 22,099 units.
Among the commercial vehicles, the light and medium truck category saw sales decline 2.3 percent and 0.8 percent to 734 and 385 units, respectively.
Light commercial vehicle sales went up 4.5 percent to 18,271 units from 16,488 units while Asian utility vehicles increased 43.1 percent to 4,780 from 3,341 units. Heavy-duty trucks posted 9.9-percent sales growth to 144 units.
Gutierrez said the recent sales figures indicated a continuous market demand for vehicles and a clear upward trend for the industry in the fourth quarter of 2019.
Top sellers in October were Toyota Motors Philippines Corp., Mitsubishi Motors Philippines Corp., Nissan Philippines Inc., Ford Motor Company Philippines Inc. and Suzuki Philippines Inc.


Vehicle Records
Enter Record
Driver
Maintenance
Trek
Vehicle name
Vehicle details
Years
View Records
Driver
Maintenace
Trek
Vehicle name
Vehicle details
×
Add Driver
First name
Last name
Submit
×
Enter Maintenance Details
Last maintenance date
Next maintenance date
Maintence cost
Vehicle fault
Vehicle ID
Submit
×
Enter Trek Details
Place visited
Departure time
Arrival time
Trek date
Driver ID
Vehicle ID
Submit
×
Add Vehicle Name
Enter vehicle name
Submit
×
Add Vehicle Details
Model name
Model name
Vehicle name
2
Year bought
2
Submit
×
Enter Years
Submit


--- ---
The Department aims to promote close collaboration between various mathematical disciplines and with other applied areas. The areas of current research are :
Algebraic and Combinatorial Topology
Combinatorial manifolds, PL-manifolds, minimal triangulation
of manifolds, triangulation of spheres and projective planes with
few vertices, pseudomanifolds With small excess, equivelar polyhectral
maps.
Commutative Algebra and Algebraic Geometry
Study of derivation modules of curves and hypersurfaces, connection
with Zariski - Lipman conjecture, monomial curves, complete intersections
and set theoretic complete intersections, intersection theory
of algebraic varieties, minimal number of generators for ideals
and modules. Study of certain algebraic surfaces.
Differential Equations
Homogenization of partial differential equations, controllability,
viscosity solutions.
Differential Geometry
Manifolds of positive curvature (Ricci, scalar and isotropic),
Einstein manifolds, conformal geometry (Weyl curvature and the
Yamabe invariant), Gromov hyperbolic spaces.
Finite fields and Coding Theory
Classification of permutation polynomials, study of PAPR of families
of codes, construction of codes with low PAPR.
Functional Analysis and Operator Theory
Hilbert modules, multivariable operator theory, indefinite inner
product spaces.
Harmonic Analysis
Analysis on the Heisenberg group and generalisations such as H-type
groups, analysis on symmetric spaces of non compact type and on
semisimple Lie groups, spectral multipliers of Laplcians and sub-Laplacians
on these spaces, integral geometry on homogeneous spaces and relations
with complex analysis.
Low Dimensional Topology
Topology of three-manifolds and smooth four-manifolds, Geometric group theory,
Heegaard Floer theory and its relations to geomtric topology.
 Application of ray
methods to study successive positions of a curved wave front and
a shock front. Relation between kinematical conservation laws
and level set theory. Theoretical (i.e., study of approximate
equations), numerical (i.e., computation of solutions with discontinuties)
and applied (sonic boom, extension of Fermat's principle) problems.
Nonlinear Dynamics
Couded dynamical systems, Synchronization, Turing patterns, applications
of Lie algebraic methods to nonlinear Hamiltonian systems, fractal
dimensional analysis, generalized replicator dynamics.
Probability and Stochastic Processes
Stability and control of stochastic systems, diffusion and related
topics, stochastic dynamic games, applications to manufacturing
systems, first passage time problems for anomalous diffusion,
long memory processes, branching particle systems, stochastic
differential equations, queuing theory.
Several Complex Variables
Holomorphic mappings, convexity and its applications to function theory, finite-type domains, pluripotential theory, and complex dynamical systems.
Time Series Analysis
Application of time series analysis techniques to neuroscience
esp. brain-machine interface, applications to geophysics.
|
|
||
| Indian Institute of Science | Contact the Administrator | Disclaimer |


Look at the graph below. In 25 seconds, please speak into the microphone and describe in detail what the graph is showing. You will have 40 seconds to give your response.
Template
1. The title of the table and the categories.
2. Three key features: the highest point; the lowest point; one other.
3. Conclusion: relate the three key features to each other and summarise, predict or give a reason.


Disha Patani and Aditya Roy Kapur enjoy a beach party in the first look of Malang
by FilmfareEver since Aditya Roy Kapur and Disha Patani starrer Malang has been announced, there’s a lot of excitement among fans to watch these two stars come together for the first time on the big screen. Helmed by Mohit Suri, the film also stars Kunal Kemmu and Anil Kapoor in interesting roles. Touted to be a revenge drama, Malang is scheduled to release on February 14, 2020.
Finally after a long wait, makers decided to unveil the first official look of Aditya and Disha from the film. Looking like a beach party, Kapur can be seen shirtless with green trousers and a t-shirt tied to his waist. Disha on the other hand, looks cute in a white top and a blue skirt. In the still, both the stars can be seen smiling and looking up in the sky. Aditya shared the look on his Instagram handle saying, “MALANG”
Check it out here.
Malang is jointly produced by Bhushan Kumar, Luv Ranjan, Ankur Garg, and Jay Shewakramani. It’s after super hit Aashiqui 2 that Mohit Suri and Bhushan Kumar are reuniting for a project. The film features Kunal Kemmu playing the role of a cop alongside Anil Kapoor.


I'm A Celebrity viewers in hysterics at Ant and Dec gags about Prince Andrew's 'sweating'
They notched up a dig against royal within minutes
by Robert LeighCheeky hosts Ant and Dec delighted viewers by wasting no time and getting stuck into Prince Andrew as I’m A Celebrity returned to TV screens last night.
Within minutes of Sunday night’s programme beginning, the presenting pair had already notched up one dig against the beleaguered royal - and shortly followed it up with another swipe just ten minutes later.
Declan Donnelly cracked the first gag after Ant McPartlin had set him up by mentioning how the I’m A Celebrity celebrity campmates were sweating with nerves over heading into the jungle.
The Geordie star began: "And what a line up we've got in store for you this year.
Read more: I'm A Celebrity fans beg Emily Atack to go back blonde as she unveils new hair
"Ten celebrities all of them very nervous, all of them sweating."
"Presuming they can sweat. Not everyone can sweat, apparently," Dec noted in a mock sage manner, referring to how Prince Andrew claimed he once suffered from a medical condition that prevented him from perspiring.
The bizarre claim - made during Prince Andrew's disastrous Newsnight grilling over the weekend - was mentioned in response to Virginia Giuffre's previous claim he sweated "profusely" when dancing with her in a nightclub in 2001 when she was 17.
And it wasn’t too much longer into the first episode of the new series of the ITV reality show before Ant and Dec took another swipe at Prince Andrew.
Read more: Piers Morgan hits back at Ant and Dec after they make dig at him on I'm A Celebrity
Echoing their earlier words, the production crew tittered as the presenters delivered a similar line about ‘not everybody being able to sweat’.
"I love that shade from Ant & Dec on Prince Andrew 🤣🤣🤣," chuckled one viewer on Twitter.
Another said: "Ant & Dec making sly jokes at Prince Andrew's expense made my night 🤣🤣 #ImACeleb."
A third wrote: "Cool Prince Andrew dig by ant & dec."
And a fourth person tweeted: "Straight in with a Prince Andrew joke 😂 ...god I’ve missed Ant & Dec! #ImACeleb."
But not everybody was amused. One person complained: "For Ant/Dec 2 make crass gags about sweating related to a royal who befriended a convicted paedophile is total hypocrisy."
On Saturday night, BBC2 viewers watched the eighth in line to the throne admit he let the royal family down by remaining friends with late billionaire paedophile Jeffrey Epstein after his conviction.
The 59-year-old 'favourite son' of the Queen said he 'kicks himself' every day for the decision - but denied ever meeting Virginia Giuffre - who claims the royal had sex with her when she was a teen.
Good Morning Britain host Piers Morgan declared the conversation between the Duke of York and journalist Emily Maitlis as "desperate" and "toe-curling".
- I'm A Celebrity airs on ITV tonight at 9pm
Leave us a comment on our Facebook page @EntertainmentDailyFix and let us know what you think of this story.


Github Search info!!!
This is a simple Angular application that helps a user search the github info Easily.
It is as easy as just providing either your username or the specific repository you want to search and after hitting
the search button all your info is displayed.


Use Data Lake¶
Populate Tables¶
The step above created a database oedi_database
in AWS Glue, but it’s empty. Now, we need
to run the crawlers to populate the tables in the database.
Make sure your oedi
virtual environment created before has already been activated. Then,
use the commands below to check and run the crawler.
List Crawlers
(oedi) $ oedi aws list-crawlers
| No. | Name | State | S3Targets | LastUpdated | CreateTime |
+-----+-------------------------------------+-------+-------------------------------------------+---------------------------+---------------------------+
| 0 | lbnl-tracking-the-sun-2018 | READY | s3://lbnl-tracking-the-sun/2018/ | 2020-04-23 15:33:28-06:00 | 2020-04-23 15:33:28-06:00 |
| 1 | lbnl-tracking-the-sun-2019 | READY | s3://lbnl-tracking-the-sun/2019/ | 2020-04-23 15:33:28-06:00 | 2020-04-23 15:33:28-06:00 |
| 2 | nrel-pv-rooftops-aspects | READY | s3://nrel-pv-rooftops/aspects/ | 2020-04-23 15:33:28-06:00 | 2020-04-23 15:33:28-06:00 |
| 3 | nrel-pv-rooftops-buildings | READY | s3://nrel-pv-rooftops/buildings/ | 2020-04-23 15:33:29-06:00 | 2020-04-23 15:33:29-06:00 |
| 4 | nrel-pv-rooftops-developable-planes | READY | s3://nrel-pv-rooftops/developable_planes/ | 2020-04-23 15:33:28-06:00 | 2020-04-23 15:33:28-06:00 |
| 5 | nrel-pv-rooftops-rasd | READY | s3://nrel-pv-rooftops/rasd/ | 2020-04-23 15:33:28-06:00 | 2020-04-23 15:33:28-06:00 |
+-----+-------------------------------------+-------+-------------------------------------------+---------------------------+---------------------------+
Run Crawler
(oedi) $ oedi aws run-crawler -n lbnl-tracking-the-sun-2018
If you want it runs in background, use option --background-run
or -b
:
(oedi) $ oedi aws run-crawler -n lbnl-tracking-the-sun-2018 -b
Run Crawlers
The command run-crawler
can only run one crawler, if you want to run all of crawlers
at one time, please use run-crawlers
, it would start all available crawlers in data lake.
(oedi) $ oedi aws run-crawlers
List Tables
The crawlers populated tables in the database after runs, please use the command below to list the tables in it.
(oedi) $ oedi aws list-tables
+-----+----------------------------------------------------+---------------------+
| No. | Name | CreateTime |
+-----+----------------------------------------------------+---------------------+
| 0 | lbnl_tracking_the_sun_2018 | 2020-04-23 15:35:58 |
| 1 | lbnl_tracking_the_sun_2019 | 2020-04-23 15:36:09 |
| 2 | nrel_pv_rooftops_aspects | 2020-04-23 15:36:19 |
| 3 | nrel_pv_rooftops_buildings | 2020-04-23 15:36:37 |
| 4 | nrel_pv_rooftops_developable_planes | 2020-04-23 15:36:48 |
| 5 | nrel_pv_rooftops_rasd | 2020-04-23 15:37:04 |
+-----+----------------------------------------------------+---------------------+
Run Queries¶
After the desired tables are populated in database, then you can run SQL queries via
AWS Athena. In this package, we also provide run-query
command for tests.
For example,
(oedi) $ oedi aws run-query -q "select * from oedi_database_test.lbnl_tracking_the_sun_2018 limit 10"
data_provider system_id_from_data_provider system_id_tracking_the_sun installation_date system_size ... microinverter_1 microinverter_2 microinverter_3 dc_optimizer state
0 Department of Commerce & Economic Opportunity -9999 IL_DCEO_1 2010-08-06 3.00 ... -9999 -9999 -9999 -9999 IL
1 Department of Commerce & Economic Opportunity -9999 IL_DCEO_2 2010-08-05 4.10 ... -9999 -9999 -9999 -9999 IL
2 Department of Commerce & Economic Opportunity -9999 IL_DCEO_3 2008-07-09 3.10 ... -9999 -9999 -9999 -9999 IL
3 Department of Commerce & Economic Opportunity -9999 IL_DCEO_4 2008-08-04 4.80 ... -9999 -9999 -9999 -9999 IL
4 Department of Commerce & Economic Opportunity -9999 IL_DCEO_7 2003-11-30 18.00 ... -9999 -9999 -9999 -9999 IL
5 Department of Commerce & Economic Opportunity -9999 IL_DCEO_8 2010-08-17 4.00 ... -9999 -9999 -9999 -9999 IL
6 Department of Commerce & Economic Opportunity -9999 IL_DCEO_9 2011-04-22 24.00 ... -9999 -9999 -9999 -9999 IL
7 Department of Commerce & Economic Opportunity -9999 IL_DCEO_10 2010-01-31 54.70 ... -9999 -9999 -9999 -9999 IL
8 Department of Commerce & Economic Opportunity -9999 IL_DCEO_11 2003-11-30 32.40 ... -9999 -9999 -9999 -9999 IL
9 Department of Commerce & Economic Opportunity -9999 IL_DCEO_12 2008-12-12 4.32 ... -9999 -9999 -9999 -9999 IL
[10 rows x 63 columns]
The query results would be stored in Staging Location
configured in config.yaml
. You can also specify this location
via --output-location
or -o
in this command, like this:
(oedi) $ oedi aws run-query -q "select * from oedi_database_test.lbnl_tracking_the_sun_2018 limit 10" -o "s3://another-outpu-location/"
Commands Help¶
For more oedi
commands information, please use --help
.
(oedi) $ oedi --help
Usage: oedi [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
aws OEDI command with AWS cloud.
config OEDI configurations of each cloud provider.
(oedi) $ oedi aws --help
Usage: oedi aws [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
list-crawlers List available crawlers.
list-tables List available tables.
run-crawler Run crawler to populate table.
run-crawlers Run all crawlers in data lake.
run-query Run SQL query and show result.
For how to use the command above, try like this,
(oedi) $ oedi aws run-query --help
Usage: oedi aws run-query [OPTIONS]
Run SQL query and show result.
Options:
-q, --query-string TEXT Valid SQL query string. [required]
-o, --output-location TEXT A S3 staging directory.
-r, --region-name TEXT AWS region name, i.e. us-west-2
--head Show pandas DataFrame head only. [default:
False]
--help Show this message and exit.


You will be requested to play the Coloured Trails game. The objective of the game is to gain the highest score possible.
Points may be gained by moving to a target location on the board and rewarded for the amount of coloured chips the player has in
his/her possesion at the end of the round. Coloured trails is a one-round game played on a
square board by two or more players. The board consists of a square grid of tiles. Each
tile is assigned a solid color from a given palette of colors (e.g., red, blue, green). Two different types of
objects may also be placed on top of tiles—these are players and the goal. Tiles may contain multiple
players and the goal.
Each player begins with a number of allocated chips of different colours. Chips are designated colors from the same palette as the board. Players can use chips to build a path towards the target tile.
Chips may only be used to move to a tile of the same color as the chip (e.g., a player uses one green chip to move to a green tile adjacent to the player’s current position). Players can only move up, down, left or right and not diagonally. Chips may only be used once.
The objective of each player is to gain the highest score possible over a set of 10 games (the score from each game will be added together for the final score). During each game you will have one chance to determine the best course of action which will award you with the highest possible amount of points. Often this is achieved by reaching the target tile, however sometimes it is better to do nothing. During the game you may request chips from other players if you need them to reach the target tile. A player must relinquish a chip that has been requested from it, if they are not already using that chip to reach a goal. If both you and another player have requested the same chip, you have precedance and will get the chip. During the game you can assume that the other players are necessarily following the best path in terms of maximizing their score.
During each game you can ask all players for as many chips as you want. An interaction with a specific player is considered a single "chip request" regardless of how many chips were requested. The game is constructed as a one-round game. You have 3 minutes per each game to decide if you want to request a chip from other players or not. Once you have decided click "Done" and the next game will begin. If you have not made a decision in 3 minutes, the game will time out and you will not receive any points for that game
The scores may range from -500 to +500. The following factors effect the score :
During the game you may use the advice provided by a computer assistant. The computer assistant will
provide
you with the best course of action to take for yourself and the best course other players may take,
according to
its own understanding. The computer assistant suggestions are not necessarily the best possible
paths
for you or for the other players. The other players are necessarily pursuing the best path in terms of
maximizing the score, therefore if there exists a better solution, the other players will not perform the
path suggested by the computer assistant.
In this instance the computer assistant suggests for you to follow the path illustrated above. Following the computer assistants’ advice would mean asking Player 1 for 3 white chips and Player 2 for 1 blue chip, reaching the goal and having 5 chips remaining. Your final score would be:
A better course of action under these circumstances would be to do nothing, and not reach the goal at all. Your final score would be:
You must answer the following five questions correctly in order to proceed.
1. At the end of the game I get extra points for each chip that I didn't use :
True
False
2. Requesting two chips from two different players would cost :
70 + 6 + 6 = 82 points
6 + 6 = 12 points
70 + 6 + 70 + 6 = 152 points
3. It is better to reach the target tile even if it leads to a lower score :
True
False
4. At the end of the game I get extra points for each chip that I didn't use :
True
False
5. At the end of the game I get extra points for each chip that I didn't use :
True
False
6. At the end of the game I get extra points for each chip that I didn't use :
True
False
7. At the end of the game I get extra points for each chip that I didn't use :
True
False
8. At the end of the game I get extra points for each chip that I didn't use :
True
False
9. At the end of the game I get extra points for each chip that I didn't use :
True
False
10. At the end of the game I get extra points for each chip that I didn't use :
True
False


This applet uses the same cog.properties files as the CoG kit.
If you have a cog.properties file it the keys will be generate according to those settings.
If you do not have a cog.properties file the keys will be generated in your home dir in a directory named ".globus".
To prevent any accidents this applet does not overwrite any existing key files. It is up to the user to move or rename any existing keys.


Learning objectives
- (1) Apply dynamically-typed variables with implicit type conversion… using PHP. ✔
- (2) Apply PHP functions and control structures… ✔
- (5) Create PHP scripts that respond to HTTP requests containing GET and POST parameters to produce custom HTML content drawn from a one- table, multi-column MySQL database.
- (6) Create PHP scripts that respond to user requests by inserting, updating and/or deleting rows stored in a one-table, multi-column MySQL database.
- (7) Create PHP scripts that make effective use of session management techniques. ✔
- (8) Apply best practices in internal documentation,… ✔
- (9) Design client-server web apps that… ✔
Dataflow diagram
Focus on PHP access to database
ANSI/ISO SQL standards
SQL Standards (Oracle) "Technically speaking, SQL is a data sublanguage. The purpose of SQL is to provide an interface to a relational database such as Oracle Database, and all SQL statements are instructions to the database. In this SQL differs from general-purpose programming languages like C..."
<<<<<<< HEAD
=======
>>>>>>> 7f1248c5f129b16822dc621de4632a2844294c2d
Prepare for next class
Week 11
Study the assigned material and make notes.
Complete Worksheet 9.
—
Post your questions on the Discussion board
or bring to next class. Answer other students' questions. Start a conversation.
—
...
SYST10199 Web Development
@2021 Sheridan College


Reports method parameter types in methods that look like they are overriding a super method,
but do not because of the parameter type coming from a different package than the super method type,
although the class name matches.
This prevents the parameter's method from overriding the super method and can be very confusing.
Example:
public class A {
public void method(Object o) {}
}
public class B extends A {
public void method(Object o) {} // warning on parameter type here
class Object {}
}


PF Elements
PF Elements
Calendar
Demo
PF Elements
Calendar Events
Demo
PF Elements
Calendar events data
Demo
PF Elements
parallax video
Demo
PF Elements
page indicator
Demo


Build your next landing page in 5 minutes!
Create custom landing pages with Omega that convert more visitors than any website. With lots of unique blocks, you can easily build a page without coding.
Why Omega would
be your best fit?
Watch this 1 min video to learn about Omega.


Ensuring that two values are 1 away from each other abs(m-n)
if list is used at any time, always ask what happens if list is: 1. Empty/Size 1 2. Is increasing/decreasing continuously
In jump game, bounds are quickly surpassed when n=37. Nice to talk about possible integer bounds being surpassed. Python3.7 does not have a bound on its integer.
Think about the best case time complexity possible given the description of the problem.
Don’t forget about sorting
Steps: 1. Give a higher level idea of the solution 2. Give the expected time complexity
https://en.wikipedia.org/wiki/Suffix_array
Algorithms to consider: KMP
ASCII character set is 128 characters
If you have to modify something inplace, try doing it from the back Lists also support slicing assignment.
A[1:3] = “Ab”
!! When handling strings, remember that there exist upper case and lower case, and sometimes they are case insensitive
Nifty trick: return min(string, “.join(compressed), key=len)
Check if 1 substring is a subset of the other substring
Generating prefix arrays: B = [0] * (N+1) for i in range(N): B[i+1] = B[i] + A[i]
Good tips on monotonic queues: https://leetcode.com/problems/shortest-subarray-with-sum-at-least-k/discuss/204290/Monotonic-Queue-Summary
Medians: Use two heaps
Always check if you are removing from the start of the linkedlist (requires reassignment of head ptr) Consider padding linkedlist with nodes infront (consider ctci sum lists, common ancestor)
Common ancestor of linkedlist and trees are similar
Be clear that its adding the piece at this position, checking if it works, and continue (in-place, so your helpers should not return the board but continue modifying the same board)
!! Backtracking should be done in-place
Binary search appears in funny places. If there is a bounds on the domains to search, try binary searching the value and applying some form of verifying algorithm
If need to do BFS, use a deque() Ask if there are duplicates (!) esp. in bst
Preorder traversal of trees are not unique, but preorder traversal of trees where the None nodes are marked with a special character are unique
When analysing complexity of graphs (Not trees) , consider edges as well.
Weaving two sets: Use the first element from first set as prefix, recurse. Use the first element from second set as prefix, recurse.
Reaching Points - work from the back instead of the front Odd-even Jumps - monotonic stacks: finding the next index on your right that is your ceiling Largest Window Area - monotonic deques: maintaing a sliding window of sorts
BinaryTreeCover - Recursion practice
https://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference#986145


3.2.0 Development
Enhancements:
- Include generator for
ActionMailer
mailer previews (Takashi Nakagawa, #1185) - Configure the
ActionMailer
preview path via a Railtie (Aaron Kromer, #1236) - Show all RSpec generators when running
rails generate
(Eliot Sykes, #1248) - Support Ruby 2.2 with Rails 3.2 and 4.x (Aaron Kromer, #1264, #1277)
- Improve
instance_double
to support verifying dynamic column methods defined byActiveRecord
(Jon Rowe, #1238)
Bug Fixes:
- Fix
rspec:feature
generator to useRSpec
namespace preventing errors when monkey-patching is disabled. (Rebecca Skinner, #1231) - Fix
NoMethodError
caused by callingRSpec.feature
when Capybara is not available or the Capybara version is < 2.4.0. (Aaron Kromer, #1261) - Fix
ArgumentError
when when using an anonymous controller which inherits an outer group's anonymous controller. (Yuji Nakayama, #1260)
3.1.0 / 2014-09-04
Enhancements:
- Switch to using the
have_http_status
matcher in spec generators. (Aaron Kromer, #1086) - Update
rails_helper
generator to allow users to opt-in to auto-loadingspec/support
files instead of forcing it upon them. (Aaron Kromer, #1137) - Include generator for
ActiveJob
. (Abdelkader Boudih, #1155) - Improve support for non-ActiveRecord apps by not loading ActiveRecord related
settings in the generated
rails_helper
. (Aaron Kromer, #1150) - Remove Ruby warnings as a suggested configuration. (Aaron Kromer, #1163)
- Improve the semantics of the controller spec for scaffolds. (Griffin Smith, #1204)
- Use
#method
syntax in all generated controller specs. (Griffin Smith, #1206)
Bug Fixes:
- Fix controller route lookup for Rails 4.2. (Tomohiro Hashidate, #1142)
3.0.2 / 2014-07-21
Bug Fixes:
- Suppress warning in
SetupAndTeardownAdapter
. (André Arko, #1085) - Remove dependency on Rubygems. (Andre Arko & Doc Riteze, #1099)
- Standardize controller spec template style. (Thomas Kriechbaumer, #1122)
3.0.1 / 2014-06-02
Bug Fixes:
- Fix missing require in
rails g rspec:install
. (Sam Phippen, #1058)
3.0.0 / 2014-06-01
Enhancements:
- Separate RSpec configuration in generated
spec_helper
from Rails setup and associated configuration options. Moving Rails specific settings and options torails_helper
. (Aaron Kromer)
Bug Fixes:
- Fix an issue with fixture support when
ActiveRecord
isn't loaded. (Jon Rowe)
3.0.0.rc1 / 2014-05-18
Breaking Changes for 3.0.0:
- Extracts the
mock_model
andstub_model
methods to therspec-activemodel-mocks
gem. (Thomas Holmes) - Spec types are no longer inferred by location, they instead need to be
explicitly tagged. The old behaviour is enabled by
config.infer_spec_type_from_file_location!
, which is still supplied in the default generatedspec_helper.rb
. (Xavier Shay, Myron Marston) controller
macro in controller specs no longer mutates:described_class
metadata. It still overrides the subject and sets the controller, though. (Myron Marston)- Stop depending on or requiring
rspec-collection_matchers
. Users who want those matchers should add the gem to their Gemfile and require it themselves. (Myron Marston) - Removes runtime dependency on
ActiveModel
. (Rodrigo Rosenfeld Rosas)
Enhancements:
- Supports Rails 4.x reference attribute ids in generated scaffold for view specs. (Giovanni Cappellotto)
- Add
have_http_status
matcher. (Aaron Kromer) - Add spec type metadata to generator templates. (Aaron Kromer)
Bug Fixes:
- Fix an inconsistency in the generated scaffold specs for a controller. (Andy Waite)
- Ensure
config.before(:all, :type => <type>)
hooks run before groups of the given type, even when the type is inferred by the file location. (Jon Rowe, Myron Marston) - Switch to parsing params with
Rack::Utils::parse_nested_query
to match Rails. (Tim Watson) - Fix incorrect namespacing of anonymous controller routes. (Aaron Kromer)
3.0.0.beta2 / 2014-02-17
Breaking Changes for 3.0.0:
- Removes the
--webrat
option for the request spec generator (Andy Lindeman) - Methods from
Capybara::DSL
(e.g.,visit
) are no longer available in controller specs. It is more appropriate to use capybara in feature specs (spec/features
) instead. (Andy Lindeman) infer_base_class_for_anonymous_controllers
is enabled by default. (Thomas Holmes)- Capybara 2.2.0 or above is required for feature specs. (Andy Lindeman)
Enhancements:
- Improve
be_valid
matcher for non-ActiveModel::Errors implementations (Ben Hamill)
Bug Fixes:
- Use
__send__
rather thansend
to prevent naming collisions (Bradley Schaefer) - Supports Rails 4.1. (Andy Lindeman)
- Routes are drawn correctly for anonymous controllers with abstract parents. (Billy Chan)
- Loads ActiveSupport properly to support changes in Rails 4.1. (Andy Lindeman)
- Anonymous controllers inherit from
ActionController::Base
ifApplicationController
is not present. (Jon Rowe) - Require
rspec/collection_matchers
whenrspec/rails
is required. (Yuji Nakayama)
3.0.0.beta1 / 2013-11-07
Breaking Changes for 3.0.0:
- Extracts
autotest
andautotest-rails
support torspec-autotest
gem. (Andy Lindeman)
2.99.0 / 2014-06-01
No changes. Just taking it out of pre-release.
2.99.0.rc1 / 2014-05-18
Deprecations
- Deprecates
stub_model
andmock_model
in favor of therspec-activemodel-mocks
gem. (Thomas Holmes) - Issue a deprecation to instruct users to configure
config.infer_spec_type_from_file_location!
during the upgrade process since spec type inference is opt-in in 3.0. (Jon Rowe) - Issue a deprecation when
described_class
is accessed in a controller example group that has used thecontroller { }
macro to generate an anonymous controller class, since in 2.x,described_class
would return that generated class but in 3.0 it will continue returning the class passed todescribe
. (Myron Marston)
2.99.0.beta2 / 2014-02-17
Deprecations:
- Deprecates the
--webrat
option to the scaffold and request spec generator (Andy Lindeman) - Deprecates the use of
Capybara::DSL
(e.g.,visit
) in controller specs. It is more appropriate to use capybara in feature specs (spec/features
) instead. (Andy Lindeman)
Bug Fixes:
- Use
__send__
rather thansend
to prevent naming collisions (Bradley Schaefer) - Supports Rails 4.1. (Andy Lindeman)
- Loads ActiveSupport properly to support changes in Rails 4.1. (Andy Lindeman)
- Anonymous controllers inherit from
ActionController::Base
ifApplicationController
is not present. (Jon Rowe)
2.99.0.beta1 / 2013-11-07
Deprecations:
- Deprecates autotest integration in favor of the
rspec-autotest
gem. (Andy Lindeman)
Enhancements:
- Supports Rails 4.1 and Minitest 5. (Patrick Van Stee)
Bug Fixes:
- Fixes "warning: instance variable @orig_routes not initialized" raised by
controller specs when
--warnings
are enabled. (Andy Lindeman) - Where possible, check against the version of ActiveRecord, rather than Rails. It is possible to use some of rspec-rails without all of Rails. (Darryl Pogue)
- Explicitly depends on
activemodel
. This allows libraries that do not bring in all ofrails
to userspec-rails
. (John Firebaugh)
2.14.1 / 2013-12-29
Bug Fixes:
- Fixes "warning: instance variable @orig_routes not initialized" raised by
controller specs when
--warnings
are enabled. (Andy Lindeman) - Where possible, check against the version of ActiveRecord, rather than Rails. It is possible to use some of rspec-rails without all of Rails. (Darryl Pogue)
- Supports Rails 4.1 and Minitest 5. (Patrick Van Stee, Andy Lindeman)
- Explicitly depends on
activemodel
. This allows libraries that do not bring in all ofrails
to userspec-rails
. (John Firebaugh) - Use
__send__
rather thansend
to prevent naming collisions (Bradley Schaefer)
2.14.0 / 2013-07-06
Bug fixes
- Rake tasks do not define methods that might interact with other libraries. (Fujimura Daisuke)
- Reverts fix for out-of-order
let
definitions in controller specs after the issue was fixed upstream in rspec-core. (Andy Lindeman) - Fixes deprecation warning when using
expect(Model).to have(n).records
with Rails 4. (Andy Lindeman)
2.14.0.rc1 / 2013-05-27
Enhancements
- Prelimiarily support Rails 4.1 by updating adapters to support Minitest 5.0. (Andy Lindeman)
Bug fixes
rake stats
runs correctly when spec files exist at the top level of the spec/ directory. (Benjamin Fleischer)
2.13.2 / 2013-05-18
Bug fixes
let
definitions may override methods defined in modules brought in viaconfig.include
in controller specs. Fixes regression introduced in 2.13. (Andy Lindeman, Jon Rowe)- Code that checks Rails version numbers is more robust in cases where Rails is not fully loaded. (Andy Lindeman)
Enhancements
- Document how the spec/support directory works. (Sam Phippen)
2.13.1 / 2013-04-27
Bug fixes
- View specs are no longer generated if no template engine is specified (Kevin Glowacz)
ActionController::Base.allow_forgery_protection
is set to its original value after each example. (Mark Dimas)patch
is supported in routing specs. (Chris Your)- Routing assertions are supported in controller specs in Rails 4. (Andy Lindeman)
- Fix spacing in the install generator template (Taiki ONO)
2.13.0 / 2013-02-23
Enhancements
be_valid
matcher includes validation error messages. (Tom Scott)- Adds cucumber scenario showing how to invoke an anonymous controller's non-resourceful actions. (Paulo Luis Franchini Casaretto)
- Null template handler is used when views are stubbed. (Daniel Schierbeck)
- The generated
spec_helper.rb
in Rails 4 includes a check for pending migrations. (Andy Lindeman) - Adds
rake spec:features
task. (itzki) - Rake tasks are automatically generated for each spec/ directory. (Rudolf Schmidt)
2.12.2 / 2013-01-12
Bug fixes
- Reverts earlier fix where anonymous controllers defined the
_routes
method to support testing of redirection and generation of URLs from other contexts. The implementation ended up breaking the ability to refer to non-anonymous routes in the context of the controller under test. - Uses
assert_select
correctly in view specs generated by scaffolding. (Andy Lindeman)
2.12.1 / 2013-01-07
Bug fixes
- Operates correctly when ActiveRecord is only partially loaded (e.g., with older versions of Mongoid). (Eric Marden)
expect(subject).to have(...).errors_on
operates correctly for ActiveResource models wherevalid?
does not accept an argument. (Yi Wen)- Rails 4 support for routing specs. (Andy Lindeman)
- Rails 4 support for
ActiveRecord::Relation
and the=~
operator matcher. (Andy Lindeman) - Anonymous controllers define
_routes
to support testing of redirection and generation of URLs from other contexts. (Andy Lindeman)
2.12.0 / 2012-11-12
Enhancements
- Support validation contexts when using
#errors_on
(Woody Peterson) - Include RequestExampleGroup in groups in spec/api
Bug fixes
- Add
should
andshould_not
toCollectionProxy
(Rails 3.1+) andAssociationProxy
(Rails 3.0). (Myron Marston) controller.controller_path
is set correctly for view specs in Rails 3.1+. (Andy Lindeman)- Generated specs support module namespacing (e.g., in a Rails engine). (Andy Lindeman)
render
properly infers the view to be rendered in Rails 3.0 and 3.1 (John Firebaugh)- AutoTest mappings involving config/ work correctly (Brent J. Nordquist)
- Failures message for
be_new_record
are more useful (Andy Lindeman)
2.11.4 / 2012-10-14
Capybara-2.0 integration support:
- include RailsExampleGroup in spec/features (necessary when there is no AR)
- include Capybara::DSL and Capybara::RSpecMatchers in spec/features
See https://github.com/jnicklas/capybara/pull/809 and http://rubydoc.info/gems/rspec-rails/file/Capybara.md for background.
2.11.1, .2, .3 were yanked due to errant documentation.
2.11.0 / 2012-07-07
Enhancements
- The generated
spec/spec_helper.rb
setsconfig.order = "random"
so that specs run in random order by default. - rename
render_template
tohave_rendered
(and alias torender_template
for backward compatibility) - The controller spec generated with
rails generate scaffold namespaced::model
matches the spec generated withrails generate scaffold namespaced/model
(Kohei Hasegawa)
Bug fixes
- "uninitialized constant" errors are avoided when using using gems like
rspec-rails-uncommitted
that defineRspec::Rails
beforerspec-rails
loads (Andy Lindeman)
2.10.1 / 2012-05-03
Bug fixes
- fix regression introduced in 2.10.0 that broke integration with Devise (https://github.com/rspec/rspec-rails/issues/534)
- remove generation of helper specs when running the scaffold generator, as Rails already does this (Jack Dempsey)
2.10.0 / 2012-05-03
Bug fixes
render_views
called in a spec can now override the config setting. (martinsvalin)- Fix
render_views
for anonymous controllers on 1.8.7. (hudge, mudge) - Eliminate use of deprecated
process_view_paths
- Fix false negatives when using
route_to
matcher withshould_not
controller
is no longer nil inconfig.before
hooks- Change
request.path_parameters
keys to symbols to match real Rails environment (Nathan Broadbent) - Silence deprecation warnings in pre-2.9 generated view specs (Jonathan del Strother)
2.9.0 / 2012-03-17
Enhancements
- add description method to RouteToMatcher (John Wulff)
- Run "db:test:clone_structure" instead of "db:test:prepare" if Active Record's schema format is ":sql". (Andrey Voronkov)
Bug fixes
mock_model(XXX).as_null_object.unknown_method
returns self again- Generated view specs use different IDs for each attribute.
2.8.1 / 2012-01-04
NOTE: there was a change in rails-3.2.0.rc2 which broke compatibility with stub_model in rspec-rails. This release fixes that issue, but it means that you'll have to upgrade to rspec-rails-2.8.1 when you upgrade to rails >= 3.2.0.rc2.
- Bug fixes
- Explicitly stub valid? in stub_model. Fixes stub_model for rails versions >= 3.2.0.rc2.
2.8.0 / 2012-01-04
- Enhancements
- Eliminate deprecation warnings in generated view specs in Rails 3.2
- Ensure namespaced helpers are included automatically (Evgeniy Dolzhenko)
- Added cuke scenario documenting which routes are generated for anonymous controllers (Alan Shields)
2.8.0.rc2 / 2011-12-19
Enhancements
- Add session hash to generated controller specs (Thiago Almeida)
- Eliminate deprecation warnings about InstanceMethods modules in Rails 3.2
Bug fixes
- Stub attribute accessor after
respond_to?
call on mocked model (Igor Afonov)
- Stub attribute accessor after
2.8.0.rc1 / 2011-11-06
Enhancements
- Removed unnecessary "config.mock_with :rspec" from spec_helper.rb (Paul Annesley)
Changes
- No API changes for rspec-rails in this release, but some internals changed to align with rspec-core-2.8
2.7.0 / 2011-10-16
Enhancements
ActiveRecord::Relation
can use the=~
matcher (Andy Lindeman)- Make generated controller spec more consistent with regard to ids (Brent J. Nordquist)
- Less restrictive autotest mapping between spec and implementation files (José Valim)
require 'rspec/autorun'
from generatedspec_helper.rb
(David Chelimsky)- add
bypass_rescue
(Lenny Marks) route_to
accepts query string (Marc Weil)
Internal
- Added specs for generators using ammeter (Alex Rothenberg)
Bug fixes
- Fix configuration/integration bug with rails 3.0 (fixed in 3.1) in which
fixure_file_upload
reads fromActiveSupport::TestCase.fixture_path
and misses RSpec's configuration (David Chelimsky) - Support nested resource in view spec generator (David Chelimsky)
- Define
primary_key
on class generated bymock_model("WithAString")
(David Chelimsky)
- Fix configuration/integration bug with rails 3.0 (fixed in 3.1) in which
2.6.1 / 2011-05-25
This release is compatible with rails-3.1.0.rc1, but not rails-3.1.0.beta1
- Bug fixes
- fix controller specs with anonymous controllers with around filters
- exclude spec directory from rcov metrics (Rodrigo Navarro)
- guard against calling prerequisites on nil default rake task (Jack Dempsey)
2.6.0 / 2011-05-12
Enhancements
- rails 3 shortcuts for routing specs (Joe Fiorini)
- support nested resources in generators (Tim McEwan)
- require 'rspec/rails/mocks' to use
mock_model
without requiring the whole rails framework - Update the controller spec generated by the rails scaffold generator:
- Add documentation to the generated spec
- Use
any_instance
to avoid stubbing finders - Use real objects instead of
mock_model
- Update capybara integration to work with capy 0.4 and 1.0.0.beta
- Decorate paths passed to
[append|prepend]_view_paths
with empty templates unless rendering views. (Mark Turner)
Bug fixes
- fix typo in "rake spec:statsetup" (Curtis Schofield)
- expose named routes in anonymous controller specs (Andy Lindeman)
- error when generating namespaced scaffold resources (Andy Lindeman)
- Fix load order issue w/ Capybara (oleg dashevskii)
- Fix monkey patches that broke due to internal changes in rails-3.1.0.beta1
2.5.0 / 2011-02-05
Enhancements
- use index_helper instead of table_name when generating specs (Reza Primardiansyah)
Bug fixes
- fixed bug in which
render_views
in a nested group set the value in its parent group. - only include MailerExampleGroup when it is defined (Steve Sloan)
- mock_model.as_null_object.attribute.blank? returns false (Randy Schmidt)
- fix typo in request specs (Paco Guzman)
- fixed bug in which
2.4.1 / 2011-01-03
- Bug fixes
- fixed bug caused by including some Rails modules before RSpec's RailsExampleGroup
2.4.0 / 2011-01-02
Enhancements
- include ApplicationHelper in helper object in helper specs
- include request spec extensions in files in spec/integration
- include controller spec extensions in groups that use :type => :controller
- same for :model, :view, :helper, :mailer, :request, :routing
Bug fixes
- restore global config.render_views so you only need to say it once
- support overriding render_views in nested groups
- matchers that delegate to Rails' assertions capture ActiveSupport::TestCase::Assertion (so they work properly now with should_not in Ruby 1.8.7 and 1.9.1)
Deprecations
- include_self_when_dir_matches
2.3.1 / 2010-12-16
- Bug fixes
- respond_to? correctly handles 2 args
- scaffold generator no longer fails on autotest directory
2.3.0 / 2010-12-12
- Changes
- Generator no longer generates autotest/autodiscover.rb, as it is no longer needed (as of rspec-core-2.3.0)
2.2.1 / 2010-12-01
Bug fixes
- Depend on railties, activesupport, and actionpack instead of rails (Piotr Solnica)
- Got webrat integration working properly across different types of specs
Deprecations
- --webrat-matchers flag for generators is deprecated. use --webrat instead.
2.2.0 / 2010-11-28
Enhancements
- Added stub_template in view specs
Bug fixes
- Properly include helpers in views (Jonathan del Strother)
- Fix bug in which method missing led to a stack overflow
- Fix stack overflow in request specs with open_session
- Fix stack overflow in any spec when method_missing was invoked
- Add gem dependency on rails ~> 3.0.0 (ensures bundler won't install rspec-rails-2 with rails-2 apps).
2.1.0 / 2010-11-07
Enhancements
- Move errors_on to ActiveModel to support other AM-compliant ORMs
Bug fixes
- Check for presence of ActiveRecord instead of checking Rails config (gets rspec out of the way of multiple ORMs in the same app)
2.0.1 / 2010-10-15
Enhancements
- Add option to not generate request spec (--skip-request-specs)
Bug fixes
- Updated the mock_[model] method generated in controller specs so it adds any stubs submitted each time it is called.
- Fixed bug where view assigns weren't making it to the view in view specs in Rails-3.0.1. (Emanuele Vicentini)
2.0.0 / 2010-10-10
Enhancements
- ControllerExampleGroup uses controller as the implicit subject by default (Paul Rosania)
- autotest mapping improvements (Andreas Neuhaus)
- more cucumber features (Justin Ko)
- clean up spec helper (Andre Arko)
- add assign(name, value) to helper specs (Justin Ko)
- stub_model supports primary keys other than id (Justin Ko)
- support choice between Webrat/Capybara (Justin Ko)
- support specs for 'abstract' subclasses of ActionController::Base (Mike Gehard)
- be_a_new matcher supports args (Justin Ko)
Bug fixes
- support T::U components in mailer and request specs (Brasten Sager)


Supporting, Celebrating and Advocating for Women in Computing
ACM-W COUNCIL ON WOMEN IN COMPUTING
Mission Statement
ACM-W supports, celebrates, and advocates internationally for the full engagement of women in all aspects of the computing field, providing a wide range of programs and services to ACM members and working in the larger community to advance the contributions of technical women. View ACM-W
One of the most popular ways to celebrate women in computing is by starting and/or attending an ACM-W Celebration of Women in Computing; the accomplishments of women in computing are at the heart of ACM-W’s e-Newsletter.
Celebrations of Women in Computing
ACM Celebrations of Women in Computing connect technical women who are working/studying within a particular geographical location – with locations that could be a single city, a state or group of states, a country, or several countries. These conferences build community and break down feelings of isolation. Our intention is to reach the broadest possible populations through an international network of self-sustaining small conferences, dovetailing when possible with ACM-W chapters. View ACM-W Celebrations
Imagine yourself surrounded by 200 computer science students, all ready to network and share their experiences! Our ACM Celebrations of Women in Computing showcase women involved in the computing industry and computer science research, encourage mentoring and networking, include career fairs and panel sessions, and create opportunities for undergraduate and graduate students to present their research and projects through poster competitions and presentations. More than 30 celebrations throughout the US and the world inspire women to excel in their chosen field--find one near you or start a new one!
Our Supporters
We are grateful to the faculty and students of CUNY colleges for making this conference possible.
We are grateful to WiTNY director and staff for their time and assistance in the organization of the conference.
We would like to thank Association for Computing Machinery(ACM) and ACM's Women in Computing organizations for their support and for sponsoring the conference.
We are grateful for the participation of faculty and students from these institutions.
| Baruch College | John Jay College |
| Borough of Manhattan Community College | LaGuardia Community College |
| Bronx Community College | Marist College |
| Brooklyn College | Mount Holyoke College |
| The City College of New York | New York City College of Technology |
| College of Staten Island | Pace University |
| Cornell Tech | Queens College |
| The Graduate Center, CUNY | Saint Peter’s University |
| Hunter College |


{{rev.config}}
| Event Source: | {{ entry.event_source }} |
| Event Name: | {{ entry.event_name }} |
| Event Time: | {{ entry.event_time }} |
| Error Code: | {{ entry.error_code }} |
| Event Message: | {{ entry.error_message }} |
| User Identity: | {{ entry.user_identity_arn }} |
| User Agent: | {{ entry.user_agent }} |
| Source IP: | {{ entry.source_ip }} |
| Request Parameters: |
|
| Response Elements: |
|
Display Full CloudTrail Entry.
{{entry.full_config}}
{{rev.expanded}}
{{minimized_policy}}
|
{{ comment.text }} |


{% extends "layout.html" %} {% block title %} Register hanab.live username {% endblock title %} {% load humanize %} {% block layout-content %}
You are setting the hanab.live username for {{ request.user.username }}. Note that this can only be set once.


These cables are for The ONE products specially. If you are not sure which one you should choose, please feel free to contact us by<EMAIL_ADDRESS>Keyboard/Piano original package includes USB, Apple lightning and Android Cable!


Why should I recycle?
- We need to recycle because we all want a clean and healthy earth instead of a ugly and
polluted earth to live in.
- We need to keep our oceans clean for our sea animals since we depend on them for food.
- We need to keep the Earth clean so that the next generation of humans have a healthy planet to live in.


--- sort_order: 210 tei_id: rdx_v6w0z.p.idm140456916086320 annotation_count: 0 images: small-thumbnail: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6w0z/mini-thumbnail/ json: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6w0z/info/ full: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6w0z/fs/ page: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6w0z/single-page/ thumbnail: https://readux.ecds.emory.edu/books/readux:v5mxs/pages/readux:v6w0z/thumbnail/ title: Page 206 number: 206 permalink: "/pages/206/" ---


Linux and the M2NPV-VM
Quick note to record my annoyance.
The M2NPV-VM, with the latest firmware (1401), used with a linux kernel more recent than 2.6.18 and KVM_GUEST configured in the kernel will not work with USB. Some details here. Mythbuntu 9.10 is shipped with this configuration. Generally, avoid 1401, also, from what I read.
I'd actually discovered that all a couple of weeks ago, but was pretty laissez-faire about usb until I realized my lirc config had been written over and was possibly on another drive - and the easiest way to attach and recover it would be via USB. That was all prompted by the machine crashing after recording - which is why I also updated the firmware on my seagate drives about the same time.
(Aside, my Seagate 1TB drives shipped limited by a jumper to 150Mb/s, but my mobo is supposed to be capable of 300 Mb/s.)
About this entry
You"re currently reading "Linux and the M2NPV-VM," an entry on a crick in the net
- Published:
- 11.17.09 / 8pm
- Category:
- Circular File


GetDigitl Hackathon
Sponsoring the GetDigitl Hackathons
Companies, Parties or individuals can sponsor any GetDigitl event.What can I give?
You can give prizes, money, swag, merchandise or anything that you think could be helpful.
What will I get in return?
Our policy is to advertise you or your company depending on the value of the sponsor, no matter the form of sponsorship. We can not always offer the same amount of advertisement, so please contact us! In general we offer your Logo on either/all of: our Website; Social Media; T-shirts; Event banners; Workshops at event; Sell/advertise at event; Judge the event.


Form teams based on skills and interests, record teams' progress.
New to TeamUp? Visit the demo room!
Create new classroom


Leprosy results from exposure of a person to a case of leprosy, It is important to note that prolonged contact with the person is necessary. Casual contact does not cause leprosy. This contact may be direct (e.g. skin to skin) or indirect (e.g. contact with soil, and fomites such as contaminated clothes and linen). Leprosy has a long incubation period, an average of about three to five years. The nose is a major portal of exit of organisms of a person affected by leprosy. Some cases of leprosy harbor millions of Mycobacterium leprae in their nasal mucosa which are discharged when they sneeze or blow the nose. The bacilli can also exit through ulcerated or broken skin of bacteriologically positive cases of leprosy.
It is generally agreed that people who harbor a large number of organisms, as their immune system cannot get rid of them, are the most important source of infection in the community. Among household contacts lepromatous cases, a varying proportion – roughly about 5 to 10% – is expected to show signs of leprosy within five years. This occurs despite treatment of the case, as the person usually harbors the organisms before exhibiting clinical signs and symptoms.
Leprosy occurs more commonly in males than in females in most regions of the world. Leprosy is not particularly a disease of children as was once believed.
Causative Factors
Leprosy is caused by a bacterium, called Mycobacterium leprae which was first discovered Hansen of Norway in 1873. Thus the disease is also called Hansen’s disease.
Clinical Features of Leprosy
It affects the peripheral nerves. It also affects the skin, muscles, eyes, bones, testes and internal organs.
Leprosy is characterized by one or more of the following signs
- Hypopigmented patches.
- Presence of thickened nerves.
- Partial or total loss of cutaneous sensation in the affected area.
- Presence of acid–fast bacilli in the skin or nasal smear.
- In advanced stages of the disease, there is the presence of nodules or lumps on the skin of the face and ears.
- Also, there is loss of fingers or toes, claw toes and various other deformities.
Inhalation
A large number of bacilli are discharged by infectious patient while talking, coughing and sneezing. These bacilli enter health person through respiratory tract.
Contact
Close, intimate and prolonged contact may be responsible for transmitting the disease.
Prevent Transmission of Leprosy
How to Prevent Transmission of Leprosy?
The most effective way of preventing transmission is to render all infectious cases non infectious with Multi Drug Treatment (MDT). So that the bacillary load will be reduced to remarkable extent.
To maintain personal hygiene and general cleanliness.


Toggle navigation
Project name
Home
About
Contact
Source Cities
Target Cities
Temple of Poseidon Level
Process
Dist.
Time
City


Castlebar Mitchels announce appointment of new team manager
CASTLEBAR Mitchels has announced the appointment of a new senior team manager.
He is Tuam-based Alan Flynn, a highly-rated performance coach who has worked at club and inter-county level in recent years.
Flynn coached the Kildare senior squad last season and previously worked with the Clare panel.
The clubs with whom he has worked over the years include Tuam Stars, Annaghadown and Ballinrobe.
His appointment is regarded as a significant coup by the club and he replaces Declan Shaw in the role.


About
Profile
Lets go!
Do any of these sound good to you? If not, make your own event!
{{restaurant}}
{{numLeft}}
Leaves at {{time_l}}
Returns at {{time_r}}


I am a self-taught Software Developer from Brazil, focused on building and improving web based products
using javascript (React & Redux, Node & Express). I am passionate about science and technology
to improve the world, with a particular interest in automation, DLT/Blockchain, deep & machine learning (AI).
In my experience I learned how to establish structured processes to save money and improve performance from the ground up
and really manage business in a sustainable manner. My last job was as a Product Manager & Owner, leading the design,
development (front end) and design team. We went from 4 to 9 products, revenues from 10,000 to 100,000, serving the
public and private sector, starting to expand abroad, winning startup awards and participating in investment rounds.
After that experience I decided to fully understand and learn the best web material to focus my career on building
and coding Web Products for any kind of business. With the DevSecOps mindset I developed, I'm positive that I will
help you and your team to improve the performance of your apps/products.
For the past 15 years, I've spent most of my time studying and working on ideas and visions of the future I want
to build and live on.
My passion for science graduated me in Biological Sciences (2008) plus 2 years living abroad (2010). When I returned,
I joined the largest environmental company in Brazil (2011) to learn about sustainable business and spent 6 years
working on topics such as performance (KPI & BI systems), corporate management, logistics, financial and administrative
planning. There, I learned how to establish structured processes to save money and improve performance from the ground up
and really manage business in a sustainable manner.
Soon after (2017), I was looking for a career change more focused on my passion for technology, then I started learning
about Web Development, Blockchain / DLT and IT Security. Lucky for me, I had the opportunity to work at a startup that
did it all together. I became a product manager and owner, leading the design, development and design team.
I was completely focused on working to improve and develop their business products while building the team for it.
In one year, we went from 4 to 9 products, revenues from 10,000 to 100,000, serving the public and private sector,
starting to expand abroad, winning startup awards and participating in investment rounds.
But it wasn't yet what I was looking for in my career. That's when I decided to get even more involved with technology,
improving and learning new skills every day. I dedicated the last 2 years focused on fullstack web development (see Skills).
Now I work as a freelancer for new business/startups. Recently I've been looking about Iot development with DLT technology
called IOTA and in my spare time, I'm learning about Python for automation, deep & machine learning (AI) and OSCP.
With the DevSecOps mindset I developed, I'm positive that I will help you and your team to improve the performance of
your apps/products.
A full working Ecommerce app made with React/Next.js (frontend), Node/Express.js (backend) and MongoDB (database).
A client blog project made with Gatbsy.js, a React based framework powered by GraphQL to generate fast webpages and apps.
A Fullstack, single-page application utilizing Machine Learning API to identify faces within an image. Frontend made with React.js and Backend done with Express.js using RESTful API. Securely storing user information with hashed passwords in PostgreSQL database. Deployed using Heroku.
A fully responsive Web Application built with React & Redux, utilizing Robohash API image generator. Deployed using Github pages.
The Waste Transportation Control (CTR-E) is a monitoring and traceability system created to register all private entities (generators, transporters, cooperatives and final destinations) that are part of São Paulo's urban cleaning system. The technology allows the São Paulo City Hall to know how the waste is collected, transported and ultimately destined. Frontend built with Html5, Css3 (with Bootstrap) & Js, backend is built in PHP and Laravel framework, MySQL database. Versioning with Gitlab. Deployed using AWS.
PlataformaVerde™ is Blockchain as a Service (BaaS) solid waste management software with the capacity to register and control generators, transporters and receivers of urban and industrial solid waste. Frontend built with Html5, Css3 & Js (jQuery), backend is built in PHP and Laravel framework, MySQL database. Versioning with Gitlab. Deployed using AWS.
If you want to know anything else,
ask me here


Use 3D instead of 2D rendering (2D can be easier to view).
The controls to use in 3D, unused if in 2D.
Allow Dragging (this may be slow).
Merge assets representing the same links into a
single node (This will dramatically increase FPS, but is less pretty).
The log power for the sizes of the nodes.
The simulation will be slow to start, after a short time of it back solving node positions the graph will lock and then it should be highly responsive. Feel free to provide feedback or view the source here, if performance issues persist please log an issue.
The document consumed by this page can be generated with the /requestRecordUsageJSON command. The asset IDs shown in these graphs should not be shared or posted to others, they are only shown on mouse-over, and the structure of the graph itself can be used to figure out why some assets are persisted.
Yellow nodes in this page are assets counted towards your storage cap, each node is only counted once no matter how many other nodes connect to it. Yellow nodes that have a lot of edges means that node is important to many objects, and that is a good thing as it is still only counted once towards the storage quota. Nodes with few edges (such as the probable outer sphere of nodes) are good candidates to remove, as removing one item from your inventory will release all assets linked to that node.


Online VAT calculator - exclude or add VAT from / to amount.
Enter amount and VAT(%) to make calculation possible.


HMKCode
Code First!
Servlet jQuery File Upload
Your Twitter
@
Drop files here
Max File Size: 2 Mb - Display last 20 files
File Name
File Size
File Type
Download
Uploaded By


{% comment %}Translators: On the 'browse partners' page (https://wikipedialibrary.wmflabs.org/partners/), this message is shown at the top, as a title. {% endcomment %}
{% trans "Browse Partners" %}
{% comment %}Translators: On the 'browse partners' page this button is above the partner list and can be clicked by users to navigate to the partner suggestions page. {% endcomment %}
{% trans "Suggest a partner" %}
{% for collection in partners_list %}
{% include "resources/collection_tile.html" %}
{% empty %}
{% comment %}Translators: This text is shown to users when no partners meet the filtering criteria. {% endcomment %}
{% trans "No partners meet the specified criteria." %}
{% endfor %}
{% comment %}Translators: This is a button to go back on the top of page. {% endcomment %}


|
Kruskal's Minimum Spanning Tree
1.0.0
|
author: Aparajith Sridharan date : 11.10.2020
This project implements the Kruskal's minimum spanning tree algorithm.
CMake - recommended latest version, minimum version 2.8
C++ min version 11
Windows x64 compiler : VC100(minimum) tested on VC142(VS 2019)
currently not tested on linux, since the concepts used are made to compile with C++11 standard, it should compile on gcc > 4.6
This is a CMake project built to work with MS Visual Studio 2010 onwards.
If you do not own a copy of Visual Studio you can download a community version for free here : https://visualstudio.microsoft.com/downloads/
If you do not have Cmake installed get the latest version over here: https://cmake.org/download/
mkdir build cmake -B build
This should generate the visual studio .sln solution file in \build folder.
Open it in VS and right click the project MinimumSpanningTree
on the solution explorer and click set as Startup project
.
Clicking on Debug -> run without Debug
will now run the project and display the output.
The project builds the library MSTree.lib
and it contains three main classes Graph
class under undirected_graph.h
which accepts a filename to a text file that follows the specific description of a graph, it's vertices and edges.
see to the end under the text file contents for more context.
MinimumSpanningTree
class declared in minimum_spanning_tree.h
file uses Graph
class to construct a graph from a given filename.
std::vector<Edge> ComputeKruskalMST()
member function will compute the minimum spanning tree for the given graph in file and return all selected edges.KruskalSimulation
class declared in kruskal_simulation.h
file uses MinimumSpanningTree
class to initialize a object of Graph
and execute kruskals algorithm.
void runKruskal()
will run the algorithm and save the selected edges list in the object.void printGraph()
will print the input graphvoid printResult()
will print the list of edges that form the Minimum Spanning Tree and the cost of the tree.the text file shall contain only numbers and delimiter used shall be a single space or carriage return.
the first line denotes the number of vertices in the graph. the second line onwards shall contain the following
e.g. for edge between node 1 and 2 with cost of 3:
20
0 1 3
1 0 3
and so on..
Application displays "ERROR! File not found". Make sure the input text file is available at the project root directory and named exactly as the filename given in the main.cpp
file.
Once this is solved, run the cmake build as described in Build the Project
section.
If the error still persists, copy the .txt file and paste it both in the \build folder and in the folder where MinimumSpanningTree.exe
is present and run the .exe from the command prompt.


Invalid username and password.
You have been logged out.
Please sign in
Username:
Password:
Sign in
Not registered? Register
here
.