INSOLATE
Artist formerly known as Miss Sunshine, is a Dj, producer, label owner and a promoter in business for 20 years now and considered as one of the best techno artist from Croatia.
INSOLATE biography
- The DJ and producer Insolate demonstrates the truth of this analysis by producing rough & dark techno infused with emotion inspired by her 20 years as a DJ.
- Hailing from Osijek, Croatia, on the wide Croatian East – a town that at first glance a heavy industrial atmosphere overshadows - this is where she made first steps as a DJ back in 1997 before taking over European and worldwide clubs.
- She's already played some of the world’s most renowned clubs including Berghain, Rex, Tresor, Under Club, Club d’Anvers, Unter, Exit Festival, Tomorrowland, ADE and Dimensions Festival plus numerous Colombian tours over the years and USA tour and Argentina added to the list in 2018.
- As a producer, she's had a string of releases on highly respected labels including DJ Deep's Deeply Rooted, Marcelus’s Singular and Developer’s Modularz - supported and played by some of techno's finest including Laurent Garnier, DVS1, Dax J and Ilario Alicante. This year, she also released the stellar Obscure Object Of Desire EP on JoeFarr's new User Experience imprint, two original tracks that stroke the perfect balance between groove, power and emotion. She also contributed to Ben Sim’s compilation Tribology among giants as Planetary Assault Systems, Oscar Mulero, Steffi etc. and also made super interesting collaboration with french producer Arnaud le Texier and released EP with him for Prodigal Son.
- Insolate is also a major contributor to the Croatian techno scene, so much so that she was in Ibiza to receive the award for "Dance Nation of the Year" at the DJ Awards on behalf of her nation. Her and long-time partner in crime Volster also run the event series TRAUM in her native Osijek. Not traditionally a city with a strong techno scene, the TRAUM events have cemented their place in the clubbing calendar with quality artists like Paula Temple, Antigone, Cassegrain, Janice, Etapp Kyle and Milton Bradley.
- The success of the TRAUM nights caught the attention of Red Bull Music Academy and Dimensions – both of which they have hosted official events for. Insolate being an international messenger of techno was recognised by Ambassador award that gave her a title "Croatia’s ambassador overseas" for 2017.
- The final part of putting Osijek on the techno map was taken in 2015 with the launch of the label Out Of Place which Insolate runs with Volster. The label was named in honour of the beautiful struggle of carving your own way into the scene from a place that's well off the grid from the traditional capitals of techno. Now three releases strong, the label has already had contributions from heavyweights like Milton Bradley and Developer. Label is currently on the 4th edition with a new release coming out in summer 2018 including artists Francois X, JoeFarr and Disrupted Project.
- As a DJ, Insolate is well known for her no-compromise, pure-bred techno sets. It's clear to anyone who's seen her perform that she's an artist with a lot of experience but also plenty of inspiration and ambition, and a deep knowledge of techno. She is simply a natural presence in a DJ booth. If you've seen her play, you will know exactly what this means.
Sometimes the darkest feelings provide, in a painful paradox, the biggest of pleasures.


Back off man, I'm a scientist.

That's a big Twinkie.
Okay, who brought the dog?
I am The Gatekeeper!
Boo!
Never cross the streams!
Are you a God?


Meet the Team
Vidyanth Bhola
Vidyanth Bhola was born in Greytown on 12 May 1985, and schooled in Greytown at Greytown Primary School and then Greytown Secondary School, where he matriculated in 2002.
Vidyanth obtained his BCom Degree with Varsity College in 2016, Higher diploma in Taxation with UNISA, and post-graduate Accounting Diploma with Varsity College. Vidyanth also provides academic support services to learners and undergraduates. Vidyanth is also a senior tax lecturer at Damelin, he shares a passion for teaching.
- Advanced Pastel Accounting course with UNISA in 2013. Higher Management.
- Accounting Diploma in Finance with Varsity College.
- Vidyanth started his career as a junior accountant (legal) at Van Rooyen and Forder in Greytown. Vidyanth worked in the Accounting profession for 11 years as a Accounting Portfolio manager at s
- Vidyanth is a registered Professional Accountant and General Tax Practitioner.
- Vidyanth’s area of speciality is tax planning, company restructure and training.
- Vidyanth founded VHA Accounting Solutions Inc in 2018.
Vidyanth is also referred to as a “celebrity accountant.” VIdyanth and VHA Accounting Solutions Inc are a AccFin featured and recommended client. Read the article - Click Here.
Vidyanth’s hobbies are playing action cricket, reading and running around his baby Shivaay in his free time. Vidyanth is married to Karishma Bhola.
Alpha Dladla
Alpha Dladla was born in Pietermaritzburg on 18 September 1989, and schooled in Howick at Haza Primary School and then Mconjwana High School, where he matriculated in 2008.
- Obtained his National Diploma in Accounting with Durban University of Technology in 2011.
- started his career as an accounting clerk at Colenbrander Incorporated where he worked for over 5 years.
- Alpha then joined VHA Accounting Solutions Inc where he serves as a director.
Alpha is a full practicing member of the South African Institute of Professional Accountants as a Professional Accountant (SA). Alpha's speciality is financial statements preparation and bookkeeping to trial balance.
Irshaad Cassimjee
- Registered Chartered Accountant and Auditor.
- Strive to be the best we can be.
- Hardworking committed to individual.
- Strives to add value to both the client and VHA Accounting.
- CA(SA) that is always willing to learn more.
- Served articles on JHB for 3 years and gained international audit experience for a period of 6 months in the USA.
Brian Osborn
- Tax and Statutory Manager.
Our focus is supplying our clients with the best practice by making use of the latest technology.
Karishma Bhola
- CEO / Founder.
To serve clients with pride and honour.
Hayley Pienaar
Hayley was born in Pietermaritzburg on 03 November 1989. She attended Epworth Pre-Primary, Ridge Primary, Pelham Senior Primary and Pietermaritzburg Girls’ High School where she matriculated in 2007.
- Qualified Bookkeeper and a Pastel Payroll Certified Administrator..
Hayley started her career in the Accounts Department of a construction company in 2008. In 2012 she began at an Accounting Firm as a Junior Bookkeeper and later got the position in their Accounts Department.
Hayley’s area of specialty is Bookkeeping.
Hayley is married to Shane and has 2 sons.


{% extends 'base.html' %} {% block header %}
Here are the client credentials. Please save them, because you won't be able to see them again.


--- layout: page title: "Projects" description: "This is what I do." image: "img/project-bg.jpg" --- {% for project in site.data.projects %}
{{ project.description }}


Hi! I am Aditya Sisodiya. I am a senior undergraduate at IIT Guwahati. Pursuing a degree in Chemical Science & Technology and minor in Chemical Engineering. My interest is in designing and developing technology for sustainable future, UX and Visual communication. I believe that designing is perspective and no theory can define it only you can!. In few words, I am Engineer/Designer and I love Dogs.
⚫ Summer Internship
Project: Development of Material Library at IIT GUWAHATI
Guide: Prof. Sharmistha Banerjee
Period: 10th May, 2015 ‐ 29th June, 2015
⚫ Winter Internship
Project: Designer at COVER IT UP!
Guide: Ronak Sarda
Period: 29th Nov, 2014 ‐ 30th Dec, 2014
⚫
Project Title: USID GURUKUL 14 - IIT KANPUR
Project:To redesign health card system in India. Topic: Healthy India (Health of Women and Children in India)
Guide: Prof. Raman Saxena, Visiting Faculty - IIT Kanpur
Period:Virtual Gurukul Dec 8th to Dec 11th
ON-Site Gurukul at IIT Kanpur Dec 15th to Dec 20th2014
⚫
Project Title:HEATING OF OBJECT BY USING RADIATION AND TO STUDY THERMODYNAMICS OF PROCESS
Guide: Prof. Raghvendra Gupta
Period:Vth Sem
| Language | Efficiency |
|---|---|
| C | ★★★ |
| Fortan | ★★★★ |
| HTML CSS | ★★★★★ |
| Software | Efficiency |
|---|---|
| After Effects | ★★★★ |
| Adobe Illustrator | ★★★★ |
| Photoshop | ★★★ |
| Software | Efficiency |
|---|---|
| Cinema 4D | ★★★★ |
| Maya | ★★★ |
| 3DS Max | ★★★ |
| Edge Animate | ★★★ |
| Software | Efficiency |
|---|---|
| CKS | ★★★★★ |
| Unreal Engine 4 | ★★★★ |
| Realflow | ★★★ |
| UDK | ★★★ |
⚫ JEE 13 Advance Rank - 4609 AIR
⚫ Selected for USID-Gurukul 2014, IIT Kanpur
⚫ First Position in Game Development Competition in Kriti'16. Created a FPS shooter game.
⚫ Leader at NSS-IIT Guwahati, July 14-April 15 (10 months)
⚫ Organizer, Technothlon 2014 (Nagpur Division)
⚫ Organizer, Guwahati Half Marathon 2014
⚫ Core Team, Brand Communication and Creatives, Techniche 15 (13 Months)
⚫ Head, Brand Communication and Creatives, Reflux 15 (13 Months)
⚫ Head of Design, National Service Scheme IIT-Guwahati (10 Months)
⚫ Head of Design, Seismech 15 (13 Months)
⚫ Workshop Coordinator, Techniche 14 (12 Months)
⚫ Techniche 14, Creatives Designer (13 Months)
⚫ Drawing
⚫ Gaming
⚫ Designing
⚫ Animation
| Phone Number | +91-0000000000 |
| Email id |<EMAIL_ADDRESS>|
| Languages Known | English, Hindi, Marathi |


Collection module.
MIT. See LICENSE for full details.
A generic first-in-first-out (FIFO) queue implementation.
| T | The type stored in the queue. |
import std.algorithm; import std.string; auto queue = Queue!(string)(8); queue.enqueue("Foo"); queue.enqueue("Bar"); queue.enqueue("Baz"); assert(!queue.empty); assert(queue.count == 3); assert(queue.contains("Bar")); assert(queue.byValue.map!(toLower).array == ["foo", "bar", "baz"]); assert(queue.peek() == "Foo"); assert(queue.dequeue() == "Foo"); assert(queue.dequeue() == "Bar"); queue.clear(); assert(!queue.contains("Baz")); assert(queue.empty); assert(queue.count == 0);
Construct a new queue.
When created, this collection is allocated enough memory for a minimum amount of items. If the collection becomes full, the allocation will double, ad infinitum. If items only occupy half of the collection, the allocation will be halfed. The collection will never shrink below the minimum capacity amount.
| size_t minCapacity | The minimum number of items to allocate space for. The queue will never shrink below this allocation. |
| AssertError | If the minimum allocated size is not big enough for at least one item. |
| OutOfMemoryError | If memory allocation fails. |
Get the number of items stored in the queue.
The number of items stored in the queue.
Test if the queue is empty or not.
true if the queue is empty, false if not.
Add an item to the queue.
This method reallocates and doubles the memory used by the queue if no more items can be stored in available memory.
| T item | The item to push onto the queue. |
| OutOfMemoryError | If memory reallocation fails. |
Return the front item in the queue but don't remove it.
The front item in the queue.
| AssertError | If the queue is empty. |
Remove and return the front item in the queue.
This method reallocates the memory used by the queue, halfing it if half will adequately hold all the items.
The front item in the queue.
| AssertError | If the queue is empty. |
| OutOfMemoryError | If memory reallocation fails. |
Check if a value is contained in the queue.
This is a simple linear search and can take quite some time with large queues.
| T item | The item to find in the queue. |
true if the item is found on the queue, false if not.
Clears the queue.
This method reallocates the memory used by the queue to the minimum size if more is currently allocated.
| OutOfMemoryError | If memory reallocation fails. |
Return a forward range to allow this queue to be used with various other algorithms.
A forward range representing this queue.
import std.algorithm; import std.string; auto queue = Queue!(string)(16); queue.enqueue("Foo"); queue.enqueue("Bar"); queue.enqueue("Baz"); assert(queue.byValue.canFind("Baz")); assert(queue.byValue.map!(toLower).array == ["foo", "bar", "baz"]);
Enable forward iteration in foreach loops.
| int delegate(ref T) nothrow @nogc dg | A delegate that replaces the foreach loop. |
A return value to determine if the loop should continue.
http://ddili.org/ders/d.en/foreach_opapply.html
import std.stdio; auto queue = Queue!(string)(16); queue.enqueue("Foo"); queue.enqueue("Bar"); queue.enqueue("Baz"); foreach (value; queue) { writefln("%s", value); }
Enable forward iteration in foreach loops using an index.
| int delegate(ref size_t, ref T) nothrow @nogc dg | A delegate that replaces the foreach loop. |
A return value to determine if the loop should continue.
http://ddili.org/ders/d.en/foreach_opapply.html
import std.stdio; auto queue = Queue!(string)(16); queue.enqueue("Foo"); queue.enqueue("Bar"); queue.enqueue("Baz"); foreach (index, value; queue) { writefln("%s: %s", index, value); }


{{state}}
As of {{now}}
cryptos
{{cryptosUptime}}% uptime for the last {{RESOLUTION}} hours
{{cryptos}}
currencies
{{currenciesUptime}}% uptime for the last {{RESOLUTION}} hours
{{currencies}}
metals
{{metalsUptime}}% uptime for the last {{RESOLUTION}} hours
{{metals}}
100% uptime
partial degradation
downtime
Historical data
cryptos
{{historyCryptosUptime}}% uptime for the last {{RESOLUTION}} days
{{historyCryptos}}
currencies
{{historyCurrenciesUptime}}% uptime for the last {{RESOLUTION}} days
{{historyCurrencies}}
metals
{{historyMetalsUptime}}% uptime for the last {{RESOLUTION}} days
{{historyMetals}}
Cache status
{{cache}}
Errors
{{errors}}


Let's get ready to work on the team project.
This page has two sections: first time setup and Starting each week.
Make sure you have signed in:
(You only have to do this the first time.)
Our mentors will send you an invitation to join the new project. Check your email for a message from GitHub. You will have to open the email and click a few links to accept the invitation.

1. Go to the list of Girl Code projects at https://github.com/girlcodeakl/
2. Your team's project should be on the list (ask which one it is if we haven't said). Click on the project to go to the project page.
3. Click 'Clone or download', then choose 'Open in desktop' to clone the project using Github Desktop.
This will create a clone (a copy) of the project on your computer. Keep a note of where on your computer it was created!
Not working? If this doesn't work, it usually means you're not logged into your GitHub account on Google Chrome, or in GitHub Desktop (the app on your computer). If it still doesn't work, try restarting Chrome and trying again. If it still doesn't work, ask our mentors for help.
We need to get four tools ready:
Make sure the right respository is selected.
In Github Desktop, click Repository then Open in Terminal (Mac) or Open in Command Prompt (Windows)
This will open a Terminal or Command Prompt window in the right folder.
If the terminal is not in the right folder, you must navigate there using the cd
command. Look at last week's activity if you need a reminder.
If this is the first time, type npm install
into Terminal or Command Prompt and press Enter. This will install dependencies and might take a little while.
Then start the app with this command: node index.js
(then enter)
Your terminal or command prompt should now be busy running the server.
In your web browser, go to http://localhost:3000/ to visit your local server.
It should look a lot like our last project, because we are using the same code as a starting point.
Start VS Code and open the folder that holds your project:
You should see this list of files on the left side:
If you don't see package.json you may have gone too deep and opened a folder inside the main folder.
Here's how your working day goes from now on:
Then you can work on the issue! Make a commit whenever you feel you've completed a step.
When the job is done:
Pick up another ticket and start all over again! Remember to switch back to the master branch, fetch and pull the latest changes, and create a new branch before your next issue.


20 February 1998
Disease Outbreak Reported
As of 16 February, 282 cases with 10 deaths (case fatality rate 3.5%) have been reported, mainly in Moroni (the capital city) and surrounding villages and Mbéni 40 km north of Moroni. Vibrio cholerae O1, El Tor has been confirmed by the national laboratory in Moroni and Institut Pasteur, Paris. Testing for antibiotic susceptibility showed the isolates to be sensitive to doxycycline and tetracycline and resistant to bactrim and choloramphenicol.
WHO has been involved with the national authorities in controlling the outbreak since it was notified on 19 January. A national cholera committee has been established with personnel from the Ministry of Health, other UN agencies and NGOs meeting daily in the WHO office. Activities are directed at improving case management in the national hospital, training of health staff and education of the general public, ensuring safe water, supplies of oral rehydration salts, chlorine and other material. Mobile teams have been employed to provide health education, disseminate information and to disinfect and chlorinate water sources. Teams have visited affected areas to assess the situation and neighbouring islands to initiate outbreak preparedness. A plan for preparedness and control for the coming six months is currently being considered by the national authorities.


Class: Sass::Engine::Line
- Inherits:
-
Struct
- Object
- Struct
- Sass::Engine::Line
- Defined in:
- /usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb
Overview
A line of Sass code.
text
:String
- The text in the line, without any whitespace at the beginning or end.
tabs
:Fixnum
- The level of indentation of the line.
index
:Fixnum
- The line number in the original document.
offset
:Fixnum
- The number of bytes in on the line that the text begins. This ends up being the number of bytes of leading whitespace.
filename
:String
- The name of the file in which this line appeared.
children
:Array<Line>
- The lines nested below this one.
comment_tab_str
:String?
- The prefix indentation for this comment, if it is a comment.
Instance Attribute Summary (collapse)
-
- (Object) children
Returns the value of attribute children.
-
- (Object) comment_tab_str
Returns the value of attribute comment_tab_str.
-
- (Object) filename
Returns the value of attribute filename.
-
- (Object) index
Returns the value of attribute index.
-
- (Object) offset
Returns the value of attribute offset.
-
- (Object) tabs
Returns the value of attribute tabs.
-
- (Object) text
Returns the value of attribute text.
Instance Method Summary (collapse)
Instance Attribute Details
- (Object) children
Returns the value of attribute children
113 114 115 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb', line 113
def children
@children
end
|
- (Object) comment_tab_str
Returns the value of attribute comment_tab_str
113 114 115 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb', line 113
def comment_tab_str
@comment_tab_str
end
|
- (Object) filename
Returns the value of attribute filename
113 114 115 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb', line 113
def filename
@filename
end
|
- (Object) index
Returns the value of attribute index
113 114 115 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb', line 113
def index
@index
end
|
- (Object) offset
Returns the value of attribute offset
113 114 115 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb', line 113
def offset
@offset
end
|
- (Object) tabs
Returns the value of attribute tabs
113 114 115 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb', line 113
def tabs
@tabs
end
|
- (Object) text
Returns the value of attribute text
113 114 115 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb', line 113
def text
@text
end
|
Instance Method Details
- (Boolean) comment?
114 115 116 |
# File '/usr/local/google-old/home/code/sass-site/.sass/lib/sass/engine.rb', line 114
def comment?
text[0] == COMMENT_CHAR && (text[1] == SASS_COMMENT_CHAR || text[1] == CSS_COMMENT_CHAR)
end
|


Billie Eilish, Lizzo, Lil Nas X And More Go Head To Head For Best New Artist Grammy Award
by Charisse Van HornThe 2020 Grammy nominations are here and that includes the nominees for the Best New Artist. There are eight nominees for the coveted award and many of the nominees have already left their mark on popular music culture, an important factor that is taken into consideration when selecting the nominees and ultimately the winners. The nominees for best new artist tend to be people who create such a stir with their music that people can’t deny their impact on the music landscape.
Lil Nas X not only had a top song, but he caused America to examine where race fits in with musical genres such as country and rap. He challenged old stereotypes and with the help of Billy Ray Cyrus, made sure that the established musical genres made room for him.
Lizzo has come on the scene with a message of self-love, self-expression and body positivity. Her music resonates with millions and she has empowered a new generation of women who are pushing through boundaries in a new millennium.
Billie Eilish came out of nowhere delivering authenticity, originality and uniqueness with her musical artistry and has drawn on many different musical genres and has left an indelible mark on the music scene and all before she was 18-years-old. At this point, there is no way to know who will be named Best New Artist.
You may see the full list of the eight nominees for the 62nd Grammy Awards Best New Artist below.
- Billie Eilish
- Lizzo
- Lil Nas X
- Tank and the Bangas
- Yola
- Rosalia
- Black Pumas
- Maggie Rogers
Here is another list from the Recording Academy featuring the nominees.
The 62nd Grammy Awards will take place on January 26, 2020, and fans are thrilled with the nominations. Lizzo, Billie Eilish and Lil Nas X scored the most nominations along with landing the Best New Artist nomination. Their fans have taken to social media networks to offer their congratulations and share their support for their favorite artists.
What do you think about the nominees? Do you agree with the list? Is there another new artist that you think should have been nominated? Who do you think will win the Grammy award for Best New Artist?


You are not eligible for this special offer. You will need to sign up for a subscription below to use the Steamroom. If you have any further questions you can send an email to<EMAIL_ADDRESS>Best,Wall St. Jesus Team


Inheritance mode values are candidate labels based on novocaller, Cmp-Het caller, or GATK genotype assignments.
This case is labeled as proband-only. Since no other family members are in the analysis, most of the traditional inheritance modes can not be assigned. Inheritance modes that can NOT be assigned on this case include:
- de novo calls
- Dominant (Maternal) vs Dominant (Paternal) vs Recessive
- Loss of Heterozygosity
- Phased Compound Heterozygous calls
Variants on the X or Y chromosome are still classified X-linked or Y-linked, even though they can't be called as dominant, recessive, or de novo.
Compound Heterozygous calls:
- Two heterozygous variants are classified as Compound Heterozygous candidates if they are on the same gene.
- Phasing: This case will only have Unphased Compound Heterozygous candidates, as mother and father genotypes are required to classify a variant as Phased ([Mother: 0/1, Father: 0/0, Child 0/1] and [Mother: 0/0, Father: 0/1, Child 0/1] for the pair).
- Variant severity: A variant is considered severe if it has a SpliceAI Delta Score >0.8 (S); a Clinvar interpretation of Pathogenic or Likely Pathogenic (C); or a HIGH or MODERATE Impact rating (Splice acceptor variant, Splice donor variant, Stop gained, Frameshift variant, Stop lost, Start lost, Transcript amplification, Inframe insertion, Inframe deletion, Missense variant, Protein altering variant).
- Pair strength: Compound Heterozygous pairs are classified based on the severity of the two variants (HIGH, MODERATE, S, or C).
- strong pair: both variants are one of (HIGH, MODERATE, S, or C).
- medium pair: one of the variants are one of (HIGH, MODERATE, S, or C).
- weak pair: neither of the variants are (HIGH, MODERATE, S, or C).
- See Documentation for Details.
Low relevance:
- Variants on multiallelic sites (e.g. G, T, A in different individuals) are not assigned inheritance mode values, except possibly compound heterozygous.
- Variants with missing calls (./.) or calls that mismatch the sex (0/1 on chrX for a male) are not assigned inheritance mode values.
- Variants with genotypes that do not meet any of the high relevant criteria above are not assigned GATK-based labels.
Ambiguous:
If a sample is submitted to CGAP with the sex indicated as "U" or "Unknown", then autosome inheritance modes and genotypes are calculated normally but sex-linked inheritance modes and genotypes cannot be properly determined. These will be marked "Ambiguous".


{% extends 'base.html' %} {% block body %}
Cambodia |
Ucraina vs England
VS15 September 2019
|
Qatar |
Australia |
Ucraina vs England
VS15 September 2019
|
Iraq |
Ucraina |
Ucraina vs England
VS15 September 2019
|
Jordan |
Darussalam |
Ucraina vs England
1 : 215 September 2019
|
Ucraina |
Japan |
Ucraina vs England
1 : 215 September 2019
|
Philippines |
Kyrgyz |
Ucraina vs England
1 : 215 September 2019
|
Pakistan |
It’s that time again when people start thinking about their New Years Resolutions. Usually they involve, losing weight, quitting smoking, and joining a gym, just to mention a few.
| Pos | Team | P | W | L | PTS |
|---|---|---|---|---|---|
| 1 | Afghanis | 22 | 2 | 5 | 72 |
| 2 | Australia | 20 | 3 | 4 | 71 |
| 3 | Qatar | 18 | 4 | 4 | 68 |
| 4 | Cambodia | 17 | 2 | 7 | 64 |
| 5 | Uzbekistan | 17 | 2 | 6 | 60 |
| 6 | Turkme | 161 | 1 | 8 | 57 |
| 7 | Sri Lanka | 15 | 4 | 8 | 52 |
| 8 | Myanmar | 14 | 3 | 7 | 48 |


If your browser does not trigger HTML5 validation for all fields, try using Google Chrome.
E-mail (Type a valid e-mail)
Not a valid e-mail
Code (Type between 5 and 10 chars)
Not between 5 and 10 chars
Age (Type a number between 18 and 100)
Not a number between 18 and 100
Mark (Type a number between 0 and 10)
Not a number between 0 and 10
Personal Web Page (Type a valid URL)
Not a valid URL
Fall enroll price (Type a number between 0 and 999 with a maximum of 2 decimals)
Not a number between 0 and 999 with a maximum of 2 decimals
Phone number (Type a phone number formatted like ###-######)
Not a phone number format (###-######)


Ms. Anita Obadan Tenders Board, Indepedent National electoral Commission Lagos, Nigeria. Dear Friend, I guess this letter may come to you as surprise since I had no previous correspondence with you. I am the Secretary, tenders board of independent national Electoral commission (INEC). I got your contact in my Search for a reliable person handle a very confidential Transaction involving the transfer of US$16.5 million. The above fund is not connected with arms, drugs or Money laundering. It is the product of an over invoiced Contract awarded in 2001 by INEC to a foreign company for the construction of high rise estate in the federal capital territory. The contract has long been executed and payment of The actual contract amount has been paid to the Foreign contractor leaving the balance, which my colleagues and I now want to transfer out of Nigeria into a reliable foreign account for our personal use. As civil servants we are not allowed to run foreign accounts. Hence we have chosen to front and support you as the Beneficiary to be paid. If you are interested in the proposal contact the Chairman of the board Dr. Akinade Williams on<EMAIL_ADDRESS>with the subject: (ANITA'S CONTACT) with your letter of acceptance along with your Direct telephone and fax numbers.If you use this subject, he will know that you are responding to the proposal that I sent to you. we have decided to share The money in the following percentage, 60% for us 30% for you The account owner and 10% for all local and international Expenses that may arise in the course of this transaction. Further details about this transaction will be discussed in the subsequent correspondence. Note also that the particular nature of Your business is irrelevant to this transaction and all local contacts and arrangements are in place For a smooth and successful conclusion of this transaction. Be informed that we are aware of the way email proposals of this type are being sent from this part of africa and as regards that,you should please treat this with utmost attention knowing fully well that you cannot and will not be compelled to assist us if you are not disposed to. Contact me, or the Chairman via email with your contact telephone and fax Numbers, so that he can call you for a discussion. Thank you as i await your response. Sincerely, Ms. Anita Obadan


In this chapter you may find some interesting information about using the persistent logging writer.
Below can be found a fully qualified example of how to use the persistent logger settings. You may recognize that the logging type, the time format, the part split as well as the filename have been changed.
using Plexdata.LogWriter.Abstraction;
using Plexdata.LogWriter.Definitions;
using Plexdata.LogWriter.Extensions;
using Plexdata.LogWriter.Logging;
using Plexdata.LogWriter.Settings;
using System;
namespace PersistentLoggerExample
{
class Program
{
static void Main(String[] args)
{
IPersistentLoggerSettings settings = new PersistentLoggerSettings
{
LogLevel = LogLevel.Trace,
LogType = LogType.Csv,
LogTime = LogTime.Utc,
TimeFormat = "G",
PartSplit = '|',
Filename = @"C:\temp\logging\test.log"
};
ILogger logger = new PersistentLogger(settings);
logger.Trace("Trace...");
logger.Debug("Debug...");
logger.Verbose("Verbose...");
logger.Message("Message...");
logger.Warning("Warning...");
logger.Error("Error...");
logger.Fatal("Fatal...");
logger.Critical("Critical...");
}
}
}
With the above settings in mind the message output of the persistent logger would look like as shown as follows.
358412C7-9791-4D9A-8217-4FC7EA5B9DED|23.05.2021 17:23:05|TRACE|||Trace...||
38D72C1A-0DC7-4A37-ABF3-7FCED3124557|23.05.2021 17:23:05|DEBUG|||Debug...||
6DD7E64F-32B6-4103-AF7F-4CC7F75FFE9D|23.05.2021 17:23:05|VERBOSE|||Verbose...||
4347EE19-2447-46E8-8E27-C0E1662CD552|23.05.2021 17:23:05|MESSAGE|||Message...||
71E6821D-69B9-499B-9D3A-ED9C97FE34BF|23.05.2021 17:23:05|WARNING|||Warning...||
FD76FDC9-93A1-4EF4-917B-556401FD290B|23.05.2021 17:23:05|ERROR|||Error...||
782F6979-BEE9-4ADD-9DFE-F3E1FAB35BDA|23.05.2021 17:23:05|FATAL|||Fatal...||
B2DEB532-159A-4F29-BFFE-FA2D44D219E8|23.05.2021 17:23:05|CRITICAL|||Critical...||
Attention: Please be aware, property Filename
of the persistent logger settings is actually
the most important value. This is because of two reasons. The first and obvious reason, no logging file no logging
message output. The second and much more important reason, the executing process must have write permission to that
directory. Otherwise exceptions are thrown and the process will not execute.
The dependency injection of the persistent logger works pretty much the same way as it works for the console logger. Therefore, an explicit explanation does not really be useful right here.
But here you can download the complete .NET Core example project. And here you can download the complete ASP.NET Core example project.
Last but not least, a fully qualified configuration example as JSON can be seen here.
{
"Plexdata": {
"LogWriter": {
"Settings": {
"LogLevel": "Trace",
"LogTime": "Utc",
"LogType": "Csv",
"ShowTime": true,
"PartSplit": "|",
"TimeFormat": "s",
"FullName": false,
"Culture": "en-US",
"Filename": "C:\\temp\\logging\\test.log",
"IsRolling": false,
"IsQueuing": true,
"Threshold": 1024,
"Encoding": "utf-8"
}
}
}
}


Have the Perfect Vacation
For those seeking meeting or event space in Atlantis , our hotel also offers a wide array of venue options, plus dynamic catering services.
Come discover Portugal from the inviting comfort of Atlantis Hotel — we look forward to your visit.


K. ANAKIN You okay? PADME (nods, gasping) Sure! Well, sort of. ANAKIN Jump!!! The NEXU springs. PADME leaps from the top of the post to land on the REEK in front of ANAKIN. He hauls her upright. The REEK charges away, around the arena. The NEXU bounds after it. The REEK passes the wounded ACKLAY. The NEXU smells the blood and turns aside to attack the ACKLAY. The TWO MONSTERS fight. The crowd GROANS and BOOS. In the archducal box, NUTE GUNRAY turns angrily to COUNT DOOKU. NUTE GUNRAY This isn't how it's supposed to be!  COUNT DOOKU motions for the bounty hunter to stay put. BOBA FETT is enjoying the spectacle.  Maybe this is the way it's supposed to end. OBI-WAN runs and jumps on the back of the REEK behind ANAKIN. Across the arena, the NEXU, having chewed up the ACKLAY, starts to advance toward them. INT. COCKPIT, NABOO STARSHIP - DAY ARTOO BEEPS C-3PO Yes, it has been rather a long time. Do you suppose something's happened to them? ARTOO BEEPS and WHISTLES. C-3PO (continuing) Danger? Oh no, I shouldn't think so. It looks a very dull planet to me. They should be back shortly. Just stop worrying, Artoo. EXT. GEONOSIS, EXECUTION ARENA - DAY In the archducal box, amid the uproar, COUNT DOOKU feels a tap on his shoulder. He turns to see MACE WINDU standing behind him. COUNT DOOKU masks his surprise elegantly as he surveys the arena and sees JEDI KNIGHTS standing at every entrance and exit. COUNT DOOKU Master Windu, how pleasant of you to join us. You're just in time for the moment of truth. I would think these two new boys of yours could use a little more training. MACE WINDU Sorry to disappoint you, Dooku. This party's over. MACE WINDU signals, and at strategic places around the arena there are sudden flashes of light as about ONE HUNDRED JEDI switch on their lightsabers. The crowd is suddenly silent. COUNT DOOKU'S lips curl in slight amusement. COUNT DOOKU (to Mace Windu) Brave, but stupid, my old Jedi friend. You're impossibly outnumbered. MACE WINDU I don't think so. One Jedi has to be worth a hundred Geonosians. COUNT DOOKU looks around the great theater. His smile grows. COUNT DOOKU It wasn't the Geonosians I was thinking about. How well do you think one Jedi will hold up against a thousand battle droids? COUNT DOOKU signals. THOUSANDS OF DROIDS start to pour into all parts of the arena. MACE WINDU draws his lightsaber, JANGO FETT draws his guns and fires at MACE WINDU, who deflects the shots. JANGO FETT and MACE WINDU jump into the arena, where they fight. BOBA FETT watches his Dad and the Jedi Master fight. The battle begins. GEONOSIANS fly away everywhere. DROIDS fire at JEDI, who deflect the bolts and cult down the DROIDS. The GEONOSIAN TROOPS fire ray guns that are more difficult for the JEDI to deflect. The REEK and the NEXU are spooked by the battle. The REEK bucks the riders off its back and stampedes around the arena, trampling DROIDS and JEDI that have moved into its path. PADME picks up a discarded pistol and joins the fight. SEVERAL JEDI run to the center of the arena and toss lightsabers to OBI-WAN and ANAKIN. Among the crowd, JEDI cut down swaths of GEONOSIANS and DROIDS. On the sand, JEDI fight, attacking DROIDS. OBI-WAN and ANAKIN swing their lightsabers, cutting DROIDS in half. PADME blasts away at DROIDS and GEONOSIANS. INT. COCKPIT, NABOO STARSHIP ARTOO whistles. C-3PO I don't hear anything. (Artoo beeps) You're scaring me! Stop imagining things! EXT. GEONOSIS, EXECUTION ARENA - DAY Among the tiers, JEDI are slowly being driven back. They have killed heaps of GEONOSIANS and have knocked out piles of DROIDS, but sheer numbers are telling. Individual JEDI are being cut down or blasted/ The rest are retreating into the arena. ANAKIN and PADME are back-to-back, fighting DROIDS and flying GEONOSIANS. MACE WINDU fights fiercely with JANGO FETT. Finally, the bounty hunter falls. His helmet goes flying, bouncing down the steps, tumbling and rolling, kicked here and there by random feet. The bounty hunter's body falls to the ground. MACE WINDU runs to the center of the arena and fights back-to-back with OBI-WAN, as they swipe and mangle DROIDS. OBI-WAN Someone's got to - shut down - these droids. MACE WINDU Don't worry! It's being - taken care of! EXT. GEONOSIS, FEDERATION STARSHIP - DAY KI-ADI-MUNDI leads a raiding party of about TWENTY JEDI through the lines of parked Battle Starships. They cut a swath through masses of DROIDS until they arrive at the Command Starship. Some JEDI fall. The rest cut their way up the ramps and into the Command Ship. INT. COMMAND FEDERATION STARSHIP, CORRIDORS - DAY KI-ADI-MUNDI and teh surviving JEDI fight their way through the corridors of the Command Ship, deflecting laser bolts, slicing DROIDS. INT. COMMAND FEDERATION STARSHIP, CONTROL BRIDGE - DAY THEY burst onto the bridge and chop down the COMMAND DROIDS. The NEIMOIDIANS flee in all directions. KE-ADI-MUNDI leans over the control panel. He locates the illuminated master switch and punches down on it. It goes dark. Instantly, all the DROIDS on the Starship and all the DROIDS in the arena FREEZE! There is a moment of stunned silence, then the JEDI CHEER. One the bridge, PLO KOON claps KI-ADI-MUNDI on the back. PLO KOON We've done it! Now we have a chance! Suddenly, there is a harsh BEEPING SOUND. All the DROIDS on the Starship and all the DROIDS in the arena start fighting again! KI-ADI-MUNDI stares in disbelief and dismay. KI-ADI-MUNDI The system's off but they're still active. That's a new feature. They are independent of the control system. EXT. GEONOSIS, EXECUTION ARENA - DAY MACE WINDU, OBI-WAN, ANAKIN, PADME and an exhausted group of about TWENTY JEDI stand in the center of the arena surrounded by a ring of BATTLE DROIDS. The bloodied sand around them is strewn with the bodies of DEAD GEONOSIANS, SHATTERED DROIDS and JEDI. At the foot of some steps, BOBA FETT finds his father's battered helmet. He picks it up. KI-ADI-MUNDI and the SURVIVORS from the raiding party are herded into the arena by SUPERDROIDS. From the encircling tiers above, THOUSANDS OF BATTLE DROIDS level their weapons menacingly. In the archducal box, COUNT DOOKU lifts his hand. The DROIDS lower their weapons. The COUNT calls out to the JEDI. COUNT DOOKU Master Windu! Silence. COUNT DOOKU (continuing) You have fought gallantly. Worthy of recognition in the history archives of the Jedi Order. Now it is finished. (pauses briefly) Surrender - and your lives will be spared. MACE WINDU We will not be hostages for you to barter with Dooku. COUNT DOOKU Then, I'm sorry, old friend. You will have to be destroyed. The DROIDS raise their weapons. ANAKIN and PADME clasps hands tightly. COUNT DOOKU raises his hand to give the order to fire. PADME looks up suddenly and whispers to ANAKIN. PADME Look! Above, sixGunships are descending fast through the open area in the arena ceiling. They land in a cluster around the handful of JEDI. CLONE TROOPERS spill out and start firing at the DROIDS. There is shellstorm of laserfire that bounces off the laser shields created by the Gunships. YODA appears at the door of one of the Gunships. YODA Come on - hurry! Hurry! The SURVIVING JEDI dash to the Gunships and scramble in. MACE WINDU hangs on tight as the Gunship, firing all its weapons, rises out of the arena up and over the topmost rim. EXT. GEONOSIS, TERRAIN OUTSIDE EXECUTION ARENA - DAY The massed lines of parked Federation Starships and the DROIDS surrounding the arena, are themselves surrounded by thousands of Republic Starships, disgorging TENS OF THOUSANDS OF CLONE TROOPERS. Beyond, more Republic Starships are landing and spewing out troops. INT. GUNSHIP NUMBER ONE - DAY MACE WINDU stares at the incredible sight. YODA More battalions to the left. Encircle them we must, then divide. The CLONE TROOPERS open fire with artillery. EXPLOSIONS wreck the parked Battle Starships. CLONE TROOPERS advance, firing at the massed DROIDS. FIGHTER DROIDS fly overhead, exchanging fire with the Gunships and JEDI fighters. INT. COCKPIT, NABOO STARSHIP - DAY THREEPIO and ARTOO see flashes outside of the ship, exploding everywhere. C-3PO I'm sure I heard something, this time. Didn't you? It's probably just a celebration ARTOO lets out an EXHAUSTED BLEEP. EXT. BATTLEFIELD, GEONOSIS LANDSCAPE - DAY Gunship #2 skims the battlefield, firing down, deflecting answering fire from the droids. INT. GUNSHIP NUMBER TWO - DAY OBI-WAN, ANAKIN and PADME are at the open sides of the Gunship. CLONES fire down at the DROIDS below. The Gunship slows, circling over a droid gun-emplacement. It blasts it, but suddenly the Gunship is rocked by a near miss. It lurches violently. OBI-WAN Hold on! Look over there... Through the other side of the Gunship, they see a Geonosian Speeder racing past. In the open cockpit is the unmistakable figure of COUNT DOOKU. ANAKIN It's Dooku, go after him! The PILOT starts to comply, but... there is a HUGE BLASTS, the ship lurches on its side, and PADME tumbles out. ANAKIN (continuing) Padme!!! ANAKIN stares down in horror as PADME hits thr ground below. ANAKIN (continuing; to pilot) Put the ship down! Down! OBI-WAN No! Forget her. We have to go after Dooku. ANAKIN No we're not!! Land this ship! OBI-WAN Don't let your personal feelings get in the way. We've got a job to do. Below, PADME hauls herself to her feet and waves for them to go after DOOKU. ANAKIN I don't care!.. Go back. OBI-WAN Anakin! She's all right! Look. ANAKIN stares out to see PADME rescued by CLONE TROOPERS. OBI-WAN (continuing) Follow that speeder! On the ground, PADME looks up at Gunship #2 as it speeds away after Count Dooku. OBI-WAN and ANAKIN follow the speeder to a Geonosian tower. The speeder descends rapidly; the Gunship follows. Count Dooku's speeder parks outside the tower; the Gunship parks next to it. OBI-WAN and ANAKIN leap down and run inside the tower. INT. GEONOSIS, SECRET HANGER TOWER - LATE DAY COUNT DOOKU throws switches on a control panel. His Interstellar Sail Ship is guarded by a SQUAD OF SUPER BATTLE DROIDS. The doors of the exit-port slide open. DROID CAPTAIN Your Excellency! COUNT DOOKU turns as OBI-WAN and ANAKIN run in through the hanger doors. They draw their lightsabers. The DROIDS raise their weapons. COUNT DOOKU That won't be necessary, Captain. Stand down. And leave them to me. The DROIDS lower their weapons and back off to the walls. COUNT DOOKU looks at OBI-WAN and ANAKIN with slight amusement. OBI-WAN (to Anakin) We move in together - you slowly on the... ANAKIN I'm taking him now! OBI-WAN Anakin, no! ANAKIN You'll pay for all the Jedi you've killed today, Dooku. ANAKIN charges across the open space at COUNT DOOKU, who smiles faintly, watching him come. ANAKIN raises his lightsaber. At the last moment, COUNT DOOKU thrusts out an arm, and ANAKIN is lifted up, hurled across the room, and slammed into the opposite wall. He slumps to the foot of the wall, semi-conscious. COUNT DOOKU moves toward OBI-WAN COUNT DOOKU Kenobi, isn't it? As you can see, my Jedi powers are far beyond yours. Now, back down. OBI-WAN I don't think so. OBI-WAN lifts his lightsaber. COUNT DOOKU smiles. COUNT DOOKU Ah, but if I must. COUNT DOOKU draws his lightsaber. He and OBI-WAN start to circle each other. COUNT DOOKU (continuing) I have spent the last ten years learning to use the power of the Dark Side. It gives me infinitely greater power. OBI-WAN You will have to prove it. OBI-WAN comes in fast, swinging at COUNT DOOKU'S head. DOOKU parries the cut easily. As they fight, it quickly becomes clear that DOOKU is the complete swordsman - elegant, graceful, classical - a master of the old style. COUNT DOOKU Grand Master Kenobi, you disappoint me. Yoda holds you in such high esteem. COUNT DOOKU parried another cut. COUNT DOOKU (continuing) Surely you can do better...? (parries) No, I'm surprised. Has Jedi swordsmanship degenerated so quickly, or are you trying to make fun of me? (cuts) Which is it? COUNT DOOKU thrusts. OBI-WAN steps back quickly, panting for breath. COUNT DOOKU (continuing) come, come, Master Kenobi. Put me out of my misery. OBI-WAN takes a deep breath, gets a fresh grip on his lightsaber and comes in again. For a moment, he drives COUNT DOOKU back. Then Dooku's superior skill begins to tell again, and he forces OBI-WAN to retreat. COUNT DOOKU increases the tempo of his attack. OBI-WAN is pushed to the limit to defend himself. DOOKU presses. His lightsaber flashes. OBI-WAN is wounded in the shoulder, then the thigh. He stumbles back against the wall, trips, and falls. His lightsaber goes skittering across the floor. COUNT DOOKU raises his lightsaber. OBI-WAN looks up helplessly. Dooku's lightsaber flashes down and CLASHES against - Anakin's lightsaber! COUNT DOOKU and ANAKIN stare eyeball to eyeball. COUNT DOOKU (continuing) That's brave of you, boy - but foolish. I would have thought you'd have learnt your lesson. ANAKIN I'm a slow learner. And ANAKIN charges at COUNT DOOKU. The force of his attack catches the Count slightly off balance. Anakin's lightsaber flashes. COUNT DOOKU draws back, putting a hand to his arm. He takes the hand away and looks at the smear of blood whee Anakin has nicked him. COUNT DOOKU You have unusual powers, young Padawan. But not enough to save you this time. ANAKIN Don't bet on it! OBI-WAN Anakin! OBI-WAN uses the Force to catch his lightsaber and he tosses it to ANAKIN. With TWO LIGHTSABERS, ANAKIN attacks. COUNT DOOKU parries and ripostes. It is no contest. ANAKIN is driven back against the wall. He loses one lightsaber. Finally COUNT DOOKU, in one flashing move, sends Anakin's arm, cut at the elbow, flying still gripping his lightsaber. ANAKIN drops to the ground in agony. COUNT DOOKU draws himself up to deliver the coup de grace. Suddenly, the great doors slide open. The DROIDS turn fast, raising their weapons. Through the thick smoke, emerges the heroic figure of YODA. He stops on the smoke-filled threshold, FOUR DROIDS lined up on either side of him, guns pointed. Before the DROIDS can get off a shot, YODA raises his hand, and the DROIDS are flung against the far walls and crash to the floor in heaps of smoking metal. Silence. COUNT DOOKU steps away from ANAKIN to face the Jedi Grand Master. His lightsaber whirls in a formal salute. COUNT DOOKU Master Yoda. At last we shall know who is the most powerful. YODA draws a miniature lightsaber out of his cane. He salutes formally. YODA Count Dooku. No interest in contests, do I have. COUNT DOOKU charges across the space at YODA. He rains down blows upon the tiny figure. YODA doesn't budge an inch. For the first part of the contest, he parries every cut and thrust that Dooku aims. Nothing the great swordsman tries gets through. His energy drains. His strokes become feebler, slower. YODA attacks! He flies forward. COUNT DOOKU is forced to retreat. Words are insufficient to describe the range and skill of Yoda's speed and swordplay. His lightsaber his a humming blur of light. Count Dooku's lightsaber is sent cartwheeling from his hand. He staggers back, gasping and spent, against the control panel. YODA jumps onto DOOKU'S shoulders, and is about to drive the lightsaber into the top of the Count's head. YODA (continuing) The end for you, Count, this is. COUNT DOOKU ...Not yet... COUNT DOOKU raises his arms and knocks YODA off his shoulders and then, with all his might, he uses the Force to pull on one of the cranes in the hanger. It comes crashing down on OBI-WAN and ANAKIN. But in the blink of and eye, YODA is under the crane, holding it up, using the Force. YODA closes his eyes and concentrates. ANAKIN is unconscious, and OBI-WAN tries to get out from under the crane. The fallen crane trembles and starts to life. Behind it, the sound of the Sail Ship's engines are heard starting up. YODA concentrates harder. Slowly, the crane rises. The SOUND OF THE ENGINES increases. YODA exerts every scrap of his powers. The crane lifts clear of ANAKIN and is thrown to the ground. DOOKU'S Sail Ship takes off. OBI-WAN and ANAKIN struggle to the exhausted YODA, but it's too late. The Sail Ship rises into the air and flies away. PADMÉ and a CLONE CAPTAIN with about TEN TROOPERS appear in the doorway. PADMÉ Anakin! PADMÉ runs too him and throws her arms around him. ANAKIN is barely able to stand up. The CLONE CAPTAIN marches up to YODA, stops, and salutes smartly. CLONE CAPTAIN Resistance is at an end, General. What are your orders ? YODA looks at him and sighs. EXT. CORUSCANT, OLD TOWN - DAWN COUNT DOOKU'S Interstellar Sail Ship glides through a deserted, burned-out part of Coruscant. COUNT DOOKU manoeuvres the ship into one of the empty buildings and lands. INT. CORUSCANT, SECRET LANDING PLATFORM - DAWN The ramp lowers. COUNT DOOKU emerges and walks to where the hooded figure of DARTH SIDIOUS stands waiting. COUNT DOOKU bows. COUNT DOOKU The Force is with us, my Master. DARTH SIDIOUS Welcome home, Lord Tyranus. You have done well. COUNT DOOKU I bring you good news, my Lord. The war has begun. DARTH SIDIOUS Excellent. (smiling) Everything is going as planned. EXT. CORUSCANT, JEDI TEMPLE - SUNSET The beautiful temple basks in the red glow of the setting sun. INT. JEDI TEMPLE, COUNCIL CHAMBER - SUNSET MACE WINDU Where is your apprentice? OBI-WAN On his way back to Naboo. He is escorting Senator Amidala home. They are standing, looking out through the tall windows at the great plaza below. YODA sits in his chair. OBI-WAN (continuing) I must admit without the clones, it would not have been a victory. YODA Victory? Victory, you say? OBI-WAN turns and looks at the sad little Jedi sitting in the Council Chamber. Apart from KI-ADI-MUNDI and PLO KOON, who is wounded, the Chamber is empty. YODA (continuing) Not victory, a defeat, it was... Master Obi-Wan. Begun, the Clone War has! EXT. NABOO LAKE RETREAT, LODGE, GARDEN - LATE DAY In a rose-covered arbor overlooking the sparkling late, ANAKIN and PADME stand before a NABOO HOLY MAN. THREEPIO and ARTOO stand by, watching, as the HOLY MAN blesses the happy couple and, amid gently falling rose petals, ANAKIN and PADME kiss. EXT. CORUSCANT, MILITARY STAGING AREA, BALCONY - LATE DAY PALPATINE, JAR JAR, BAIL ORGANA and the OTHER SENATORS, with TWO ROYAL GUARDS, stand looking down at the square below. TENS OF THOUSANDS OF CLONE TROOPS are drawn up in a strict formation or move forwards in near files to climb the ramps of the Military Assault Ships. On the balcony, PALPATINE'S expression is deeply sad. Everyone watches comberly as, in the square, loaded Assault Ships take off. Other land immediately in their place. The sky above is thick with transports. CLONE TROOPS march and board the Ships. The Great Clone War has begun... |


root populations plant population biomass local Sandberg cultivar bluegrass traits native squirreltail study greater restoration Ecol. Plant cultivars species length plants shoot Figure different perennial morphological leaf bunchgrasses greenhouse soil Mountain Valley concentration functional Great Jam Sonoma St. {border-style Bottlebrush Table reported Basin Button Creek average detergent grasses px;} relative #ffffff;} George Grass Home SEM longer (LP), Parsons Point Restor. forage height length, seed trend Elymus Toe concentrations inflorescence nitrogen study, However, T.A. United collected dry leaves nutritive similar using ADF Johnson Poa USA ability acid ecosystems elymoides results secunda sourced variation Manag. Panther Western adult carbon cm) content effect source used value Further, Jones Root Squirreltail Vale conditions difference ecosystem g/kg grass populations. study. ./j.-X...x Appl. NDF Range belowground did ecological growth lower production seedling stage tended (CV), D.A. Hanford RSBR States Traits University aboveground contrast differences duration evaluated fiber g/kg) height, matter populations, px; steppe water {font-family E.A. Leger Nevada Nevada, Plants Sci. Winnemucca communities compared composition cultivated diameter effects font-size grazing indicates invasive light significant tillers traits, understanding > .). ./rec. Bluegrass Evol. M.E. annual associated bunchgrass chemical collection digestibility double; environmental example, field g/plant) grassland important indicate linked loam mass neutral number population, range total wild wildland < (Toe Cultivar Environ. Forage Ganskopp IVTD Intermountain June M.C. Monaco NV- Presl) Reno, S.R. Seed States. USA. Wildland allocation approach ash, biomass, border-color border-width cheatgrass climate competition cultivar. degraded differ distinct diversity following hypothesis livestock materials means measured nutrient observed performance photosynthetic pot quality ratio relation released root-to-shoot roots sagebrush seedlings selection size solid; squirreltail, success valuable variations wildlife {font-style {font-weight (CV) (CV). (George (LP) (SEM ./-. ./j.-...x ./s--- .ab A.M. ADL Baer Belnap Bromus CV; Crop D.S. Effects Inc. J.J. Jensen K.M. LP; Leaf Mean North Nutritive Pertaining R.L. R.P. Restoration S.L. SAS Sanberg Swezey) Therefore, Vale) Van accessions acres) advantage analyzed assemblages association biological bold cm). competitive considered correlation courier; determine dominant drought em; environment. experimental feed fiber, generally gram grams grasslands growing habitats invasion key lasted lignin locally management period. positive possibly potential pots productivity protein pt;} ranged response restoration: samples services sites stability survive systems temperature therefore, thus, tiller trait tree trends value, varieties vegetative versus vitro volume weight


001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, 013 * software distributed under the License is distributed on an 014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 015 * KIND, either express or implied. See the License for the 016 * specific language governing permissions and limitations 017 * under the License. 018 */ 019 package org.apache.commons.compress.archivers; 020 021 import java.io.File; 022 import java.io.IOException; 023 import java.io.OutputStream; 024 025 /** 026 * Archive output stream implementations are expected to override the 027 * {@link #write(byte[], int, int)} method to improve performance. 028 * They should also override {@link #close()} to ensure that any necessary 029 * trailers are added. 030 * 031 *
 032 * The normal sequence of calls for working with ArchiveOutputStreams is: 033 * + create ArchiveOutputStream object 034 * + write SFX header (optional, Zip only) 035 * + repeat as needed: 036 * - putArchiveEntry() (writes entry header) 037 * - write() (writes entry data) 038 * - closeArchiveEntry() (closes entry) 039 * + finish() (ends the addition of entries) 040 * + write additional data if format supports it (optional) 041 * + close() 042 *
 043 * 044 *
 045 * Example usage:
 046 * TBA 047 *
 048 */ 049 public abstract class ArchiveOutputStream extends OutputStream { 050 051 /** Temporary buffer used for the {@link #write(int)} method */ 052 private final byte[] oneByte = new byte[1]; 053 static final int BYTE_MASK = 0xFF; 054 055 /** holds the number of bytes written to this stream */ 056 private long bytesWritten = 0; 057 // Methods specific to ArchiveOutputStream 058 059 /** 060 * Writes the headers for an archive entry to the output stream. 061 * The caller must then write the content to the stream and call 062 * {@link #closeArchiveEntry()} to complete the process. 063 * 064 * @param entry describes the entry 065 * @throws IOException 066 */ 067 public abstract void putArchiveEntry(ArchiveEntry entry) throws IOException; 068 069 /** 070 * Closes the archive entry, writing any trailer information that may 071 * be required. 072 * @throws IOException 073 */ 074 public abstract void closeArchiveEntry() throws IOException; 075 076 /** 077 * Finishes the addition of entries to this stream, without closing it. 078 * Additional data can be written, if the format supports it. 079 * 080 * The finish() method throws an Exception if the user forgets to close the entry 081 * . 082 * @throws IOException 083 */ 084 public abstract void finish() throws IOException; 085 086 /** 087 * Create an archive entry using the inputFile and entryName provided. 088 * 089 * @param inputFile 090 * @param entryName 091 * @return the ArchiveEntry set up with details from the file 092 * 093 * @throws IOException 094 */ 095 public abstract ArchiveEntry createArchiveEntry(File inputFile, String entryName) throws IOException; 096 097 // Generic implementations of OutputStream methods that may be useful to sub-classes 098 099 /** 100 * Writes a byte to the current archive entry. 101 * 102 * This method simply calls write( byte[], 0, 1 ). 103 * 104 * MUST be overridden if the {@link #write(byte[], int, int)} method 105 * is not overridden; may be overridden otherwise. 106 * 107 * @param b The byte to be written. 108 * @throws IOException on error 109 */ 110 @Override 111 public void write(int b) throws IOException { 112 oneByte[0] = (byte) (b & BYTE_MASK); 113 write(oneByte, 0, 1); 114 } 115 116 /** 117 * Increments the counter of already written bytes. 118 * Doesn't increment if the EOF has been hit (read == -1) 119 * 120 * @param written the number of bytes written 121 */ 122 protected void count(int written) { 123 count((long) written); 124 } 125 126 /** 127 * Increments the counter of already written bytes. 128 * Doesn't increment if the EOF has been hit (read == -1) 129 * 130 * @param written the number of bytes written 131 * @since 1.1 132 */ 133 protected void count(long written) { 134 if (written != -1) { 135 bytesWritten = bytesWritten + written; 136 } 137 } 138 139 /** 140 * Returns the current number of bytes written to this stream. 141 * @return the number of written bytes 142 * @deprecated this method may yield wrong results for large 143 * archives, use #getBytesWritten instead 144 */ 145 @Deprecated 146 public int getCount() { 147 return (int) bytesWritten; 148 } 149 150 /** 151 * Returns the current number of bytes written to this stream. 152 * @return the number of written bytes 153 * @since 1.1 154 */ 155 public long getBytesWritten() { 156 return bytesWritten; 157 } 158 159 /** 160 * Whether this stream is able to write the given entry. 161 * 162 *
Some archive formats support variants or details that are 163 * not supported (yet).
 164 * 165 *
This implementation always returns true. 166 * @since 1.1 167 */ 168 public boolean canWriteEntryData(ArchiveEntry ae) { 169 return true; 170 } 171 }


When you work with us,you are part of a team of commited collaborators, All aspects of our software development process are intergrated,interactive and agile.
Our approach unifies design,development and product management to create exceptional products.
We start each project by understanding your business goals,the user's needs and the product requirements.
Then we help translate them into effective and elegant solutions.
Before we sign a contract or write a line of code our team will spend the necessary time to understand your products vision.
The outcome of this scoping session is a proposal or high level statement of work.
Based on your requirements,we can provide a complete offering or just the pieces you need.
Our design practices offers a full range of services including brand strategy,interaction and visual design and user experience testing. Throughout your project our designers create and implement visual design and workflows,solicit user feedback and work with you to make sure what gets built is what is needed.
All engineers are fluent in the latest enterprise,mobile and web development technologies. They collaborate with your team to write and improve code on a daily basis,using proven practices such as test driven development and pair programming.
Planning and development is iterative.Because we are always constantly coding and testing,the products we build are always ready to go live. This iterative process allows for changes as business requirements evolve.


Lanao Sur mayor survives ambush
ILIGAN CITY — The convoy of the town mayor of Masiu, Lanao del Sur was ambushed by still unidentified gunmen, around 10 a.m. yesterday in Barangay Gata, Buadipuso Buntong town.
Col. Madzgani Mukaram, chief of Provincial Police Office in Lanao del Sur, said Mayor Nasser Pangandaman Jr., was on the way to his office from Marawi City when gunmen armed with high-powered firearms waylaid his convoy.
Pangandaman and his escorts cheated death but his police escort, Cpl. Jabbar Romato Pangandaman and two other civilian companions, Jamal Gabriel Pangandaman and Casanoding Mangandog onboard the other vehicle were injured.
Mukaram said Pangandaman sustained gunshot wounds in his abdomen, Jamal in his right knee and Mangandog in his buttocks.
They are now in stable condition at the Amai Pakpak Medical Center.
Lt. Col. Edgar Allan Villanueva, commander of the Army’s 49th Infantry Battalion (49IB), said Pangandaman was scheduled to preside the regular meeting of his Municipal Peace and Order Council at 10 a.m.
Masiu town is under the area of operation (AOR) of the 49IB while Buadiposo Buntong, where the ambush happened, is under the AOR of the 82nd Infantry Battalion (82IB).
Buadipos Buntong is around 10 kilometers away from Masiu.
“Our police and Army troopers under the 82IB are now scouring the area for the possible arrest of the perpetrators. An SITG (Special Investigation Task Group) will also be activated to help monitor the progress of this case,” Mukaram said.
(PNA)


{% extends "base.html" %} {% block page-title %}Speleo| About{% end %} {% block content %}
Find what you are looking for without spending so much time on that find part.
Find what you are looking for quick!
See how your system is really doing in real time without confusing metrics.
So you can easily watch the status of anything you want in one convenient display.
See everything about your system without having to turn your head.
For those cases when you have to execute that one off monster of a query
See what your indexer is really doing to your data without having to pull out the engine
Change the system on the fly without ssh, ftp, omg, wtf, etc.


Pay with MichielPay!
A very primitive payment app that shows the entire payment request passed to it as JSON.
Pay


VIZ ECHO
Hello Tableau
STORMS DASHBOARD
Helps you with detailed storms related information
SALES DASHBOARD
Provides sales related information


Before Change
return self.forward(X)
// if X contains too large a batch, split it in smaller batches...
batches = batchify(iter(X), {"@": (None, np.stack)},
batch_size=self.batch_size,
incomplete=True, prefetch=0)
After Change
// if X contains too large a batch, split it in smaller batches...
batches = pescador.maps.buffer_stream(
iter({"X": x} for x in X), self.batch_size, partial=True)
// ... and process them in order, before re-concatenating them
return np.vstack([self.apply(b["X"]) for b in batches])
def __call__(self, current_file):
Extract embeddings on a sliding window


QUIZ
HTML5 CSS3 and JS quiz
HOME
CSS
JAVA
CONTACT
TEST YOUR HTML5 KNOWLEDGE
1. Which tag should be used to represent the "header" of a document?

<heading>

2.Which of the following is NOT a new feature of HTML5?
New Media Elements
Form Types
Local Storage
Cookies
3. Which element is the most appropriate to wrap around each blog post on a page?

<post>

4. Which HTML5 tag is used for sidebar content?

<sidebar>

<side>
5. Which of the following tag automatically focus one particular form field in HTML5?
output
placeholder
autofocus
required
Take Quizz Again
Good Job!


Minimum Wage: Oshiomhole Tells APC Governors What To Do
by George OgboluThe National Chairman of the All Progressives Congress (APC), Adams Oshiomhole, has begged APC governors to implement the N30,000 minimum wage and the consequential adjustments.
The former Edo State Governor made this known on Monday at the Federal Government-Progressives Governors Forum parley in Jos.
Oshiomhole urged APC governors to kickstart payment before governors elected on the platform of other parties.
According to him, “As progressives, let us be the first to pay the new national minimum wage and not just the wage but also the consequential adjustments arising from it.
“Already, there are some proactive progressive governors that have taken steps to address this.
“I plead that you give this a priority because when other governors are fighting whether or not to pay, you will say that progressive governors have paid.
“Where there is will, there will certainly be a way.”
Oshiomhole also urged APC governors to back President Muhammadu Buhari’s decision to shut down the country borders.
He said that the nation’s borders should remain closed until neighbouring countries follow the protocols of fair trade.


Hello All, MySelf Varada, working for Amazon as an App Engineer for the past 2 years with SQL/Kronos my base technology. Am a fun love and a jovial person who loves to do things that I enjoy the most.
- My Career dd>- I Currently work in Amazon, Seattle as an Application Engineer.
- My Life
- - I live in Redmond with my wife and twin girls who are 20 months old now.


{% extends "base_generic.html" %} {% block content %}
This page provides an overview of Concerts that could be merged.
| Merge | Target | To be merged | Delete |
|---|---|---|---|
| Confirm merge |
{{ concertmerge.primary_object.date }} - {{ concertmerge.primary_object.until_date }} {{ concertmerge.primary_object.artists }} {{ concertmerge.primary_object.organisations }} |
|
Delete |


Article about how this web has been done
Click at the play button to watch an animation of the evolution.
You can move between the different steps using the keyboard. With the letters n (Next), p (Previous) or the arrow keys.
You can also use the scroll of the mouse, or swipe right/left with a touch device.


Tearful farewell to Navaneeth
Freak accident had led to massive bleeding in boy’s brain
by Staff ReporterStudents, teachers and relatives on Saturday bid a tearful adieu to Navaneeth, a sixth standard student of the Government Vocational Higher Secondary School, Chunakara, who died after a piece of wood used as a cricket bat slipped off a student’s hand while playing in the school and hit him on his neck.
Navaneeth, 11, son of Santhosh, of Vinod Bhavanam, died on Friday.
Hundreds of people paid their last respects to Navaneeth at the school. After conducting the post-mortem at Government Medical College Hospital, Alappuzha, his body was brought to the school around 1.30 p.m. People from various walks of life thronged the school. His body was later taken to the family home at Puthupallikunnam for the funeral.
The police said that the post-mortem report had mentioned “rotational injury” as the cause of death. Officials said the boy had suffered an artery dissection on his neck and he had massive bleeding in the brain.
The Kurathikad police have registered a case.


Parameters¶
Most models in this package are “parametric” in the sense that each subclass
of Model
represents an entire family of models, each
member of which is distinguished by a fixed set of parameters that fit that
model to some some dependent and independent variable(s) (also referred to
throughout the the package as the outputs and inputs of the model).
Parameters are used in three different contexts within this package: Basic evaluation of models, fitting models to data, and providing information about individual models to users (including documentation).
Most subclasses of Model
–specifically those implementing a
specific physical or statistical model, have a fixed set of parameters that can
be specified for instances of that model. There are a few classes of models
(in particular polynomials) in which the number of parameters depends on some
other property of the model (the degree in the case of polynomials).
Models maintain a list of parameter names,
param_names
. Single parameters are instances of
Parameter
which provide a proxy for the actual parameter
values. Simple mathematical operations can be performed with them, but they
also contain additional attributes specific to model parameters, such as any
constraints on their values and documentation.
Parameter values may be scalars or array values. Some parameters are
required by their very nature to be arrays (such as the transformation matrix
for an AffineTransformation2D
). In most other
cases, however, array-valued parameters have no meaning specific to the model,
and are simply combined with input arrays during model evaluation according to
the standard Numpy broadcasting rules.
Parameter examples¶
Model classes can be introspected directly to find out what parameters they accept:
>>> from astropy.modeling import models >>> models.Gaussian1D.param_names ['amplitude', 'mean', 'stddev']
The order of the items in the
param_names
list is relevant–this is the same order in which values for those parameters should be passed in when constructing an instance of that model:>>> g = models.Gaussian1D(1.0, 0.0, 0.1) >>> g <Gaussian1D(amplitude=1.0, mean=0.0, stddev=0.1...)>
However, parameters may also be given as keyword arguments (in any order):
>>> g = models.Gaussian1D(mean=0.0, amplitude=2.0, stddev=0.2) >>> g <Gaussian1D(amplitude=2.0, mean=0.0, stddev=0.2...)>
So all that really matters is knowing the names (and meanings) of the parameters that each model accepts. More information about an individual model can also be obtained using the
help
built-in:>>> help(models.Gaussian1D)
Some types of models can have different numbers of parameters depending on other properties of the model. In particular, the parameters of polynomial models are their coefficients, the number of which depends on the polynomial’s degree:
>>> p1 = models.Polynomial1D(degree=3, c0=1.0, c1=0.0, c2=2.0, c3=3.0) >>> p1.param_names ['c0', 'c1', 'c2', 'c3'] >>> p1 <Polynomial1D(3, c0=1.0, c1=0.0, c2=2.0, c3=3.0)>
For the basic
Polynomial1D
class the parameters are namedc0
throughcN
whereN
is the degree of the polynomial. The above example represents the polynomial \(3x^3 + 2x^2 + 1\).Some models also have default values for one or more of their parameters. For polynomial models, for example, the default value of all coefficients is zero–this allows a polynomial instance to be created without specifying any of the coefficients initially:
>>> p2 = models.Polynomial1D(degree=4) >>> p2 <Polynomial1D(4, c0=0.0, c1=0.0, c2=0.0, c3=0.0, c4=0.0)>
Parameters can the be set/updated by accessing attributes on the model of the same names as the parameters:
>>> p2.c4 = 1 >>> p2.c2 = 3.5 >>> p2.c0 = 2.0 >>> p2 <Polynomial1D(4, c0=2.0, c1=0.0, c2=3.5, c3=0.0, c4=1.0)>
This example now represents the polynomial \(x^4 + 3.5x^2 + 2\).
It is possible to set the coefficients of a polynomial by passing the parameters in a dictionary, since all parameters can be provided as keyword arguments:
>>> ch2 = models.Chebyshev2D(x_degree=2, y_degree=3) >>> coeffs = dict((name, [idx, idx + 10]) ... for idx, name in enumerate(ch2.param_names)) >>> ch2 = models.Chebyshev2D(x_degree=2, y_degree=3, n_models=2, ... **coeffs) >>> ch2.param_sets array([[ 0., 10.], [ 1., 11.], [ 2., 12.], [ 3., 13.], [ 4., 14.], [ 5., 15.], [ 6., 16.], [ 7., 17.], [ 8., 18.], [ 9., 19.], [ 10., 20.], [ 11., 21.]])
Or directly, using keyword arguments:
>>> ch2 = models.Chebyshev2D(x_degree=2, y_degree=3, ... c0_0=[0, 10], c0_1=[3, 13], ... c0_2=[6, 16], c0_3=[9, 19], ... c1_0=[1, 11], c1_1=[4, 14], ... c1_2=[7, 17], c1_3=[10, 20,], ... c2_0=[2, 12], c2_1=[5, 15], ... c2_2=[8, 18], c2_3=[11, 21])
Individual parameters values may be arrays of different sizes and shapes:
>>> p3 = models.Polynomial1D(degree=2, c0=1.0, c1=[2.0, 3.0], ... c2=[[4.0, 5.0], [6.0, 7.0], [8.0, 9.0]]) >>> p3(2.0) array([[ 21., 27.], [ 29., 35.], [ 37., 43.]])
This is equivalent to evaluating the Numpy expression:
>>> import numpy as np >>> c2 = np.array([[4.0, 5.0], ... [6.0, 7.0], ... [8.0, 9.0]]) >>> c1 = np.array([2.0, 3.0]) >>> c2 * 2.0**2 + c1 * 2.0 + 1.0 array([[ 21., 27.], [ 29., 35.], [ 37., 43.]])
Note that in most cases, when using array-valued parameters, the parameters must obey the standard broadcasting rules for Numpy arrays with respect to each other:
>>> models.Polynomial1D(degree=2, c0=1.0, c1=[2.0, 3.0], ... c2=[4.0, 5.0, 6.0]) Traceback (most recent call last): ... InputParameterError: Parameter u'c1' of shape (2,) cannot be broadcast with parameter u'c2' of shape (3,). All parameter arrays must have shapes that are mutually compatible according to the broadcasting rules.


Travel
Travel
This year’s User Group Meeting will be hosted by Utrecht University in the Netherlands.
Event Venue
Victor J. Koningsberger Building
Budapestlaan 4a-b, 3584 CD
Utrecht, The Netherlands
www.uu.nl/en/victor-j-koningsberger-building
Map
UGM venue and hotels:
Click the map to view the interactive version.
Conference Hotels
NH UTRECHT HOTEL – UTRECHT
Jaarbeursplein 24, 3521 AR
Utrecht, Netherlands
Phone: +31 30 297 7977
www.nh-hotels.com/hotel/nh-utrecht
APOLLO HOTEL- UTRECHT CITY CENTRE
Vredenburg 14, 3511 BA
Utrecht, Netherlands
Phone: +31 30 233 1232
www.apollohotels.co.uk/apollo-hotel-utrecht-city-centre
HOTEL IBIS
Bizetlaan 1, 3533 KC
Utrecht, Netherlands
Phone: +31 30 291 0366
www.ibis.com/en/hotel-0880-ibis-utrecht/index.shtml
VAN DER VALK HOTEL DE BILT – UTRECHT
De Holle Bilt 1, 3732 HM De Bilt,
Utrecht, Netherlands
Phone: +31 30 220 5811
www.biltschehoek.com/en
FLETCHER HOTEL NIEUWEGEIN
Buizerdlaan 10
3435 SB Nieuwegein
Phone: +31 30 60 44 844
www.fletcherhotelnieuwegein.nl/en
Transportation in Utrecht
Visit Utrecht
• City Overview, maps, events
Welcome to Utrecht
• How to get to Utrecht from Schiphol Amsterdam Airport
• How to travel within the city
Getting around Utrecht
• Details getting from point A to point B in Utrecht and mentions a few sights you may not want to miss while you are there.
Get your U-OV ticket
• Information about purchasing bus and tram tickets, which is the most likely way you will get around Utrecht.


Dropdown type side navigation (multiple dropdown) for Admin Dashboard & Themes - Crafted on Force Framework
Read more about Force Framework
Follow me on Twitter: @mrdogra007


13+ Spring Boot Logging Config PNG. In this short tutorial, we're going to explore the main logging options available in spring boot. I want to load different logging configuration files according to my spring profiles system properties and the conventional spring boot external configuration files work just fine.) so i tried to set 'logging.config' property in my.
It's just a matter of. Learn how to do logging in spring boot.in this brain byte, i'll walk you through getting a blank spring boot project and add logging to it. Spring boot supports various logging providers through some simple configuration.
In this short tutorial, we're going to explore the main logging options available in spring boot.
There are scenarios where you would want to log full request/response payloads in a spring boot application. We can use one of following option to enable debug logging in spring boot. Spring boot uses commons logging for internal logging. This makes switching to log4j2 relatively simple.


The sole purpose of this app is to allow you to upload Excel files to create Instamojo offers
You need to be assigned a username and password to use this
{% if mismatch %}
Login and Password do not Match
{% endif %}
{% if noLogin %}
Please Enter Login Name
{% endif %}
{% if noPass %}
Please Enter Password
{% endif %}
{% if noMore %}
You have had too many attempts
{% endif %}


| G.A.R. 44 | |
| (See rule 180) | |
| RECEIPTED BILL | |
| Received the sum of Rs.................... .(Rupees..................) being the total of entitlement of Rs............ from the Insurance* Fund and /or of Rs..................... from the Savings Fund, accrued to................................ Name........................................................................Designation....................* Group A/B/C/D under the Central Government Employees' Group Insurance Scheme, 1980. | |
| Dated........................ | |
| Signature(s) of Recipient(s).......... | |
| (Name in Block letters) | |
| FOR USE IN DEPARTMENTAL OFFICE | |
| (a) Relevant biodata of the member | |
| 1. Type of group of the member (i.e. lowest group) viz. D/C/B/A on initially joining the scheme on................. . (date). | |
| 2. Year of acquiring membership of higher group:— | |
| * (i) C —19........ | |
| (ii) B — 19........ | |
| (iii) A —19........ | |
| (b) Countersigned for payment of Rs.................... .(Rupees....................................) to claimant(s) | |
| Crossed cheque/demand draft to be issued in favour of claimants): | |
| Signature................ ........ | |
| Date.............................. | |
| Designation of D.D.O.............. | |
| FOR USE IN PAY AND ACCOUNTS OFFICE | |
| Passed for payment of Rs........................ .(Rupees........................) | |
| Payment through Cheque (s) No.(s)....................date.................... | |
| Pay & Accounts Officer | |
| * Delete whichever is inapplicable. |


Flask for Node Developers
Today we’ll be going through how to build a basic CRUD server-side application using Python and Flask, geared toward JavaScript developers versed in Node and Express. Similar to Express, Flask is a simple, yet powerful micro-framework for Python, perfect for RESTful APIs.
Contents
Objectives
By the end of this tutorial, you should be able to…
- Set up a Python development environment
- Create and activate a virtual environment
- Using SQLite, apply a schema to the database and interact with the database using the basic CRUD functions
- Build a CRUD app using Python and Flask
Project Setup
Before we start, ensure that you have Python v3.6.1 installed.
Along with Python, we also need pip to install third-party packages from the Python Package Index (aka PyPI), the Python equivalent of npm. Fortunately, this comes pre-installed with all Python versions >= 3.4.
Let’s start by creating a new project directory:
$ mkdir flask-songs-api && cd flask-songs-api
Next up, we’ll create an isolated virtual environment for installing Python packages specific to our individual project. It’s standard practice to set up a virtual environment for each project, otherwise there can be compatibility issues with different dependencies.
$ python3.6 -m venv env
Next, we need to activate it:
$ source env/bin/activate
You should now see env
in your prompt, indicating that the virtual environment is activated.
NOTE: Ready to stop developing? Use the
deactivate
command to deactivate the virtual environment. To activate it again, navigate to the directory and re-run the source command -source env/bin/activate
.
Now we can install Flask:
$ pip install Flask==0.12.1
$ pip freeze > requirements.txt
Now is a great time to add a .gitignore:
env
*.db
Finally, let’s add a main app file, which will handle routing and run our application, along with a file to setup our database schema:
$ touch app.py models.py
Database Setup
For this tutorial, we will be using SQLite3 since it’s part of the Python standard library, requires little (if any) configuration, and is powerful enough for small to mid-size applications (e.g., the majority of web apps).
Start by creating a new database file in your project root:
$ touch songs.db
Now start a new SQLite session:
$ sqlite3 songs.db
Then run:
sqlite> .databases
You should see a file path to your database file, which is empty at the moment and ready for us to create a schema and data to. To create a schema, add the following code to models.py:
import sqlite3
def drop_table():
with sqlite3.connect('songs.db') as connection:
c = connection.cursor()
c.execute("""DROP TABLE IF EXISTS songs;""")
return True
def create_db():
with sqlite3.connect('songs.db') as connection:
c = connection.cursor()
table = """CREATE TABLE songs(
id INTEGER PRIMARY KEY AUTOINCREMENT,
artist TEXT NOT NULL,
title TEXT NOT NULL,
rating INTEGER NOT NULL
);
"""
c.execute(table)
return True
if __name__ == '__main__':
drop_table()
create_db()
This will drop the songs table if it exists and put a new one in place with the schema we’ve defined here. If you have any issues with your database later on, or if you just want to start fresh, you can always run this script to recreate the database. Back in the terminal, exit SQLite and then run the script to create our table:
sqlite> .exit
$ python models.py
Let’s check if that actually worked:
$ sqlite3 songs.db
sqlite> .table
songs
sqlite> .schema
CREATE TABLE songs(
id INTEGER PRIMARY KEY AUTOINCREMENT,
artist TEXT NOT NULL,
title TEXT NOT NULL,
rating INTEGER NOT NULL
);
sqlite> .exit
Great! So, now that our database is set up correctly, we can move on to setting up our app’s route handlers. For this post, we won’t be going into database migrations but if you ever want to change the schema, you can use Flask-Migrate.
Routes
Let’s start with an overview of the routes, following RESTful principles:
| Endpoint | Result | CRUD | HTTP |
|---|---|---|---|
/api/songs |
Returns all songs | Read | GET |
/api/song/<song_id> |
Returns a single song | Read | GET |
/api/songs |
Adds a single song | Create | POST |
/api/song/<song_id> |
Updates a single song | Update | PUT |
/api/song/<song_id> |
Deletes a single song | Delete | DELETE |
But first, before creating any routes, add the following code to app.py:
import sqlite3
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.debug = True
app.run()
Here we imported sqlite3
along with the main Flask application object, Flask
, which creates an instance of Flask in our application. The Flask application object acts as the central object, which we can use as a way of calling our view functions, adding our URL rules, template configuration and much more. With that instance we can run the application using the run
method. We also set the debug flag to True
so that the server live reloads when code changes and provides an interactive debugger when an exception is thrown.
NOTE:
if __name__ == '__main__'
states that this source file is our main program. Any files imported from other modules will have their name set to their module name. This is because you may sometimes have modules that could be executed directly as well as be imported into a main app file. This line means that the code in those modules will only execute when you want to run the module as a program, and not have it execute when someone just wants to import a module and execute it themselves.
Finally, it’s important to note that any imports must go at the top of our app.py file. These must come before anything else in order to be used later on in our file.
Now, add the routes:
import sqlite3
from flask import Flask, request
app = Flask(__name__)
@app.route('/api/songs', methods=['GET', 'POST'])
def collection():
if request.method == 'GET':
pass # Handle GET all Request
elif request.method == 'POST':
pass # Handle POST request
@app.route('/api/song/<song_id>', methods=['GET', 'PUT', 'DELETE'])
def resource(song_id):
if request.method == 'GET':
pass # Handle GET single request
elif request.method == 'PUT':
pass # Handle UPDATE request
elif request.method == 'DELETE':
pass # Handle DELETE request
if __name__ == '__main__':
app.debug = True
app.run()
We imported request
, which handles, well, HTTP requests (no surprises there). Let’s look at each method, staring with a POST:
POST
The first thing we need to do is add data to our database. Once we’ve done this, we can start building and testing the rest of our database/CRUD functions.
The process is simple:
- Create a connection to our database
- Execute our SQL query to add a song
- Commit the changes to the database
- Close the database connection
- Return an object
We can write a single function to handle this. Let’s place all helper functions underneath the routes, to keep things nicely separated:
# helper functions
def add_song(artist, title, rating):
try:
with sqlite3.connect('songs.db') as connection:
cursor = connection.cursor()
cursor.execute("""
INSERT INTO songs (artist, title, rating) values (?, ?, ?);
""", (artist, title, rating,))
result = {'status': 1, 'message': 'Song Added'}
except:
result = {'status': 0, 'message': 'error'}
return result
Now we can just use this function in our route handler, passing the correct arguments from an incoming POST request:
@app.route('/api/songs', methods=['GET', 'POST'])
def collection():
if request.method == 'GET':
pass # Handle GET all Request
elif request.method == 'POST':
data = request.form
result = add_song(data['artist'], data['title'], data['rating'])
return jsonify(result)
So, we grabbed the values from the incoming form request, then called the add_song()
function to add that song to the database, and, finally, returned the appropriate JSON response.
Make sure to add jsonify
to the imports in order to send a JSON response back:
from flask import Flask, request, jsonify
Ready to test? Start the server in one terminal window:
$ python app.py
Now, in another window use CURL to send a POST request:
$ curl --data "artist='Hudson Mohawke'&title='Cbat'&rating=5" http://localhost:5000/api/songs
If all went well, you should see the following response, indicating that the song was added to the database:
{
"message": "Song Added",
"status": 1
}
Just to be on the safe side, let’s double-check that. Kill the server, then open a SQLite session from within your project directory:
$ sqlite3 songs.db
Now run the following SQL query:
sqlite> SELECT * FROM songs ORDER BY id desc;
You should see:
1|'Hudson Mohawke'|'Cbat'|5`
Okay. We have officially added our first song! Add a couple more before moving on to reading data (GET). Don’t forget to run the Flask server before running the CURL commands!
$ curl --data "artist='Beastie Boys'&title='Sabotage'&rating=4" http://localhost:5000/api/songs
$ curl --data "artist='Gregori Klosman'&title='Jaws'&rating=3" http://localhost:5000/api/songs
GET
We’ll start with our GET all route, e.g. - api/songs
. We need to connect to the database, execute the appropriate SQL query, and then return all of the songs from that query:
def get_all_songs():
with sqlite3.connect('songs.db') as connection:
cursor = connection.cursor()
cursor.execute("SELECT * FROM songs ORDER BY id desc")
all_songs = cursor.fetchall()
return all_songs
Next up, we have to change our route handler to now call this function and then send back JSON:
@app.route('/api/songs', methods=['GET', 'POST'])
def collection():
if request.method == 'GET':
all_songs = get_all_songs()
return json.dumps(all_songs)
elif request.method == 'POST':
data = request.form
result = add_song(data['artist'], data['title'], data['rating'])
return jsonify(result)
Did you notice that we’re using the json
module? This is also from the Python standard library, which allows us to convert the ‘list’-like format of data we get back from SQLite3 into a JSON object. Just don’t forget to import it:
import json
To test, we can simply navigate to http://<IP_ADDRESS>:5000/api/songs in the browser to check if all our songs are there.
You should see something like:
[
[
3,
"'Gregori Klosman'",
"'Jaws'",
3
],
[
2,
"'Beastie Boys'",
"'Sabotage'",
4
],
[
1,
"'Hudson Mohawke'",
"'Cbat'",
5
]
]
Now that we can GET all songs, let’s build a function to GET just a single song. This function will take a parameter of song_id
, create a connection to our database, find that song with a SQL query, and then return that song with JSON:
def get_single_song(song_id):
with sqlite3.connect('songs.db') as connection:
cursor = connection.cursor()
cursor.execute("SELECT * FROM songs WHERE id = ?", (song_id,))
song = cursor.fetchone()
return song
We can update our route with a song_id
as a parameter, and send back the single song:
@app.route('/api/song/<song_id>', methods=['GET', 'PUT', 'DELETE'])
def resource(song_id):
if request.method == 'GET':
song = get_single_song(song_id)
return json.dumps(song)
elif request.method == 'PUT':
pass # Handle UPDATE request
elif request.method == 'DELETE':
pass # Handle DELETE request
If you now point your browser to http://<IP_ADDRESS>:5000/api/song/2 you should see the JSON object for our song with an id of 2
in the database:
[
2,
"'Beastie Boys'",
"'Sabotage'",
4
]
If you try to put in an id that we don’t have in the database currently, you will just get null
displayed on the page instead of a JSON object.
We can CREATE a song, READ all songs, and READ a single song. Only two more routes to go…
PUT
A major function that we’re missing is the ability to edit data that’s already present in our database. We do this using a PUT request by taking incoming data with an id passed through the URL, finding the object in our database with that particular id, and then updating it.
Let’s start with an edit function, which takes in the song id, artist, title, and rating as arguments:
def edit_song(song_id, artist, title, rating):
try:
with sqlite3.connect('songs.db') as connection:
connection.execute("UPDATE songs SET artist = ?, title = ?, rating = ? WHERE ID = ?;", (artist, title, rating, song_id,))
result = {'status': 1, 'message': 'SONG Edited'}
except:
result = {'status': 0, 'message': 'Error'}
return result
Now we can edit our route to pass in the data from the PUT request:
@app.route('/api/song/<song_id>', methods=['GET', 'PUT', 'DELETE'])
def resource(song_id):
if request.method == 'GET':
song = get_single_song(song_id)
return json.dumps(song)
elif request.method == 'PUT':
data = request.form
result = edit_song(
song_id, data['artist'], data['title'], data['rating'])
return jsonify(result)
elif request.method == 'DELETE':
pass # Handle DELETE request
So if we test this route out with CURL:
$ curl -X PUT --data "artist='Van Halen'&title='Hot for Teacher'&rating=3" localhost:5000/api/song/2
We should see:
{
"message": "SONG Edited",
"status": 1
}
We can (err, should) make sure that edit is reflected in the database:
$ sqlite3 songs.db
sqlite> SELECT * FROM songs ORDER BY id desc;
3|'Gregori Klosman'|'Jaws'|3
2|'Van Halen'|'Hot for Teacher'|3
1|'Hudson Mohawke'|'Cbat'|5
We can edit songs at will!
Delete
The last thing we have left to do is our DELETE route. We need to be able to remove data from our database. Let’s first add in a song we can then delete using CURL in the terminal:
$ curl --data "artist='The Flaming Lips'&title='Buggin'&rating=2" http://localhost:5000/api/songs
Make sure it’s in our database:
$ sqlite3 songs.db
sqlite> SELECT * FROM songs ORDER BY id desc;
4|'The Flaming Lips'|'Buggin'|2
3|'Gregori Klosman'|'Jaws'|3
2|'Van Halen'|'Hot for Teacher'|3
1|'Hudson Mohawke'|'Cbat'|5
We need to build a delete function:
def delete_song(song_id):
try:
with sqlite3.connect('songs.db') as connection:
connection.execute("DELETE FROM songs WHERE ID = ?;", (song_id,))
result = {'status': 1, 'message': 'SONG Deleted'}
except:
result = {'status': 0, 'message': 'Error'}
return result
And now let’s add in our delete route:
@app.route('/api/song/<song_id>', methods=['GET', 'PUT', 'DELETE'])
def resource(song_id):
if request.method == 'GET':
song = get_single_song(song_id)
return json.dumps(song)
elif request.method == 'PUT':
data = request.form
result = edit_song(
song_id, data['artist'], data['title'], data['rating'])
return jsonify(result)
elif request.method == 'DELETE':
result = delete_song(song_id)
return jsonify(result)
Test it with CURL:
$ curl -X DELETE localhost:5000/api/song/4
{
"message": "SONG Deleted",
"status": 1
}
And finally, go back into our database and really make sure it’s gone:
$ sqlite3 songs.db
sqlite> SELECT * FROM songs ORDER BY id desc;
3|'Gregori Klosman'|'Jaws'|3
2|'Van Halen'|'Hot for Teacher'|3
1|'Hudson Mohawke'|'Cbat'|5
Boom! So we now have all of our routes doing exactly what we want them to do. We can add songs, get the songs back (all, or just a single song), edit a song, and remove a song. That’s some quality CRUD right there.
Next Steps
- Error Handling: The code we have right now is completely reliant on the data coming through correctly, but what if there’s something missing when the user sends a POST request? For example, what would happen if the artist name was missing? Right now we aren’t handling errors that may come up. Think about how we can send information back to the user if not all fields are present in the POST or PUT request, and how you could be clear in the error messages we send back to the user.
- Server-side Templating: Build out your client-side by adding static files and templates.
- Database Management: Refactor SQLite and vanilla SQL out of your application and add in Postgres, Flask-SQLAlchemy (for communicating with the database), and Flask-Migrate (for migrations). Check out this example of how to use Postgres and Flask-SQLAlchemy.
Grab the code from the flask-songs-api repo. Cheers!