Getting paperwork under control makes me feel more in control of my life generally.
The resume is one of the most important steps in the job application process. Your resume tells the employer about your background and past job experience. Your resume should be concise, consistent, and easy to read. A well-written resume
highlights your most relevant qualifications for the job, getting you the interview that you want. It is typically one page long.
How to write the perfect resume:
I. Choose a type of resume.
There are several different types of resumes. Choosing a type depends on your own preferences or on the job you're applying for. Some different types are: chronological, functional, combination, targeted, etc. The most common and most basic
type is a chronological resume, although you may want to look into other types based on whether or not you want to focus on your key accomplishments and skills rather than past experiences. Nevertheless, choosing the best type of resume is
critical in building a great resume.
II. Choose and maintain a style.
Make sure to choose a font style and size that is easy to read and fits well on the page. Try to keep style features - such as bold, italics, and underlining - to a minimum. These can be reserved for making your key information stand out to
your employer. Use the style you choose consistently throughout your resume.
III. Research and look over examples.
Review resume samples in order to get yourself familiar with formats and the type of information you need.
IV. Use resume keywords.
Make sure your resume uses keywords that pertain directly to the jobs you are seeking. These keywords will help your employer to find your resume online and eventually selected for evaluation.
V. Proofread!
Look over your resume before sending it. Make sure there are no spelling or grammatical errors, as well as any style inconsistencies. Consider having someone look it over to ensure that there are no errors.
Sections of a resume:
I. Contact information.
Be sure to include:
- Name
- Mailing address
- Telephone number
- Email address
- Link to online portfolio
- LinkedIn profile
II. Introduction paragraph.
There are three choices for a resume introduction: a qualifications summary, career profile, and professional profile. The goal of this introductory paragraph is to stand out to your employer by highlighting your skills and experience that
are relevant to the company.
Qualifications Summary: a bullet-point list (usually 4 to 6 bullets) of your key career achievements.
Career Objective: a 2-3 sentence statement providing an overview of your skills and experience.
Professional Profile: a combination of the qualifications summary and the career profile.
III. Professional Experience.
Be sure to list your work experience in reverse chronological order and only list experience that is relevant to the job you are applying for. Include a heading for each company that includes its name, location (city & state), your title,
and the dates of employment. Each experience should have 3-5 bullets of your main responsibilities and achievements.
IV. Education.
Be sure to include:
Names of the schools you attended after high school
Location of the schools
Date of graduation
Degrees
GPA
Resume Templates:
Chronological Resume:
The most common type of resume. Work experience is listed in reverse chronological order, from most to least recent.
Functional Resume:
A functional resume is used to highlight and emphasize the applicant's skills and experience, rather than past jobs.
Combination Resume:
A mix of a functional resume and a chronological resume, the combination resume allows the applicant to present his or her skills and job experience in chronological order.
Targeted Resume:
A targeted resume highlights the experiences and skills relevant to the job that the applicant is applying to.
Cover letters are one-page documents that are meant for you to introduce yourself, explain why you would be a good fit for the job, expand on areas that your resume cannot describe, and further explain other aspects of your resume.
How to write a cover letter:
I. Contact Information.
Include both your employer and your contact information--name, your home address, your employer's company address, phone numbers, and emails.
II. Introduce yourself.
In your first paragraph, being by telling your employer the position you are applying for and how you learned about the job opening. Include information about yourself, such as your degree, area of study, and your career goals.
III. Sell yourself!
The second paragraph should include your previous job experiences, skills, and abilities and how these make you a good fit for the job.
IV. Go the extra mile.
Do research on the company to find out more about them as a whole--their goals, purpose, etc. In your third paragraph, include how you can contribute to the company's goals and help push the company forward.
V. Conclusion.
In your final paragraph, show the employer your interest in the job--inform them of your desire to be interviewed, tell them you'll be in contact with them within a week or so. Lastly, don't forget to thank them for reading your letter.
Cover Letter Template:
Download this templateAn application form is used to collect relevant, accurate information from the applicant. Oftentimes, this will include information not usually found on your cover letter or resume, such as personal and professional references or the names of former supervisors. These forms are often used to test the applicant's ability to follow instructions, penmanship, literacy, and communication skills.
How to complete an application form:
- Make sure you know correct dates, names, places, and other information you will need
- Contact the people you want to use as references: make sure you know their information and contact details
- Think about what you have to offer and what makes you stand out
- Read the job description to find out what types of skills and experiences they are looking for
- Give yourself enough time
- Draft your answers before filling out the form
- Make sure your answers are relevant, interesting, and personal
- Fill out the form neatly
- Read and follow instructions carefully
- Don’t leave any blanks
- Don’t provide any negative information
- Answer all questions truthfully -
DON’T LIE
- Do not give specific salary requirements
- Keep your application consistent with your resume
- Proofread your application before submitting it--make sure there are no spelling/grammar mistakes
Application Form Template:
Use this template for application forms that are to be submitted electronically.


--- title: "devtri" description: "Easily work with development triangles and loss development factors to generate simple reserve reports in R" github_url: "https://github.com/Ractuary/devtri" ---
View on GitHub


Laravel Sail
- Introduction
- Installation & Setup
- Starting & Stopping Sail
- Executing Commands
- Interacting With Databases
- Running Tests
- Previewing Emails
- Container CLI
- PHP Versions
- Sharing Your Site
- Customization
Introduction
Laravel Sail is a light-weight command-line interface for interacting with Laravel's default Docker development environment. Sail provides a great starting point for building a Laravel application using PHP, MySQL, and Redis without requiring prior Docker experience.
At its heart, Sail is the docker-compose.yml
file and the sail
script that is stored at the root of your project. The sail
script provides a CLI with convenient methods for interacting with the Docker containers defined by the docker-compose.yml
file.
Laravel Sail is supported on macOS, Linux, and Windows (via WSL2).
Installation & Setup
Laravel Sail is automatically installed with all new Laravel applications so you may start using it immediately. To learn how to create a new Laravel application, please consult Laravel's installation documentation for your operating system.
Installing Sail Into Existing Applications
If you are interested in using Sail with an existing Laravel application, you may simply install Sail using the Composer package manager. Of course, these steps assume that your existing local development environment allows you to install Composer dependencies:
composer require laravel/sail --dev
After Sail has been installed, you may run the sail:install
Artisan command. This command will publish Sail's docker-compose.yml
file to the root of your application:
php artisan sail:install
Finally, you may start Sail. To continue learning how to use Sail, please continue reading the remainder of this documentation:
./vendor/bin/sail up
Configuring A Bash Alias
By default, Sail commands are invoked using the vendor/bin/sail
script that is included with all new Laravel applications:
./vendor/bin/sail up
However, instead of repeatedly typing vendor/bin/sail
to execute Sail commands, you may wish to configure a Bash alias that allows you to execute Sail's commands more easily:
alias sail='bash vendor/bin/sail'
Once the Bash alias has been configured, you may execute Sail commands by simply typing sail
. The remainder of this documentation's examples will assume that you have configured this alias:
sail up
Starting & Stopping Sail
Laravel Sail's docker-compose.yml
file defines a Docker variety of containers that work together to help you build Laravel applications. Each of these containers is an entry within the services
configuration of your docker-compose.yml
file. The laravel.test
container is the primary application container that will be serving your application.
Before starting Sail, you should ensure that no other web servers or databases are running on your local computer. To start all of the Docker containers defined in your application's docker-compose.yml
file, you should execute the up
command:
sail up
To start all of the Docker containers in the background, you may start Sail in "detached" mode:
sail up -d
Once the application's containers have been started, you may access the project in your web browser at: http://localhost.
To stop all of the containers, you may simply press Control + C to stop the container's execution. Or, if the containers are running in the background, you may use the down
command:
sail down
Executing Commands
When using Laravel Sail, your application is executing within a Docker container and is isolated from your local computer. However, Sail provides a convenient way to run various commands against your application such as arbitrary PHP commands, Artisan commands, Composer commands, and Node / NPM commands.
When reading the Laravel documentation, you will often see references to Composer, Artisan, and Node / NPM commands that do not reference Sail. Those examples assume that these tools are installed on your local computer. If you are using Sail for your local Laravel development environment, you should execute those commands using Sail:
# Running Artisan commands locally...
php artisan queue:work
# Running Artisan commands within Laravel Sail...
sail artisan queue:work
Executing PHP Commands
PHP commands may be executed using the php
command. Of course, these commands will execute using the PHP version that is configured for your application. To learn more about the PHP versions available to Laravel Sail, consult the PHP version documentation:
sail php --version
sail php script.php
Executing Composer Commands
Composer commands may be executed using the composer
command. Laravel Sail's application container includes a Composer 2.x installation:
sail composer require laravel/sanctum
Installing Composer Dependencies For Existing Applications
If you are developing an application with a team, you may not be the one that initially creates the Laravel application. Therefore, none of the application's Composer dependencies, including Sail, will be installed after you clone the application's repository to your local computer.
You may install the application's dependencies by navigating to the application's directory and executing the following command. This command uses a small Docker container containing PHP and Composer to install the application's dependencies:
docker run --rm \
-v $(pwd):/opt \
-w /opt \
laravelsail/php80-composer:latest \
composer install
Executing Artisan Commands
Laravel Artisan commands may be executed using the artisan
command:
sail artisan queue:work
Executing Node / NPM Commands
Node commands may be executed using the node
command while NPM commands may be executed using the npm
command:
sail node --version
sail npm run prod
Interacting With Databases
MySQL
As you may have noticed, your application's docker-compose.yml
file contains an entry for a MySQL container. This container uses a Docker volume so that the data stored in your database is persisted even when stopping and restarting your containers. In addition, when the MySQL container is starting, it will ensure a database exists whose name matches the value of your DB_DATABASE
environment variable.
Once you have started your containers, you may connect to the MySQL instance within your application by setting your DB_HOST
environment variable within your application's .env
file to mysql
.
To connect to your application's MySQL database from your local machine, you may use a graphical database management application such as TablePlus. By default, the MySQL database is accessible at localhost
port 3306.
Redis
Your application's docker-compose.yml
file also contains an entry for a Redis container. This container uses a Docker volume so that the data stored in your Redis data is persisted even when stopping and restarting your containers. Once you have started your containers, you may connect to the Redis instance within your application by setting your REDIS_HOST
environment variable within your application's .env
file to redis
.
To connect to your application's Redis database from your local machine, you may use a graphical database management application such as TablePlus. By default, the Redis database is accessible at localhost
port 6379.
Running Tests
Laravel provides amazing testing support out of the box, and you may use Sail's test
command to run your applications feature and unit tests. Any CLI options that are accepted by PHPUnit may also be passed to the test
command:
sail test
sail test --group orders
The Sail test
command is equivalent to running the test
Artisan command:
sail artisan test
Laravel Dusk
Laravel Dusk provides an expressive, easy-to-use browser automation and testing API. Thanks to Sail, you may run these tests without ever installing Selenium or other tools on your local computer. To get started, uncomment the Selenium service in your application's docker-compose.yml
file:
selenium:
image: 'selenium/standalone-chrome'
volumes:
- '/dev/shm:/dev/shm'
networks:
- sail
Next, ensure that the laravel.test
service in your application's docker-compose.yml
file has a depends_on
entry for selenium
:
depends_on:
- mysql
- redis
- selenium
Finally, you may run your Dusk test suite by starting Sail and running the dusk
command:
sail dusk
Previewing Emails
Laravel Sail's default docker-compose.yml
file contains a service entry for MailHog. MailHog intercepts emails sent by your application during local development and provides a convenient web interface so that you can preview your email messages in your browser. When using Sail, MailHog's default host is mailhog
and is available via port 1025:
MAIL_HOST=mailhog
MAIL_PORT=1025
When Sail is running, you may access the MailHog web interface at: http://localhost:8025
Container CLI
Sometimes you may wish to start a Bash session within your application's container. You may use the shell
command to connect to your application's container, allowing you to inspect its files and installed services as well execute arbitrary shell commands within the container:
sail shell
To start a new Laravel Tinker session, you may execute the tinker
command:
sail tinker
PHP Versions
Sail currently supports serving your application via PHP 8.0 or PHP 7.4. To change the PHP version that is used to serve your application, you should update the build
definition of the laravel.test
container in your application's docker-compose.yml
file:
# PHP 8.0
context: ./vendor/laravel/sail/runtimes/8.0
# PHP 7.4
context: ./vendor/laravel/sail/runtimes/7.4
In addition, you may wish to update your image
name to reflect the version of PHP being used by your application. This option is also defined in your application's docker-compose.yml
file:
image: sail-8.0/app
After updating your application's docker-compose.yml
file, you should rebuild your container images:
sail build --no-cache
sail up
Sharing Your Site
Sometimes you may need to share your site publicly in order to preview your site for a colleague or to test webhook integrations with your application. To share your site, you may use the share
command. After executing this command, you will be issued a random laravel-sail.site
URL that you may use to access your application:
sail share
If you would like to choose the subdomain for your shared site, you may provide the subdomain
option when executing the share
command:
sail share --subdomain=my-sail-site
{tip} The
share
command is powered by Expose, an open source tunneling service by BeyondCode.
Customization
Since Sail is just Docker, you are free to customize nearly everything about it. To publish Sail's own Dockerfiles, you may execute the sail:publish
command:
php artisan sail:publish
After running this command, the Dockerfiles and other configuration files used by Laravel Sail will be placed within a docker
directory in your application's root directory. After customizing your Sail installation, you may rebuild your application's containers using the build
command:
sail build --no-cache


An AQI refers to Air Quality Index. An Air Quality Index is a number used by government agencies to communicate to the public how polluted the air currently is, or is forecasted to become. As the AQI increases, an increasingly large percentage of the population is likely to experience increasingly severe adverse health effects.
According to the CPCB (Central Pollution Control Board) report, an AQI of 0-50 is “good”, 51-100 is “satisfactory”, 101-200 is “moderate”, and 201-300 is “poor”.
You may be astonished to read that the current AQI of Delhi is 154, which is considered to be “moderate” according to the CPCB report. But we have been successful in reaching such air quality levels only because of the efforts of the Delhi government, and the rules and regulations imposed by them for the same. There was a time when the air quality of Delhi NCR had reached the “severe” mark on the Air Quality Index (AQI)
In November 2017, Delhi NCR experienced a major dip in the air quality levels. The AQI was recorded to have reached a whooping level of 491, which is considered to be “severe-plus”. There were major reasons for this decline in the air quality in Delhi-NCR:
The following measures were taken by the government to tackle the deteriorating AQI:
Women must never compromise or adjust in an unhealthy environment, and must always speak up against any inconvenience or passive eve teasing. Not raising their voices against the unjust practices of the society only gives the perpetrators an upper hand and helps them get away with their shameful actions. Active dialogue and debate must be carried out to change our thought process. Proper education and implementation of stricter laws are also required which would certainly help change mindsets.


/*
* ====================================================================
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/ /*...*/ |
||
| 27 | package org.apache.http.impl.client.cache; |
|
|
||
| 40 | @NotThreadSafe |
|
| 41 | class CombinedEntity extends AbstractHttpEntity { |
|
| 43 | private final Resource resource; |
|
| 44 | private final InputStream combinedStream; |
|
| 46 | CombinedEntity(final Resource resource, final InputStream instream) throws IOException { |
|
| 47 | 9 | super(); |
| 48 | 9 | this.resource = resource; |
| 49 | 9 | this.combinedStream = new SequenceInputStream( |
| 50 | 9 | new ResourceStream(resource.getInputStream()), instream); |
| 51 | 9 | } |
| 53 | @Override |
|
| 54 | public long getContentLength() { |
|
| 55 | 15 | return -1; |
| 56 | } |
|
| 58 | @Override |
|
| 59 | public boolean isRepeatable() { |
|
| 60 | 1 | return false; |
| 61 | } |
|
| 63 | @Override |
|
| 64 | public boolean isStreaming() { |
|
| 65 | 1 | return true; |
| 66 | } |
|
| 68 | @Override |
|
| 69 | public InputStream getContent() throws IOException, IllegalStateException { |
|
| 70 | 9 | return this.combinedStream; |
| 71 | } |
|
| 73 | @Override |
|
| 74 | public void writeTo(final OutputStream outstream) throws IOException { |
|
| 75 | 0 | Args.notNull(outstream, "Output stream"); |
| 76 | 0 | final InputStream instream = getContent(); |
| 77 | try { |
|
| 78 | int l; |
|
| 79 | 0 | final byte[] tmp = new byte[2048]; |
| 80 | 0 | while ((l = instream.read(tmp)) != -1) {
|
| 81 | 0 | outstream.write(tmp, 0, l); |
| 82 | } |
|
| 83 | } finally { |
|
| 84 | 0 | instream.close(); |
| 85 | 0 | } |
| 86 | 0 | } |
| 88 | private void dispose() { |
|
| 89 | 9 | this.resource.dispose(); |
| 90 | 9 | } |
| 92 | class ResourceStream extends FilterInputStream { |
|
| 94 | 9 | protected ResourceStream(final InputStream in) { |
| 95 | 9 | super(in); |
| 96 | 9 | } |
| 98 | @Override |
|
| 99 | public void close() throws IOException { |
|
| 100 | try { |
|
| 101 | 9 | super.close(); |
| 102 | } finally { |
|
| 103 | 9 | dispose(); |
| 104 | 9 | } |
| 105 | 9 | } |
| 107 | } |
|
| 109 | } |


About Me
My Projects
Contact
Hello People!
My Name is Kavin Kumar
My Projects
Tribute Page
Product Survey Form
Online Buisness Website
Documentation
Contact Details
Free Code Camp
GitHub


index
module ttk_path
Provides root directory and adds utilities directory to path
Get the directory the script runs from and add the directories with ttk modules to the
Python search path, inserting them after the current directory. This script needs to be in
the same directory as ttk.py, the main python TTK script. I would really like this to be
done in the main tarsqi.py script.
Other modules can use the following to get at the root directory:
from ttk_path import TTK_ROOT
Extending the path used to be how all imports were done, which was rather moronic. The
only holdout is the utilities directory. This is because all FSA's in patterns were
compiled while using the old system, need to keep it until all FSA are recompiled.


Skill Set
- Frequently lights self on fire
- Can be shot out of aircraft like a missile
- Randomly jumps motorcycles over great distances
- Learned jumping skills from Spider Man
- Has never died from a stunt
- Can talk to animals (seriously)
Hire Me For Stunts!
If you're looking for a real go getter stunt lady, then you've come to the right place.
Starter Package - $9,001
- I light myself on fire
- 1 fight scene
- 1 cannon firing
- You can light me on fire
- Did I mention there's fire?
- I convince a gang of otters to do stunts with me
- 1 Monster Truck out of an airplane stunt
- A solid promise not to die
Pro Package - $15,000
- Everything in the Starter Package
- 2 motorcycle stunts
- Spider Man & I fight crime together
- I jump out of an airplane...while on fire
- Fireworks
- I slam dunk a grenade into a flaming hoop
- A solid promise not to die
Elite Package - $26,598
- Everything in Starter & Pro Packages
- Bigfoot & I do stunts together
- I eat a flaming taco
- Sharks
- Cool Stunts
- Me, Bigfoot, & Spider Man light each other on fire
- A solid promise not to die


|
KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
Functions | |
| def | AuxiliaryContactSettings () |
| def | AuxiliaryMPCContactSettings () |
| def | AuxiliaryExplicitContactSettings () |
| def | AuxiliarySetSettings (settings, contact_settings) |
| def | AuxiliaryMPCSetSettings (settings, contact_settings) |
| def | AuxiliaryValidateSettings (solver) |
| def | AuxiliaryAddVariables (main_model_part, mortar_type="") |
| def | AuxiliaryMPCAddVariables (main_model_part, contact_type="") |
| def | AuxiliaryAddDofs (main_model_part, mortar_type="") |
| def | AuxiliarySolve (mechanical_solution_strategy) |
| def | AuxiliaryComputeDeltaTime (main_model_part, computing_model_part, settings, contact_settings) |
| def | AuxiliaryCreateConvergenceParameters (main_model_part, settings, contact_settings) |
| def | AuxiliaryCreateLinearSolver (main_model_part, settings, contact_settings, linear_solver_settings, linear_solver) |
| def | AuxiliaryPureSlipCheck (model_part) |
| def | AuxiliaryLineSearch (computing_model_part, mechanical_scheme, linear_solver, mechanical_convergence_criterion, builder_and_solver, settings, contact_settings, processes_list, post_process) |
| def | AuxiliaryNewton (computing_model_part, mechanical_scheme, mechanical_convergence_criterion, builder_and_solver, settings, contact_settings, processes_list, post_process) |
| def | AuxiliaryMPCNewton (computing_model_part, mechanical_scheme, mechanical_convergence_criterion, builder_and_solver, settings, contact_settings) |
| def | GetBDFIntegrationOrder (scheme_type) |
| def auxiliary_methods_solvers.AuxiliaryAddDofs | ( | main_model_part, | |
mortar_type = "" |
|||
| ) |
| def auxiliary_methods_solvers.AuxiliaryAddVariables | ( | main_model_part, | |
mortar_type = "" |
|||
| ) |
| def auxiliary_methods_solvers.AuxiliaryComputeDeltaTime | ( | main_model_part, | |
| computing_model_part, | |||
| settings, | |||
| contact_settings | |||
| ) |
| def auxiliary_methods_solvers.AuxiliaryContactSettings | ( | ) |
| def auxiliary_methods_solvers.AuxiliaryCreateConvergenceParameters | ( | main_model_part, | |
| settings, | |||
| contact_settings | |||
| ) |
| def auxiliary_methods_solvers.AuxiliaryCreateLinearSolver | ( | main_model_part, | |
| settings, | |||
| contact_settings, | |||
| linear_solver_settings, | |||
| linear_solver | |||
| ) |
| def auxiliary_methods_solvers.AuxiliaryExplicitContactSettings | ( | ) |
| def auxiliary_methods_solvers.AuxiliaryLineSearch | ( | computing_model_part, | |
| mechanical_scheme, | |||
| linear_solver, | |||
| mechanical_convergence_criterion, | |||
| builder_and_solver, | |||
| settings, | |||
| contact_settings, | |||
| processes_list, | |||
| post_process | |||
| ) |
| def auxiliary_methods_solvers.AuxiliaryMPCAddVariables | ( | main_model_part, | |
contact_type = "" |
|||
| ) |
| def auxiliary_methods_solvers.AuxiliaryMPCContactSettings | ( | ) |
| def auxiliary_methods_solvers.AuxiliaryMPCNewton | ( | computing_model_part, | |
| mechanical_scheme, | |||
| mechanical_convergence_criterion, | |||
| builder_and_solver, | |||
| settings, | |||
| contact_settings | |||
| ) |
| def auxiliary_methods_solvers.AuxiliaryMPCSetSettings | ( | settings, | |
| contact_settings | |||
| ) |
| def auxiliary_methods_solvers.AuxiliaryNewton | ( | computing_model_part, | |
| mechanical_scheme, | |||
| mechanical_convergence_criterion, | |||
| builder_and_solver, | |||
| settings, | |||
| contact_settings, | |||
| processes_list, | |||
| post_process | |||
| ) |
| def auxiliary_methods_solvers.AuxiliaryPureSlipCheck | ( | model_part | ) |
| def auxiliary_methods_solvers.AuxiliarySetSettings | ( | settings, | |
| contact_settings | |||
| ) |
| def auxiliary_methods_solvers.AuxiliarySolve | ( | mechanical_solution_strategy | ) |
| def auxiliary_methods_solvers.AuxiliaryValidateSettings | ( | solver | ) |
| def auxiliary_methods_solvers.GetBDFIntegrationOrder | ( | scheme_type | ) |


Selected Coursework
Here is a outline of the courses I have taken during my time at Rutgers:
Computer Science
- CS 111 - Introduction to Computer Science
- CS 112 - Data Structures and Algorithms
- CS 205 - Introduction to Discrete Structures
- Math 250 - Introduction to Linear Algebrea
- CS 211 - Computer Architecture
- CS 214 - Systems Programming
- CS 336 - Principles of Information and Data Management (current)
- CS 344 - Design and Analysis of Algorithms (current)
Computer Engineering
- Analytical Physics 1A: Classical Mechanics
- Analytical Physics 1B
- Analytical Physics 2A: Electrotism and Magnetism
- Introduction to Mechanics I: Statics
- Introduction to Computers for Engineers - MATLAB
- Digital Logic Design + Lab
- Principles of Electrical Engineering I + Lab
- Principles of Electrical Engineering II + Lab
- Probability and Stochastic Processes
- Professionalism and Ethics
- Linear Systems and Signals + Lab
- Software Engineering (current)
- Introduction to Computer Systems - OS (current)


--- layout: home title: Home description: --- MDOQ Docs All you need to know about MDOQ
All you need to know about MDOQ
{{ section.description | capitalize }}
Start »


.Bio.
Shahnaaz Naazmeen D/o Mirza Saleem Baig. Born in Gulberga(North Karnataka) in 2002,she is 18 year old,In her family there are 8 members,now she is Learning programming in a NGO called Navgurukul
.Education.
She has passed 11th from Syeed Akber Hussaini PU College and after that she took break for 8 month because of persnoil reasons after the break she joined Navgurukul, Navgurukul is NGO where they are giving a one year course of Software Engeeneering for poor poor peoples
.Contact Details.
Thank you for reading for more Details contacts to<PHONE_NUMBER> or contact with our gmail account shahnaazBio@gmail.com


---
layout: single
title: "[How To] Forensic Data Recovery in Windows - Photorec"
date: '2016-11-14T18:00:00.000+09:00'
author: Joshua James
tags:
- Data Recovery
- Digital Forensics
- dfir
- HowTo
modified_time: '2016-11-14T18:00:22.910+09:00'
thumbnail: https://img.youtube.com/vi/PTbgDEhqx1k/default.jpg
blogger_id: tag:blogger.com,1999:blog-2701259639305045003.single-2550898745096322844
blogger_orig_url: http://www.cybercrimetech.com/2016/11/how-to-forensic-data-recovery-in.html
---
This week we will show how to use Photorec to recover data form a suspect disk image. Photorec supports the recovery of many different file types, but we will focus on jpg image recovery. Photorec works in Windows, Mac and Linux and is a useful tool for automating data recovery on suspect disk images.


@(gameState: models.game.mask.GameMask with models.game.mask.MyDoneAnswering)(implicit user: models.user.User, session: play.api.db.slick.Config.driver.simple.Session)
@import controllers.game.routes.GamesController
@import controllers.game.GameRequest
@import helper._
@import models.organization.Courses
@mainWithBorder("Game Done", tag.courseOpLink(gameState.game.course)) {
@if(!gameState.otherFinished){
You have finished but @gameState.other.nameView still needs to finish your quiz.
} else {
Congratulations you finished a game with @gameState.other.nameView
}
@for(studentPoints <- gameState.myStudentPointsOp ) {
}
@for(teacherPoints <- gameState.myTeacherPointsOp ) {
}@if(gameState.myTeacherPointsOp.isEmpty) {
Your quiz hasn't been completed yet so you haven't gotten any teacher points.
}
@if(models.user.Friends.isPossibleFriend(gameState.otherId)) {
}
}


public interface Check
| Modifier and Type | Method and Description |
|---|---|
void |
alertEquals(String expectedAlertText)
Checks that an alert present on the page has content equal to the
expected text.
|
void |
alertMatches(String expectedAlertPattern)
Checks that an alert present on the page has content matching the
expected pattern.
|
void |
alertNotPresent()
Checks that an alert is not present on the page.
|
void |
alertPresent()
Checks that an alert is present on the page.
|
default String |
checkAlertEquals(String expectedAlertText,
double waitFor,
double timeTook)
Checks that an alert present on the page has content equal to the
expected text.
|
default String |
checkAlertMatches(String expectedAlertPattern,
double waitFor,
double timeTook)
Checks that an alert present on the page has content matching the
expected pattern.
|
default boolean |
checkAlertNotPresent(double waitFor,
double timeTook)
Checks that an alert is not present on the page.
|
default boolean |
checkAlertPresent(double waitFor,
double timeTook)
Checks that an alert is present on the page.
|
default String |
checkConfirmationEquals(String expectedConfirmationText,
double waitFor,
double timeTook)
Checks that a confirmation present on the page has content equal to the
expected text.
|
default String |
checkConfirmationMatches(String expectedConfirmationPattern,
double waitFor,
double timeTook)
Checks that a confirmation present on the page has content matching the
expected pattern.
|
default boolean |
checkConfirmationNotPresent(double waitFor,
double timeTook)
Checks that a confirmation is not present on the page.
|
default boolean |
checkConfirmationPresent(double waitFor,
double timeTook)
Checks that a confirmation is present on the page.
|
default String |
checkCookieEquals(String cookieName,
String expectedCookieValue,
double waitFor,
double timeTook)
Checks that a cookies with the provided name has a value equal to the
expected value.
|
default boolean |
checkCookieExists(String expectedCookieName,
double waitFor,
double timeTook)
Checks that a cookie exists in the application with the provided
cookieName.
|
default String |
checkCookieMatches(String cookieName,
String expectedCookiePattern,
double waitFor,
double timeTook)
Checks that a cookies with the provided name has a value matching the
expected value pattern.
|
default boolean |
checkCookieNotExists(String unexpectedCookieName,
double waitFor,
double timeTook)
Checks that a cookie doesn't exist in the application with the provided
cookieName.
|
default String |
checkPromptEquals(String expectedPromptText,
double waitFor,
double timeTook)
Checks that a prompt present on the page has content equal to the
expected text.
|
default String |
checkPromptMatches(String expectedPromptPattern,
double waitFor,
double timeTook)
Checks that a prompt present on the page has content matching the
expected pattern.
|
default boolean |
checkPromptNotPresent(double waitFor,
double timeTook)
Checks that a prompt is not present on the page.
|
default boolean |
checkPromptPresent(double waitFor,
double timeTook)
Checks that a prompt is present on the page.
|
default boolean |
checkTextNotPresent(String expectedText,
double waitFor,
double timeTook)
Checks that provided text are not on the current page.
|
default boolean |
checkTextPresent(String expectedText,
double waitFor,
double timeTook)
Checks that provided text are on the current page.
|
default String |
checkTitleEquals(String expectedTitle,
double waitFor,
double timeTook)
Checks the provided title equals the actual title of the current page
the application is on.
|
default String |
checkTitleMatches(String expectedTitlePattern,
double waitFor,
double timeTook)
Checks the provided title matches the actual title of the current page
the application is on.
|
default String |
checkUrlEquals(String expectedURL,
double waitFor,
double timeTook)
Checks that the provided URL equals the actual URL the application is
currently on.
|
void |
confirmationEquals(String expectedConfirmationText)
Checks that a confirmation present on the page has content equal to the
expected text.
|
void |
confirmationMatches(String expectedConfirmationPattern)
Checks that a confirmation present on the page has content matching the
expected pattern.
|
void |
confirmationNotPresent()
Checks that a confirmation is not present on the page.
|
void |
confirmationPresent()
Checks that a confirmation is present on the page.
|
void |
cookieEquals(String cookieName,
String expectedCookieValue)
Checks that a cookies with the provided name has a value equal to the
expected value.
|
void |
cookieExists(String expectedCookieName)
Checks that a cookie exists in the application with the provided
cookieName.
|
void |
cookieMatches(String cookieName,
String expectedCookiePattern)
Checks that a cookies with the provided name has a value matching the
expected value pattern.
|
void |
cookieNotExists(String unexpectedCookieName)
Checks that a cookie doesn't exist in the application with the provided
cookieName.
|
App |
getApp()
Retrieves the driver that is used for all selenium actions
|
OutputFile |
getOutputFile()
Retrieves the output file that we write all details out to
|
void |
promptEquals(String expectedPromptText)
Checks that a prompt present on the page has content equal to the
expected text.
|
void |
promptMatches(String expectedPromptPattern)
Checks that a prompt present on the page has content matching the
expected pattern.
|
void |
promptNotPresent()
Checks that a prompt is not present on the page.
|
void |
promptPresent()
Checks that a prompt is present on the page.
|
void |
textNotPresent(String expectedText)
Checks that provided text are not on the current page.
|
void |
textPresent(String expectedText)
Checks that provided text are on the current page.
|
void |
titleEquals(String expectedTitle)
Checks the provided title equals the actual title of the current page
the application is on.
|
void |
titleMatches(String expectedTitlePattern)
Checks the provided title matches the actual title of the current page
the application is on.
|
void |
urlEquals(String expectedURL)
Checks that the provided URL equals the actual URL the application is
currently on.
|
OutputFile getOutputFile()
App getApp()
void urlEquals(String expectedURL)
expectedURL
- - the URL of the pagedefault String checkUrlEquals(String expectedURL, double waitFor, double timeTook)
expectedURL
- - the URL of the pagewaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void titleEquals(String expectedTitle)
expectedTitle
- the friendly name of the pagedefault String checkTitleEquals(String expectedTitle, double waitFor, double timeTook)
expectedTitle
- - the friendly name of the pagewaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void titleMatches(String expectedTitlePattern)
expectedTitlePattern
- - the friendly name of the pagedefault String checkTitleMatches(String expectedTitlePattern, double waitFor, double timeTook)
expectedTitlePattern
- - the friendly name of the pagewaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void textPresent(String expectedText)
expectedText
- - the expected text to be presentdefault boolean checkTextPresent(String expectedText, double waitFor, double timeTook)
expectedText
- - the expected text to be presentwaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void textNotPresent(String expectedText)
expectedText
- - the expected text to be not presentdefault boolean checkTextNotPresent(String expectedText, double waitFor, double timeTook)
expectedText
- - the expected text to be not presentwaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void alertPresent()
default boolean checkAlertPresent(double waitFor, double timeTook)
waitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void alertNotPresent()
default boolean checkAlertNotPresent(double waitFor, double timeTook)
waitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void alertEquals(String expectedAlertText)
expectedAlertText
- - the expected text of the alertdefault String checkAlertEquals(String expectedAlertText, double waitFor, double timeTook)
expectedAlertText
- - the expected text of the alertwaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void alertMatches(String expectedAlertPattern)
expectedAlertPattern
- - the expected text of the alertdefault String checkAlertMatches(String expectedAlertPattern, double waitFor, double timeTook)
expectedAlertPattern
- - the expected text of the alertwaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void confirmationPresent()
default boolean checkConfirmationPresent(double waitFor, double timeTook)
waitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void confirmationNotPresent()
default boolean checkConfirmationNotPresent(double waitFor, double timeTook)
waitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void confirmationEquals(String expectedConfirmationText)
expectedConfirmationText
- - the expected text of the confirmationdefault String checkConfirmationEquals(String expectedConfirmationText, double waitFor, double timeTook)
expectedConfirmationText
- - the expected text of the confirmationwaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void confirmationMatches(String expectedConfirmationPattern)
expectedConfirmationPattern
- - the expected text of the confirmationdefault String checkConfirmationMatches(String expectedConfirmationPattern, double waitFor, double timeTook)
expectedConfirmationPattern
- - the expected text of the confirmationwaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void promptPresent()
default boolean checkPromptPresent(double waitFor, double timeTook)
waitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void promptNotPresent()
default boolean checkPromptNotPresent(double waitFor, double timeTook)
waitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void promptEquals(String expectedPromptText)
expectedPromptText
- - the expected text of the promptdefault String checkPromptEquals(String expectedPromptText, double waitFor, double timeTook)
expectedPromptText
- - the expected text of the promptwaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void promptMatches(String expectedPromptPattern)
expectedPromptPattern
- - the expected text of the promptdefault String checkPromptMatches(String expectedPromptPattern, double waitFor, double timeTook)
expectedPromptPattern
- - the expected text of the promptwaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void cookieExists(String expectedCookieName)
expectedCookieName
- - the name of the cookiedefault boolean checkCookieExists(String expectedCookieName, double waitFor, double timeTook)
expectedCookieName
- - the name of the cookiewaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void cookieNotExists(String unexpectedCookieName)
unexpectedCookieName
- - the name of the cookiedefault boolean checkCookieNotExists(String unexpectedCookieName, double waitFor, double timeTook)
unexpectedCookieName
- - the name of the cookiewaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void cookieEquals(String cookieName, String expectedCookieValue)
cookieName
- - the name of the cookieexpectedCookieValue
- - the expected value of the cookiedefault String checkCookieEquals(String cookieName, String expectedCookieValue, double waitFor, double timeTook)
cookieName
- - the name of the cookieexpectedCookieValue
- - the expected value of the cookiewaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)void cookieMatches(String cookieName, String expectedCookiePattern)
cookieName
- - the name of the cookieexpectedCookiePattern
- - the expected value of the cookiedefault String checkCookieMatches(String cookieName, String expectedCookiePattern, double waitFor, double timeTook)
cookieName
- - the name of the cookieexpectedCookiePattern
- - the expected value of the cookiewaitFor
- - if waiting, how long to wait for (set to 0 if no wait is desired)timeTook
- - the amount of time it took for wait for something (assuming we had to wait)Copyright © 2019. All rights reserved.


{% extends "base.html"%} {% load static %} {% block title %} Introduction to Verilog {% endblock %} {% block content%}
Before jumping right into syntax and programming concepts in Verilog, it is really important to have a strong foundation in digital basics viz. Binary codes, Logic Gates and Boolean algebra. They are important as they help you in transforming your ideas into a presentable design structure.
There are four most commonly used number systems:
Now we know, a computer is an electronic device and uses voltages to represent different numbers. Since voltages change very often, no specific voltage is set for each number in the decimal, octal or hex system. For this reason, binary is used as a two state system to represent values i.e. on and off. Also the binary system simplifies the design of computers and related technologies to a great extent. You will get to know some of its very powerful concepts in the upcoming articles!
In digital computers a combination of diodes and transistors is used to represent multiple ON and OFF states and represent an n-bit binary number. These devices exist in one of the two possible states. So, these two states can be represented by the symbols 1 and 0, respectively.
The binary number system is a positional weighted system. The base or radix of this system is 2. Hence, it has two independent symbols. The symbols used are 0 and 1. A binary digit is called a bit and a binary number consists of a sequence of bits, each of which is a 0 or a 1.
The binary point (.) separates the integer and fraction parts. Each bit carries a weight based on its position to binary point. The weight of each bit is 2 raised to power of the bit position.
Example: Binary Number - 1 0 1 1 1 . 1 0 0 Position (n) - 4 3 2 1 0 .-1 -2 -3 Weight (2n) - 24 23 22 21 20 2-1 2-2 2-3
Decimal value of binary number is the sum of products of all its bits multiplied by weights of their respective positions.
Decimal Equivalent = 1x24+ 0x23+ 1x22+ 1x21+ 1x20 + 1x2-1 + 0x2-2 + 0x2-3 of (10111.100) = 16 + 0 + 4 + 2 + 1 + 0.5 + 0 + 0 = 23.5
Now that we have learned the basic representation of data in computers, let us see how we compute some important binary arithmetic to implement a digital system irrespective of its size and complexity. It is time for the LOGIC GATES!
Logic Gates are fundamental building blocks of digital systems. The name logic gate is derived from the ability of such a device to make decisions, in the sense that it produces a specific output when some combination of inputs are present, and different outputs when other combinations of inputs are present.
Computers can perform very complex logic operations, thanks to the interconnection of these elementary logic gates. The interconnection of gates to perform a variety of logical operations is called logic design. We will learn some amazing logic design techniques using Verilog in future articles.
There are three basic types of gates viz. AND, OR and NOT. The functions of these gates are described with the help of a diagram and a table which lists all the possible combinations of input variables and corresponding outputs, known as the truth table.
An AND gate has two or more inputs but only one output. The output assumes logic state 1 when each of its input is at logic state 1 and assumes logic state 0 even if one of its inputs is at logic 0.
The logic symbols and truth tables of two-input and three input AND gates are shown in figures below.
| Inputs | Outputs | |
|---|---|---|
| A | B | X |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| Inputs | Outputs | ||
|---|---|---|---|
| A | B | C | X |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 |
When input variables to the AND gate are represented by A, B, C, …, the expression for output can be written as X = A.B.C… which is read as ‘X equals to A and B and C and …’ or ‘X equal A dot B dot C dot …’. We will cover the and (.) operator(PC-1) in the next section of ‘Boolean algebra’
Similar to an AND gate, an OR gate may have two or more inputs but only one output. The output assumes logic state 1 even if one of its inputs is at logic state 1 and assumes logic state 0 only if each one of its inputs is at logic state 0.
The logic symbols and truth tables of two-input and three input OR gates are shown in figures below.
| Inputs | Outputs | |
|---|---|---|
| A | B | X |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
| Inputs | Outputs | ||
|---|---|---|---|
| A | B | C | X |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
When input variables to the OR gate are represented by A, B, C, …, the expression for output can be written as X = A+B+C+.. which is read as ‘X equals to A or B or C or …’ or ‘X equals A plus B plus C plus …’. We will cover the or (+) operator (PC-2) in the next section of ‘Boolean algebra’.
A NOT gate, also called an inverter, has only one input and, of course only one output. The output of this device is always the complement of its input (PC-3). That is in simple words, NOT gate assumes logic state 1 when input state is 0 and logic state 0 when input state is 1.
The logic symbol and truth table of a NOT gate are shown in figures below.
| Input | Outputs |
|---|---|
| A | X |
| 0 | 1 |
| 1 | 0 |
The symbol for a ‘NOT’ operation is ‘’ (bar). When input variable to the ‘NOT’ gate is represented by A and output by X, the output expression is given as, X =A. This is read as “X equals to A bar”.
Though logic circuits of any complexity can be realized by using only three basic gates (AND, OR and NOT), there are two universal gates (NAND and NOR), each of which can be used single-handedly to realize any logic. NAND and NOR can perform all three logic functions (AND,OR and NOT). Therefore, they are also called universal logic gates.
NAND means NOT AND, i.e. AND output is NOTed (or complemented). So, a NAND gate is a serial combination of AND and NOT gates.
The logic symbols and truth tables of two-input and three input NAND gates are shown in figures below.
| Inputs | Outputs | |
|---|---|---|
| A | B | X |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
| Inputs | Outputs | ||
|---|---|---|---|
| A | B | C | X |
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 0 |
When input variables to the NAND gate are represented by A, B, C, …, the expression for output can be written as X =A.B.C… which is read as ‘X equals to A and B and C and … whole bar’ or ‘X equal A dot B dot C dot … whole bar’.
NOR means NOT OR, i.e. OR output is NOTed (or complemented). So, a NOR gate is a serial combination of OR and NOT gates.
The logic symbols and truth tables of two-input and three input NOR gates are shown in figures below.
| Inputs | Outputs | |
|---|---|---|
| A | B | X |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
| Inputs | Outputs | ||
|---|---|---|---|
| A | B | C | X |
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 |
When input variables to the NOR gate are represented by A, B, C, …, the expression for output can be written as X = A+B+C+.. which is read as ‘X equals to A or B or C or … whole bar’ or ‘X equals A plus B plus C plus … whole bar’.
A X-OR gate is a two input, one output logic circuit, whose output assumes a logic state 1 when one and only one of its input assumes a logic state 1. Under the conditions, when both of its inputs are logic state 0 or logic state 1, the output assumes a logic state 0.
Since an X-OR gate produces an output 1 only when the inputs are not equal, it is called an anti-coincidence or inequality detector. The output of X-OR gate is the modulo sum of its two inputs.
The logic symbol and truth table of a two-input X-OR gate are shown in figures below.
| Inputs | Outputs | |
|---|---|---|
| A | B | X |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
The input variables are represented by A and B and the output variable by X, the expression for output is X = A⊕B = AB + AB and read as “X is equal to A ex-or B”.
Three or more variable X-OR gates do not exist. When two or more variables are to be X-ORed multiple XOR gates are cascaded. The X-OR of a number of variables assume a 1 only when an odd number of input variables assume a 1 state.
An X-NOR gate is a combination of an X-OR and a NOT gate. It is a two input, one output logic circuit, whose output assumes a logic state 1 only when both inputs assume a 0 state or a 1 state. The output assumes a 0 state when one of inputs is 0 and other is 1.
Since an X-NOR gate produces an output 1 only when the inputs are equal, it is called a coincidence gate or equality detector.
The logic symbol and truth table of a two-input X-NOR gate is shown in figures below.
| Inputs | Outputs | ||
|---|---|---|---|
| A | B | C | X |
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 |
The input variables are represented by A and B and the output variable by X, the expression for output is X = AΘB = AB + AB and read as “X is equal to A ex-nor B”.
Three or more variable X-NOR gates do not exist. When two or more variables are to be X-NORed multiple X-NOR gates are cascaded. The X-NOR of a number of variables assume a 1 only when an even number of input variables (including 0) assume a 1 state.
Here comes the end to an amazing journey of logic gates which forms the basis of digital system design. They play a vital role in realizing the logic expressions defined for the functioning of a system.
In the next section, we will learn ‘Boolean algebra’ which will help us in solving complex logic expressions and networks of logic gates into their simpler forms. This will help us realize a digital system in least possible resources. Let’s get started!
Boolean algebra is a division of mathematics that deals with operations on logical values and incorporates binary variables. It is governed by certain well-developed rules and laws that we will see in upcoming sections.
Contrary to elementary algebra where values of variables are decimal numbers and prime operations as addition and multiplication, Boolean algebra deals with binary numbers and uses operations like and, or & not. Thus, it is a way of representing logical operations in the same way as elementary algebra for numerical operations.
In Boolean algebra, the AND operation is represented with a dot(.) operator and can be carried out between two or more operands.The operation results in true (1) only when all the operands are true and in the rest of the cases the result is false (0).
The OR operation is represented with a plus(+) operator and can be carried between two or more operands. The operation results in true (1) even if one of the operands is true and is false (0) only when all operands are false (0).
The NOT operation is represented with a bar (‘¯’) over a variable and is a unary operator.The operation returns true (1) when operand is false and returns false (0) when operand is true.
Axioms or laws are statements that we accept without any proofs and upon which we can build a set of useful theorems. Each axiom can be interpreted as the outcome of an operation by a logic gate.
| Axiom 1 : 0.0 = 0 | Axiom 6 : 0+1 = 1 |
| Axiom 2 : 0.1 = 0 | Axiom 7 : 1+0 = 1 |
| Axiom 3 : 1.0 = 0 | Axiom 8 : 1+1 = 1 |
| Axiom 4 : 1.1 = 1 | Axiom 9 : 1 = 0 |
| Axiom 5 : 0+0 = 0 | Axiom 10 : 0 = 1 |
The term complement simply means to invert i.e. to change 0s to 1s and 1s to 0s. There are five complementation laws as listed below:
| Law 1 | 0 = 1 |
| Law 2 | 1 = 0 |
| Law 3 | If A = 0 then A = 1 |
| Law 4 | If A = 1, then A = 0 |
| Law 5 | A̿ = A |
There are four AND laws as listed below::
| Law 1 | A.0 = 0 |
| Law 2 | A.1 = A |
| Law 3 | A.A = A |
| Law 4 | A.A = 0 |
There are four OR laws as listed below::
| Law 1 | A+0 = A |
| Law 2 | A+1 = 1 |
| Law 3 | A+A = A |
| Law 4 | A+A = 1 |
Commutative laws allow change in position of AND or OR variables. There are two commutative laws.
| Law 1 | A + B = B + A |
| Law 2 | A.B = B.A |
The associative laws allow grouping of variables. Laws are listed below:
| Law 1 | (A+B) + C = A + (B+C) |
| Law 2 | (A.B)C = A(B.C) |
There are three distributive laws:
| Law 1 | A(B+C) = AB + AC |
| Law 2 | A + BC = (A+B)(A+C) |
| Law 3 | A + AB = (A+ A)(A+B) = 1 . (A+B) = A + B |
The consensus theorem is a rule or an identity. It is stated as the conjunction of all the unique literals of the terms, excluding the literal that appears unnegated in one term and negated in the other.
| Theorem 1: | AB+ AC+BC=AB+AC |
|---|---|
| Theorem 2: | A+BA+CB+C=(A+B)(A+C) |
De Morgan’s theorem represents two of the most powerful laws in Boolean algebra. They are stated as:
Law 1: A+B= A.B
This law states that the complement of a sum of variables is equal to the product of their individual complements. It can be extended to any number of variables or combinations.
Example: A+B+C+D+…= A.B.C.D...
Law 2: AB= A+ B
This law states that complement of the product of variables is equal to the sum of their individual complements. It can be extended to any number of variables or combinations.
Example: ABCD…= A+ B+ C+ D+ ..


Awesome Books
Add books
Contact Information
Do you have any question, or you just want to say "Hello"?
You can reach out to us!
- Our e-mail<EMAIL_ADDRESS>- Our phone number: 00 123 45678
- OUr address: Streethome 22, 4530 City, Country
Do you have any question, or you just want to say "Hello"?
You can reach out to us!


Game
Rankings
Log
Profile
Team 1
Find match
Player 1 (First Shooter):
No player
swap
Player 2 (Second Shooter):
No player
Team 2
Player 1 (First Shooter):
No player
swap
Player 2 (Second Shooter):
No player
Game results
Team 1
Team 2
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
Submit results


Manage Card Decks
Card deck was deleted.
Please select the card decks to delete.
Nothing to manage!
Card Deck Name
Description
Delete?


.col-*
where *
value can be { sm | md | lg | xl | xxl }
.col-#
where #
value can be from 1 to 12
.bg-{color}
where color
value can be { primary | secondary | success | danger | warning | info | light | dark }
.bd-highlight
class is for demo purpose only


Enter your email address and click "Reset" and you will receive an email with instructions to reset your password.


{% assign urls = site.data.urls %} Student Debt Strike Dispute Your Debt Community The Power Report Donate Sign up Login Login


"A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine."
Farafina is set to publish debut novel, Of Women and Frogs, by Bisi Adjapon, in December 2018. Of Women and Frogs is the coming-of-age story of Esi, a feisty half-Nigerian girl growing up in post-colonial Ghana, with occasional visits to her maternal family in Lagos.
Welcome To Ake Arts & Books Festival About Ake Festival Ake Arts & Book Festival is four days of cultural immersion. As is always the case, Ake Arts and Book Festival aims to showcase the very best of contemporary African literature, poetry, music, art, film, and theatre.
A Walk in the Burb For the first time ever, in a suburb where cars whiz around curves and race to beat red lights, I walked to the library and bank. If I'd worn shorts and sneakers, jogging in place at intersections while waiting for the light to change, people would have thought, "Oh, she's exercising."
I throw myself down among the tall grass by the trickling stream; and, as I lie close to the earth, a thousand unknown plants are noticed by me: when I hear the buzz of the little world.
J. W. Goethe CEO
Then, my friend, when darkness overspreads my eyes, and heaven and earth seem to dwell in my soul and absorb its power, like the form of a beloved mistress, then I often think with longing.
G. W. John Co-founder
© 2018 Bisi Adjapon. All rights reserved


Your input:
{% for pair in inputwords %}
{% set token, color = pair %}
{{token}}
{% endfor %}
Expected (appeared in the first 10 predictions)
Somewhat predictable (appeared in the first 100 predictions)
Unexpected (didn't appear in the first 100 predictions)
Overall predictability score (scale of 0 to 1): {{ score }}
Predicted words:
{% for predictiondict in predictions %}
- [
{% for word in predictiondict %}
'{{ word }}'
{% endfor %} ]
{% endfor %}


{{ thread.title }}
{% if user.is_authenticated %} {% endif %} {% if posts %}-
{% for post in posts.object_list %}
- {% include "kbforums/includes/post.html" %} {% endfor %}
{{ _('Oh, no! Looks like there are no posts!') }}
{% endif %} {% if user.is_authenticated and not thread.is_locked %} {% elif user.is_authenticated and thread.is_locked %}{{ _('This thread has been locked. It is no longer possible to post new replies.') }}


Javascript Basics
JavaScript is a cross-platform, object-oriented scripting language. JavaScript is extremely popular for a variety of reasons. It is a small and lightweight language allowing maximum flexibility for developers to take it in a bunch of different directions. JavaScript lives inside a host environment (a web browser or Node server), it can be connected to the objects of these environments to provide programmtic control over them.
-
Variable DeclarationJavascript variables are containers for storing data values - imagine a cup you fill with coffee, the cup holds the coffee, a variable holds a value. All JavaScript variables must be identified with unique names. These unique names are called identifiers.var x;
- Variable AssignmentAssignment operators assign vlues to JavaScript variables- our cup can now have coffee poured in it, giving our variable a value to hold. The = assignment operator assigns a vlue to a varaible.varx=10;Data Types Data types are an important concept; to be able to operate on variables you need to know the data type. There are six data types that are JavaScript primitives: Boolean -trueorfalse;null -nullaka nothing; Number -42or3.14159;String -"Coding Dojo Rocks!";Array -[1, "Coding', 2, 'Dojo'];and Object-{first_name: 'Jame', last_name: 'Doc}']ConditionalsWhen you write code, you want to perform different actiosn for different decisions - hitting different code blocks based on values or conditions that have been met. You can use conditional statements in your code to accomplish this. There are the following conditional statements:ifa specifiied condition is true, do this code in our code block;else ifto specify a new condition to test, if the first condition is false;elsewe execute this block of code;LoopsThere are many different kinds of loops in every programming language, but they all essentially do the same thing: they will repeat an action some number of times.   When we call our function this will run that code block. Think of it as a list of instructions. As an example imagine we are putting together a desk from Ikea, we open up the instruction manual and get started, first we screw the legs to the table top; next we place the table the right way up. Done! We finished our instructions. Sadly there are a ton more tables to do so lets call our function over and over and over again.
- Function


PTS-Int. ETA Calculator
Fastest Path
Silom
CharoenKrung
Bhumibhol Bridge
Semester:
Open
Close
Day:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Time:


| Height | Age | Transactions | Size |
|---|---|---|---|
| Waiting for blocks... | |||
| {{b.height}} | {{humanSince(b.time)}} | {{b.txlength}} | {{b.size}} |
| Hash | Value Out | |
|---|---|---|
| Waiting for transactions... | ||
| {{tx.txid}} | {{tx.valueOut}} CHIPS |
CHIPS revolutionises online gambling as the project aims to bring truly decentralised, trustless, peer-to-peer, and secure, blockchain casino style games. Check out the source code.
ChipsSight is an Insight based explorer adapted for CHIPS blockchain with love by SHossain. Bugs and inconsistancies are expected. So be sure to report any bugs and provide feedback for improvement at our github issue tracker or in CHIPS Discord server.


In the centenary year of the Russian Revolution, are you inspired to learn about Russia in the early twentieth century, through fiction, non-fiction, or DVDs? We’ve compiled a list of titles to get you started.
This list was compiled with the help of deputy head of IT Leon Paternoster.
Fiction
Doctor Zhivago, by Boris Pasternak
“The story of Yuri Zhivago, physician and poet, is both a panoramic, epic portrait of a country in the throes of the most radical revolution in history, and an intense love story.”
The White Guard, by Mikhail Bulgakov
“Set in the Ukranian capital of Kiev during the chaotic winter of 1918-19, ‘The White Guard’, Bulgakov’s first full-length novel, tells the story of a Russian-speaking family trapped in circumstances that threaten to destroy them. As in Tolstoy’s War and Peace, the narrative centres on the stark contrast between the cost domesticity of family life on the one hand and wide-ranging and destructive historical events on the other.”
The Master & Margarita, by Mikhail Bulgakov
“Russia’s literary world is shaken to its foundations when a mysterious gentleman - a professor of black magic - arrives in Moscow, accompanied by a bizarre retinue of servants. It soon becomes clear that he is the Devil himself, come to wreak havoc among the cultural elite of a disbelieving capital.”
Non-fiction
The Last Englishman: the double life of Arthur Ransome, by Roland Chambers
“This title offers an absorbing and often chilling examination of an English icon and his world. Examining Ransome’s life before Swallows and Amazons, it looks at his time spent in Russia as a journalist as well as his dangerous life as a double agent.”
Six Weeks in Russia, 1919 and The Crisis in Russia, 1920, by Arthur Ransome
Better-known for Swallows and Amazons, Arthur Ransome worked as a reporter in Russia during the Revolution, putting him in a position to produce these eyewitness accounts from a rare western perspective.
Futurism, by Sylvia Martin
“Inspired by the development of Cubism, the Futurist movement was founded in 1909 by Filippo Tommaso Marinetti, along with painters Giacomo Balla, Umberto Boccioni, Carlo Carrà, and Gino Severini. The school, which celebrated technology and the mechanical era, was comprised of painters, sculptors, designers, architects, and writers.
“Motion and machines were two main themes of this movement, which attacked the bastions of establishment and sparked controversy by its glorification of war and support of Fascism. Experimenting with movement, and speed, and abstract light and colour, the Futurists developed approaches and techniques that were revolutionary at the time, and in retrospect one can see that the Futurists influenced other avant-garde art movements, most notably Russian Constructivism. This book explores the Futurist movement.”
Revolution: Russian art 1917-1932, by Natalia Murray
“This study encapsulates a momentous period in Russian history that is vividly expressed in the diversity of art produced between 1917, the year of the October Revolution, and 1932, when Stalin began to suppress the avant-garde and its debates. Based around the great exhibition of 1932 held at the State Russian Museum in Leningrad, the book explores the fascinating themes and artistic developments of the first 15 years of the Soviet state, including painting, sculpture, ceramics, posters, graphics and film.”
Stalin: the court of the Red Tsar, by Simon Sebag Montefiore
“Simon Sebag Montefiore has unearthed the vast underpinning that sustained Stalin. Not only ministers such as Molotov or secret service chiefs such as Beria, but men and women whose loyalty he trusted only until the next purge. Here is the Stalin story from the inside, full of revelations.”
The Last of the Tsars: Nicholas II and the Russian Revolution, by Robert Service
“The Last of the Tsars is a study of a man who was almost entirely out of his depth, perhaps even wilfully so. It is also a compelling account of the social, economic and political foment in Russia in the aftermath of Alexander Kerensky’s February Revolution, the Bolshevik seizure of power in October 1917 and the beginnings of Lenin’s Soviet republic.”
Lenin the Dictator: an intimate portrait, by Victor Sebestyen
“Victor Sebestyen’s intimate biography is the first major work in English for nearly two decades on one of the most significant figures of the 20th century. In Russia to this day Lenin inspires adulation. Everywhere, he continues to fascinate as a man who made history, and who created a new kind of state that would later be imitated by nearly half the countries in the world. Told through the prism of Lenin’s key relationships, Sebestyen’s lively biography casts a new light on the Russian Revolution, one of the great turning points of modern history.”
Lenin on the Train, by Catherine Merridale
“By 1917 the European war seemed to be endless. Both sides in the fighting looked to new weapons, tactics and ideas to break a stalemate that was itself destroying Europe. In the German government a small group of men had a brilliant idea: why not sow further confusion in an increasingly chaotic Russia by arranging for Vladimir Ilyich Lenin, the most notorious of revolutionary extremists, currently safely bottled up in neutral Switzerland, to go home?
“Catherine Merridale recreates Lenin’s extraordinary journey from harmless exile in Zurich, across a Germany falling to pieces from the war’s deprivations, and northwards to the edge of Lapland to his eventual ecstatic reception by the revolutionary crowds at Petrograd’s Finland Station.”
Ten Days that Shook the World, by John Reed
“The author’s eyewitness account of the Russian Revolution. A contemporary journalist writing in the first flush of revolutionary enthusiasm, he gives a gripping record of the events in Petrograd in November 1917, when Lenin and the Bolsheviks finally seized power.
“Containing verbatim reports both of speeches by leaders and the chance comments of bystanders, set against an idealized backcloth of the proletariat, soldiers, sailors, and peasants uniting to throw off oppression, Reed’s account is the product of passionate involvement and remains an unsurpassed classic of reporting.”
The Russian Experiment in Art 1863-1922, by Camilla Gray
“When the original edition of this book was published, John Russell hailed it as “a massive contribution to our knowledge of one of the most fascinating and mysterious episodes in the history of modern art.” Revised and expanded by Marian Burleigh-Motley, the book remains the most compact, accurate survey of 60 years of creative dynamic activity that influenced the progress of Western art and architecture.”
Russian Revolutionary Posters, by David King
“The story of the development of the Soviet poster, from the revolutionary period through to the death of Stalin. Over 165 posters by both famous and unknown designers reveal the way in which tumultuous events within the Soviet Union were matched by equally dramatic shifts in graphic art and design.”
The Commissar Vanishes: the falsification of photographs and art, by David King
“King looks at how Stalin manipulated the science of photography to further his own political career and to erase the memory of his victims. In each case, the juxtaposition of original and doctored images reveals how easily history can be distorted.”
A Spy Among Friends: Kim Philby and the great betrayal, by Ben Macintyre
“Kim Philby was the most notorious British defector and Soviet mole in history. Agent, double agent, traitor and enigma, he betrayed every secret of Allied operations to the Russians in the early years of the Cold War. His two closest friends in the intelligence world, Nicholas Elliott of MI6 and James Jesus Angleton, the CIA intelligence chief, thought they knew Philby better than anyone - and then discovered they had not known him at all.
“With access to newly released MI5 files and previously unseen family papers, and with the cooperation of former officers of MI6 and the CIA, this definitive biography unlocks what is perhaps the last great secret of the Cold War.”
DVDs
Doctor Zhivago
“David Lean directs this epic romantic drama adapted from Boris Pasternak’s novel. During the First World War, Yuri Zhivago (Omar Sharif) studies to become a doctor in Moscow. He marries his childhood sweetheart Tonya (Geraldine Chaplin), but is attracted to dressmaker’s daughter Lara (Julie Christie), herself engaged to young revolutionary Pasha (Tom Courtenay). Lara is also conducting an affair with government official Komarovsky (Rod Steiger). Yuri and Lara’s paths cross again in the aftermath of the Bolshevik revolution, and the two begin a passionate affair.”
Another Country
“A film that centres around the life of Guy Burgess (Rupert Everett) and why he became a Communist spy for the USSR. We learn of his homosexuality at Eton college and the subsequent public school pressures which were an influence on his life.”


SECTION
Flask Hello World app
Exercise: deploying docker container to Kubernetes cluster
Hello, World from PXL!
great


Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Returns the configured fields for the specified expense form.
Base URLs:
oAuth2 authentication. To use this API, you need to get OAuth client credentials (client ID, secret, and geolocation) from SAP Concur, and be authorized to use the relevant scope. Refer to the full authentication information for more information.
Flow: clientCredentials
Token URL = https://us.api.concursolutions.com/oauth2/v0
Code samples
# You can also use wget
curl -X GET https://www.concursolutions.com/api/expense/expensereport/v1.1/expense/expensereport/v1.1/report/Forms/{FormId}/Fields \
-H 'Accept: application/xml' \
-H 'Authorization: Bearer {access-token}'
GET https://www.concursolutions.com/api/expense/expensereport/v1.1/expense/expensereport/v1.1/report/Forms/{FormId}/Fields HTTP/1.1
Host: www.concursolutions.com
Accept: application/xml
const headers = {
'Accept':'application/xml',
'Authorization':'Bearer {access-token}'
};
fetch('https://www.concursolutions.com/api/expense/expensereport/v1.1/expense/expensereport/v1.1/report/Forms/{FormId}/Fields',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/xml',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://www.concursolutions.com/api/expense/expensereport/v1.1/expense/expensereport/v1.1/report/Forms/{FormId}/Fields',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/xml',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://www.concursolutions.com/api/expense/expensereport/v1.1/expense/expensereport/v1.1/report/Forms/{FormId}/Fields', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/xml',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.concursolutions.com/api/expense/expensereport/v1.1/expense/expensereport/v1.1/report/Forms/{FormId}/Fields', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.concursolutions.com/api/expense/expensereport/v1.1/expense/expensereport/v1.1/report/Forms/{FormId}/Fields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/xml"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.concursolutions.com/api/expense/expensereport/v1.1/expense/expensereport/v1.1/report/Forms/{FormId}/Fields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /expense/expensereport/v1.1/report/Forms/{FormId}/Fields
Get form fields
Retrieves the list of configured form fields for the specified form.
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| FormId | path | string | true | The identifier for the desired form. |
Example responses
200 Response
<?xml version="1.0" encoding="UTF-8" ?>
<FormFieldsList>
<FormField>
<Id>string</Id>
<Label>string</Label>
<ControlType>string</ControlType>
<DataType>VARCHAR</DataType>
<MaxLength>0</MaxLength>
<Required>N</Required>
<Cols>0</Cols>
<Access>RW</Access>
<Width>0</Width>
<Custom>N</Custom>
<Sequence>0</Sequence>
</FormField>
</FormFieldsList>
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | FormFieldsList |
| 400 | Bad Request | Invalid request | None |
| 401 | Unauthorized | Unauthorized | None |
| 403 | Forbidden | Forbidden | None |
| 404 | Not Found | Not Found | None |
| 500 | Internal Server Error | Internal error | None |
{
"FormField": [
{
"Id": "string",
"Label": "string",
"ControlType": "string",
"DataType": "VARCHAR",
"MaxLength": 0,
"Required": "N",
"Cols": 0,
"Access": "RW",
"Width": 0,
"Custom": "N",
"Sequence": 0
}
]
}
FormFieldsList
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| FormField | [FormField] | false | none | List of configured form fields for the specified form. |
{
"Id": "string",
"Label": "string",
"ControlType": "string",
"DataType": "VARCHAR",
"MaxLength": 0,
"Required": "N",
"Cols": 0,
"Access": "RW",
"Width": 0,
"Custom": "N",
"Sequence": 0
}
FormField
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| Id | string | false | none | The form field ID. |
| Label | string | false | none | The field label that appears in the user interface for the specified form. |
| ControlType | string | false | none | The type of field. |
| DataType | string | false | none | The type of data accepted by the field. |
| MaxLength | integer | false | none | The maximum length of data in the field. |
| Required | string | false | none | Whether the field is required. |
| Cols | integer | false | none | The number of columns the field contains. |
| Access | string | false | none | The access level the specified user has to the field. RW is read/write, RO is read only, and HD is hidden. |
| Width | integer | false | none | The width of the field. |
| Custom | string | false | none | Whether the field is custom. |
| Sequence | integer | false | none | The field order on the specified form. |
| Property | Value |
|---|---|
| DataType | VARCHAR |
| DataType | INTEGER |
| DataType | CHAR |
| DataType | TIMESTAMP |
| DataType | NUMERIC |
| DataType | MONEY |
| DataType | SMALLINT |
| DataType | BINARY |
| DataType | LIST |
| DataType | MLIST |
| DataType | BOOLEANCHAR |
| Required | N |
| Required | Y |
| Access | RW |
| Access | RO |
| Access | HD |
| Custom | N |
| Custom | Y |


{{user.username}} has sent the following feedback about SolarPermit.org:
Full Name: {{user.first_name}} {{user.last_name}}
Username: {{user.username}}
Email: {{user.email}}
Title: {{user_detail.title}}
Organization(s): {{user_orgs}}
Feedback: {{feedback}}


In your first meeting with the PE firm you are presented with some facts about the business. What issues do you identify?
Revenue |
In Store |
Catalogue |
Online |
| 2009 |
$75M |
$20M |
$50M |
| 2010 |
$80M |
$30M |
$75M |
Average Gross Margin 50%
Average Net Margin 5%
| Metrics |
Stores |
Catalogues |
Online Users |
| 2009 |
150 |
400k |
1.0M |
| 2010 |
160 |
300k |
2.5M |
Basic Points
- Revenue growth 30% per year
- Online and catalogue segments appear to be growing the fastest (50% 2009-2010), while In Store revenue is growing at less than 10%
- Need to understand profitability of the different channels to assess performance
Advanced Comments
- Stores: Revenue per store: $0.5m in 2009, $0.5m in 2010. Per Store revenue is flat, so growth is only being delivered by store growth.
- Catalogues: Revenue per Catalogue: $50 in 2009, $100 in 2010. Catalogue distribution has diminished, but per catalogue revenue has grown 100%. This suggests that less profitable catalogue customers are being transitioned to other channels.
- Online Retail: Revenue per Online Member: $50 in 2009, $30 in 2010. Online Users have grown, but revenue per user has declined. This suggests that new users are less profitable, perhaps transitioning from the catalogue channel.
- Expectations: If PE firm aquired Zobe for $150M last year, this implies a revenue multiple of close to 1x and an EBITDA multiple of approx 20x - a very high valuation. Therefore PE firm is expecting significant growth.
- Context: Difficult to assess current performance and prospects without knowing anything about the market - overall growth of the niche sportswear/lifestyle sector, competition etc


{{news.0.title}}
{{news.0.summary|markdown}}
The United States PostgreSQL Association, affectionately known as PgUS, is a IRS 501(c)(3) public charity. Our purpose is to support the growth and education of PostgreSQL, The World's Most Advanced Open Source Database.
Are you interested in PostgreSQL growth and education? Do you support PostgreSQL and want to help? By becoming a member you will be helping to support our mission and be able to influence what we do.
Latest PgUS News
{{news.0.summary|markdown}}


18th edition
09:30 AM
Registration Starts
10:00 AM
10:15 AM
Why Security?
Talk about breaches, impact on business, rising security focus and new opportunities
By: Dileep Bellamkonda
Resources: Presentation
YouTube: Link
10:45 AM
11:30 AM
Tea Break
11:45 AM
Attack Trees
Level 1: Learn to do threat analysis using attack trees
By: Vaishnavi and Sharaniya
Resources: Presentation
YouTube: Link
12:15 PM
Top 10 attacks cautioned by OWASP community
By: Agalya and Roberta
Resources: Presentation
YouTube: Link
12:45 PM
Lunch
02:00 PM
QA wearing a Hacker's hat
With just a change in perspective, how a QA can improve the security of application under development
By: Christopher Rex
Resources: Presentation
YouTube: Link
02:30 PM
Tool Demo: Scan using ZAP
Demo of ZAP scanner tool to automatically find security vulnerabilities in a web application. Also to give a heads up on various other security tools.
By: Anto Sukesh
Resources: Presentation
YouTube: Link
03:00 PM
Penetration Workshop: SQL injection
Learn how sensitive information like credit card details get stolen by hackers, in a hands-on exercise
By: Prabhu Jayakumar and Abinaya
Resources: Presentation
YouTube: Link
04:00 PM
High Tea and Networking
Siva is the Office Principal of ThoughtWorks Chennai. He has close to 17 years of experience in software development with large part of it being a software architect on large and complex projects. Currently, he owns and manages office operations, delivery, capability development in niche areas and career development of TWers in Chennai office.
Dileep is a Business Analyst with 8+ years of experience in Software Testing, Automation and Business analysis. He is always curious to gain new skills. Having worked on a spectrum of projects as a QA he is currently working for a startup as a product manager.
Christopher is a ThoughtWorker and Agile enthusiast, with an experience of 10+ years. He has worked in testing Web/Mobile/Desktop applications and Micro-services. He is a firm believer of defect prevention and collaborative teams. Has contributed to open-source initiatives and passionate in learning security testing.
Vijayaragavan is a Senior Quality Analyst at ThoughtWorks with deep passion for automation in agile environments. His primary responsibility is to implement the test strategy for the projects that ThoughtWorks is building for their clients. He has worked on a number of web application for the past 11 years.
Abinaya, a Senior Quality Analyst in ThoughtWorks has about 4.5 years of experience spanning across different domains like e-procurement, banking, media and retail. With interest in learning new technologies, trends and tools, she is also passionate in fixing defects in web applications.
Padma is a Quality analyst at ThoughtWorks with deep passion for automation in agile environments. Her primary responsibility is to implement the test strategy for the projects that ThoughtWorks is building for their clients. She has worked on a number of web application for the past 3 years.
Deepthi is a polyglot programmer and security enthusiast, with over 6+ years of experience in ThoughtWorks. Having cleared CISA recently, she finds the need to proactively embrace the unpredictable & ever-changing VUCA world through secure and resilient coding practices.
Vaishnavi is a Senior Developer with nearly 7 years of experience. She is ratiocinate person and interested in solving logical and algorithmic problems, and sees technology only as a tool for that. Currently she is working diligently in securing the code against the most common vulnerabilities.
Sharaniya has around 3+ years of experience in Software Testing and Automation. As a budding ThoughtWorker, she has keen interest in developing skills around current trends in automation testing frameworks and tools that can be applied in different domains.
Anto is a Senior Quality analyst at ThoughtWorks with deep passion for automation in agile environments. His primary responsibility is to implement the test strategy for the projects that ThoughtWorks is building for their clients. He has worked on a number of web application for the past 5 years.
Prabhu is a Senior Developer with 5+ years of experience. He has worked in developing full stack web applications. He is currently interested in finding the vulnerabilities in the web applications using hacking skills.
Agalya is a Senior Quality Analyst at ThoughtWorks with 10+ years of experience in the software testing field. She is passionate about shipping a quality product and specialises in automated testing. Her current efforts focus on devops and security testing.
Roberta is a Quality Analyst with 8+ years of experience in R&D, QA and Automation. She is keen in learning and experimenting new test frameworks and testing techniques. She is also passionate about Machine Learning and Security Testing.
vodQA, also called Value Oriented Discussion on Quality Analysis is a forum that sports the moto - 'Come Learn Something New'. The forum offers a unique platform within the software testing industry to strengthen the QA community through knowledge sharing.
We love feedback! If you have any suggestions or cribs, feel free to fill out our feedback form. Don't worry, its completely anonymous.
vodQA Volunteers


Hi,
I have try to install emoncms in my site in Altervista, the database is created and the software have created the tables.
The problem is: when I try to register a user for login nothing happens.
How to solve the problem?
Thanks in advance
Archived Forum |
|
Emoncms & AltervistaSubmitted by walter62 on Tue, 05/11/2013 - 21:11Hi, I have try to install emoncms in my site in Altervista, the database is created and the software have created the tables. » |
Re: Emoncms & Altervista
Hi,
Must keep emoncms at your website directory eg www.domaine.com/emoncms/
And you must also have. htaccess in emoncms directory.
You can remove the part of error_log.
<Files index.php>
php_flag log_errors on
php_value error_log /home/trystan/error.log
</Files>
Good luck.
Re: Emoncms & Altervista
Thanks, but is not enough, i have the same problem. Other idea?
Re: Emoncms & Altervista
Yep,
You have to test if mod_rewrite work.
Change the .htaccess to :
# Active rewrite engine
RewriteEngine on
RewriteRule ^test\.html$ /test.php [L]
create the file test.php with this text :
<html>
<head>
<title>test mod_rewrite</title>
</head>
<body>
<?php
echo "test mod_rewrite: OK";
?>
</body>
</html>
Now, call www.domaine.com/emoncms/test.html
Do you see "test mod_rewrit: OK" ?
++
Re: Emoncms & Altervista
Hi,
I have tested mod_rewrite and he work because displays "test mod_rewrit: OK".
In the picture attached you see the error when I try to register.
In the first row (n°1) the error is related at the language translation (i think) and in the pink box (n°2) no text is displayed.
Thanks in advance
Re: Emoncms & Altervista
Ok,
You have to ask your webhost to remove putenv from the disable_functions list or if the server is php safe_mode on, turn it off.
Alternatively you can comment out the following lines in locale.php
putenv("LC_ALL=$lang");
Line 86 just add "//" (without the quotes) in front of the line.
++
Re: Emoncms & Altervista
I've the same problem: I try to register a user for login nothing happens.No error has been displayed.
Mod_rewirite is on and also putenv("LC_ALL=$lang"); has been commented in locale.php Lin 86.
Please, do you have other solutions ?
Tnx
Re: Emoncms & Altervista
meitemer: can you check if you get any errors in your browser javascript console window? especially the response of the requests which you will find under the network tab in both chrome and firefox.
Re: Emoncms & Altervista
Hello: I have the same issue, the console tab shows the following:
event.returnValue is deprecated.Please use the standard event.preventDefault() instead.
And in the Network tab, I've got
jquery.min.map, GET status 200
tried from Chrome.
Thanks


When programming Android, although java has GC mechanism, some our wrong code way and personal habits still cause memory leak, GC also can’t fix it.
Senario 1: When programming a single instance
- Error way:
public class Sample{
private static Sample sample;
private Context mContext;
private Sample(Context mContext){
this.mContext = mContext;
}
public static Sample getInstance(Context mContext){
if(sample == null)
sample = new Sample(mContext);
return sample;
}
public void otherAction(){
mContext.act();
}
}
- Error reason:
If we use Sample.getInstance()
in Acitivity A, pass this
to Sample’s getInstatnce
static method, because Sample is static single instance, it exists untill application exit. But Sample’s member variable still hold reference to Activity A, it causes Activity A can’t be destroied. If we pass applicationContext, it doesn’t cause this problem.
- Right way:
public class Sample{
private static Sample sample;
private Context mContext;
private Sample(Context mContext){
this.mContext = mContext;
}
public static Sample getInstance(Context mContext){
if(sample == null)
sample = new Sample(mContext.getApplicationContext());
return sample;
}
public void otherAction(){
mContext.act();
}
}
Senario 2: When use anonymous inner class
- Error way: ```java public class SampleActivity extends Activity{ private TextView textView; private Handler handler = new Handler(){ @override public void handlerMessage(Message msg){
} };
@override public void onCreate(Bundle bundle){ super.onCreate(bundle); setContextView(R.layout.activity_sample_layout); textView = (TextView)findViewById(R.id.textView); handler.postDelayed(new Runnable(){
@override public void run(){ textView.setText(“ok”); };
},1000 * 60 * 10); } }
* Error reason:
When execute the ``SampleAcitvity``'s ``finish`` method, the delayed messages will exist in main thread for 10 minutes before be processed, while this message contains reference to Handler, Handler is a anonymous inner class, it hold reference to external SampleAcivity, so cause SampleAcivity can't be recycled. Above ``Runnable`` also is a anonymous inner class, it also prevent SampleActivity to be recycled.
* Right way:
**A static anonymous inner class instance will not hold reference to external class.**
```java
public class SampleActivity extends Activity{
private TextView textView;
private static class MyHandler extends Handler {
private final WeakReference<SampleActivity> mActivity;
public MyHandler(SampleActivity activity) {
mActivity = new WeakReference<SampleActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
SampleActivity activity = mActivity.get();
if (activity != null) {
}
}
}
private final MyHandler handler = new MyHandler(this);
@override
public void onCreate(Bundle bundle){
super.onCreate(bundle);
setContextView(R.layout.activity_sample_layout);
textView = (TextView)findViewById(R.id.textView);
handler.postDelayed(new MyRunnable(textView),1000 * 60 * 10);
}
private static class MyRunnable implements Runnable{
// use WeakReference to hold external class's member variables.
private WeakReference<TextView> textViewWeakReference;
public MyRunnable(TextView textView){
textViewWeakReference = new WeakReference<TextView>(textView);
}
@override
public void run(){
final TextView textView = textViewWeakReference.get();
if(textView != null){
textView.setText("OK");
}
};
}
}
Senario 3: Forgot call removeCallbacksAndMessages after use handler
- Right way:
In onDestroy call this method:
handler.removeCallbacksAndMessages(null);
This call passed null will destroy all Runnable and Message related to handler.
Conclude
-
Don’t let object whose lifecycle longer then Acivity hold reference to Acivity.
-
Prefer to use Application’s Context rather than Activity’s Context.
-
Prefer to use static anonymous inner class rather than non-static.
-
Use weak reference to hold external class’s member variables.
-
GC can’t fix memory leak.
Reference
In Android, Handler classes should be static or leaks might occur, Messages enqueued on the application thread’s MessageQueue also retain their target Handler. If the Handler is an inner class, its outer class will be retained as well. To avoid leaking the outer class, declare the Handler as a static nested class with a WeakReference to its outer class
When an Android application first starts, the framework creates a Looper object for the application’s main thread. A Looper implements a simple message queue, processing Message objects in a loop one after another. All major application framework events (such as Activity lifecycle method calls, button clicks, etc.) are contained inside Message objects, which are added to the Looper’s message queue and are processed one-by-one. The main thread’s Looper exists throughout the application’s lifecycle.
When a Handler is instantiated on the main thread, it is associated with the Looper’s message queue. Messages posted to the message queue will hold a reference to the Handler so that the framework can call Handler#handleMessage(Message) when the Looper eventually processes the message.
In Java, non-static inner and anonymous classes hold an implicit reference to their outer class. Static inner classes, on the other hand, do not.


Parsing text across lines
It would be great if every piece of data you came across was in a format that lent itself to easy capture. In the same vein as the text extraction from reactor detail pages in our last example, we're going to pick apart an HTML file of licensed payday lenders (that's mostly text) and turn it into a flat CSV file where one row is one record.
In this file, addresses can span three, four or five lines. Sometimes it's on four lines because a lender does business in Illinois under another name; in others, it's because the lender operates out of a suite, room or building stored on a line separate from the street address. This means that our script needs to behave four different ways depending on how many lines it encounters for each address, and we'll switch among those behaviors with if/elif
syntax.
We'll again use BeautifulSoup
, but primarily to break out the portion of the file we want to capture for the resulting CSV.
This exercise has the following files:
-
payday.py: The file we'll use to write our address parser, following the comments.
-
payday_lenders.html: A simple HTML file that lists nearly 500 payday lenders licensed to do business in Illinois. Their addresses are split across multiple lines.
As with other exercises, finished versions are in the completed folder.