Playlist Generator
Here you can see tracks that have played recently on Radio Paradise, that are also available on Spotify.
Note: the "Open in Spotify" button doesn't work for the moment on mobile devices, due to Spotify app implementation details.
{% extends "site/base.html" %} {% load i18n %} {% load l10n %} {% load staticfiles %} {% block head_stylesheets %} {% endblock %} {% block title %} {% trans "Generate Spotify playlist based on Radio Paradise playlist history" noop %} {% endblock %} {% block content %}
Note: the "Open in Spotify" button doesn't work for the moment on mobile devices, due to Spotify app implementation details.


cd /home/
Links
Blog
Projects
我自己康康就行
NLP Projects
Fine-tuning pre-trained BERT for downstream classification.
COVID-19 Dashboard
A COVID-19 Dashboard using data from JHU updated regularly.
Time Series Project
Dynamics of Disease Transmission and Human Behavior.
Gender Identification Face App
A ML Flask App for predicting gender based on face image.
Personalized Medicine
Multi-class text classification.
B-Spline Activation Function
A customized B-spline activation function.
Bio-Shiny
Visualization tools for sequencing / biological data.
m6A-seq Data Analysis
A Protocol for m6A-seq Data Analysis.
Notebooks for Graduate-Level Courses
知识它不进脑子
Natural Language Processing
MIT 6.861 (2022).
Data Structures and Algorithms
CS124 (2022).
Data Structures and Algorithms (Basics)
ᐕ)⁾⁾ (2021).
Data Science
CS109ab (2021).
Basics of Statistical Inference
BST222 (2021).
Applied Regression Analysis
BST210 (2021).
Notebooks for Online Courses
新会员追剧计划
Machine Learning Notes
MITx 6.86x (2021).
Data Analysis Notes
MITx 6.419x (2021).
Matrix Methods Notes
MITx 18.065 (2021).
Probability and Statistics Notes
MITx 6.431x (2020) & 18.6501x (2021).
Bayesian Statistics Notes
MOOC UCSC (2020).
Git Notes
Learn by doing (2021).
A/B Testing Notes
A/B Testing (Udacity) (2022).
Playground
人还是要摸鱼的
Lucky Bucket
熬夜写的解压小游戏.


sphere.js | |
|---|---|
|
Sphere renders a mathematically perfect textured sphere. It calculates the surface of the sphere instead of approximating it with triangles. |
/*jshint laxcomma: true, laxbreak: true, browser: true */
(function() {
"use strict";
var opts = { tilt: 40
, turn: 20
, fpr : 128
};
|
|
frame count, current angle of rotation. inc/dec to turn. |
var frame_count = 10000;
var gCanvas, gCtx;
var gImage, gCtxImg;
|
|
Variable to hold the size of the canvas |
var size;
var canvasImageData, textureImageData;
|
|
Number of frames for one complete rotation. |
var fpr = 800;
|
|
Constants for indexing dimentions |
var X=0, Y=1, Z=2;
|
|
vertical and horizontal position on canvas |
var v, h;
var textureWidth, textureHeight;
var hs=30; // Horizontal scale of viewing area
var vs=30; // Vertical scale of viewing area
|
|
NB The viewing area is an abstract rectangle in the 3d world and is not the same as the canvas used to display the image. |
var F = [0,0,0]; // Focal point of viewer
var S = [0,30,0]; // Centre of sphere/planet
var r=12; // Radius of sphere/planet
|
|
Distance of the viewing area from the focal point. This seems to give strange results if it is not equal to S[Y]. It should theoreticaly be changable but hs & vs can still be used along with r to change how large the sphere apears on the canvas. HOWEVER, the values of hs, vs, S[Y], f & r MUST NOT BE TOO BIG as this will result in overflow errors which are not traped and do not stop the script but will result in incorrect displaying of the texture upon the sphere. |
var f = 30;
|
|
There may be a solution to the above problem by finding L in a slightly different way. Since the problem is equivelent to finding the intersection in 2D space of a line and a circle then each view area pixel and associated vector can be used define a 2D plane in the 3D space that 'contains' the vector S-F which is the focal point to centre of the sphere. This is essentialy the same problem but I belive/hope it will not result in the same exact solution. I have hunch that the math will not result in such big numbers. Since this abstract plane will be spinning, it may be posilbe to use the symetry of the arangement to reuse 1/4 of the calculations. |
|
|
Variables to hold rotations about the 3 axis |
var RX = 0,RY,RZ;
|
|
Temp variables to hold them whilst rendering so they won't get updated. |
var rx,ry,rz;
var a;
var b;
var b2; // b squared
var bx=F[X]-S[X]; // = 0 for current values of F and S
var by=F[Y]-S[Y];
var bz=F[Z]-S[Z]; // = 0 for current values of F and S
|
|
c = Fx^2 + Sx^2 -2FxSx + Fy^2 + Sy^2 -2FySy + Fz^2 + Sz^2 -2FzSz - r^2 for current F and S this means c = Sy^2 - r^2 |
var c = F[X]*F[X] + S[X]*S[X]
+ F[Y]*F[Y] + S[Y]*S[Y]
+ F[Z]*F[Z] + S[Z]*S[Z]
- 2*(F[X]*S[X] + F[Y]*S[Y] + F[Z]*S[Z])
- r*r
;
var c4 = c*4; // save a bit of time maybe during rendering
var s;
var m1 = 0;
|
|
double m2 = 0; |
|
|
The following are use to calculate the vector of the current pixel to be drawn from the focus position F |
var hs_ch; // horizontal scale divided by canvas width
var vs_cv; // vertical scale divided by canvas height
var hhs = 0.5*hs; // half horizontal scale
var hvs = 0.5*vs; // half vertical scale
var V = new Array(3); // vector for storing direction of each pixel from F
var L = new Array(3); // Location vector from S that pixel 'hits' sphere
var VY2=f*f; // V[Y] ^2 NB May change if F changes
var rotCache = {};
function calcL (lx,ly,rz){
|
|
var key = ""+ lx +","+ ly +","+ rx;
if (rotCache[key] == null){
rotCache[key] = 1;
} else {
rotCache[key] = rotCache[key]+1;
}
}
var calculateVector = function(h,v){
|
|
Calculate vector from focus point (Origin, so can ignor) to pixel |
V[X]=(hs_ch*h)-hhs;
|
|
V[Y] always the same as view frame doesn't mov |
V[Z]=(vs_cv*v)-hvs;
|
|
Vector (L) from S where m*V (m is an unknown scalar) intersects surface of sphere is as follows L = F + mV - S ,-------. / \ -----m------ | S<-L->| <-V->F \ / `-------' L and m are unknown so find magnitude of vectors as the magnitude of L is the radius of the sphere |L| = |F + mV - S| = r Can be rearranged to form a quadratic 0 = am² +bm + c and solved to find m, using the following formula___________ m = ( -b ± \/(b²) - 4ac ) /2a |
|
|
Where a, b and c are as in the code. Only the solution for the negative square root term is needed as the closest intersection is wanted. The other solution to m would give the intersection of the 'back' of the sphere. |
a=V[X]*V[X]+VY2+V[Z]*V[Z];
s=(b2-a*c4); // the square root term
|
|
if s is negative then there are no solutions to m and the sphere is not visible on the current pixel on the canvas so only draw a pixel if the sphere is visable 0 is a special case as it is the 'edge' of the sphere as there is only one solution. (I have never seen it happen though) of the two solutions m1 & m2 the nearest is m1, m2 being the far side of the sphere. |
if (s > 0) {
m1 = ((-b)-(Math.sqrt(s)))/(2*a);
L[X]=m1*V[X]; // bx+m1*V[X];
L[Y]=by+(m1*V[Y]);
L[Z]=m1*V[Z]; // bz+m1*V[Z];
|
|
Do a couple of rotations on L |
var lx=L[X];
var srz = Math.sin(rz);
var crz = Math.cos(rz);
L[X]=lx*crz-L[Y]*srz;
L[Y]=lx*srz+L[Y]*crz;
|
|
var lz;
lz=L[Z];
var sry = Math.sin(ry);
var cry = Math.cos(ry);
L[Z]=lz*cry-L[Y]*sry;
L[Y]=lz*sry+L[Y]*cry;
|
|
|
|
Calculate the position that this location on the sphere coresponds to on the texture |
var lh = textureWidth + textureWidth * ( Math.atan2(L[Y],L[X]) + Math.PI ) / (2*Math.PI);
|
|
%textureHeight at end to get rid of south pole bug. probaly means that one pixel may be a color from the opposite pole but as long as the poles are the same color this won't be noticed. |
var lv = textureWidth * Math.floor(textureHeight-1-(textureHeight*(Math.acos(L[Z]/r)/Math.PI)%textureHeight));
return {lv:lv,lh:lh};
}
return null;
};
/**
* Create the sphere function opject
*/
var sphere = function(){
var textureData = textureImageData.data;
var canvasData = canvasImageData.data;
var copyFnc;
if (canvasData.splice){
|
|
2012-04-19 splice on canvas data not supported in any current browser |
copyFnc = function(idxC, idxT){
canvasData.splice(idxC, 4 , textureData[idxT + 0]
, textureData[idxT + 1]
, textureData[idxT + 2]
, 255);
};
} else {
copyFnc = function(idxC, idxT){
canvasData[idxC + 0] = textureData[idxT + 0];
canvasData[idxC + 1] = textureData[idxT + 1];
canvasData[idxC + 2] = textureData[idxT + 2];
canvasData[idxC + 3] = 255;
};
}
var getVector = (function(){
var cache = new Array(size*size);
return function(pixel){
if (cache[pixel] === undefined){
var v = Math.floor(pixel / size);
var h = pixel - v * size;
cache[pixel] = calculateVector(h,v);
}
return cache[pixel];
};
})();
var posDelta = textureWidth/(20*1000);
var firstFramePos = (new Date()) * posDelta;
var stats = {fastCount: 0, fastSumMs: 0};
return {
renderFrame: function(time){
this.RF(time);
return;
stats.firstMs = new Date() - time;
this.renderFrame = this.sumRF;
console.log(rotCache);
for (var key in rotCache){
if (rotCache[key] > 1){
console.log(rotCache[key]);
}
}
},
sumRF: function(time){
this.RF(time);
stats.fastSumMs += new Date() - time;
stats.fastCount++;
if (stats.fastSumMs > stats.firstMs) {
|
|
this.renderFrame = this.RF;
}
},
RF: function(time){
|
|
RX, RY & RZ may change part way through if the newR? (change tilt/turn) meathods are called while this meathod is running so put them in temp vars at render start. They also need converting from degrees to radians |
rx=RX*Math.PI/180;
ry=RY*Math.PI/180;
rz=RZ*Math.PI/180;
|
|
add to 246060 so it will be a day before turnBy is negative and it hits the slow negative modulo bug |
var turnBy = 24*60*60 + firstFramePos - time * posDelta;
var pixel = size*size;
while(pixel--){
var vector = getVector(pixel);
if (vector !== null){
|
|
rotate texture on sphere |
var lh = Math.floor(vector.lh + turnBy) % textureWidth;
/* lh = (lh < 0)
? ((textureWidth-1) - ((lh-1)%textureWidth))
: (lh % textureWidth) ;
*/
var idxC = pixel * 4;
var idxT = (lh + vector.lv) * 4;
/* TODO light for alpha channel or alter s or l in hsl color value?
- fn to calc distance between two points on sphere?
- attenuate light by distance from point and rotate point separate from texture rotation
*/
|
|
Update the values of the pixel; |
canvasData[idxC + 0] = textureData[idxT + 0];
canvasData[idxC + 1] = textureData[idxT + 1];
canvasData[idxC + 2] = textureData[idxT + 2];
canvasData[idxC + 3] = 255;
|
|
Slower? |
/*
canvasImageData.data[idxC + 0] = textureImageData.data[idxT + 0];
canvasImageData.data[idxC + 1] = textureImageData.data[idxT + 1];
canvasImageData.data[idxC + 2] = textureImageData.data[idxT + 2];
canvasImageData.data[idxC + 3] = 255;
*/
|
| m
Faster? |
/* copyFnc(idxC,idxT); */
}
}
gCtx.putImageData(canvasImageData, 0, 0);
}};
};
function copyImageToBuffer(aImg)
{
gImage = document.createElement('canvas');
textureWidth = aImg.naturalWidth;
textureHeight = aImg.naturalHeight;
gImage.width = textureWidth;
gImage.height = textureHeight;
gCtxImg = gImage.getContext("2d");
gCtxImg.clearRect(0, 0, textureHeight, textureWidth);
gCtxImg.drawImage(aImg, 0, 0);
textureImageData = gCtxImg.getImageData(0, 0, textureHeight, textureWidth);
hs_ch = (hs / size);
vs_cv = (vs / size);
}
this.createSphere = function (gCanvas, textureUrl) {
size = Math.min(gCanvas.width, gCanvas.height);
gCtx = gCanvas.getContext("2d");
canvasImageData = gCtx.createImageData(size, size);
ry=90+opts.tilt;
rz=180+opts.turn;
RY = (90-ry);
RZ = (180-rz);
hs_ch = (hs / size);
vs_cv = (vs / size);
V[Y]=f;
b=(2*(-f*V[Y]));
b2=Math.pow(b,2);
var img = new Image();
img.onload = function() {
copyImageToBuffer(img);
var earth = sphere();
var renderAnimationFrame = function(/* time */ time){
/* time ~= +new Date // the unix time */
earth.renderFrame(time);
window.requestAnimationFrame(renderAnimationFrame);
};
|
|
BAD! uses 100% CPU, stats.js runs at 38FPS |
/*
function renderFrame(){
earth.renderFrame(new Date);
}
setInterval(renderFrame, 0);
*/
|
|
Better - runs at steady state |
/*
(function loop(){
setTimeout(function(){
earth.renderFrame(new Date);
loop();
}, 0);
})();
*/
|
|
Best! only renders frames that will be seen. stats.js runs at 60FPS on my desktop |
window.requestAnimationFrame(renderAnimationFrame);
};
img.setAttribute("src", textureUrl);
};
}).call(this);
|


Info
Welcome to the generated API reference.  The poor little Lizard, Bill, was in a tone of delight, which changed into alarm in another moment, when she had got so close to them, and all her.",
"amount":<PHONE_NUMBER>17401,
"date_donate": "1994-01-13 12:49:52"
},
{
"id": 3,
"name": "Serenity Kessler",
"desc": "THIS!' (Sounds of more energetic remedies--' 'Speak English!' said the White Rabbit: it was quite pleased to find any. And yet I wish you wouldn't have come here.' Alice didn't think that proved it.",
"amount": 4147358.3,
"date_donate": "2018-02-23 10:51:02"
},
{
"id": 4,
"name": "Deon Lind Sr.",
"desc": "Caterpillar. Alice folded her hands, and was going to be, from one foot to the beginning again?' Alice ventured to ask. 'Suppose we change the subject. 'Go on with the day and night! You see the.",
"amount": 52692.92,
"date_donate": "2019-04-05 04:17:53"
},
{
"id": 5,
"name": "Kobe Conroy",
"desc": "Alice replied very solemnly. Alice was soon left alone. 'I wish I hadn't mentioned Dinah!' she said to the Gryphon. 'Do you know about this business?' the King said, turning to the beginning again?'.",
"amount": 818.4,
"date_donate": "2001-01-18 20:27:28"
}
]
}
HTTP Request
GET api/donates
show
Example request:
curl -X GET \
-G "http://localhost/api/donates/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"http://localhost/api/donates/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (500):
{
"message": "Server Error"
}
HTTP Request
GET api/donates/{id}
store
Example request:
curl -X POST \
"http://localhost/api/donates" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"dolorem","desc":"animi","amount":3.669,"date_donate":"est"}'
const url = new URL(
"http://localhost/api/donates"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "dolorem",
"desc": "animi",
"amount": 3.669,
"date_donate": "est"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
HTTP Request
POST api/donates
Body Parameters
| Parameter | Type | Status | Description |
|---|---|---|---|
name |
string | required | Name of Donate |
desc |
string | required | Description of Donate |
amount |
number | required | audio of Donate |
date_donate |
string | required | time from of Donate |
update
Example request:
curl -X PUT \
"http://localhost/api/donates/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"omnis","desc":"quia","amount":2125140.59,"date_donate":"aut"}'
const url = new URL(
"http://localhost/api/donates/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "omnis",
"desc": "quia",
"amount": 2125140.59,
"date_donate": "aut"
}
fetch(url, {
method: "PUT",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
HTTP Request
PUT api/donates/{id}
Body Parameters
| Parameter | Type | Status | Description |
|---|---|---|---|
name |
string | required | Name of Donate |
desc |
string | required | Description of Donate |
amount |
number | required | audio of Donate |
date_donate |
string | required | time from of Donate |
delete
Example request:
curl -X DELETE \
"http://localhost/api/donates/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"http://localhost/api/donates/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
HTTP Request
DELETE api/donates/{id}
pays
index
Example request:
curl -X GET \
-G "http://localhost/api/pays" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"http://localhost/api/pays"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (200):
{
"data": [
{
"id": 1,
"name": "Edgardo Johnson",
"desc": "Caterpillar. 'Is that the Mouse with an anxious look at all for any lesson-books!' And so it was as much right,' said the Hatter: 'I'm on the trumpet, and then treading on her toes when they passed.",
"amount": 89.16942487,
"date_pay": "1994-07-12 13:09:08"
},
{
"id": 2,
"name": "Kale Legros",
"desc": "Caterpillar; and it said in a piteous tone. And she tried to look through into the wood. 'It's the first minute or two, they began moving about again, and said, very gravely, 'I think, you ought to.",
"amount": 39057022.2,
"date_pay": "1980-10-22 18:21:32"
},
{
"id": 3,
"name": "Dr. Duane Boehm",
"desc": "Bill's got the other--Bill! fetch it back!' 'And who are THESE?' said the Lory hastily. 'I don't know what you had been to a mouse, you know. So you see, Miss, we're doing our best, afore she comes.",
"amount":<PHONE_NUMBER>21,
"date_pay": "1992-08-28 08:25:32"
},
{
"id": 4,
"name": "Elbert Dickens",
"desc": "Do you think you can have no answers.' 'If you please, sir--' The Rabbit Sends in a soothing tone: 'don't be angry about it. And yet I don't want to stay with it as she was beginning very angrily.",
"amount": 4463.9686,
"date_pay": "1993-04-29 01:15:13"
},
{
"id": 5,
"name": "Dr. Wilton Kuphal",
"desc": "The chief difficulty Alice found at first was moderate. But the snail replied \"Too far, too far!\" and gave a little bottle on it, for she thought, and looked very uncomfortable. The moment Alice.",
"amount": 0,
"date_pay": "1978-07-13 07:57:01"
}
]
}
HTTP Request
GET api/pays
show
Example request:
curl -X GET \
-G "http://localhost/api/pays/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"http://localhost/api/pays/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
Example response (500):
{
"message": "Server Error"
}
HTTP Request
GET api/pays/{id}
store
Example request:
curl -X POST \
"http://localhost/api/pays" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"et","desc":"dignissimos","amount":1395.56,"date_pay":"molestiae"}'
const url = new URL(
"http://localhost/api/pays"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "et",
"desc": "dignissimos",
"amount": 1395.56,
"date_pay": "molestiae"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
HTTP Request
POST api/pays
Body Parameters
| Parameter | Type | Status | Description |
|---|---|---|---|
name |
string | required | Name of Pay |
desc |
string | required | Description of Pay |
amount |
number | required | audio of Pay |
date_pay |
string | required | time from of Pay |
update
Example request:
curl -X PUT \
"http://localhost/api/pays/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"consectetur","desc":"nam","amount":67854.027,"date_pay":"nihil"}'
const url = new URL(
"http://localhost/api/pays/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"name": "consectetur",
"desc": "nam",
"amount": 67854.027,
"date_pay": "nihil"
}
fetch(url, {
method: "PUT",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
HTTP Request
PUT api/pays/{id}
Body Parameters
| Parameter | Type | Status | Description |
|---|---|---|---|
name |
string | required | Name of Pay |
desc |
string | required | Description of Pay |
amount |
number | required | audio of Pay |
date_pay |
string | required | time from of Pay |
delete
Example request:
curl -X DELETE \
"http://localhost/api/pays/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json"
const url = new URL(
"http://localhost/api/pays/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
HTTP Request
DELETE api/pays/{id}


I am a Front-End Web developer having 3+ years experience in web development, graphics design and translation of PSD designs to actual websites. I have done projects in various fields including School systems, Industrial company websites, Personal and Portfolio websites and Safari company websites.
...read moreCan we put those marvelous ideas into actual designs? Very much yes. I create well illustrated web designs into actual PSD and AI files which you can carry through to creating your actual website.
How about taking your Web project into the oven. Through an agreed schedule and deadline, your project will be natured and brought to life and ready to be delivered online to start out its chosen purpose.
By now you'll have heard of these Big words used to define the complexity of a Web project.. don't worry. I will guide you on the best approach to take considering how fast you need the project up and running factored in by what is its intended purpose.
Would you like the best search results always pointing to your site? How about increasing traffic to your sites to ensure you're always on the top spot in search engine results. Look no further. This guru has tools under his belt to kickstart your site to fresh new heights.
 My services will ensure you're on track with the current trends and have your projects suited for this advancement.
From icons and logos, to posters and bronchures or even business cards. Nothing beats my keen eye for attractive designs.
Working with Onesmus was amazing and full of fulfilled promises. He is ambitious, always looks forward to tackling problems and coming up with working solutions.
Software Developer at ATLANCIS Technologies
Being one of the most reliable people, He made sure that we were able to complete our projects in time and run them efficiently.
Full stack Developer


Amazon and eBay were considered lightning, sparkling and shining bursts around the year 1990. As any other famous company, idea of an online bookstore under the name “Amazon” started in a garage in Seattle. It was none other than Jeff Bezos, a guy from the Wall Street, a highly organized and inquisitive being and a spreadsheet enthusiast, who was doing the task. With the popularity of internet and millions of users using it in every possible part of the planet, this was an idea which cannot go down or flop.
The idea of bookstore was simple. His views and key points summarized to a point that no library or bookstore can store every book present in this planet. Approximately, during the same timeline, Pierre Omidyar, just like any other coder, had a creative mind. He had an idea of building a site, where people can auction goods. Post Labour Day, later in around 1995, he started creating just a simple code in which we can create an advertisement, list up all the similar ones and bid in similar items of others like actual usual auctions happen, but in a virtual manner. At the time of their initiation of start-ups, we can observe that, Bezos had a very commercial mind and Omidyar, well, he was, earlier said, just a humble coder.
With Internet spreading like wild fire, Bezos and Omidyar started to create new models of commerce, or we can say E-Commerce. With the integration of Internet and emerging popularity of nimble, affordable and robust personal computers, they commercialized their initial idea and took a step forward, which proved to be a golden one for them.
Parents see their children as perfect in every manner. Likewise, Amazon considered its bookstore services to be of top quality. Any new business has to face initial losses and sacrifice many opportunities and profits at times. Similar to that, Bezos rightfully said that, actually, his fundamental focus was not profit, to result in favour of rapid growth and profit. This was Bezos’ strategy which result to one getting a business bigger and faster, at a faster pace, a very fast pace. This thought of his made him think it was definitely important to grow to a particular level of excellency to satisfy and maintain customers for a longer time period, maximizing the chance the customers do not churn.
One of the success reasons for Amazon or eBay, is the Internet. And a supporting concept, which came into great importance is, Moore’s law. Gordon Moore, Co-Founder, Intel, created this law approximately around five decades ago. It is the observation which states that the number of transistors in a given dense IC doubles in, more or less, two years. This logic of Moore’s law has helped room-sized computers to reduce to hand-held robust systems. Where we can understand that, the density increases as the size of transistors decreases.
Now focusing on the elephant in the room. THE DOT COM BUBBLE. This bubble to inflate in 1997, reached its level in 2000 and was ultimately burst down in 2002. Here we can see that, the bubble started inflating has investments rose. Investments were rising because of the progress in the Internet, and the investments went higher and higher to the zenith. The main centre of attention were the tech companies. The main issue that came up was, nobody paid a heed to companies’ performance and progress. It is like a kid seeing a balloon, getting excited and not knowing that it will ultimately deflate or burst out. Common sense was no more common in this time period and blind investment was taking place every day, literally every day. The investors had a view, that companies having application with respect to the Internet will ultimately grow.
Ultimately, as we discussed about the inflating balloon, the prices rose approximately around five times. Then, the slow deflating balloon came between 2000 to 2002. And finally had to burst out in 2002. Well, one of the reasons the bubble burst is the 9/11 Attack, which was a news and is still considered a turning point.
As we closely see, we can understand that, many companies died. Investors were facing a huge loss, like literally a huge loss. Where we can see the bad side of this happening, there was a good side, for some. Amazon’s loss was present, but gradually, the revenue of this enormous company increased exponentially. To elaborate, the stock price of Amazon after this period dropped drastically. But later on, the same stock price increased approximately 100 times. Thus, in the end, we can that, this example of bubble burst proved to be a huge lesson of human nature for every person who has faced it.


| Test Suite |
| RebuildSearchIndex |
| CreateFacultyMember |
| CreateLibrarian |
| AddFacultyInfo |
| EditFacultyInfo |
| AddFacultyInfo2 |
| RebuildSearchIndex |
| PublicFacultyInfo |
| SearchFacultyInfo |
| DeleteFacultyInfo |
| RebuildSearchIndex |
| UploadFacultyImage |
| ChangeFacultyImage |
| VerifyImageDisplay |
| UploadLibrarianImage |
| ChangeLibrarianImage |
| AssociateLibToFac |
| SearchPeople |
| BrowseIndex |
| TestUnicodeName |
| DeleteFacultyImage |
| DeleteLibrarianImage |
| DeleteLibtoFacAssociation |
| DeleteTestPeople |
| UploadNonPersonImage |
| ReorderPeople |


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.ApplicationConfig @import views.html.helpers._ @import views.html.helper.form @this(atedMain: atedMain, formHelper: FormWithCSRF) @(businessName: String, date: String)(implicit request: Request[_], authContext: AtedSubscriptionAuthData, messages: Messages, appConfig: ApplicationConfig) @atedMain(title = messages("ated.business-agent.confirmation.title")) {
@formHelper(action = controllers.routes.AgentConfirmationController.continue) { } }


Results driven Interior Designer with proven flare for discerning client needs and preferences. Excellent in balancing form, function and budget consideration. Achieving client approved results and utilizing interior design software to provide clients with a better vision of best options.
It's important that the product is designed considering the customer demands and firm's IT strategy. And, it's equally important to convey the product's true potential to the end user. Today, the process does not stop at building super awesome products, but only after the end user has fully appreciated it's value. I strive to apply my technical and leadership experience, delivering the most efficient solutions.
Including designing, I love most forms of dance. I love to sing and paint. I am a national level boxer as well!


Your browser does not support the HTML5 canvas tag.
Instructions
Scores
Credits
Control buttons
↑
←
→
↓
Space
Instructions
Move left / right /down : Arrow left / right /down
Rotate : Arrow up
Start / Pause : SPACE
Restart : F4
Scores
Single :
n
point x level
Double :
n
points x level
Tripple :
n
points x level
Tetris :
n
points x level
Perfect clear :
n
points x level
Credits
Written by Stefan Gierens
in Typescript with HTML 5 canvas element
styled by Bootstrap.
IDE: Visual Studio 2017
©2019 Stefan Gierens - MIT License
See source code on GitHub
Status
Level:
Score:
Rows:
Highscore:
Max Rows:


Created: 20/12/2018
By: CODERVENT
Email<EMAIL_ADDRESS>Thank you for purchasing my theme. If you have any questions that are beyond the scope of this help file, please feel free to email at<EMAIL_ADDRESS>Thanks so much!
This template is fully responsive and created with bootstrap4 framework. All the content is within wrapper. The wrapper is containing sidebar wrapper ,topbar header and content wrapper. In content wrapper all part is devided with row and cards. In this template most of the classes are used acording to bootstrap. Here is the general structure.
We are using one CSS file for the template. In the general section of css file I used the codes to reset the generic style of the html. All required styles are included in this file with well commented. According to the comment you can customize the template easily. Here is the basic style sheet structure.
assets/ css/ ├── bootstrap.min.css ├── animate.css ├── icons.css ├── sidebar-menu.css ├── app-style.css
This theme imports five Javascript files.
I've used the following images, icons or other files as listed.
Once again, thank you so much for purchasing this theme. As I said at the beginning, I'd be glad to help you if you have any questions relating to this theme. No guarantees, but I'll do my best to assist.
CODERVENT


bloom.api
home
search
documentation
contribute
search by last name, full name, zip code, address, or npi.
search
or checkout the
documentation
to learn how to write complex queries.


---
title: Theme Builder
---
{% include doc_head.html %}
Theme Builders
These tools provide you the ability to customize some of the things about the sizing of the datebox control.
Bootstrap Framework
jQueryMobile Framework
jQueryUI Framework
{% include bs_footer.html %}


Total Answers: {{ answersCount | int }}
Correct answers: {{ correctAnswersCount | int }}
Wrong answers: {{ wrongAnswersCount | int }}
Avg. answer time: {{ averageTime | float }}
Min. answer time: {{ minTime | float }}
Max. answer time: {{ maxTime | float }}
Correct answers %: {{ correctAnswersCountPercentage | float(1) }}
Wrong answers %: {{ wrongAnswersCountPercentage | float(1) }}
Correct/Wrong ratio: {{ correctWrongAnswersRatio | float }}


Give your favourite charities £1million in our fantastic giveaway for our 50th birthday
by Sun ReporterTHE SUN celebrates its 50th birthday this week.
And we want to say thanks a million to YOU – our amazing, big-hearted readers.
Over the last half century you have generously donated as much as £100million to charities that help those in need.
You have stood shoulder to shoulder with the people’s paper as we campaigned against injustices, holding the powerful to account and giving a voice to the voiceless.
Sun readers are the ordinary people of Britain who do extraordinary things every single day.
The respected Society of Editors has given The Sun and its readers a special award for 50 years of campaigning.
And today WE are proud to launch a special £1MILLION Sun Readers Fund which we want YOU to donate to your favourite causes.
We would like you to tell us about the small, local charities you support and nominate them for a donation of between £2,000 and £20,000 from Britain’s best-selling paper.
Throughout the next year we will make dozens of donations on your behalf to help the UK charities you back carry out their vital work.
Maybe your chosen charity needs money to buy a wheelchair for disabled youngsters or you know an old folks’ club that could do with a mini bus.
Perhaps a small organisation that supports veterans or the homeless could do with a badly-needed injection of cash to complete a vital project.
Your local rescue team might be short of equipment, an animal sanctuary perhaps wants to build a new shelter or a British-based organisation that helps vulnerable people abroad is in need of vital medicines.
All over the UK there are thousands of local causes that could do with a bit of extra help.
And thanks to our £1million Sun Readers’ Fund they could get the cash to make little miracles happen.
The money is there but we need you to let us know who to give it to.
Between now and December 18, you can nominate you favourite small charity and tell us in up 400 words why they deserve a donation.
MAKE A DIFFERENCE
We will make donations of up to £20,000 to small – sometimes unsung – charities in six categories. They are:
Children and Young People; Health and Wellbeing; Veterans; Animals and the Environment; Emergency Heroes and International Aid.
If your favourite small charity falls into one of those categories then why not nominate them for donation of two and twenty grand. You could make a real difference to them and their much-needed work.
Sun columnist and TV presenter Jane Moore is a member of the Sun panel that will select the charities that will receive money on your behalf.
She said: “Since 1969, The Sun has been the people’s paper. Standing up for ordinary folk, and shining a spotlight on the extraordinary things they’re capable of achieving for themselves, their loved ones and their communities.
“Across the last five decades The Sun has proudly championed the causes its readers care about – from finding forever families for vulnerable children to changing the law to ensure victims of domestic abuse are provided with safe accommodation.
“The Sun50 Reader Fund is undoubtedly going to create a whole new generation of inspirational stories as readers nominate the charities that have touched their lives.”
It couldn’t be easier to nominate your favourite cause – see the details below and submit the form at the top of this article.
HOW TO NOMINATE YOUR CHARITY
STEP 1.
You have until December 18 but why not do it now.
Your chosen charity must be registered with either the Charity Commission , the Scottish Charity Regulator or the Charity Commission for Northern Ireland.
You must include the charity’s registration number.
STEP 2.
Fill out your name, address and phone number, then give us the details of the charity you are nominating.
STEP 3.
Tell us which of our six categories is relevant to your charity
STEP 4.
Write up to 400 words explaining what your charity does, why it is close to your heart, how much funding your charity needs and what that funding will do.
Tell us about your connection to the charity. Maybe you, your family or friends have received support. Do you work or volunteer there?
Make sure to tell us what area of the UK or abroad the funds will benefit.
STEP 5.
And finally, the important bit. Tell us how much money you are requesting between £2,000 and £20,000.
Please note there are a limited number of larger grants available.
The Sun Readers’ Fund panel, that decides who gets what and how much, will be looking to donate the majority of the £1million as small grants to help as many good causes as possible.
BY POST
If you don’t have access to the internet, post your nomination to: Sun Readers’ Fund, The Sun, 1, London Bridge Street, London SE1 9GF.
This is your opportunity to tell us all about a charity close to your heart.
We will also ask you to let us know how much your charity needs for that special project or to improve the work they do.
We are particularly looking to help charities with small projects that will make a big difference.
Once we have received your nomination and if your chosen charity is shortlisted, we will contact them direct for more details.
The charity will be asked to complete an application form to be considered for a grant. The money will be sent directly to your charity.
JUDGES’ FAVOURITES
A panel of famous faces from The Sun will decide which charities should be awarded money and how much they will get.
On the panel will be Jane Moore, the nation’s agony aunt Deidre Sanders, political columnist Trevor Kavanagh, Royal photographer Arthur Edwards, Executive Editor Dan Wootton, The Sun’s General Manager Jo Bucci and Help for Heroes spokesman Derek Derenalagi.
We will only contact you if your nominated charity has been successful.
The Sun Readers Fund will distribute more than 100 grants over the next 12 months, so please don’t expect a response immediately.
But if your nomination is successful you can be sure that you have made a difference.
Sun columnist and TV presenter Lorraine Kelly says: “The Sun’s ‘thanks a million’ charity giveaway is a wonderful birthday present to give readers.
“There are so many deserving causes at a national or local level.
“Do you volunteer for a brilliant local organisation that needs a helping hand? Or have you benefited from amazing help from a charity and now you want to help them?
“Make sure you fill in the form online and nominate a cause close to your heart who is in need for funds for a project.”
The Sun Readers Fund will make donations to small UK charities in six categories.
Remember, to qualify for a grant, the organisation you are nominating must be registered with the Charity Commission – or Scottish and Northern Ireland equivalents and have a charity number.
TERMS AND CONDITIONS: UK residents 18+ only. Ends 23:59 pm GMT 18/12/2019. See here for full prize description, entry routes & T&Cs. Promoter: News Group Newspapers Limited.


Ocean of Knowledge
Home
Blog
portfolio
Tutorials
Services
About
Contact
Love reading ? feel bored ?
Checkout my Blog
You will find articles about the latest technologies.
Discover new tricks to improve your life and get better at programing.
And more...
Blog
Interested in web technologies ? want to learn ? get better ?
Checkout my Tutorials
Discover the latest technologies.
Learn to code better.
Improve your skill set.
Learn to do things from scratch.
Tutorials
Want to build a website ? customize or fix a bug ?
Checkout my Services
I build websites using the latest technologies.
PHP | Laravel | micro-frameworks.
Python | flask
NodeJs | Express
I design simple web applications.
Html5, CSS3
Ajax
React
JavaScript
Bootstrap
I can turn your website into a desktop application, or just build one from scratch.
JavaScript, CSS3, Html5
Electron
Python
Services
Hi, my name is Abdeslam
I build websites and desktop applications.
Skill Set
HTML &
CSS
JS
React
Bootstrap
Services
Portfolio
Web Developer
Front-end
Skill Set
PHP |
Laravel
Python | Flask
NodeJs | ExpressJs
Database Conception
Services
Portfolio
Web Developer
Back-end
Skill Set
NodeJs | Electron
HTML &
CSS
Python
Services
Portfolio
Desktop developer
Desktop Apps


a neural network for digit recognition
Select an image file containing one digit, such as one from the MNIST dataset, from your local machine using the "Choose File" button. When the preview appears, tap the "Upload" button.
The program will analyse the image and use pattern recognition to predict the digit most likely to be contained in the image.
You can find some sample images here.
The Digit Recogniser is a final year GMIT Software Development project, developed using Python 3, TensorFlow, Flask, Pillow and Numpy.


|
KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
Functions | |
Kratos Classes | |
| class | KRATOS_API (WIND_ENGINEERING_APPLICATION) ModelSubdivisionUtilities |
| class Kratos::Wind::KRATOS_API | ( | WIND_ENGINEERING_APPLICATION | ) |
Sort nodes in a model part depending on their location within a stack of slabs
construct a set of slabs of equal height between the two specified points. Nodes in the model part are then assigned to newly created sub model parts, based on which constructed slab they are located in.
| rModelPart | model part containing nodes to sort |
| rBottomPoint | point on the bottom plane of the bottom slab |
| rTopPoint | point on the top plane of the top slab |
| numberOfSlabs | number of slabs to construct between the two points (an equal number of sub model parts are created as well) |
| isRootSlabOpen | defines whether the top and bottom planes of the top and bottom slabs respectively are considered to be inside the domain (true: not considered inside). |
Sort nodes into sub model parts
| rModelPart | model part containing nodes to sort |
| sortFunction | function that decides which sub model part a node is added to (NULL means it is skipped) |
| rSubModelParts | set of sub model parts to sort nodes into |
calls sortFunction for every node in rModelPart, and adds each of them to a sub model part in rSubModelParts. If sortFunction returns NULL, the node is skipped and is not added to any of the model parts.
Sort elements into sub model parts
| rModelPart | model part containing elements to sort |
| sortFunction | function that decides which sub model part a element is added to (NULL means it is skipped) |
| rSubModelParts | set of sub model parts to sort elements into |
calls sortFunction for every element in rModelPart, and adds each of them to a sub model part in rSubModelParts. If sortFunction returns NULL, the element is skipped and is not added to any of the model parts.
Sort conditions into sub model parts
| rModelPart | model part containing conditions to sort |
| sortFunction | function that decides which sub model part a condition is added to (NULL means it is skipped) |
| rSubModelParts | set of sub model parts to sort conditions into |
calls sortFunction for every condition in rModelPart, and adds each of them to a sub model part in rSubModelParts. If sortFunction returns NULL, the condition is skipped and is not added to any of the model parts.
A set of integer vectors that can be pushed to in parallel
each vector is assigned to a sub model part and has their own mutex.
Push to a vector that is assigned to a specific model part
| pSubModelPart | pointer to the desired model part (NULL is valid too) |
| value | integer to be pushed |
Only to be used with ModelPart::AddNodes, ModelPart::AddElements, and ModelPart::AddConditions
A subset of R^3 between two parallel planes
Return true if the normal points toward the halfspace in which the specified point is located
Construct a stack of slabs of identical heights.
| rBottomPoint | point on the bottom plane of the bottom slab |
| rTopPoint | point on the top plane of the top slab |
| numberOfSlabs | number of slabs to generate between the bottom and top points (>1) |
| isOpen | if true, points on the outer slab boundaries are not considered to be inside it (inner slabs will always be closed regardless) |
Find the index of the inner slab containing a specified point
| rPoint | point to be located |
Get the number of internal slabs


OAuth2 Github
Go to
https://github.com/settings/tokens
, generate a token with repo permission and paste it below:


{% extends 'layout.html' %} {% block content %}
|
Dear {{ message_content.get('name', '')|title }}, You have generated enquiry for the Space in ({{ message_content.get('location', '') }}) Our executive will shortly get in touch and share the details of the space with you.
Meanwhile if you wish to provide any other details please reply to the enquiry. |


ImageModel objects are used to display custom 2D graphics in a simulation model, such as a picture or a map. Both DisplayEntity and OverlayImage can accept an ImageModel object as an input. Image file types currently supported by JaamSim include BMP, GIF, JPG, PCX and PNG files, or a ZIP file containin
ImageModel Inputs
|
Keyword |
Description |
|
Key Inputs |
|
|
Description |
A free-form string describing the object. |
|
ImageFile |
A file path to the image file to be used for this display model. Must be enclosed in single quotes if the path contains spaces. |
|
Transparent |
If TRUE, transparency is enabled for supported image types (GIF and PNG). |
|
CompressedTexture |
If TRUE, image compression is applied to alleviate memory issues with large images. |


| Monday | 7:00 - 15:00 |
| Tuesday | 7:00 - 15:00 |
| Wednesday | 12:00 - 20:00 |
| Thursday | 12:00 - 20:00 |
| Friday | 7:00 - 15:00 |
| Saturday | 7:00 - 12:00 |
The Hairy Business
Titova 100, 4270 Jesenice, SLO
Tax number: 369369369
Phone number: +386 40 888 888
Email: info@TheHairyBusiness.net


A data generator library.
The generator is used to generate data for LightningChart® JS charting library. https://www.arction.com/
npm install --save @arction/xydata
Online documentation is available at arction.github.io/xydata
import { createProgressiveRandomGenerator } from '@arction/xydata'
// create new instance of progressive random generator
createProgressiveRandomGenerator()
// define that 1000 points should be generated
.setNumberOfPoints(1000)
// generate those 1000 points
.generate()
// set stream to progress every 250 milliseconds
.setStreamInterval(250)
// set stream to output 10 points at a time
.setStreamBatchSize(10)
// make the stream infinite
.setStreamRepeat(true)
// create a new stream with previously defined stream settings
.toStream()
// every time the stream outputs data, run this function on each of the data points
.forEach(data=>{
console.log(data)
})
This creates a basic progressive random generator and uses the Stream API to output the data to console.
Note: You should newer create a new instance of any generator using the
new
keyword. Generators should only be created with thecreate...
functions.
When calling .generate()
on any data generator a new instance of a 'DataHost' is returned. The .generate()
function can be called multiple times to get a new set of data with same settings as before but different values each time.
You can call .generate()
function multiple times to get new sets of data.
import { createTraceGenerator } from '@arction/xydata'
const generator = createTraceGenerator()
const dataSet1 = generator.generate()
const dataSet2 = generator.generate()
This would give you two different data sets that have been generated based on same settings but which will have different values.
When a data generator is created it has some default settings based on which generator it is. To change any of these settings call .set....
function that will create a new data generator with that setting changed. You can't change multiple settings with a single call or change settings of a generator that has been created previously. A change in settings will always result in a new generator.
import { createTraceGenerator } from '@arction/xydata'
const generator = createTraceGenerator()
.setNumberOfPoints( 10 )
const derivedGenerator = generator.setNumberOfPoints( 20 )
const dataSet1 = derivedGenerator.generate()
const dataSet2 = generator.generate()
This would create two data sets with different values and settings. dataSet1
would have 20 data points and dataSet2
would have 10.
The data sets have possibility to output the data as a stream of data. These streams can be used to alter the data in multiple steps.
import { createTraceGenerator } from '@arction/xydata'
createTraceGenerator()
.setNumberOfPoints( 10 )
.generate()
.toStream()
.map( value => ( { x:value.x, y: value.y * 2 } ) )
.forEach( value => console.log(value) )
This code would create a data generator and then stream that data through two functions, map and forEach. The map function alters the data by multiplying the y value by 2 and then streams it to the forEach function. The forEach function would log each invidual point to console.
The settings for the stream are set by the Data Host that is returned from the .generate()
function. The stream settings can't be changed
after the stream has been generated.
| Generator | Description |
|---|---|
| Delta Function | Generate mostly flat data with random spikes. |
| OHLC | Generate Open, High, Low, Close data. |
| Parametric Function | Sample user defined X and Y functions for each t step. |
| Progressive Function | Sample a user defined function with given X step. |
| Progressive Random | Generate random progressive data that has progessive X step. |
| Progressive Trace | Generate random trace data from previous point that has progressive X step. |
| Sample Data | Sample given array with specified frequency and user defined step. |
| Trace | Generate random trace data that can go to any direction on the XY coordinates. |
| White Noise | Generate white noise. |
| Spectrum Data | Generate spectrum data. |
| Water Drop Data | Generate water drop data. |
The project is developed using TypeScript. Build system of the project heavily relies on Node.js. Dependencies are managed with npm, therefore, remember to run npm install before starting of anything else.
The project uses RollUp for creating the distributable library files.
There are several npm scripts, which are used in development process:
| Name | Command | Description |
|---|---|---|
| test | npm test | run tests and watch |
| lint | npm run lint | run static analyzer and watch |
| ci:test | npm run ci:test | run tests once |
| ci:lint | npm run ci:lint | run static analyzer once |
| ci:watch | npm run ci:watch | run CI circle and watch |
| build | npm run build | build the library |
| build:watch | npm run build:watch | build the library and watch |
| docs | npm run docs | build documentation |


DENISA- Diaconescu -
Denisa has something about her that I can't quite describe. She's smart yet humble, she's charming and friendly but quite introverted, she's kind and warm, loving and caring. But most of all, she's the best person I know, and I hope I will be able to learn a lot from her.
VLADIMIR- Ciobanu -
Vladimir-Gabriel* is kind and empathic, smart and always eager to know and learn, funny and sexy, sharp judge and analytic. For me, he
is my best friend and true love, my inspiration and strength; he is home!
*I find it hilarious that he has both of my parent's names, Vlad and Gabriela.
OUR STORY
We would like to share a few of our cherished moments together, from the moment we first met up until when we got engaged. We will walk you through a couple of these moments in the timeline below.
How we met
In all honesty we met a couple of months before this date, during a birthday party held by our common friend and maid of honour, Andreea. We did manage to talk for a bit, and we instantly got the feeling we each found a good friend. Since then, our common love for music brought us together to quite a few blues/jazz concerts. Mid May, we went to the seaside with a couple of friends and it was one of the best times of our lives. We all had a great time staying up late drinking, chatting, drinking, having fun and drinking.
Denisa leaves for Bern
Denisa works at the University and she is doing research in logics (“with unicorns” according to Vlad). After getting her PhD in Bucharest, she went to Bern for an 18 months postdoctoral stage. For her, this was an amazing adventure, both at the scientific and personal level. She gained a couple of good friends and a few great stories.
Vlad goes to Bern
We got back in touch in early 2015, and Denisa suggested a visit to Bern. Although flying isn't one of Vlad's pleasurable activities (he absolutely hates every second of it), he was looking forward to seeing Bern, and most of all, Denisa. He flew to Switzerland and shortly after, they became a couple. The next few months Vlad and Denisa flew back and forth between Switzerland and Romania quite a few times, until Denisa finished her postdoctoral stage in Bern.
And proposed
Denisa and Vlad went for a conference / vacation in Fiji in late 2015, which coincided with Denisa's birthday. Vlad had already prepared a present for her, which was - for all she knew, a perfume ( it's very hard to hide things from Denisa, so Vlad had to lie about the present). They had an absolutely wonderful time in Fiji, and on Denisa's birthday, Vlad proposed (and she said yes).
AND SOON... WE ARE GETTING MARRIED
WHERE & WHERE
Please join us for the religious ceremony and party afterwards.
RELIGIOUS CEREMONY
The day starts at 13:00, the "Sfintii Apostoli" Church on Strada Sfintii Apostoli, 1A, Bucharest for the religious ceremony. Click the title above to pin-point the church on the map.
PARTY
The celebration continues at 15:00, "La Seratta" on Strada Fermei F, 15 in Otopeni. Click the title above to pin-point the party location on the map.
Kindly reply to this RSVP by the 21st of August
OUR GALLERY
Here's a short list of random pictures of Denisa and Vlad from the past year.
Don't Miss It!
JOIN US
If you need more reasons to join us on the 25th, here's a sneak peek at how the civil service went.


Home Page
Add New Shop
Enter a New Shop
Shop Name:
Least amount of customers each day:
Maximum amount of customers each day:
Average amount of cookies sold per person:


Hello there! I’m Reshab, a passionate and seasoned remote software engineer hailing from the picturesque town of Siliguri, West Bengal, India. With a focus on Python web development using Django, I thrive on creating robust, scalable, and user-friendly web applications that leave a lasting impact.
Python Web Development Expertise
Python has been my trusted companion throughout my professional journey. I have honed my skills to become a Python guru, capable of crafting elegant and efficient solutions to complex problems. My specialization lies in web development, and Django is my framework of choice. With its clean and pragmatic design, Django allows me to create feature-rich web applications with ease.
DevOps and Cloud Infrastructure Maven
Beyond my proficiency in Python web development, I’m also well-versed in the world of DevOps and cloud infrastructure. I take great pride in optimizing development workflows, setting up continuous integration and deployment pipelines, and automating processes to ensure smooth and efficient software delivery. My in-depth knowledge of cloud platforms enables me to build scalable and secure applications that can handle varying workloads effectively.
My Journey with Ergeon
I am currently a valuable member of the esteemed team at Ergeon, where I contribute my expertise to develop cutting-edge products that redefine industry standards. Working as a remote software engineer has allowed me to collaborate with talented professionals from diverse backgrounds, enabling me to enrich my skills and understanding continuously.
Life in Siliguri
Siliguri holds a special place in my heart. Nestled at the foothills of the majestic Himalayas, the town’s serene ambiance inspires my creativity and fuels my passion for problem-solving. Embracing the rich culture and warm hospitality of West Bengal, I find joy in exploring the local cuisine, partaking in festivities, and connecting with fellow tech enthusiasts.
Beyond Work
When I’m not immersed in the world of programming and development, I enjoy exploring the great outdoors. The nearby mountains offer an excellent escape, and I often indulge in trekking and hiking adventures. Additionally, I find relaxation in reading articles and books on technology, philosophy, and fiction, which broadens my perspectives and keeps my mind open to new ideas.
In addition to my love for technology and software engineering, I am also an avid motorcycle rider and explorer.
When I’m not busy coding and architecting web applications, you’ll likely find me cruising the open roads on my trusty motorcycle. There’s something exhilarating about the feeling of freedom that comes with riding on two wheels, the wind in my hair, and the road stretching out ahead of me.
Siliguri’s proximity to the beautiful landscapes of the Himalayas and the North-Eastern region of India provides me with ample opportunities for motorcycle expeditions and exploration. Whether it’s a short weekend ride to the nearby hills or a more extended adventure to far-off places, I relish every moment of the journey.
As an explorer at heart, I’m always eager to discover new places, immerse myself in diverse cultures, and embrace the beauty of nature. I believe that exploration not only refreshes the mind and soul but also brings a unique perspective to my work as a software engineer.
Join Me on This Journey
Throughout my career, I’ve learned that the beauty of software engineering lies in the ever-evolving nature of technology. I am constantly seeking opportunities to collaborate on exciting projects, share my expertise with the community, and make a positive impact in the digital landscape. If you’re interested in discussing web development, Python, DevOps, cloud infrastructure, or even the enchanting town of Siliguri, feel free to reach out! Let’s embark on this incredible journey together.


About Us
Heather
bla bla.
Kyle
bla bla.
OUR STORY
bla bla.
THE ENGAGEMENT
Venues
Ceremony
St Finbar Catholic Church
2010 W Olive Ave, Burbank, CA
Burbank, California
May 16, 2015
2:00PM
www.stfinbarburbank.org
Reception
The Federal Bar - North Hollywood
5303 Lankershim Blvd
North Hollywood, CA
May 16, 2015
6:00PM
www.thefederalbar.com


Home
About
Projects
Resume
Blog
Contact
Portfolio
arrow_drop_down
Home
About
Portfolio
Blog
Contact
menu
Miriam Rozenbaum
Software Developer and UI-UX designer
I build and enhance
websites and applications.
I enjoy taking an
idea
and crafting it into something
useable.
I make things beatiful, functional, and fast.
It is important for me to stay current with new technology, and always add onto my skill set.
Technologies and skills.


Following is the list of beloved persons according to alphabet order. They are very beautiful, charming, kind-hearted, benevolent, and talented. Some of them are very rich and powerful. They are very admirable. Especially, they are committed to support me.
- Chau, Mai-Han
- Dao, Anh-Thu (w)
- Gainutdinova, Tatiana
- Giokos, Eleni
- Ha, To-Nguyen
- Ho, Thu-Hang T.
- Hoang, Hai-My (w)
- Hoang, Hai-Yen
- Hoang, Kim-Yen (w)
- Hoang-Chau (w)
- Huynh, Diem-Thuy (w)
- Jolie, Angelina
- Kieu, Phuong-Mai (Mai-Kieu) (w)
- Luu, Anh-Loan (w)
- Ly, Thanh-Phuong T. (w)
- Nguyen, Kim-Thoa T. (w)
- Nguyen, Mong-Thu T. (w)
- Nguyen, Truong T.
- Nguyen, Tú T.
- Nguyen, Xuan-Phuong T. (w)
- Shafiq, Anum
- Tran, Bich-Ngoc (w)
- Tran, Hong-Tuong T.
- Tran, Thanh-Hien T. (Ngu-Binh, Thien-Ha) (w) (s)
- Tran, Ngoc-Trinh T.
- Vo, Xuan-Ha T. (w)
- Vu, Ngan T.
- Wolcott, Michiko I.


{# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -#} {% extends "email/_base/body.html" %} {% block content %}
{% trans %}PyPI administrators have determined that your password is compromised. To protect you and other users, we have preemptively reset your password and you will no longer be able to log in or upload to PyPI with your existing password.{% endtrans %}
{% trans %}PyPI itself has not suffered a breach. This is a protective measure to reduce the risk for PyPI and its users.{% endtrans %}
{% trans trimmed href=request.route_url('accounts.request-password-reset', _host=request.registry.settings.get('warehouse.domain')) %} To regain access to your account, reset your password on PyPI. {% endtrans %}
{% trans<EMAIL_ADDRESS>%}For more information, you can email {{ email_address }} to communicate with the PyPI administrators.{% endtrans %}
{% endblock %}


BETA 0.0.1
Home
FAV
___
___
____
HUSKY
NEXT
Question "FAV"
what your favorite
Animal
Alpaca
Sloth
Husky
WHO?
SEK LOGO
THE TOY
LIL PUMP
RAP AKE
The next prime minister?
PRAYUTT
TUKSIN
NETIWIT
Thanathorn
???
NETFILX
MOVIE2FREE
Kseries


Summer 2016 Road Trip - August
Home
June
July
August
List of places I traveled in August
Zion National Park, Utah:
Recommended
Grand Canyon National Park, Arizona:
Recommended
Arches National Park, Utah
Moab, Utah
Silverton, Colorado
San Juan National Forest, Colorado:
Recommended
Rocky National Park, Colorado:
Recommended
Boulder, Colorado
Denver, Colorado
Taos, New Mexico
Santa Fe, New Mexico
Austin, Texas
Highlights
Zions National Park, Utah
To learn more click here:
Zions National Park
San Juan National Forest, Colorado
To learn more click here:
San Juan National Forest


Chokhi Dhani is a concept capturing the vibrant spirit of Rajasthan and ensuring a perfect Rajasthani experience. Inbound and native tourists have a desire to experience the unique Rajasthani culture.


Inflicted with your terrible curse, you follow the directions previously given to you to find the Witch Hunter's Guild. You managed to dodge the petty homeless men in wretched filth and dangling shreds of clothes as you stepped into Beggar's Alley. However, before you progressed any further, you found yourself surrounded by the hooded men you passed by the gate.  "There is something odd about you, fellow..." One of the strangers mentioned, caution wavered his voice only slightly. Despite such, they remained a high composure - that of a professional. The hooded man stomped a boot against a loose brick in the road. It emitted a loud crack as its clay body broke beneath his heel. "We have a vampire here!" You came seeking a possible salvation, but you may face your doom instead.
As you are pushed away by the guards that rushed out of seemingly no where, adorned in their Guild-armour and weapons - they very well nearly killed you on the spot.
A man with a grizzled voice spoke out to you, from the crowd of blades trained at your throat.  You have not killed any of us or made an attempt to - so I assume it is salvation you seek. Head out into the Whispering Woods and find Auster's hut, a witch that we have under our thumb. She can grant you what you seek." Mercy fell upon you this day. You turn away and quickly leave Beggar's Alley, thankful that the encounter had not turned bloody.


WATCH | 'Could have changed all 11 at half time' - Solskjaer
Cape Town - Ole Gunnar Solskjaer says the substitution of Phil Jones at half-time in the 3-3 draw with Sheffield United was tactical and that they'd played so badly he could have changed all eleven players.
WATCH THE VIDEO ABOVE!


Given the name of a node in this hierarchy, get its bridgegraph, creating it on the fly if necessary. If the node is not a GroupNode, then this method returns null. If the provided name does not map to a node in the hierarchy, an error will be thrown.
Utility function for determining the name of the immediate child under a node for a given descendant path. If the descendant corresponds to no immediate child, an error is thrown.
Given the name of a node, return its incoming metaedges.
Given the name of a node, return its outgoing metaedges.
This is the inverse of getPredecessors(). See that method's documentation for an in-depth example.
Returns a d3 Ordinal function that can be used to look up the index of a node based on its template id.
For a given GroupNode, get or calculate an object which describes a topological ordering of child nodes within that GroupNode's metagraph.
This ordering is used when rendering bridge control edges which are sometimes backwards relative to the dataflow.
For example, say we have a graph with two edges A->B and A->C, and we're interested in the ordering under ROOT. In this case, any of the following would be legitimate return values:
The algorithm does not guarantee that all numbers from 0-N (where N is the number of nodes) appear exactly once. Rather it guarantees that if there is a path between two nodes, the earlier one will have a lower number in the ordering hash.
When generating the ordering, we ignore control Metaedges (those which represent only BaseEdges that have isControlDependency set to true).
If there is no node with the specified name, an error is thrown. If the node with the specified name is not a group node, null is returned.
Generated using TypeDoc
Class for the Graph Hierarchy for TensorFlow graph.


交流群：
https://gitee.com/vakinge/jeesuite-libs
https://gitee.com/vakinge/jeesuite-passport
https://gitee.com/vakinge/oneplatform


|
PX4 Firmware
PX4 Autopilot Software http://px4.io
|
Go to the source code of this file.
Functions | |
| PARAM_DEFINE_INT32 (GPS_DUMP_COMM, 0) | |
| Dump GPS communication to a file. More... | |
| PARAM_DEFINE_INT32 (GPS_UBX_DYNMODEL, 7) | |
| u-blox GPS dynamic platform model More... | |
| PARAM_DEFINE_FLOAT (GPS_YAW_OFFSET, 0.f) | |
| Heading/Yaw offset for dual antenna GPS. More... | |
| PARAM_DEFINE_INT32 (SER_GPS1_BAUD, 0) | |
| GPS Baudrate. More... | |
| PARAM_DEFINE_FLOAT | ( | GPS_YAW_OFFSET | , |
| 0. | f | ||
| ) |
Heading/Yaw offset for dual antenna GPS.
Heading offset angle for dual antenna GPS setups that support heading estimation. (currently only for the Trimble MB-Two).
Set this to 0 if the antennas are parallel to the forward-facing direction of the vehicle and the first antenna is in front. The offset angle increases counterclockwise.
Set this to 90 if the first antenna is placed on the right side and the second on the left side of the vehicle.
0 360 deg true 0
| PARAM_DEFINE_INT32 | ( | GPS_DUMP_COMM | , |
| 0 | |||
| ) |
| PARAM_DEFINE_INT32 | ( | GPS_UBX_DYNMODEL | , |
| 7 | |||
| ) |
u-blox GPS dynamic platform model
u-blox receivers support different dynamic platform models to adjust the navigation engine to the expected application environment.
0 9 2 stationary 4 automotive 6 airborne with <1g acceleration 7 airborne with <2g acceleration 8 airborne with <4g acceleration
true
| PARAM_DEFINE_INT32 | ( | SER_GPS1_BAUD | , |
| 0 | |||
| ) |


Samsung Galaxy S11 renders show off a phone that looks similar to the Note 10
Information about Samsung's upcoming flagship smartphone line is starting to leak
by Dean DaleyThe Samsung Galaxy S11 series is expected to release in three sizes.
The leak, which comes from @OnLeaks and 91Mobiles, shows that the phone will feature a centred Infinity-O display with screen sizes between 6.3 and 6.7-inches, along with curves on the sides. This makes the device look sort of like a Note 10 with more curved angles.
The volume keys and power buttons are on the right side, while the left edge of the phone has no keys at all. There is also a USB-C port flanked by speakers on the bottom.
The rear of the phone features as many as five sensors — three are cameras, one is likely a time of flight sensor, but what the last sensor does remains unclear. While the primary camera reportedly sports a 108-megapixel sensor, there’s also rumoured to be a 5x optical zoom lens featured in the phone as well.
In Canada, all three models will reportedly sport a Snapdragon 865 processor. Other rumoured S11 features include Android 10-based One UI 2.0 and a display that features a 120Hz refresh rate. Finally, the S11e and the S11 will reportedly come in both 4G and 5G variants, while the S11+ will only launch in a 5G version.
The Samsung Galaxy S11 series will likely be released in February of 2020.
Image credit: 91mobiles
Source: 91mobiles


/home/mnv/www/framework/framework
/
core
(Dashboard)
Class Coverage Distribution
Class Complexity
Top Project Risks
CoreApplication
(132)
CoreDebug
(11)
CoreConfig
(9)
Singleton
(5)
Least Tested Methods
CoreController::redirect_to
(0%)
CoreDebug::reset_intermediate_time
(0%)
CoreDebug::get_intermediate_time
(0%)
CoreApplication::__construct
(0%)
CoreApplication::custom_after_routing
(0%)
CoreApplication::session_start
(0%)
CoreApplication::execute_route
(0%)
Singleton::__clone
(0%)
CoreConfig::set_locale
(84%)


| 026:215 Khan | : |
And be kind and humble to the believers who follow you. |
| 026:215 Maulana | : |
And lower thy wing to the believers who follow thee. |
| 026:215 Pickthal | : |
And lower thy wing (in kindness) unto those believers who follow thee. |
| 026:215 Rashad | : |
And lower your wing for the believers who follow you. |
| 026:215 Sarwar | : |
and be kind to your believing followers. |
| 026:215 Shakir | : |
And be kind to him who follows you of the believers. |
| 026:215 Sherali | : |
And lower thy wing of mercy to the believers who follow thee. |
| 026:215 Yusufali | : |
And lower thy wing to the Believers who follow thee. |
Concepts/Themes Covered: أركان الإسلام > (محمد (صلى الله عليه وسلم > خفض جناحه للمؤمنين Pillars of Islam> The Blessed Muhammad(PBUH)> His Unbending(PBUH) to the Believers أركان الإسلام > (محمد (صلى الله عليه وسلم > مخاطبة الله إياه Pillars of Islam> The Blessed Muhammad(PBUH)> Allah's Address to Him(PBUH) العمل > العمل الصالح > التواضع Action(Work)> The Good Deeds>Humbleness الإنسان والعلاقات الأخلاقية > الأخلاق الحميدة > التواضع Man and The Moral Relations> Good Morals>Humbleness العلاقات السياسية والعامة > ولي الأمر > وجوب خفض جناحه للرعية General and Political Relationships>One who has Power, Authority or Command>It is Necessary to be Kind with People
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


This is the .
Article Name 2 = Article Name 2 Article Name 2 = Article Name 2 Article Author 2 = Author Name 2 Article Author 2 = Author Name 2 2019-06-28 = 2013-06-28 2019-06-28T00:00:00Z = 2013-06-28T00:00:00Z Don't do datetime-fmt because it's in localtime. foo2.jpg = foo2.jpg This is used as the feed abstract 2 = This is used as the feed abstract 2 This is used as the feed abstract 2 = This is used as the feed abstract 2 path/to/a/file.xml = path/to/a/file.xml path/to/a/file = path/to/a/file file = file


"Every great developer you know, got there break solving problems they were unqualified to solve." - Patrick McKenzie


| pfilter {panelPomp} | R Documentation |
Tools for applying particle filtering algorithms to panel data.
## S4 method for signature 'panelPomp'
pfilter(
data,
shared,
specific,
params,
Np,
verbose = getOption("verbose"),
...
)
## S4 method for signature 'pfilterd.ppomp'
logLik(object, ...)
## S4 method for signature 'pfilterd.ppomp'
unitlogLik(object, ...)
data |
An object of class |
shared, specific |
optional; these arguments depend on the type
of If If |
params |
optional; a named numeric vector. In this case, the nature of
parameters is determined via a naming convention: names ending in
“ |
Np |
the number of particles to use.
This may be specified as a single positive integer, in which case the same number of particles will be used at each timestep.
Alternatively, if one wishes the number of particles to vary across timesteps, one may specify length(time(object,t0=TRUE)) or as a function taking a positive integer argument.
In the latter case, |
verbose |
logical; if |
... |
additional arguments, passed to the |
object |
required; either (i) a If If |
pfilter()
returns an object of class pfilterd.ppomp
that is also
a panelPomp
object (with the additional filtering details).
When applied to an object of class pfilterd.ppomp
, logLik()
returns a numeric
value.
When given objects of class pfilterd.ppomp
, unitloglik()
returns a numeric
vector.
Extracts the estimated log likelihood for the entire panel.
Extracts the estimated log likelihood for each panel unit.
Carles Bretó
Arulampalam, M. S., Maskell, S., Gordon, N. and Clapp, T. (2002) A Tutorial on Particle Filters for Online Nonlinear/Non-Gaussian Bayesian Tracking. IEEE Trans. Sig. Proc., 50(2), 174–188. doi:10.1109/78.978374
Bretó, C., Ionides, E. L. and King, A. A. (2020) Panel Data Analysis via Mechanistic Models. Journal of the American Statistical Association, 115(531), 1178–1188. doi:10.1080/01621459.2019.1604367
pomp's pfilter at pfilter, panel_loglik
Other panelPomp workhorse functions:
mif2()
,
panelPomp
,
panel_loglik
# filter, which generates log likelihoods
pfrw <- pfilter(panelRandomWalk(),Np=10)
class(pfrw) # "pfilterd.ppomp"
is(pfrw,"panelPomp") # TRUE
pfrw
# extract single log likelihood for the entire panel
logLik(pfrw)
# extract log likelihood for each panel unit
unitlogLik(pfrw)


FLOOR
Section: Linux Programmer's Manual (3)
Updated: 2013-07-23
Index
Return to Main Contents
NAME
floor, floorf, floorl - largest integral value not greater than argument
SYNOPSIS
#include <math.h>
double floor(double x);
float floorf(float x);
long double floorl(long double x);
Link with -lm.
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
floorf(),
floorl():
-
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ||
_POSIX_C_SOURCE >= 200112L;
or
cc -std=c99
DESCRIPTION
These functions return the largest integral value that is not greater than
x.
For example,
floor(0.5)
is 0.0, and
floor(-0.5)
is -1.0.
RETURN VALUE
These functions return the floor of
x.
If
x
is integral, +0, -0, NaN, or an infinity,
x
itself is returned.
ERRORS
No errors occur.
POSIX.1-2001 documents a range error for overflows, but see NOTES.
ATTRIBUTES
Multithreading (see pthreads(7))
The
floor(),
floorf(),
and
floorl()
functions are thread-safe.
CONFORMING TO
C99, POSIX.1-2001.
The variant returning
double
also conforms to
SVr4, 4.3BSD, C89.
NOTES
SUSv2 and POSIX.1-2001 contain text about overflow (which might set
errno
to
ERANGE,
or raise an
FE_OVERFLOW
exception).
In practice, the result cannot overflow on any current machine,
so this error-handling stuff is just nonsense.
(More precisely, overflow can happen only when the maximum value
of the exponent is smaller than the number of mantissa bits.
For the IEEE-754 standard 32-bit and 64-bit floating-point numbers
the maximum value of the exponent is 128 (respectively, 1024),
and the number of mantissa bits is 24 (respectively, 53).)
SEE ALSO
ceil(3),
lrint(3),
nearbyint(3),
rint(3),
round(3),
trunc(3)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- ATTRIBUTES
-
- Multithreading (see pthreads(7))
-
- CONFORMING TO
-
- NOTES
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:55:12 GMT, September 18, 2014


Iris Species classification engine from Kaggle
REPLACE: Add here the list of requirements. For example:
_REPLACE: Add here the best way to install this engine
First, create a new virtualenv
mkvirtualenv marvin_iris_species_engine_env
Now install the development dependencies
make marvin
You are now ready to code.
It`s very important. All development dependencies should be added to setup.py
.
This project uses py.test as test runner and Tox to manage virtualenvs.
To run all tests use the following command
marvin test
To run specific test
marvin test tests/test_file.py::TestClass::test_method
The project documentation is written using Jupyter notebooks. You can start the notebook server from the command line by running the following command
marvin notebook
Use notebooks to demonstrate how to use the lib features. It can also be useful to show some use cases.
marvin pkg-bumpversion [patch|minor|major]
git add . && git commit -m "Bump version"
marvin pkg-createtag
git push origin master --follow-tags
The default log level is set to WARNING. You can change the log level at runtime setting another value to one of the following environment variable: MARVIN_IRIS_SPECIES_ENGINE_LOG_LEVEL
or LOG_LEVEL
. The available values are CRITICAL, ERROR, WARNING, INFO and DEBUG.
Be careful using LOG_LEVEL
, it may affect another lib.


interface ObjectProvider<V : Any!>
Similar to javax.inject.Provider but get method is allowed to throw
javax.inject.Provider
get
abstract fun get(): V?


MaixPy IDE installation and use
About MaixPy IDE
First of all, you need to clarify: MaixPy uses Micropython
script syntax, so it does not need to be compiled like C
language. In fact, it can be used happily without IDE
: Use the serial terminal tool, which has been installed before
Using IDE
will facilitate real-time editing of scripts on the computer and upload to the development board, execute scripts directly on the development board, and view camera images on the computer in real time, save files to the development board, etc.
Of course, the use of IDE
will consume some resources for compression and transmission, so the performance will be reduced, and if MaixPy is down, there is no serial terminal to find the problem.
MaixPy firmware
To use MaixPy IDE
, the firmware must be v0.3.1
or higher, otherwise MaixPyIDE will not be connected. Try to check the firmware version and IDE version before use, and update to the latest version to ensure normal use
Download the installation package
Please refer to the readme.txt
file in the latest version folder for the description of the file list. If the download speed is slow, please use the cdn link to download
Installation
If it is an installer (recommended, simple and convenient)
Windows
directly double-click the exe
file to run the installer; Linux
command line to run the permission and then execute
chmod +x maixpy-ide-linux-x86_64-0.2.2.run
./maixpy-ide-linux-x86_64-0.2.2.run
If it is a compressed package (7z
)
Unzip to folder
If the system does not support
7z
, you need to download7z
decompression tool, then use7z
You can also double-click the compressed package to decompress it under Linux
!
If you need to use the terminal to decompress, you can refer to the following command:
sudo apt install p7zip-full
7z x maixpy-ide-linux-x86_64-0.2.2-installer-archive.7z -r -omaixpy-ide
# `-o` is directly followed by the decompressed path, without spaces.
- After decompression, execute
- If it is
Windows
: directly double-clickmaixpyide
to execute, you can right-click to fix it to the start page or fix it to the taskbar for later use Linux
: execute
- If it is
chmod +x setup.sh
./setup.sh
./bin/maipyide.sh
Test run
Open MaixPy IDE, select the model of the development board in the upper toolbar. Please select Maixduino to connect to amigo and cube development board.
Tool-> Select Board
(Tool->Select Board)
Click connect
to connect to MaixPy IDE
After the connection is successful, the link button will change from green to red.
Below the link button is the run button, which will execute the py
file in the current editing area.
Click the run button (red) again to stop running the current code.
upload files
You can choose to send files in the Tool/Tools menu
Note
- After clicking the connection, do not use it with the terminal tool at the same time, otherwise the serial port will be occupied and cannot be opened
- If you have been unable to successfully connect successfully, check:
- Please check whether the development board model selection is wrong;
- Observe whether there is any change on the development board screen, if there is no response, it may be the serial port selection error;
- Try to upgrade to the latest master branch firmware, and the latest MaixPy IDE software
Find the reason according to the error message
When the program runs incorrectly, a pop-up box will prompt an error, but the error information may not be complete, please look for more detailed error information in the terminal output
If necessary, please disconnect the IDE, and only use the serial terminal to run the program (maybe you need to save the program to a file first, and then run the file) to check and print to troubleshoot
If you submit a problem (bbs, group, github issue, etc.), in order to solve the problem quickly, please be sure to bring the complete information described above


The minimum acceptable version.
Comparisons split on period characters and do numerical comparison ahead of lexicographical.
e.g. 1.10
is later than 1.2
and 10a
is later than 10
.
e.g. for git, you could specify
"2.16
"
and the version check will reject a version of git of 2.15 or earlier.
If this is left blank (the default) then there is no minimum, but the maximum (if any) can still apply. If neither minimum or maximum is set then no version check will be performed.


Image source from: The arrival of Java 19
“ Module bundle together one or more packages, and offer stronger encapsulation than jars. ”
public
is no longer public to others.For more, here is my tutorial @IBM Developer:
Java 9+ modularity: The theory and motivations behind modularity.
For more, here is my two tutorials @IBM Developer:
Java 9+ modularity: Module basics and rules.
Java 9+ modularity: How to design packages and create modules, Part 1, and 2.
java --list-modules
jdeps -jdkinternals app.jar
jdeprscan app.jar
For more, here is my tutorial @IBM Developer:
Java 9+ modularity: The difficulties and pitfalls of migrating from Java 8 to Java 9+.
Each 2 years we will have an LTS Release.
jlink
tool is here, to generate our custom JRE.jlink
?Linker
jlink
can be used to link a set of modules, along with their transitive dependences,
to create a custom modular run-time image.
jshell
- Java 9For more, here is my two tutorials @IBM Developer:
Java theory and practice: Interactive Java programming (REPL) with JShell 12, Part 1, and 2.
.java
old days.java
with Java
- Java 11For more, here is my tutorial @IBM Developer:
Java theory and practice: Run single-file source code programs without compilation.
var
type - Java 10For more, here is my tutorial @InfoQ:
Explore the New Java 10 “var” Type: An Introduction and Hands-on Tutorial.
var
) Syntax for Lambda Parameters - Java 11(String a, String b) -> a.concat(b)
( a, b) -> a.concat(b)
(var a, var b) -> a.concat(b)
(@Nullable var a, @Nonnull var b) -> a.concat(b)
Save this code in a file named dirlist
without any extension and then mark it as executable:
mohamed_taman:code$ chmod +x dirlist
HttpClient
and WebSocket
APIHttpClient
and WebSocket
APIs originally shipped with JDK 9 under the Java Enhancement Proposal JEP 110 as part of an incubator module named jdk.incubator.httpclient
.java.net.http
and brought into the mainstream in JDK 11 under JEP 321.HttpClient
, HttpRequest
, HttpResponse
, and WebSocket
.
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(create("https://postman-echo.com/get/"))
.build();
client.sendAsync(request, ofString())
.thenApply(HttpResponse::body)
.thenAccept(out::println)
.join();
For more, here is my tutorial @IBM Developer:
Java theory and practice: Explore the new Java SE 11 HTTP Client and WebSocket APIs.
First implement the WebSocket.Listener
interface:
public final class EchoListener implements WebSocket.Listener {
@Override
public void onOpen(WebSocket webSocket) {
logger.info("CONNECTED");
....
}
....
}
use an HttpClient
to create a WebSocket
WebSocket webSocket = httpClient.newWebSocketBuilder()
.buildAsync(URI.create("ws://demos.kaazing.com/echo"),
new EchoListener(executor)).join();
webSocket.sendClose(WebSocket.NORMAL_CLOSURE, "ok").thenRun(() -> logger.info("Sent close")).join();
jshell> String getRomanNumber(int value){
String romanValue = "";
switch(value){
case 0: romanValue = "nulla";
break;
case 1: romanValue = "I";
break;
case 2: romanValue = "II";
break;
case 3: romanValue = "III";
break;
case 4: romanValue = "IV";
break;
case 5: romanValue = "V";
break;
case 6: romanValue = "VI";
break;
case 7: romanValue = "VII";
break;
case 8: romanValue = "VIII";
break;
case 9: romanValue = "IX";
break;
case 10: romanValue = "X";
break;
default: System.out.printf("Out of range value: %d %n", value);
romanValue = "N/A";
break;
}
return romanValue;
}
mohamed_taman:~$ jshell --enable-preview
String getRomanNumber(int value){
String romanValue = "";
switch(value){
case 0 -> romanValue = "nulla";
case 1 -> romanValue = "I";
case 2 -> romanValue = "II";
case 3 -> romanValue = "III";
case 4 -> romanValue = "IV";
case 5 -> romanValue = "V";
case 6 -> romanValue = "VI";
case 7 -> romanValue = "VII";
case 8 -> romanValue = "VIII";
case 9 -> romanValue = "IX";
case 10 -> romanValue = "X";
default -> {
System.out.printf("Out of range value: %d %n", value);
romanValue = "N/A";
}
}
return romanValue;
}
String getRomanNumber(int value){
return switch(value){
case 0 -> "nulla";
case 1 -> "I";
case 2 -> "II";
case 3 -> "III";
case 4 -> "IV";
case 5 -> "V";
case 6 -> "VI";
case 7 -> "VII";
case 8 -> "VIII";
case 9 -> "IX";
case 10 -> "X";
default -> throw new IllegalStateException("Out of range value: " + value);
};
}
jshell> String getOddOrEvenNumber(int value){
String kind = "N/A";
switch(value){
case 0: kind = "Zero"; break;
case 1:
case 3:
case 5:
case 7:
case 9: kind = "Odd"; break;
case 2:
case 4:
case 6:
case 8:
case 10: kind = "Even"; break;
default: System.out.printf("Out of range: %d %n", value);
}
return kind;
}
jshell> var kind = switch(value){
...> case 0 -> "Zero";
...> case 1, 3, 5, 7, 9 -> "Odd";
...> case 2, 4, 6, 8, 10 -> "Even";
...> default -> throw new IllegalStateException("Out of range: " + value);
...> };
For more, here is my tutorial @IBM Developer:
Effective use of the new switch statement and expression in Java SE 12.
jshell>var value = 3
value ==> 3
jshell> String kind = switch(value){
...> case 0: break "Zero";
...> case 1, 3, 5, 7, 9: break "Odd";
...> case 2, 4, 6, 8, 10: break "Even";
...> default: throw new Exception("Out of range: " + value);};
kind ==> "Odd"
Dropping break & introducing yield
jshell> value = 10
value ==> 10
jshell> String kind = switch(value){
...> case 0: yield "Zero";
...> case 1, 3, 5, 7, 9: yield "Odd";
...> case 2, 4, 6, 8, 10: yield "Even";
...> default: throw new Exception("Out of range: " + value);};
kind ==> "Even"
This is why community feedback is important, & the preview feature is great for such changes. - In Java 14 switch expressions is standardized.
Text Blocks
(Preview) - Java 13var html = "\n" +
"\n" +
" \n" +
"
Hello, world
\n" +
" \n" +
"\n";
var html = """

Hello, world

""";
//Old Days
if (obj instanceof String) {
// Need to declare & cast again the object
String str = (String) obj;
.. str.contains(..) ..
}else{
.. str = ....
}
//Java 14 Onwards
if (obj instanceof String str) {
// No need to declare str object again with casting
.. str.contains(..) ..
} else {
.. str....
}
//More complex examples
if (obj instanceof String str && str.length() > 5) { .. str.contains(..) .. }
The use of pattern matching in instanceof should dramatically reduce the overall number of explicit casts in Java programs.
constructors
, accessors
, equals()
, hashCode()
, toString()
, etc. To avoid this repetitive code, Java introduced records. In the Second preview it works well with Sealed Classes, and could be declared locally.final class Point {
public final int x;
public final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
// state-based implementations of equals, hashCode, toString
// nothing else
record Point(int x, int y) { }
a.i = 99;
Exception in thread "main" java.lang.NullPointerException
at Prog.main(Prog.java:5)
a.b.c.i = 99;
Exception in thread "main" java.lang.NullPointerException:
Cannot read field 'c' because 'a.b' is null.
at Prog.main(Prog.java:5)
package com.example.geometry;
public sealed class Shape
permits Circle, Rectangle, Square {...}
public final class Circle extends Shape {...}
public sealed class Rectangle extends Shape
permits TransparentRectangle, FilledRectangle {...}
public final class TransparentRectangle extends Rectangle {...}
public final class FilledRectangle extends Rectangle {...}
public non-sealed class Square extends Shape {...}
sealed interface Car permits BMW, Audi { ... }
record BMW(int price) implements Car { ... }
record Audi(int price, String model) implements Car { ... }
List<Merchant> findTopMerchants(List<Merchant> merchants, int month) {
// Local record
record MerchantSales(Merchant merchant, double sales) {}
return merchants.stream()
.map(merchant -> new MerchantSales(merchant, computeSales(merchant, month)))
.sorted((m1, m2) -> Double.compare(m2.sales(), m1.sales()))
.map(MerchantSales::merchant)
.toList();
}
👓
String
class new enhancementsString repeat(int)
- Java 11
jshell> "no ".repeat(14).trim().concat(", Batman!")
$1 ==> "no no no no no no no no no no no no no no, Batman!
boolean isBlank()
- Java 11
jshell>var blankText = " "
blankText ==> " "
jshell>blankText.trim().length() == 0
$2 ==> true
jshell>blankText.isBlank()
$3 ==> true
String stripLeading()
- Java 11String stripTrailing()
- Java 11String strip()
- Java 11
jshell>var textWithSpaces = "\n \t Text \u2005"
textWithSpaces ==> "\n \t Text "
jshell>textWithSpaces.trim()
$4 ==> "Text "
jshell>textWithSpaces.strip()
$5 ==> "Text"
Stream lines()
- Java 11
jshell> "\nOne\nTwo\nThree\nFour".lines().forEach(System.out::println)
One
Two
Three
Four
String indent(int)
- Java 12
jshell> "\nOne\nTwo\nThree\nFour".indent(5).indent(-2).lines().forEach(System.out::println)
... One
... Two
... Three
... Four
String transform(Function)
- Java 12
jshell> var text = "Text with*out *some* *asterisks"
text ==> "Text wi*th *some* * asterisks"
jshell> text.transform(String::toUpperCase)
...> .transform(s -> s.replaceAll("\\*", ""))
...> .transform(s -> s.split(" "))
$1 ==> String[4] { "TEXT", "WITHOUT", "SOME", "ASTERISKS" }
For more, here is my tutorial @IBM Developer:
Java theory and practice: Explore new Java SE 11 and 12 APIs and language features.
String formatted(Object[])
jshell> "Hello %s!".formatted("World")
| Warning:
| formatted(java.lang.Object...) in java.lang.String has been deprecated and marked for removal
| "Hello %s!".formatted("World")
| ^-------------------^
$11 ==> "Hello World!"
String stripIndent()
jshell> var s1 = " foo\n bar"
s1 ==> " foo\n bar"
jshell> System.out.println(s1); System.out.println(s1.stripIndent())
foo
bar
foo
bar
| Warning:
| stripIndent() in java.lang.String has been deprecated and marked for removal
| System.out.println(s1.stripIndent())
| ^------------^
String translateEscapes()
jshell> System.out.println("\n".equals("\\n".translateEscapes()))
true
| Warning:
| translateEscapes() in java.lang.String has been deprecated and marked for removal
| System.out.println("\n".equals("\\n".translateEscapes())); // true
| ^--------------------^
The curious ones out there will quickly spot that all the new methods are deprecated for removal
@Deprecated(forRemoval=true, since="13")
CompactNumberFormat
- Java 12Refers to the representation of a number in a short or human-readable form. For example, in the en_US locale, 1000 can be formatted as “1K” and 1000000 as “1M”.
For more, here is my tutorial @IBM Developer:
Java theory and practice: Explore new Java SE 11 and 12 APIs and language features.
java.time
- Java 16
Developers might want to express periods in a day, such as “in the morning," "in the afternoon," or “at night,”
not just a.m. or p.m.
For more, here is my article @Java Magazine:
Hidden gems in Java 16 and Java 17, from Stream.mapMulti to HexFormat.
Teeing
Collectors method - Java 12what could we do with case such as this:
is 📄 1 == 📄 2 ??
It will compare all bytes and return -1 if match, otherwise will return the location of the first mismatching byte.
java.net.Socket
and java.net.ServerSocket
API implementations date back to JDK 1.0.NioSocketImpl
, which no longer requires native code, thus simplifying the act of porting to multiple platforms.java.util.concurrent
locks rather than synchronized methods.Write this on macOS or Linux
Read it on Windows OS
you will get this:
For more, here is my article @Java Magazine:
The not-so-hidden gems in Java 18: The JDK Enhancement Proposals.
To control the JVM:
-XX:ActiveProcessorCount=<n>
,
-XX:InitialRAMPercentage
-XX:MinRAMPercentage
,
-XX:MaxRAMPercentage
Since Java 9 Garbage First Garbage Collector (G1GC) was made the default GC.
-XX:+UnlockExperimentalVMOptions
-XX:+UseEpsilonGC
-XX:+UnlockExperimentalVMOptions
-XX:+UseZGC
New things come ... and sometimes old things have to go 👐
java.se.ee
- related modulesThe affected modules are:
corba
transaction
activation
xml.bind
xml.ws
xml.ws.annotation
org.openjfx
javafx-controls
12.0.1
org.openjfx
javafx-maven-plugin
0.0.2
HelloFX
Micro-benchmarking is a performance-oriented practice that can steer implementation choices in code.
JMH allows you to write a simple Java class containing several methods that can be turned into a micro-benchmark using annotations. Many configuration options for the benchmark can also be configured through annotations.
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.runner.*;
import org.openjdk.jmh.runner.options.*;
public class MyBenchmark {
@Benchmark
public void testMethod() {
int a = 1;
int b = 2;
int sum = a + b;
}
public static void main(String[] args) throws RunnerException {
Options opt = new OptionsBuilder()
.include(MyBenchmark.class.getSimpleName())
.forks(1)
.build();
new Runner(opt).run();
}}
For more visit official OpenJDK website:
OpenJDK JMH tool, and this is a good tutorial
JMH - Java Microbenchmark Harness
VisualVM is a visual tool integrating command line JDK tools and lightweight profiling capabilities. Designed for both development and production time use.
For more visit VisualVM official website:
https://visualvm.github.io/index.html
Flight Recorder is a low-overhead, data-collection framework for the JVM.
jwebserver
command. By default, this command listens to localhost on port 8000. The server also provides a file browser to the current directory.[mtaman]:~ jwebserver
Binding to loopback by default. For all interfaces use "-b <IP_ADDRESS>" or "-b ::".
Serving /Users/mohamed_taman/Hidden Gems in Java 18/code and subdirectories on <IP_ADDRESS> port 8000
URL http://<IP_ADDRESS>:8000/
For more visit official my latest articles about JDK 18:
The not-so-hidden gems in Java 18: The JDK Enhancement Proposals,
and
The hidden gems in Java 18: The subtle changes


If you have provided us with your SMS-capable mobile phone number while booking, then IndiGo will notify you in advance through an SMS on your mobile phone. Passengers will also be sent the revised itinerary on their registered email address.
Any compensation arising out of cancellation or delay of flights will be processed as per DGCA guideline outlined in Civil Aviation Requirement, Section - 3, Series M Part IV.


A passionate and experienced developer, techie, troubleshooter, having various domain level experties like
Post graduate degree in computer applications.
This is a senior level course that prepares professionals to meet the complex demands of the IT industry. It emphasizes on planning, designing and building of complex commercial application software and system software.
Graduated from this course with a distinction.
Bachelor of computer applications is a junior level course that prepares professionals to meet the complex demands of the IT industry. It emphasizes on planning, designing and building of complex commercial application software and system software.
My responsibilities include performing discussion with the stake holders, chief architect and subject matter experts in understanding the requirements. Designing and developing interactive web and windows features, intoducing new features to help build using MSBUild Tasks, PowerShell script to attach debugger directly, Code Analysis using SonarQube, Supporting team on new requirements
Creating and upgrading documents on Confluence, unit test methods using NUnit. JIRA for bug tracking and agile project development
Team Management, planning on new requirements, client communication, feasibility study on customised requirement and implementing the same.
Travelled USA office for various client level and Management interaction to achieve future goals
Developed a service that helped to remove manual intervention which in terms removed a whole process with 10 team members so now they can support other operation process that helped to gain more revenue by saving some.
Process automation from exel to dynamic reports using SSRS for inhouse operations helped to create DOR, MBRs etc.ASP.NET with C# and backend as Oracled developed an Asset Management System and Alerting system based on engineering plants realtime data.
Helped achieving new feature on the Hospital Management System
Started with general testing that helped to understand modules and find lot bugs, helped in achieving new goal to migrating application from MSAccess to WPF and Silverlight and then MVC frameworks.


Status
Menu Items
Issue Dashboard
Keyword Search
Create Issue
Homework 3 and 4
Help
+title+'
'
+msg+'
'


Today, let's think about conflict. And let's talk about the problems.
1. Discuss a time you had a conflict. What was it about? What happened?
2. What was the source of the conflict?
3. What basic emotions did you feel upon analyzing the conflict?
4. What actions did you take to resolve your conflict?
5. If you could go back, what would you do differently, if anything?
6. What did you learn from this experience?
I remember when I was freshman and lived in the dorm. My roommate nearly created a party once a week, and the party will last very late - even the morning of the next day - on Saturday or Sunday. I felt upset and angry because I cannot study the whole night and even cannot sleep well. I beared several weeks because I didn't want to trouble others. I understand it's the life of her.
However, after several weeks, I found it really hurt my life. And I felt really angry because I respected her lifestyle, but she didn't respect mine. During this week, I let her know I feel uncomfortable because of her so long party.
Then, I talked with her what I am feeling and how her long party troubled me. I also gave her some suggestions like having the party in some friends' home who live alone. Or finish the party earlier at least before 11:00pm.
After that, she understood clearly and she reduce the times of the party and finish them earlier. From this experience, I found that when we meet conflict, we need to try to solve it. It's not really hard like what we think at the first!