Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Ketek Group Inc.
Legal Name:
Ketek Group Inc.
Operating Name:
Westland Consulting
Alternate Name:
Westland Consulting
Mailing Address:
20204 110th Ave NWEDMONTON, Alberta
T5S 1X8
Location Address:
20204 110th Ave NWEDMONTON, Alberta
T5S 1X8
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
Westland Consulting is a part of Ketek Group Inc. Westland provides two fold services under its area of operations; 1) Technology Manufacturing, and 2) Sustainability Services
Sustainability Services Division
The Sustainability Services Division is committed to provide services in the areas of corporate sustainability & business excellence and sustainable development. At the centre we have been offering specialized services in the field of environmental management, pollution prevention and waste minimization, hazardous waste management, waste audits, water management, corporate social responsibility, occupational health and safety management, EHS risk profiling, sustainability performance evaluation, voluntary reporting based on GRI (Global Reporting Initiative), legislative and social compliance evaluation, environmental and occupational health and safety assessments, and assistance in implementation / audits in the field of international management systems like ISO 9001, ISO 14001, OHSAS 18001, SA 8000, ISO 22001, ISO 17025, etc.
The division also specializes in capacity building services including the customized training courses in the above service areas.
The division is backed by full term experts who have delivered the above services internationally.
Technology Manufacturing Division
Technology Manufacturing Division is engaged in the marketing of water and wastewater treatment equipment, thermal oxidation systems / incinerators for different waste streams, oil and gas industry equipment, other related components and machinery etc. All our equipment is manufactured in various sizes to address the clients specific needs.
In addition, we also specialize in manufacturing disaster relief equipment. These equipments comprises of the portable solar power based drinking water purification systems, portable sewage treatment plants and portable domestic solid waste incineration systems. This state of the art equipment is highly energy efficient and very effective with respect to their overall performance. Practically maintenance free, these equipments can be best deployed in the immediate disaster relief requirements.
As of January 01, 2011 the four companies, Ketek Industries Ltd., Groundwater Control Systems Inc., Westland Environmental Services Inc., and Alltek Loss Prevention Inc will be amalgamating. The amalgamation was born from interest to increase company mobility regarding staffing capacity and customer service. The previous individual companies all had a foundation of customer-focused service and the merging of expertise and assets will better position the group to serve our customers in the short and long term. We will leverage the capabilities of all four companies to drive improvements in our products and services, which is what all of our customers have come to rely on over the past thirty years.
Westland Environmental Services Inc. now works under the name "Westland Consulting". It is a completely Alberta owned and operated company. Its founder, Mr. Rick Abel, as an entrepreneur, has created a market in different Alberta Industries.
Westland was incorporated in 1985. Westland has so far targeted its product and services mainly to the oil, lumber, mining, and Northwest Territories communities. We have sold equipment to the Ministry of Defense and abroad. At present, we are focusing our efforts in upgrading the design and technology to deal with new environmental laws.
Westlands' incinerators are in use in Russia, Taiwan, Australia, Bangladesh, Israel, Egypt, Saudi Arabia, Libya, US, India and Poland. Westand has signed a technology transfer agreement with a major waste management company in India. Westland also has distributors in Northern Africa and Australia.
Westland Consulting will be seriously pursuing the possibilities of a Technology Transfer to a Joint Venture Partner in Developing countries
Full profile
Full profile
Contact information
Company description
333990 - All Other General-Purpose Machinery Manufacturing
541690 - Other Scientific and Technical Consulting Services
611690 - All Other Schools and Instruction
Product / Service / Licensing
municipal waste
Acid gas Venturi scrubber/heat exchanger/mist eliminators/
emission polishing systems
cremitoriums or Pathological incinerators
Envirobins
Portable Sewage Treatment Plants
Portable Drinking Water Systems
We also provide Incinerator Operator training courses.
CSR/CR policy
Benchmarking of Sustainability Performance
Supply Chain Management
Sustainability Reporting and Assurance
Stakeholder Mapping and Engagement
CSR Assessment
International / ISO Standards consulting (ISO 9001, ISO 14001, ISO 22000, OHSAS 18001, SA 8000 etc.)
Trainings are provided in:
International / ISO Standards (ISO 9001, ISO 14001, ISO 22000, OHSAS 18001, SA 8000 etc.)
Sustainability Reporting and Assurance
Corporate Social Responsibility
Auditing SKills
Training of Trainer
Hazard Identification
Safety Management
4630-Sewage Treatment Equipment
AH00-Environmental Protection
B101-Environmental Studies Development of Environmental Impact Statements and Assessments
B109-Other Environmental Studies
E000-Environmental Services
E101-Air quality Support Services
E199-Other Environmental Services
U000-Educational and Training Services
U006-Vocational/Technical
Technology profile
Sustainability Services Division
The Sustainability Services Division is committed to provide services in the areas of corporate sustainability & business excellence and sustainable development. At the centre we have been offering specialized services in the field of environmental management, pollution prevention and waste minimization, hazardous waste management, waste audits, water management, corporate social responsibility, occupational health and safety management, EHS risk profiling, sustainability performance evaluation, voluntary reporting based on GRI (Global Reporting Initiative), legislative and social compliance evaluation, environmental and occupational health and safety assessments, and assistance in implementation / audits in the field of international management systems like ISO 9001, ISO 14001, OHSAS 18001, SA 8000, ISO 22001, ISO 17025, etc.
The division also specializes in capacity building services including the customized training courses in the above service areas.
The division is backed by full term experts who have delivered the above services internationally.
Technology Manufacturing Division
This is the manufacturing wing engaged with the manufacturing of water and wastewater treatment equipment, thermal oxidation systems / incinerators for different waste streams, oil and gas industry equipment, other related components and machinery etc. All our equipment is manufactured in various sizes to address the clients specific needs.
In addition, we also specialize in manufacturing disaster relief equipment. These equipments comprises of the portable solar power based drinking water purification systems, portable sewage treatment plants and portable domestic solid waste incineration systems. This state of the art equipment are highly energy efficient and very effective with respect to their overall performance. Practically maintenance free, these equipments can be best deployed in the immediate disaster relief requirements.
Market profile
Alliances:
- Sales/Marketing
- Technology
Industry sector market interests:
- Construction
- Environment
- Manufacturing
- Medical/Biotechnology/Chemical
- Mining/Petroleum/Gas
- Service Industry
- Tourism
- Defence
- Automotive
Geographic markets:
Export experience:
- Australia
- Bahrain
- Bangladesh
- China
- Egypt
- India
- Indonesia
- Israel
- Libyan Arab Jamahiriya
- Macedonia, The Former Yugoslav Republic of
- Mexico
- Niger
- Nigeria
- Poland
- Russian Federation
- Saudi Arabia
- Taiwan
- Thailand
- Turks and Caicos Islands
- United Arab Emirates
- United States
- Texas
Actively pursuing:
- Afghanistan
- Algeria
- Antarctica
- Barbados
- Bhutan
- Bolivia, Plurinational State of
- Brazil
- Cambodia
- Central African Republic
- Colombia
- Eritrea
- Ethiopia
- Fiji
- Hungary
- Iran, Islamic Republic of
- Iraq
- Jordan
- Kazakhstan
- Kenya
- Kiribati
- Malaysia
- Maldives
- Montenegro
- Myanmar
- Pakistan
- Serbia
- Somalia
- South Africa
- Sri Lanka
- Tajikistan
- Tanzania, United Republic of
- Uzbekistan
- Alaska
Sector information
Key / Major clients:
Govt. of Canada, Daivik Daimond Mines, Ekati Daimond Mines, Nabors Drilling, Govt of NWT,ENCANA, PetroCan, Devon Canada,Snap lake daimond Mines, Debeers Canada, PTI, Yamaha Motors,
Nova Gold, PGS On Shore, Diavik Diamond Mine
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
333990 - All Other General-Purpose Machinery Manufacturing
541690 - Other Scientific and Technical Consulting Services
611690 - All Other Schools and Instruction
Products, services and licensing
Product / Service / Licensing
municipal waste
Acid gas Venturi scrubber/heat exchanger/mist eliminators/
emission polishing systems
cremitoriums or Pathological incinerators
Envirobins
Portable Sewage Treatment Plants
Portable Drinking Water Systems
We also provide Incinerator Operator training courses.
CSR/CR policy
Benchmarking of Sustainability Performance
Supply Chain Management
Sustainability Reporting and Assurance
Stakeholder Mapping and Engagement
CSR Assessment
International / ISO Standards consulting (ISO 9001, ISO 14001, ISO 22000, OHSAS 18001, SA 8000 etc.)
Trainings are provided in:
International / ISO Standards (ISO 9001, ISO 14001, ISO 22000, OHSAS 18001, SA 8000 etc.)
Sustainability Reporting and Assurance
Corporate Social Responsibility
Auditing SKills
Training of Trainer
Hazard Identification
Safety Management
4630-Sewage Treatment Equipment
AH00-Environmental Protection
B101-Environmental Studies Development of Environmental Impact Statements and Assessments
B109-Other Environmental Studies
E000-Environmental Services
E101-Air quality Support Services
E199-Other Environmental Services
U000-Educational and Training Services
U006-Vocational/Technical
Technology
Technology profile
Sustainability Services Division
The Sustainability Services Division is committed to provide services in the areas of corporate sustainability & business excellence and sustainable development. At the centre we have been offering specialized services in the field of environmental management, pollution prevention and waste minimization, hazardous waste management, waste audits, water management, corporate social responsibility, occupational health and safety management, EHS risk profiling, sustainability performance evaluation, voluntary reporting based on GRI (Global Reporting Initiative), legislative and social compliance evaluation, environmental and occupational health and safety assessments, and assistance in implementation / audits in the field of international management systems like ISO 9001, ISO 14001, OHSAS 18001, SA 8000, ISO 22001, ISO 17025, etc.
The division also specializes in capacity building services including the customized training courses in the above service areas.
The division is backed by full term experts who have delivered the above services internationally.
Technology Manufacturing Division
This is the manufacturing wing engaged with the manufacturing of water and wastewater treatment equipment, thermal oxidation systems / incinerators for different waste streams, oil and gas industry equipment, other related components and machinery etc. All our equipment is manufactured in various sizes to address the clients specific needs.
In addition, we also specialize in manufacturing disaster relief equipment. These equipments comprises of the portable solar power based drinking water purification systems, portable sewage treatment plants and portable domestic solid waste incineration systems. This state of the art equipment are highly energy efficient and very effective with respect to their overall performance. Practically maintenance free, these equipments can be best deployed in the immediate disaster relief requirements.
Market
Market profile
Alliances:
- Sales/Marketing
- Technology
Industry sector market interests:
- Construction
- Environment
- Manufacturing
- Medical/Biotechnology/Chemical
- Mining/Petroleum/Gas
- Service Industry
- Tourism
- Defence
- Automotive
Geographic markets:
Export experience:
- Australia
- Bahrain
- Bangladesh
- China
- Egypt
- India
- Indonesia
- Israel
- Libyan Arab Jamahiriya
- Macedonia, The Former Yugoslav Republic of
- Mexico
- Niger
- Nigeria
- Poland
- Russian Federation
- Saudi Arabia
- Taiwan
- Thailand
- Turks and Caicos Islands
- United Arab Emirates
- United States
- Texas
Actively pursuing:
- Afghanistan
- Algeria
- Antarctica
- Barbados
- Bhutan
- Bolivia, Plurinational State of
- Brazil
- Cambodia
- Central African Republic
- Colombia
- Eritrea
- Ethiopia
- Fiji
- Hungary
- Iran, Islamic Republic of
- Iraq
- Jordan
- Kazakhstan
- Kenya
- Kiribati
- Malaysia
- Maldives
- Montenegro
- Myanmar
- Pakistan
- Serbia
- Somalia
- South Africa
- Sri Lanka
- Tajikistan
- Tanzania, United Republic of
- Uzbekistan
- Alaska
Sector
Sector information
Key / Major clients:
Govt. of Canada, Daivik Daimond Mines, Ekati Daimond Mines, Nabors Drilling, Govt of NWT,ENCANA, PetroCan, Devon Canada,Snap lake daimond Mines, Debeers Canada, PTI, Yamaha Motors,
Nova Gold, PGS On Shore, Diavik Diamond Mine


|
Ogre_glTF
glTF import library for Ogre
|
Class that is responsible for initializing the library with the loader, and giving out. More...
#include <Ogre_glTF.hpp>
Classes | |
| struct | glTFLoaderImpl |
| Implementation of the glTF loader. Exist as a pImpl inside the glTFLoader class. More... | |
Public Member Functions | |
| glTFLoader () | |
| Initialize the library by creating this object. | |
| glTFLoader (glTFLoader &&other) noexcept | |
| glTFLoader & | operator= (glTFLoader &&other) noexcept |
| Move assign operator. | |
| ~glTFLoader () | |
| Deinitialize the library at this object destruction. | |
| loaderAdapter | loadFromFileSystem (const std::string &path) const |
| loaderAdapter | loadGlbResource (const std::string &name) const |
| Load a GLB from Ogre's resource manager. | |
| ModelInformation | getModelData (const std::string &modelName, LoadFrom loadLocation) override |
| Get the model data. Contains everything you need to create object from the model contained on the glTF asset. | |
| Ogre::Item * | getItemFromResource (const std::string &name, Ogre::SceneManager *smgr) override |
| Ogre::Item * | getItemFromFileSystem (const std::string &fileName, Ogre::SceneManager *smgr) override |
| MeshAndDataBlock | getMeshFromResource (const std::string &name) override |
| MeshAndDataBlock | getMeshFromFileSystem (const std::string &name) override |
| glTFLoader (const glTFLoader &)=delete | |
| Deleted copy constructor. | |
| glTFLoader & | operator= (const glTFLoader &)=delete |
| Deleted assignment operator. | |
| Public Member Functions inherited from Ogre_glTF::glTFLoaderInterface | |
| virtual | ~glTFLoaderInterface ()=default |
| Polymorphic dtor. | |
Additional Inherited Members | |
| Public Types inherited from Ogre_glTF::glTFLoaderInterface | |
| enum | LoadFrom { FileSystem, ResourceManager } |
| location where to load the data | |
Class that is responsible for initializing the library with the loader, and giving out.
Definition at line 147 of file Ogre_glTF.hpp.
|
noexcept |
|
overridevirtual |
Get you an item from a GLB or a GLTF file from the filesystem.
| fileName | The name of the resource |
| smgr | The scene manager where the Item will be used |
Implements Ogre_glTF::glTFLoaderInterface.
Definition at line 251 of file Ogre_glTF.cpp.
References Ogre_glTF::loaderAdapter::getItem(), Ogre_glTF::loaderAdapter::isOk(), and loadFromFileSystem().
|
overridevirtual |
Get you an item from a GLB file loaded inside an Ogre resource group
| name | The name of the resource |
| smgr | The scene manager where the Item will be used |
Implements Ogre_glTF::glTFLoaderInterface.
Definition at line 237 of file Ogre_glTF.cpp.
References Ogre_glTF::loaderAdapter::getItem(), Ogre_glTF::loaderAdapter::isOk(), and loadGlbResource().
|
overridevirtual |
Gets you a mesh and a material datablock from GLB or a GLTF file from the filesystem
| name | The name of the resource |
Implements Ogre_glTF::glTFLoaderInterface.
Definition at line 262 of file Ogre_glTF.cpp.
References Ogre_glTF::loaderAdapter::getDatablock(), Ogre_glTF::loaderAdapter::getMesh(), Ogre_glTF::loaderAdapter::isOk(), and loadFromFileSystem().
|
overridevirtual |
Get you a mesh and a material datablock from a GLB in the resource manager
| name | The name of the resource |
Implements Ogre_glTF::glTFLoaderInterface.
Definition at line 273 of file Ogre_glTF.cpp.
References Ogre_glTF::loaderAdapter::getDatablock(), Ogre_glTF::loaderAdapter::getMesh(), Ogre_glTF::loaderAdapter::isOk(), and loadGlbResource().
| loaderAdapter glTFLoader::loadFromFileSystem | ( | const std::string & | path | ) | const |
Load a glTF text or binary file. Give you an adapter to use this file with Ogre
| path | String containing the path to a file to load (either .glTF or .glc) |
Definition at line 179 of file Ogre_glTF.cpp.
Referenced by getItemFromFileSystem(), getMeshFromFileSystem(), and getModelData().


| Support : |<EMAIL_ADDRESS><EMAIL_ADDRESS>|
| Developed by : | Farazi Soft |
Thank you for your interest.
Please read carefully the complete documentation before starting.
.env
, change value of "DB_DATABASE,DB_USERNAME,DB_PASSWORD" .env
, change value of "DB_DATABASE,DB_USERNAME,DB_PASSWORD" composer dump-autoload
php artisan migrate:refresh --seed
Login Infomation |
|---|
|
Admin Login User Login |
Administrator Dashboard : Administrators are be able to see some system status on their dashboard page and can see how many new users are registered in current month, number of total users, number of visitors current month and number of visitors today, these are:
User Dashboard : Users also have their dashboard where they can quickly navigate to some parts of the system And where they can see their activity graph for last Three weeks, these are:
User Registration Form Before Login : Users are able to access the registration form and create new account by click Register link, these are,
Users List : Users list page represent list of all system users. Users are searchable by almost all attributes,Print,PDF,Import XLS/CSV users list, Export XLS user list, these are,
Profile : Every user of the system, no matter what his role is, is able to update his profile. Link to user's profile is available at the top left down corner and top, these are,
Users Login Activity : User activity is recorded for every system user. Every time when someone update his profile information system store that activity into database and so system administrators can see what their users are doing, these are,
This system an available is dynamically language Add what's your need, You can follow this Tutorial. When you use the language please see example {{ trans('app.indexname')}}.
If your need Extend Languate indexname All translation files are located inside resources/lang folder. Within this directory there should be a subdirectory for each language supported by the application then you can to you this folder and then
/resources
/lang
/en
app.php
/bn
app.php
Language Add : Admin can create new Language, Update and Delete, these are,
Languages list : Admin can see Language list, these are,
Language Update : Admin can update Language, He can change right column value, these are,
Elegant comes with advanced roles and permissions (ACL) system based on Entrust package. A system is created to allow users to have only one role, and to allow different permissions for each role.
On roles section of the website administrators (or other users with appropriate permissions) can see and manage available system roles, as well as add unlimited number of new roles. Page with default system roles (Admin and User) is provided below.
Roles : Form for adding new role, Delete and edit existing roles, is provided below:
Permission : It comes with some default permissions but, if some of them does not fit your needs, they can be easily modify them. Adding new permissions is a breeze too, these are,
Most of this information users can send among registered users via message, but not every discussion needs to be seen by your entire team. That's provides a few different ways to have a conversation to direct messages and replay messages. User also can send multi messages at a time among registered user's. It has compose incipient Message from both inbox and sent.
Compose message : Messaging among registered and replay system. Link to user's Message form is available at the Down right corner, click this icon like these are,
Inbox message : Message send anyone to you, You can see inbox message and also get notification, these are,
Message details : You can see Details who send a message to you Or send you to anyone, these are,
The Setting module is to setup rudimental business information you possess. You can change your company name, logo and contact details etc..
General setting : General settings section is used for updating the application name, Logo, email, these are,
Chances are high that you would like to create your own pages inside the Elegant application. This section will explain in details everything you need to do to add your own page into the system.
The page we are going to add will be simple page that will display the list of all employee.
First thing we will have to do is to create new route for your page. We can do that by simply editing /routes/web.php
file and adding the following code
anywhere inside the file. I've added it on top.
Route::get('employee', function () {
return "Employee will be displayed here.";
};
OR
Route::get('/employee', 'EmployeeController@index');
To verify that this code is actually working, you should go to yourwebsite.com/employee-list
and you should see following text on your screen:
Employee list will be displayed here.
This means that your route is now working properly, so we can proceed and create new controller that will handle the actual request, instead of using this closure, as we did in our example above.
One more thing, as you can see, we assigned a name to this route. This is very handy feature since we can now reference our route by name, and in case that we want to change the url to something else in the future,
will will be able to change it only inside our routes/web.php
file, and everything will work without any broken links.
Note! You can find more about routes inside Laravel's documentation.
Creating new controller in Laravel is pretty easy. If you are familiar with the terminal, you can navigate to Vanguard's root folder and type the following command
Note! You can find more about controller inside https://laravel.com/docs/5.5/controllers.
php artisan make:controller EmployeeController --resource
After you execute this command, new controller will be automatically created for you and placed inside app/Http/Controllers
folder. The file will be named EmployeeController.php
.
You can also create the controller by manually creating new controller file inside app/Http/Controllers
directory.
Now lets define our constructor and create new index
method inside that controller. Controller will now look like following
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class EmployeeController extends Controller
{
public function __construct()
{
// Allow access to authenticated users only.
$this->middleware('auth');
// Allow access to users with 'users.manage' permission.
$this->middleware('permission:users.manage');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return "Hello from ActiveUsersController";
}
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request )
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id )
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id )
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id )
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id )
{
//
}
}
Since we now have the controller that will be responsible for our employee list, we are free to update the route we created in previous chapter to actually point to this index
method
we just created, instead of using closure:
// /routes/web.php
Route::get('employee-list', 'EmployeeController@index');
//...
You can probably see the pattern here. If we translate the route above into a sentence, it basically says something like this:
When someone try to access
yourdomain.com/employee-list
, execute code that is located insideindex
method fromEmployeeController
.
Now, if you access yourdomain.com/employee-list
from your browser, you will see the following response
Hello from EmployeeController
Of course, since we added those two checks inside controller's constructor, you will have to be logged in and you must have employee.manage
permission to access this page.
Note! You can find more about controllers inside Laravel's documentation.
Creating new Model in Laravel is pretty easy. If you are familiar with the terminal, you can navigate to Vanguard's root folder and type the following command
php artisan make:model Employee
After you execute this command, new model will be automatically created for you and placed inside app
folder. The file will be named Employee.php
.
You can also create the model by manually creating new model file inside app
directory.
Now lets define our table fields
inside that model. model will now look like following
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\Employee;
class Employee extends Model
{
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'employees';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['first_name','last_name', 'email', 'password', 'username','phone',
'address', 'country', 'date_of_birth','gender','status'
];
}
Create table employees
in database and see Migrations makes it even easier.
We will modify our controller to look like following:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class EmployeeController extends Controller
{
public function __construct()
{
// Allow access to authenticated users only.
$this->middleware('auth');
// Allow access to users with 'users.manage' permission.
$this->middleware('permission:users.manage');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$employeedata = DB::table('emplyees')->get();
return view('employees.employee_list',compact('employeedata'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request )
{
$input = $request->all();
$validator = Validator::make($request->all(), [
'email' => 'required|unique:users|max:255',
'username' => 'required|unique:users|min:6|max:255',
'password' => 'required|min:6|max:255',
]);
if ($validator->fails()) {
return Redirect::back()->withErrors($validator)->withInput();
}else{
Employee::create($input);
return Redirect::back()->with('msg_success', trans('app.insert_success_message'));
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id )
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id )
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id )
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id )
{
//
}
}
As you can see, our join query is really simple. At the and of the index method, we will render our view, which we are going to create now.
In Laravel, all views are located inside resources/views
folder. You can create unlimited number of sub-folders there, and group your views however you like it.
One great thing is that you can use dot notation when you want to render that view. That means that instead of /
you can use "." when you want to reference your view from a controller.
In our controller code, we are referencing our view like employee.employee-list
which means that we will create new file called employee-list.blade.php
inside resources/views/users
folder.
As mentioned, you can put your view anywhere inside the resources/views
folder, but for what we are building, it looks like employee
folder is the best place to put it.
Employee Registration form flow User Registration form:
Here is the source code of our employee list:
Note! Laravel uses Blade templating language which has it's own tags and ways of building the templates. It is really simple, and you can learn more about it here.
@extends('layouts.template')
@section('content')
@foreach($employeedata as $view)
Name
Username
Email Address
{{$view->first_name}} {{$view->last_name}}
{{$view->username}}
{{$view->email}}
@endforeach
@stop
Note! You can flow users list view fileresources/users/user_list.blade.php .
Let's explain what is happening here:
@extends('layouts.template')
- means that this file is extending default layout called template, which is located inside resources/views/layouts
folder.
@section('page-title', 'Active Users')
- page title. Check <title></title>
element inside app layout to see where it will be printed out.
@section('content') ... @stop
- The actual content section. Everything that is inside those two tags (@section('content')
and @stop
) will be echoed out on the same place where @yield('content')
is located inside app layout.
Inside this section we are just looping through the passed array of users and printing them out. We are using bootstrap media object just to make things a bit prettier. You can also click on user's avatar
and it will take you to the user profile page.
@section('styles') ... @stop
- Anything that is located inside this section will be automatically placed inside the header (check app layout and search for @yield('styles')
) of the page.
We are placing this css here just to make things easier and have everything in one file, but when you are building something, you will probably put the css inside public/assets/css/app.css
file, since that's where Vanguard custom css is located.
If we open the employee registration page now, it will look like following:
If we open the employee list page now, it will look like following:
As you can see, we are able to access this page, but only by manually typing the url inside the browser's address bar. Lets add new link inside the sidebar menu that will point to our newly created page.
All we have to do is to edit resources/views/layouts/template.blade.php
view file and add our link wherever we want it to appear. Since this section is accessible only for users with employee.manage
permission, it makes sense
to put this new link right after "Users" link, between @permission('employee.manage')
and it's @endpermission
tag:
//...
@permission('employee.manage')

 @lang('app.employees')

 Employee Form

@endpermission
Farazi Soft is always ready to serve its valued clients.
For any kind of after sales support or customization - Don't hesitate to contact us at:
E-Mail<EMAIL_ADDRESS>Skype: jewel_farazi
Configuration
This section contains some important configuration options that are specific to Elegant application. Since Elegant is using Laravel PHP framework, full configuration options for some framework specific stuff can be found inside Laravel documentation.
Social Authentication
If you want to allow social authentication for your users, you will have to define which social providers you want to allow. List of social providers is declared inside
config/service.php
file. Elegant supports Facebook, Twitter and Google+ by default.The following code is an example of allowing all three default supported providers for Elegant application:


A 'CircularOnlineFlow' is a cyclic sequence of online/non-trainable nodes that are trained and executed
together to form a more complex algorithm. This type of flow is useful when one needs to train the nodes
internally for several iterations using stored inputs before training with the next external input.
input=x(i) -> [node1, node2, node3] -> output=y' ----External input training---- (1 iteration)
input=y' -> [node1, node2, node3] -> output=y' ---- Internal
... input (n-1 iterations)
input=y' -> [node1, node2, node3] -> output=y(i) training----
This type of processing is especially useful for implementing control algorithms, reinforcement learning, etc.
The input and the output nodes of the flow can be changed at any time using the functions "set_input_node"
and "set_output_node".
CircularOnlineFlow also supports training nodes while ignoring external input data at all times. In this case,
the flow iterates everytime using the previously stored output as the input. Input data can be arbitrary (with same
input_dim and dtype) and is only used as a clock signal to trigger flow processing.
See the docstring of the train method for more information about different training types.
Crash recovery is optionally available: in case of failure the current
state of the flow is saved for later inspection.
CircularOnlineFlow objects are Python containers. Most of the builtin 'list'
methods are available.
This is functionally similar to the execute method of an OnlineFlow. |
|
|
|
|
extend(flow,
iterable)
extend flow by appending
elements from the iterable |
|
|
|
|
|
|
|
ignore_input(self,
flag)
CircularOnlineFlow also supports training nodes while ignoring external input data at all times.
This mode is enabled/disabled using this method. See train method docstring for information on
different training modes. |
|
|
|
|
insert(flow,
index,
node)
insert node before index |
|
|
|
|
reset_output_node(self)
Resets the output node to the last node of the provided node sequence |
|
|
|
|
set_flow_iterations(self,
n)
This method sets the number of total flow iterations:
If self._ignore_input is False, then the total flow iterations = 1 external + (n-1) internal iterations.
If self._ignore input is True, then the total flow iterations = n internal iterations.
See train method docstring for information on different training modes. |
|
|
|
|
|
|
|
|
|
|
set_stored_input(self,
x)
CircularOnlineFlow also supports training nodes while ignoring external input data at all times.
 Of course, all nodes in the
flow must be invertible. |
|
|
|
node
|
pop(flow,
index=...)
remove and return node at index
(default last) |
|
|
|
|
save(self,
filename,
protocol=-1)
Save a pickled serialization of the flow to 'filename'.
If 'filename' is None, return a string. |
|
|
|
|
|


Password Generator
Generate a Password
(select any number of the options below and then click 'Generate Password')
Length
(8-128 Characters)
Please select at least one of the below options
Special Characters
(#, @, etc.)
Exclude Ambigous Characters
( [ ] { } ; :, etc.)
Numeric Characters
(1, 2, etc.)
Lowercase Characters
Uppercase Characters
Generate Password
Copy to Clipboard


This is the formatting guide for Markdown as it may be used with MARKUP.
Markdown for Sphinx
Using Markdown with Sphinx requires the Recommonmark plugin, which enables authoring in Markdown using the CommonMark specification of Markdown. (Only the CommonMark specification of Markdown is supported by MARKUP.) The Recommonmark plugin enables the ability to use Markdown and Sphinx directive formatting within the same file, which makes available to Markdown-based topics the more powerful aspects of Sphinx formatting and content management.
Recommonmark Plugin
To enable the use of Markdown with a Sphinx documentation project, install the Recommonmark plugin, and then adjust your Sphinx project’s configuration file.
First install Recommonmark:
pip install commonmark recommonmark
In the project’s conf.py
files, add the following at the top under import sys, os
:
from recommonmark.parser import CommonMarkParser
from recommonmark.transform import AutoStructify
source_parsers = {
'.md': CommonMarkParser,
}
and then change:
to:
source_suffix = ['.rst', '.md']
At the bottom of the Options for HTML output
configuration section, add:
def setup(app):
app.add_config_value('recommonmark_config', {
'enable_eval_rst': True,
}, True)
app.add_transform(AutoStructify)
Evaluate reStructuredText
Configuring Recommonmark enables the use of the eval_rst
directive within Markdown topics, which allows standard reStructuredText processing, including the use of directives, within Markdown pages. For example:
```eval_rst
.. note:: This is the note directive in a Markdown topic. Naming the code block `eval_rst` allows the contents of that code block to be processed as if it were reStructuredText despite being in a Markdown file. Pretty cool!
```
builds as:
Note
This is the note directive in a Markdown topic. Naming the code block eval_rst allows the contents of that code block to be processed as if it were reStructuredText despite being in a Markdown file. Pretty cool!
Admonitions
Admonitions are notes, warnings, and other types of alerts to give to readers. Use notes for a simple callout and warnings for things that will break if not followed correctly. Use the other admonitions sparingly, or at least in a consistent manner.
You can apply the same admonition styles as reStructuredText by using raw HTML or by using a Sphinx directive.
Attention
An attention admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Attention

The text for the attention built from raw HTML.

builds as:
Attention
The text for the attention built from raw HTML.
Sphinx directive
```eval_rst
.. attention:: This is the text for the attention built from a directive.
```
builds as:
Attention
This is the text for the attention built from a directive.
Caution
A caution admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Caution

The text for the caution built from raw HTML.

builds as:
Caution
The text for the caution built from raw HTML.
Sphinx directive
```eval_rst
.. caution:: This is the text for the caution built from a directive.
```
builds as:
Caution
This is the text for the caution built from a directive.
Custom Admonitions
MARKUP uses the default admonition to enable the use of custom admonition titles. The default admonition is styled the same as a note.
Raw HTML
A custom admonition may be defined using raw HTML. Change the admonition title to what you want it to say.

Custom admonition title

Contents of custom admonition.

builds as:
Custom admonition
Contents of custom admonition.
Sphinx directive
```eval_rst
.. code-block:: none
.. admonition:: Custom admonition title
Contents of custom admonition.
```
Which will appear in the documentation like this:
Custom admonition title
Contents of custom admonition.
Danger
A danger admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Danger

The text for the danger built from raw HTML.

builds as:
Danger
The text for the danger built from raw HTML.
Sphinx directive
```eval_rst
.. danger:: This is the text for the danger built from a directive.
```
builds as:
Danger
This is the text for the danger built from a directive.
Error
An error admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Error

The text for the error built from raw HTML.

builds as:
Error
The text for the error built from raw HTML.
Sphinx directive
```eval_rst
.. error:: This is the text for the error built from a directive.
```
builds as:
Error
This is the text for the error built from a directive.
Hint
A hint admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Hint

The text for the hint built from raw HTML.

builds as:
Hint
The text for the hint built from raw HTML.
Sphinx directive
```eval_rst
.. hint:: This is the text for the hint built from a directive.
```
builds as:
Hint
This is the text for the hint built from a directive.
Important
An important admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Important

The text for the important built from raw HTML.

builds as:
Important
The text for the important built from raw HTML.
Sphinx directive
```eval_rst
.. important:: This is the text for the important built from a directive.
```
builds as:
Important
This is the text for the important built from a directive.
Note
A note admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Note

The text for the note built from raw HTML.

builds as:
Note
The text for the note built from raw HTML.
Sphinx directive
```eval_rst
.. note:: This is the text for the note built from a directive.
```
builds as:
Note
This is the text for the note built from a directive.
Tip
A tip admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Tip

The text for the tip built from raw HTML.

builds as:
Tip
The text for the tip built from raw HTML.
Sphinx directive
```eval_rst
.. tip:: This is the text for the tip built from a directive.
```
builds as:
Tip
This is the text for the tip built from a directive.
Warning
A warning admonition can be added via raw HTML in Markdown or via a Sphinx directive.
Raw HTML

Warning

The text for the warning built from raw HTML.

builds as:
Warning
The text for the warning built from raw HTML.
Sphinx directive
```eval_rst
.. warning:: This is the text for the warning built from a directive.
```
builds as:
Warning
This is the text for the warning built from a directive.
Code Blocks
For code samples (Python, YAML, JSON, Jinja, config files, and so on) and for commands run via the command line that appear in the documentation we want to set them in code blocks using variations of the .. code-block::
directive.
Note
Code block types in the MARKUP are generalized. For example: the text
type is used for general text files including configuration files and the sql
type is used for general data tables. You may customize this to make them more specific and/or add more types to the code block styling options.
Code blocks are parsed using a tool called Pygments that checks the syntax in the named code block against the lexer in Pygments to help ensure that the structure of the code in the code block, even if it’s pseudocode, is formatted correctly.
Warning
Pygments lexers check the code in a code block against a lexer. A lexer checks the structure and syntax of the code in the code block. If this check doesn’t pass, a Sphinx build may fail.
For example, if a code block contains YAML and Jinja and is defined by a .. code-block:: yaml code block, the build will fail because Jinja templating is not YAML.
Use a none code block to (temporarily or permanently) work around any problems you may have with rendering code blocks, as a none block is more forgiving.
Line Emphasis
Line emphasis with Markdown must be done using a Sphinx directive. This allows individual lines in a code block to be emphasized. The presentation is similar to a yellow highlight in a book. The following example shows how to highlight lines 3 and 5 in a code block:
```eval_rst
.. code-block:: python
:emphasize-lines: 3,5
def function(foo):
if (some_thing):
return bar
else:
return 0
```
builds as:
def function(foo):
if (some_thing):
return bar
else:
return 0
Command Shell
For command shell blocks, assign console
as the name of the code block.
Fenced code block
A fenced code block like this:
```console
$ service stop
```
builds as:
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: console
$ service stop
```
builds as:
Config File
For configuration file blocks that are not in Yaml or JSON (such as spark-defaults.conf
), assign text
as the name of the code block.
Fenced code block
A fenced code block like this:
```text
spark.setting.hours 1h
spark.setting.option -User.timezone=UTC
spark.setting.memory 20g
```
builds as:
spark.setting.hours 1h
spark.setting.option -User.timezone=UTC
spark.setting.memory 20g
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: text
spark.setting.hours 1h
spark.setting.option -User.timezone=UTC
spark.setting.memory 20g
```
builds as:
spark.setting.hours 1h
spark.setting.option -User.timezone=UTC
spark.setting.memory 20g
CSS
For CSS code blocks, assign css
as the name of the code block.
Fenced code block
A fenced code block like this:
```css
ul.tab-selector {
display: block;
list-style-type: none;
margin: 10 0 10px;
padding: 0;
line-height: normal;
overflow: auto;
}
```
builds as:
ul.tab-selector {
display: block;
list-style-type: none;
margin: 10 0 10px;
padding: 0;
line-height: normal;
overflow: auto;
}
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: css
ul.tab-selector {
display: block;
list-style-type: none;
margin: 10 0 10px;
padding: 0;
line-height: normal;
overflow: auto;
}
```
builds as:
ul.tab-selector {
display: block;
list-style-type: none;
margin: 10 0 10px;
padding: 0;
line-height: normal;
overflow: auto;
}
Data Table
For data tables, assign sql
as the name of the code block.

Fenced code block
A fenced code block like this:
```html
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">The text for the warning built from raw HTML.</p>
</div>
```
builds as:

Warning

The text for the warning built from raw HTML.

Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: html
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">The text for the warning built from raw HTML.</p>
</div>
```
builds as:

Warning

The text for the warning built from raw HTML.

JavaScript
For JavaScript code blocks, assign javascript
as the name of the code block.
Fenced code block
A fenced code block like this:
```javascript
$('div.content-tabs').each(function() {
var tab_sel = $('<ul />', { class: "tab-selector" });
var i = 0;
if ($(this).hasClass('right-col')){
tab_sel.addClass('in-right-col');
}
$('.tab-content', this).each(function() {
var sel_item = $('<li />', {
class: $(this).attr('id'),
text: $(this).find('.tab-title').text()
});
$(this).find('.tab-title').remove();
if (i++) {
$(this).hide();
} else {
sel_item.addClass('selected');
}
tab_sel.append(sel_item);
$(this).addClass('contenttab');
});
$('.tab-content', this).eq(0).before(contenttab_sel);
contenttab_sel = null;
i = null;
});
```
builds as:
$('div.content-tabs').each(function() {
var tab_sel = $('
', { class: "tab-selector" });
var i = 0;
if ($(this).hasClass('right-col')){
tab_sel.addClass('in-right-col');
}
$('.tab-content', this).each(function() {
var sel_item = $('
', {
class: $(this).attr('id'),
text: $(this).find('.tab-title').text()
});
$(this).find('.tab-title').remove();
if (i++) {
$(this).hide();
} else {
sel_item.addClass('selected');
}
tab_sel.append(sel_item);
$(this).addClass('contenttab');
});
$('.tab-content', this).eq(0).before(contenttab_sel);
contenttab_sel = null;
i = null;
});
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: javascript
$('div.content-tabs').each(function() {
var tab_sel = $('<ul />', { class: "tab-selector" });
var i = 0;
if ($(this).hasClass('right-col')){
tab_sel.addClass('in-right-col');
}
$('.tab-content', this).each(function() {
var sel_item = $('<li />', {
class: $(this).attr('id'),
text: $(this).find('.tab-title').text()
});
$(this).find('.tab-title').remove();
if (i++) {
$(this).hide();
} else {
sel_item.addClass('selected');
}
tab_sel.append(sel_item);
$(this).addClass('contenttab');
});
$('.tab-content', this).eq(0).before(contenttab_sel);
contenttab_sel = null;
i = null;
});
```
builds as:
$('div.content-tabs').each(function() {
var tab_sel = $('
', { class: "tab-selector" });
var i = 0;
if ($(this).hasClass('right-col')){
tab_sel.addClass('in-right-col');
}
$('.tab-content', this).each(function() {
var sel_item = $('
', {
class: $(this).attr('id'),
text: $(this).find('.tab-title').text()
});
$(this).find('.tab-title').remove();
if (i++) {
$(this).hide();
} else {
sel_item.addClass('selected');
}
tab_sel.append(sel_item);
$(this).addClass('contenttab');
});
$('.tab-content', this).eq(0).before(contenttab_sel);
contenttab_sel = null;
i = null;
});
JSON
For JSON code blocks, assign json
as the name of the code block.
Fenced code block
A fenced code block like this:
```json
{
"foo":
[
{
"one": "12345",
"two": "abcde",
"three": "words"
},
]
}
```
builds as:
{
"foo":
[
{
"one": "12345",
"two": "abcde",
"three": "words"
},
]
}
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: json
{
"foo":
[
{
"one": "12345",
"two": "abcde",
"three": "words"
},
]
}
```
builds as:
{
"foo":
[
{
"one": "12345",
"two": "abcde",
"three": "words"
},
]
}
JSON w/Jinja
For JSON code blocks that also embed Jinja templating, such as the nav-docs.html files that are used to build the documentation site’s left navigation structures, the standard .. code-block:: json
block will not work because the code block is not parsable as JSON. Instead, for code blocks that require a mix of JSON and Jinja templating, use .. code-block:: django
as shown here:
Fenced code block
A fenced code block like this:
```django
{% extends "!nav-docs.html" %}
{% set some_jinja = "12345" %}
{% set navItems = [
{
"title": "Start Here",
"iconClass": "fas fa-arrow-alt-circle-right fa-fw",
"subItems": [
{
"title": "Start Here",
"hasSubItems": false,
"url": "/some_file.html"
},
{
"title": "FAQ",
"hasSubItems": false,
"url": "/faq.html"
},
{
"title": "Additional Resources",
"hasSubItems": false,
"url": "/resources.html"
},
]
},
] -%}
```
builds as:
{% extends "!nav-docs.html" %}
{% set some_jinja = "12345" %}
{% set navItems = [
{
"title": "Start Here",
"iconClass": "fas fa-arrow-alt-circle-right fa-fw",
"subItems": [
{
"title": "Start Here",
"hasSubItems": false,
"url": "/some_file.html"
},
{
"title": "FAQ",
"hasSubItems": false,
"url": "/faq.html"
},
{
"title": "Additional Resources",
"hasSubItems": false,
"url": "/resources.html"
},
]
},
] -%}
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: django
{% extends "!nav-docs.html" %}
{% set some_jinja = "12345" %}
{% set navItems = [
{
"title": "Start Here",
"iconClass": "fas fa-arrow-alt-circle-right fa-fw",
"subItems": [
{
"title": "Start Here",
"hasSubItems": false,
"url": "/some_file.html"
},
{
"title": "FAQ",
"hasSubItems": false,
"url": "/faq.html"
},
{
"title": "Additional Resources",
"hasSubItems": false,
"url": "/resources.html"
},
]
},
] -%}
```
builds as:
{% extends "!nav-docs.html" %}
{% set some_jinja = "12345" %}
{% set navItems = [
{
"title": "Start Here",
"iconClass": "fas fa-arrow-alt-circle-right fa-fw",
"subItems": [
{
"title": "Start Here",
"hasSubItems": false,
"url": "/some_file.html"
},
{
"title": "FAQ",
"hasSubItems": false,
"url": "/faq.html"
},
{
"title": "Additional Resources",
"hasSubItems": false,
"url": "/resources.html"
},
]
},
] -%}
Why django?
Using django seems like an odd way to specify a code block that contains both Jinja and JSON.
Django is a site templating language that is part of the Python world. The Sphinx themes are actually built using a combination of Django, Jinja, JSON, and other stuff. The left-side navigation, in particular, is a mix of JSON structure and Jinja variables.
django identifies the Pygments lexer that parses a code block that contains both Jinja and JSON.
Lua
For Lua code blocks, assign lua
as the name of the code block.
Fenced code block
A fenced code block like this:
```lua
A = class()
function A:init(x)
self.x = x
end
function A:test()
print(self.x)
end
```
builds as:
A = class()
function A:init(x)
self.x = x
end
function A:test()
print(self.x)
end
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: lua
A = class()
function A:init(x)
self.x = x
end
function A:test()
print(self.x)
end
```
builds as:
A = class()
function A:init(x)
self.x = x
end
function A:test()
print(self.x)
end
None
For text that needs to be formatted as if it were a code block, but isn’t actually code, assign none
as the name of the code block.
Fenced code block
A fenced code block like this:
```none
This is a none block. It's formatted as if it were code, but isn't actually code.
Can include code-like things:
function_foo()
it_does: something
end
```
builds as:
This is a none block. It's formatted as if it were code, but isn't actually code.
Can include code-like things:
function_foo()
it_does: something
end
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: none
This is a none block. It's formatted as if it were code, but isn't actually code.
Can include code-like things:
function_foo()
it_does: something
end
```
builds as:
This is a none block. It's formatted as if it were code, but isn't actually code.
Can include code-like things:
function_foo()
it_does: something
end
Python
For Python code blocks, assign python
as the name of the code block.
Fenced code block
A fenced code block like this:
```python
def function(foo):
if (some_thing):
return bar
else:
return 0
```
builds as:
def function(foo):
if (some_thing):
return bar
else:
return 0
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: python
def function(foo):
if (some_thing):
return bar
else:
return 0
```
builds as:
def function(foo):
if (some_thing):
return bar
else:
return 0
REST API
For REST API code blocks, assign rest
as the name of the code block.
Fenced code block
A fenced code block like this:
```rest
https://www.yoursite.com/endpoint/{some_endpoint}
```
builds as:
https://www.yoursite.com/endpoint/{some_endpoint}
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: rest
https://www.yoursite.com/endpoint/{some_endpoint}
```
builds as:
https://www.yoursite.com/endpoint/{some_endpoint}
reStructuredText
For reStructuredText code blocks, assign rst
as the name of the code block.
Fenced code block
A fenced code block like this:
```rst
This is some *reStructured* **Text** formatting.
.. code-block:: none
that has some(code);
```
builds as:
This is some *reStructured* **Text** formatting.
.. code-block:: none
that has some(code);
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: rst
This is some *reStructured* **Text** formatting.
.. code-block:: none
that has some(code);
```
builds as:
This is some *reStructured* **Text** formatting.
.. code-block:: none
that has some(code);
Ruby
For Ruby code blocks, assign ruby
as the name of the code block.
Fenced code block
A fenced code block like this:
```ruby
items = [ 'one', 1, 'two', 2.0 ]
for it in items
print it, " "
end
print "\n"
```
builds as:
items = [ 'one', 1, 'two', 2.0 ]
for it in items
print it, " "
end
print "\n"
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: ruby
items = [ 'one', 1, 'two', 2.0 ]
for it in items
print it, " "
end
print "\n"
```
builds as:
items = [ 'one', 1, 'two', 2.0 ]
for it in items
print it, " "
end
print "\n"
Scala
For Scala code blocks, assign scala
as the name of the code block.
Fenced code block
A fenced code block like this:
```scala
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
```
builds as:
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: scala
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
```
builds as:
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
Shell Script
For shell script blocks, assign bash
as the name of the code block.
Fenced code block
A fenced code block like this:
```bash
# The product and version information.
readonly MARKUP_PRODUCT="markup-app"
readonly MARKUP_VERSION="1.23.45-6"
readonly MARKUP_RELEASE_DATE="2019-04-01"
```
builds as:
# The product and version information.
readonly MARKUP_PRODUCT="markup-app"
readonly MARKUP_VERSION="1.23.45-6"
readonly MARKUP_RELEASE_DATE="2019-04-01"
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: bash
# The product and version information.
readonly MARKUP_PRODUCT="markup-app"
readonly MARKUP_VERSION="1.23.45-6"
readonly MARKUP_RELEASE_DATE="2019-04-01"
```
builds as:
# The product and version information.
readonly MARKUP_PRODUCT="markup-app"
readonly MARKUP_VERSION="1.23.45-6"
readonly MARKUP_RELEASE_DATE="2019-04-01"
YAML
For YAML code blocks, assign yaml
as the name of the code block.
Fenced code block
A fenced code block like this:
```yaml
config:
- some_setting: 'value'
- some_other_setting: 12345
```
builds as:
config:
- some_setting: 'value'
- some_other_setting: 12345
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: yaml
config:
- some_setting: 'value'
- some_other_setting: 12345
```
builds as:
config:
- some_setting: 'value'
- some_other_setting: 12345
YAML w/Jinja
For YAML code blocks that also embed Jinja templating, the standard yaml
code block will not work because the code block is not parsable as YAML. Instead, these code blocks must be able to parse a mix of YAML and Jinja templating.
Use salt
as the name of the code block.
Fenced code block
A fenced code block like this:
```salt
{%- set some_jinja = "12345" %}
config:
- some_setting: 'value'
- some_other_setting: {{ some_jinja }}
```
builds as:
{%- set some_jinja = "12345" %}
config:
- some_setting: 'value'
- some_other_setting: {{ some_jinja }}
Sphinx directive
A code block specified by a Sphinx directive:
```eval_rst
.. code-block:: salt
{%- set some_jinja = "12345" %}
config:
- some_setting: 'value'
- some_other_setting: {{ some_jinja }}
```
builds as:
{%- set some_jinja = "12345" %}
config:
- some_setting: 'value'
- some_other_setting: {{ some_jinja }}
Why salt?
Using salt seems like an odd way to specify a code block that contains both Jinja and YAML.
SaltStack is a configuration management tool similar to Ansible, Chef, and Puppet. SaltStack uses a mix of Jinja and YAML to define system states that are to be configured and maintained. The salt lexer exists in Pygments originally because of how SaltStack defines system states, their use of Python and documentation built via Sphinx, and the need for a lexer that could parse a file with code samples that contain both Jinja and YAML.
salt identifies the Pygments lexer that parses a code block that contains both Jinja and YAML.
Content Tabs
Warning
Content tabs must be defined using the eval_rst bridge.
Content tabs enable a way to group topics together in a compact way. Each topic is associated with a tab and, when clicked, shows that content in a content box below. The content box has a shadow applied to it to distinguish tabbed content from normal content. Use content tabs to group related topics, code styles, information sets, or concise workflows.
Warning
Content tabs may only be used in HTML outputs. For content that is output to PDF format, the content tabs will “fail gracefully” by presenting the tab title similar to an H5 header.
Content tabs are defined by a series of container
directives that work together to assign CSS and HTML properties. For example:
```eval_rst
.. container:: content-tabs
:name: unique-name
.. container:: tab-content
:name: required-name-1
.. container:: tab-title
Tab 1
.. container::
This is the content for tab1.
.. container:: tab-content
:name: required-name-2
.. container:: tab-title
Tab 2
.. container::
This is the content for tab2.
```
where:
- The
content-tabs
container declares a group of content tabs. The :name:
property is required and must be unique. This container expects a list of one (or more) containers that specify tab-content
.
- The
tab-content
container specifies the contents for each individual tab in the tab group. This container must specify a :name:
property and this value must be unique, as this value is assigned to a hidden radio button that tells the JavaScript how to knows which tab is selected by the user. Each tab-content
container must specify a tab-title
and a container that is not assigned a CSS property.
- The
tab-title
container specifies the string that will appear in the tab.
- The container that is not assigned a CSS property is the container that holds the content that will appear in the tab. This is a normal paragraph, in that it supports most of the same options as a paragraph would support if it were anywhere else in the documentation.
Note
The formatting for content tabs is picky. Be sure to get everything aligned and indented under each of the .. container:: directives.
When it’s all together, it should be similar to:
Tab 1
This is the content for tab1.
Tab 2
This is the content for tab2.
Tip
Keep the number of tabs in a content tab group to a small number. If a grouping requires more than 5-6 tabs, consider re-grouping the content. Keeping this to a small number also helps prevent wrapping of content tabs.
Example: UI Tasks
The following example shows use cases for a very sophisticated user interface supported by a few exceptionally well-written task-based topics organized as a series of content tabs.
Example
This user interface is just amazing. Users can do stuff:
Click Button
To click a button
- Open the application.
- In the top navigation bar, click BUTTON.
- From the list, select a list item.
- In the ITEM pane, scroll to the bottom, and then click BUTTON.
Check Box
To check a box
- Open the application.
- In the top navigation bar, click BUTTON.
- From the list, select a list item.
- In the ITEM pane, scroll to the bottom, and then select the CHECKBOX.
Type Something
To type something
- Open the application.
- In the top navigation bar, click BUTTON.
- From the list, select a list item.
- In the ITEM pane, scroll to text box, select it, and then start typing.
Example: Terms
This example represents an intro near the start of a longer conceptual topic that needs to introduce some important terminology. You’d use a short paragraph (like this one!), and then put each of the terms in a tab below the paragraph. This example also shows how to use the .. includes::
directive to pull in paragraphs from the source glossary file, which is located at /shared/terms.rst
.
Example
Blah blah, the following terms are important for this topic:
Aaaaa
Aaaaa is a word built using only the first letter of the alphabet.
Bbbbb
Bbbbb is a word built using only the second letter of the alphabet.
Ccccc
Ccccc is a word built using only the third letter of the alphabet.
Ddddd
Ddddd is a word built using only the fourth letter of the alphabet.
Expandos
Warning
Content tabs must be defined using the eval_rst bridge.
Expandos enable content to be grouped under a title bar. When the title bar is clicked, the content expands under the title bar and is visible to the reader. When a title bar with expanded content is clicked, the content collapses under the title bar and is no longer visible.
The content appears inside a box to distinguish expanded content from normal content. Use expandos for things like FAQ pages, support and troubleshooting topics, certain tutorials, and to hide certain types of content from the reader until the reader chooses to view it.
An expando is defined inside the .. expando::
directive. Each expando must be assigned a :title:
, which is the string that appears in the expandable title bar on the page:
```eval_rst
.. container:: toggle
.. container:: header
**This is the title**
.. container:: content
Content goes here, indented correctly, as anywhere else in
a rST document.
```
will appear similar to:
Content goes here, indented correctly, as anywhere else in a rST document.
The :title:
may contain bold text, italics text, plain text, or a combination of styles:
The title for this expando is BOLD.
The title for this expando is italics.
The title for this expando has a combination of styles.
Tip
Don’t use expandos within large reference topics. One of the primary use cases for a large reference topic is to enable the reader to CMD+F, and then search for a string on the page. Content that is inside a hidden expando may not be searchable in this scenario.
Example: FAQ
FAQs are typically lists of questions. People read the questions before they read the answers. Use expandos to show people the questions, and then the answers.
The following setup instructions assume the following:
- You are installing on Mac OS
- You are able to run the pip command (for non-Sass applications)
- You are able to install Rubygems (for Sass)
For all other installation scenarios, the steps are similarly easy. Please refer to the linked setup docs for each application for the correct information.
To set up a theme environment
Install Sphinx:
Install Sass:
Install the RevealJS docutils plugin:
$ pip install sphinxjp.themes.revealjs
Install the Recommonmark docutils-compatibility bridge:
$ pip install recommonmark
A documentation project that supports Markdown authoring must add the following elements to the conf.py file:
Under import sys, os
add:
from recommonmark.parser import CommonMarkParser
from recommonmark.transform import AutoStructify
source_parsers = {
'.md': CommonMarkParser,
}
Change source_suffix = '.rst'
to source_suffix = ['.rst', '.md']
.
At the bottom of the Options for HTML output configuration section, add:
def setup(app):
app.add_config_value('recommonmark_config', {
'enable_eval_rst': True,
}, True)
app.add_transform(AutoStructify)
Install WeasyPrint:
and then run $ weasyprint --version
to verify.
Note
In some cases, you will need to make sure that the user running the WeasyPrint installation command can write to the install directory. By default, that requires a command similar to: $ sudo chown -R $USER:admin /usr/local
.
The following steps describe how to create a pull request when using GitHub Desktop:
To create a pull request via GitHub desktop
Open GitHub Desktop and select the vse_docs
repository.
From the master branch, ensure that the repository is up to date. Click Fetch Origin and then click Pull Origin.
Select the dropdown next to Current Branch, and then choose New Branch.
In the Create a Branch dialog box, assign the branch a unique name, such as jscott-060718-feedback
, and then click Create Branch.
Using your favorite text editor–such as TextMate on a Mac or EditPad Pro on a Windows PC–open the file you want to edit and make your changes.
In GitHub Desktop, under Current Repository choose the Changes tab. This will show the changes you just made.
Add short description to the Summary box, and optionally add a description. Select all of the files to be commited with this branch.
Click Commit to [name of branch].
Select the dropdown next to Current Branch, choose Pull Requests, and then click the Create a pull request link.
In the Publish Branch dialog box, click Publish Branch. This will open the GitHub web user interface.
On the Open a pull request page, add reviewers if necessary. When finished, click Create pull request.
You’re done!
MARKUP must be run as an actual website to ensure certain behaviors, especially for top-level navigation linking, left-side navigation linking, correct highlighting in the left-side navigation. This is true even for local development. You can view any HTML page in any browser to read and verify rendering of formatting elements on the pages themselves—notes, warnings, code blocks, tables, etc.—but linking to other pages and/or using the navigation will not behave correctly. Use localhost to enable correct website behaviors on your local machine.
Mac OS machines have built-in localhost abilities that can be enabled.
Run the following command:
Open the configuration file:
$ sudo nano /etc/apache2/httpd.conf
Enable PHP 7.1 by removing the #
from this line:
#LoadModule php7_module libexec/apache2/libphp7.so
Restart Apache.
Open the configuration file:
$ sudo nano /etc/apache2/httpd.conf
and then update DocumentRoot
and <Directory
to have the path to the /output
directory for the project:
$ DocumentRoot "/path/to/markup_project/output/"
<Directory "/path/to/markup_project/output/">
Restart Apache.
Example: Content Patterns
This example shows various standard content elements–paragraphs, bold, italic, tables, content tabs, code blocks, images, includes, glossary terms–included under expandos:
This is a test. Can expandos have content tabs?
Aaaaa
Aaaaa is a word built using only the first letter of the alphabet.
Bbbbb
Bbbbb is a word built using only the second letter of the alphabet.
Ccccc
Ccccc is a word built using only the third letter of the alphabet.
Ddddd
Ddddd is a word built using only the fourth letter of the alphabet.
Looks like the answer is: YES.
This is text. And
This
Is
An
Ordered
List
This section groups a series of procedures as tabbed content.
This is
To do the first step
- Do.
- Doing.
- Done.
a procedure
To do the second step
- Do.
- Doing.
- Done.
with a series
To do the third step
- Do.
- Doing.
- Done.
of steps
To do the fourth step
- Do.
- Doing.
- Done.
Includes
The Sphinx includes
directive allows you to specify a path to a file (.md
, .rst
, or .txt
), and then include that text at that place in the documentation. As long as the content in the shared topic is valid, it can be included anywhere across the entire documentation set.
via File
Inclusions may be done from standalone files. These standalone files are typically kept as a standalone file located in a dedicated directory within the docs repository, such as /shared/some_file.rst
.
From Markdown
A valid path to a Markdown file:
```eval_rst
.. include:: ../../shared/shared.md
```
builds as:
This file is authored in Markdown (.md), intentionally italicized, and located in the `/shared` directory.
From reStructuredText
A valid path to a reStructuredText file:
```eval_rst
.. include:: ../../shared/shared.rst
```
builds as:
This file is authored in RestructuredText (.rst), intentionally italicized, and located in the `/shared` directory.
From text
A valid path to a text file:
```eval_rst
.. include:: ../../shared/shared.txt
```
builds as:
This file is authored in simple text (.txt), intentionally italicized, and located in the `/shared` directory.
via Snippet
Inclusions may be done from within existing files as long as the target for that snippet is located in another file in the repository.
Warning
Snippets may not be used within the same file. What this means is the source of the snippet may not also be the target for that snippet. This will cause a rendering issue in the output or an error in the build.
These types of inclusions require two steps:
Declare a start and an end for the snippet; this declaration must be unique across the entire documentation repository.
Tip
To help ensure unique snippet identifiers are built in the output, ensure that the snippet identifiers are directly assocaited with the name of the source directory and source file. These identifiers don’t have to be long (though they can be), but they must be unique within a doc set.
For example, a file locatated at internal_docs/source/tips.rst should have snippet identifiers like .. internal-docs-tips-some-identifier-start or .. internal-docs-tips-some-identifier-end.
Specify the .. includes::
directive, along with the :start-after:
and :end-before:
attributes.
The :start-after:
and :end-before:
attributes effectively use a unique code comment located in the file defined by the .. includes::
directive to know the start and end of the snippet to be included.
From terms.rst as a snippet
A valid path to the terms.rst file:
```eval_rst
.. include:: ../../shared/terms.rst
:start-after: .. term-test-start
:end-before: .. term-test-end
```
builds as:
This is an example paragraph that shows how to use snippets to include content in more than one spot. Sometimes it’s easier to manage lots of snippets when they can be alongside each other, like in this file. This works great for glossary terms (that are also usable as top-level introductions). List them alphabetically for fun and profit.
Hint
Snippets may be sourced from large files that contain lists. For example, let’s say the docs site has multiple docs collections (by application, by role, by internal vs. external, etc.) and you want each docs collection to have its own dedicated glossary to both enable consistency across doc sets for the same terms, but to also allow specific glossary terms for each doc set.
In this case, all glossary terms can be created and managed from a single file like shared/terms.rst in which the snippet start-end pairs are defined and the glossary terms are managed. Then each glossary.rst file across the docs set can use the .. includes:: directive to pull in the terms it needs.
Links
There are three types of links:
External
External links are links to pages outside of the documentation project entirely or to other pages in other documentation projects that are published as part of MARKUP.
For example:
* [https://www.w3schools.com/w3css/](https://www.w3schools.com/w3css/)
External links can also be [placed inline](https://www.w3schools.com/w3css/).
builds as:
External links can also be placed inline.
Note
For “external” links to pages in other docs collections within MARKUP, the full path does not need to be specified. Instead, only the relative path is required. For example:
`About Admonitions </markup-theme/rst/rst.html#admonitions>`__
will link to About Admonitions.
Reference
Internal reference links point to specific headers within the same documentation project. There are two ways to define internal reference links:
- Using Sphinx processing, which allows linking to any header in the documentation project that has a defined reference
- Markdown links style, but only for headers that exist on the same page
Sphinx Internal References
Using internal reference links requires Sphinx processing for both defining the reference for the header and also the link to it.
A reference is defined like this:
```eval_rst
.. _additional-resources:
```
(See the raw source for the “Additional Resources” section at the bottom of this page for additional details.)
The link to that reference may be defined to automatically pick up the header for that section, like this:
```eval_rst
:ref:`additional-resources`
```
or may be defined with an arbitrary string, like this:
```eval_rst
:ref:`Read more about authoring in Markdown, building using Sphinx, and publishing with MARKUP! <additional-resources>`
```
These links build as:
Additional Resources
and:
Read more about authoring in Markdown, building using Sphinx, and publishing with MARKUP!
Markdown Internal References
Markdown allows internal reference linking only to a header that is on the same page. For example: Links. An internal reference link that is defined like this:
[additional references](#additional-resources)
builds like this: additional references.
Topic
Internal topic links point to other topics in the same documentation project. There are two ways to define internal topic links:
- Using Sphinx processing (not recommended)
- Markdown links style (recommended)
Sphinx Internal References
A link to another topic within the same documentation project may be done using Sphinx processing.
The link to that topic may be defined to automatically pick up the topic title:
```eval_rst
:doc:`test`
```
or may be defined with an arbitrary string, like this:
```eval_rst
:doc:`This link is just a test! <test>`
```
These links build as:
<no title>
and:
This link is just a test!
Note
The test topic `test.md` does not have a title! This is why the link just above this note shows as ``.
Markdown Internal Topic
Markdown defines internal topic links to other topics within the same documentation project. An internal topic link that is defined like this:
builds like this: Test.


Home
About
Contact
2019 STLP Interactive Map
Tap Your Start Location on the Map
Tap Your End Location on the Map
Select Location From List
Start Location
Custom Start
-----Level 1-----
Awesome Inc.
Bench Challenge
Bench Challenge Team
Berea Room
Breakout EDU
Bus Site A
Elkhorn A
Elkhorn B
Elkhorn C
Elkhorn D
Extreme Networks Challenge
FCPS STEM Bus
Food Court
Georgetown College Robotics
Help Desk Support Challenge
Heritage Ballroom 1
Heritage Ballroom 2
Heritage Ballroom 3
KY Travel
Lafayette Digital Lab
Live Production Team
Main Stage
Newton's Attic
Proven Learning Quick Tech Recall
RCX Competition Area
RCX Pit Area
Racing to the Future
STLP HQ
Shattered Glass
UL Podcast
Wall of Winners
Welcome/Info Desk
-----Level 3-----
Bluegrass Ballroom
Concession Stand
NKU APP Challenege
Thoroughbred Room 1-3
Thoroughbred Room 4
Thoroughbred Room 5
Thoroughbred Room 6
Thoroughbred Room 7
Thoroughbred Room 8
Destination
Custom Destination
Closest Bathroom
-----Level 1-----
Awesome Inc.
Bench Challenge
Bench Challenge Team
Berea Room
Breakout EDU
Bus Site A
Elkhorn A
Elkhorn B
Elkhorn C
Elkhorn D
Extreme Networks Challenge
FCPS STEM Bus
Food Court
Georgetown College Robotics
Help Desk Support Challenge
Heritage Ballroom 1
Heritage Ballroom 2
Heritage Ballroom 3
KY Travel
Lafayette Digital Lab
Live Production Team
Main Stage
Newton's Attic
Proven Learning Quick Tech Recall
RCX Competition Area
RCX Pit Area
Racing to the Future
STLP HQ
Shattered Glass
UL Podcast
Wall of Winners
Welcome/Info Desk
-----Level 3-----
Bluegrass Ballroom
Concession Stand
NKU APP Challenege
Thoroughbred Room 1-3
Thoroughbred Room 4
Thoroughbred Room 5
Thoroughbred Room 6
Thoroughbred Room 7
Thoroughbred Room 8
or
Tap Location On Map
From?
To?
options
Use Elevator?


--- layout: post title: Testing in Python - unittest date: 2016-02-19 17:46:48.000000000 -06:00 type: post parent_id: '0' published: true password: '' status: publish categories: - python tags: [] meta: _edit_last: '1' _yoast_wpseo_focuskw_text_input: unittest _yoast_wpseo_focuskw: unittest _yoast_wpseo_linkdex: '57' author: login: admin email<EMAIL_ADDRESS>display_name: Anna first_name: '' last_name: '' permalink: "/testing-in-python/" ---
TDD seems to be the fad these days and I can see why, so now would be a good time to learn up on automated testing and CI. How TDD works is that you write the unit test, the test should fail when you run it and then you write the piece of code to make the test pass. It gets pretty annoying to debug the code after each deployment, save yourself the trouble and write tests for them. There are a lot of testing frameworks (some with a more simple syntax than unittest) out there for Python, but I'll be sticking to unittest.
Let's write tests for our addition module from the last post.
Create a new file called test_addition.py in the same folder as the addition module.
import unittest import addition class TestAddition(unittest.TestCase): def test_add2(self): self.assertEqual(addition.add2(2,3),5) def test_add3(self): self.assertEqual(addition.add3(1,2,3),6) if __name__ == '__main__': unittest.main()
In the first two lines you need to import unittest and the module that is to be tested.
To create test cases you first need to create a class extending unittest's TestCase class, usually it's one test class for each class.
Next write methods to test each function, the method name has to start with test so the test runner knows it's a test.
Here we use the assertEqual() to make sure that the value from the function we're testing is the expected one. There are other functions we can use such as assertTrue() or assertFalse() to check if the output of the function is correct.
We add the unittest.main() at the end to run all the tests in the file. To run the test we do run the following from the command line.
python test_addition.py
If everything goes well then we should get something like
..
----------------------------------------------------------------------
Ran 2 tests in 0.000sOK
There are other neat things you can do with unittest, more to read over here https://docs.python.org/3/library/unittest.html


IL Mode Value. If enabled while saving, OpenIL will overwrite existing files, else IL_FILE_ALREADY_EXISTS is set, and the image is not saved.


Elvin
Peter works as a DJ for a night's wage at clubs of the Greek province. Always on the move. Irritable, solitary. This time he has a passenger.
Cast
- Dimosthenis Filippas (Lead Actor)
- Artemis Grympla (Lead Actor)
- Ntiana Papanagiotaki (Supporting)
Credits
- Directors
- Orfeas Peretzis
- Screenwriters
- Orfeas Peretzis
- Producers
- Konstantinos Vassilaros
- Exec producers
- Konstantinos Vassilaros, Orfeas Peretzis, John Moraitis
- Cinematographers
- Peter Salapatas
- Editors
- Dimitris Polydoropoulos, Orfeas Peretzis
- Sound editors
- Dimitris Polydoropoulos
Screenings
- Drama International Short Film Festival 09/2014
- Athens International Film Festival (AIFF) 10/2014
- Dam Short Film Festival 02/2015
- International Artfools Film Festival 03/2015 (Panhellenic Union of Film Critics Award) Mexico International Film Festival 05/2015 (Bronze Palm Award for Best International Short)
runtime: 25 min
screening: July 3rd


pdftoppm
Section: User Commands (1)Updated: 22 January 2004
Index Return to Main Contents
NAME
pdftoppm - Portable Document Format (PDF) to Portable Pixmap (PPM) converter (version 3.00)SYNOPSIS
pdftoppm [options] PDF-file PPM-rootDESCRIPTION
Pdftoppm converts Portable Document Format (PDF) files to color image files in Portable Pixmap (PPM) format, grayscale image files in Portable Graymap (PGM) format, or monochrome image files in Portable Bitmap (PBM) format.Pdftoppm reads the PDF file, PDF-file, and writes one PPM file for each page, PPM-root-nnnnnn.ppm, where nnnnnn is the page number.
OPTIONS
- -f number
- Specifies the first page to convert.
- -l number
- Specifies the last page to convert.
- -r number
- Specifies the X and Y resolution, in DPI. The default is 150 DPI.
- -rx number
- Specifies the X resolution, in DPI. The default is 150 DPI.
- -ry number
- Specifies the Y resolution, in DPI. The default is 150 DPI.
- -scale-to number
- Scales each page to fit in scale-to*scale-to pixel box.
- -scale-to-x number
- Scales each page horizontally to fit in scale-to-x pixels.
- -scale-to-y number
- Scales each page vertically to fit in scale-to-y pixels.
- -x number
- Specifies the x-coordinate of the crop area top left corner
- -y number
- Specifies the y-coordinate of the crop area top left corner
- -W number
- Specifies the width of crop area in pixels (default is 0)
- -H number
- Specifies the height of crop area in pixels (default is 0)
- -sz number
- Specifies the size of crop square in pixels (sets W and H)
- -mono
- Generate a monochrome PBM file (instead of a color PPM file).
- -gray
- Generate a grayscale PGM file (instead of a color PPM file).
- -png
- Generates a PNG file instead a PPM file.
- -freetype yes | no
- Enable or disable FreeType (a TrueType / Type 1 font rasterizer). This defaults to "yes".
- -aa yes | no
- Enable or disable font anti-aliasing. This defaults to "yes".
- -aaVector yes | no
- Enable or disable vector anti-aliasing. This defaults to "yes".
- -opw password
- Specify the owner password for the PDF file. Providing this will bypass all security restrictions.
- -upw password
- Specify the user password for the PDF file.
- -q
- Don't print any messages or errors.
- -v
- Print copyright and version information.
- -h
- Print usage information. (-help and --help are equivalent.)
EXIT CODES
The Xpdf tools use the following exit codes:- 0
- No error.
- 1
- Error opening a PDF file.
- 2
- Error opening an output file.
- 3
- Error related to PDF permissions.
- 99
- Other error.
AUTHOR
The pdftoppm software and documentation are copyright 1996-2004 Glyph & Cog, LLC.SEE ALSO
pdftops(1), pdftotext(1), pdfinfo(1), pdffonts(1), pdfimages(1),
Index
This document was created by man2html, using the manual pages.
Time: 05:29:07 GMT, December 24, 2015


|
BanditPAM
|
Python wrapper for KMedoids class. More...
Public Member Functions | |
| void | fitPython (py::array_t< double > inputData, std::string loss, std::string logFilename, py::kwargs kw) |
| Python binding for fitting a KMedoids object to the. More... | |
| py::array_t< double > | getMedoidsFinalPython () |
| Returns the final medoids. More... | |
| py::array_t< double > | getMedoidsBuildPython () |
| Returns the build medoids. More... | |
| py::array_t< double > | getLabelsPython () |
| Returns the medoid assignments for each datapoint. More... | |
| int | getStepsPython () |
| Returns the number of swap steps. More... | |
| KMedoids (int n_medoids=5, std::string algorithm="BanditPAM", int verbosity=0, int max_iter=1000, std::string logFilename="KMedoidsLogfile") | |
| Class implementation for running KMedoids methods. More... | |
| Public Member Functions inherited from KMedoids | |
| KMedoids (int n_medoids=5, std::string algorithm="BanditPAM", int verbosity=0, int max_iter=1000, std::string logFilename="KMedoidsLogfile") | |
| Class implementation for running KMedoids methods. More... | |
| ~KMedoids () | |
| Destroys KMedoids object. More... | |
| void | fit (arma::mat inputData, std::string loss) |
| Finds medoids for the input data under identified loss function. More... | |
| arma::rowvec | getMedoidsFinal () |
| Returns the final medoids. More... | |
| arma::rowvec | getMedoidsBuild () |
| Returns the build medoids. More... | |
| arma::rowvec | getLabels () |
| Returns the medoid assignments for each datapoint. More... | |
| int | getSteps () |
| Returns the number of swap steps. More... | |
| int | getNMedoids () |
| Returns the number of medoids. More... | |
| void | setNMedoids (int new_num) |
| Sets the number of medoids. More... | |
| std::string | getAlgorithm () |
| Returns the algorithm for KMedoids. More... | |
| void | setAlgorithm (std::string new_alg) |
| Sets the algorithm for KMedoids. More... | |
| int | getVerbosity () |
| Returns the verbosity for KMedoids. More... | |
| void | setVerbosity (int new_ver) |
| Sets the verbosity for KMedoids. More... | |
| int | getMaxIter () |
| Returns the maximum number of iterations for KMedoids. More... | |
| void | setMaxIter (int new_max) |
| Sets the maximum number of iterations for KMedoids. More... | |
| std::string | getLogfileName () |
| Returns the log filename for KMedoids. More... | |
| void | setLogFilename (std::string new_lname) |
| Sets the log filename for KMedoids. More... | |
| void | setLossFn (std::string loss) |
| Sets the loss function. More... | |
Python wrapper for KMedoids class.
KMedoidsWrapper class. Is the Python wrapper generated by Pybind that allows for calling the C++ code in Python.
|
inline |
Python binding for fitting a KMedoids object to the.
This is the primary function of the KMedoids module: this finds the build and swap medoids for the desired data
| inputData | Input data to find the medoids of |
| loss | The loss function used during medoid computation |
| k | The number of medoids to compute |
| logFilename | The name of the outputted log file |
|
inline |
Returns the medoid assignments for each datapoint.
Returns as a numpy array the medoid each input datapoint is assigned to after KMedoids::fit is called and the final medoids have been identified
|
inline |
Returns the build medoids.
Returns as a numpy array the build medoids at the end of the BUILD step after KMedoids::fit has been called.
|
inline |
Returns the final medoids.
Returns as a numpy array the final medoids at the end of the SWAP step after KMedoids::fit has been called.
|
inline |
Returns the number of swap steps.
Returns the number of SWAP steps completed during the last call to KMedoids::fit
| KMedoids::KMedoids | ( | int | n_medoids = 5 , |
| std::string | algorithm = "BanditPAM" , |
||
| int | verbosity = 0 , |
||
| int | max_iter = 1000 , |
||
| std::string | logFilename = "KMedoidsLogfile" |
||
| ) |
Class implementation for running KMedoids methods.
KMedoids class. Creates a KMedoids object that can be used to find the medoids for a particular set of input data.
| n_medoids | Number of medoids/clusters to create |
| algorithm | Algorithm used to find medoids; options are "BanditPAM" for the "Bandit-PAM" algorithm, or "naive" to use the naive method |
| verbosity | Verbosity of the algorithm, 0 will have no log file emitted, 1 will emit a log file |
| max_iter | The maximum number of iterations the algorithm runs for |
| logFilename | The name of the output log file |


Health and care
Children's nurse
Children's nurses provide care for children and young people with acute or long-term health problems.
Dental nurse
Dental nurses help dentists to care for their patients, and may also carry out reception work and other tasks.
Dental hygienist
Oral health practitioner
Dental hygienists offer advice, information and treatments to prevent and treat tooth decay and gum disease.
Dentist
Dental surgeon, dental practitioner
Dentists diagnose and treat teeth and mouth problems, and work to prevent dental disease and promote oral health.
GP
General practitioner, doctor
General practitioners (GPs) are doctors who provide medical services to people in the community.
Healthcare assistant
Support worker, nursing assistant, nursing auxiliary
Healthcare assistants help look after patients in hospitals or in patients’ own homes.
Hospital doctor
A hospital doctor diagnoses and treats illness and disease in patients admitted to hospital.
Mental health nurse
Mental health nurses work in hospitals and the community, to support people with a range of mental health issues.
Midwife
Midwives give care and support to pregnant women and their babies, before, during and after childbirth.
Occupational therapist
Occupational therapists help people overcome difficulties caused by physical or mental illness, accidents or ageing.
Pharmacist
Dispensing chemist, community pharmacist, hospital pharmacist
Pharmacists provide expert advice on the use and supply of medicines and medical appliances.
Psychologist
Psychologists study people's behaviour, motivations, thoughts and feelings, to help them overcome or control their problems.
Psychotherapist
Psychotherapists use talking techniques and therapies to help people who are distressed, or have mental health problems.
Physiotherapist
Physiotherapists work with patients to improve their range of movement and promote health and wellbeing.
Radiographer
Medical radiographer
Radiographers use equipment to diagnose or treat patients who are ill or injured.
Play therapist
Play therapists help children to make sense of difficult life experiences or complex psychological issues through play.
Care worker
Care assistant, support worker, nursing home assistant
Care workers help vulnerable people to manage their daily activities and to live as independently as possible.
Childminder
Childminders care for babies, toddlers and children in their own home, supporting their learning and development.
Family support worker
Family support workers help and advise families with long- or short-term difficulties.
Nursery manager
Nursery assistant, pre-school assistant, playgroup assistant, nanny, childcare worker
Nursery workers help babies and children up to 5 years old to develop and learn in a safe and supportive environment.
Social work assistant
Community support worker, home care officer, social services assistant
Social work assistants give advice, guidance and support to help people with their physical, emotional and social needs.
Social worker
Social workers help to protect vulnerable children and adults from harm or abuse, and support people to live independently.
Bailiff
Enforcement agent, enforcement officer, high court enforcement officer
Bailiffs visit properties to collect debts, serve a court document or give a notice or summons.
Border Force officer
Border Force officers secure the UK border by carrying out immigration and customs controls for people and goods entering the UK.
Criminal intelligence analyst
Intelligence officer
Criminal intelligence analysts find and analyse data to help detect and prevent crime, and to protect the security of the UK.
Firefighter
Fireman, firewoman
Firefighters save people and property from fire and other dangers, and give advice on fire prevention.
Forensic scientist
Forensic scientists prepare traces of physical evidence for use in courts of law.
Paramedic
Ambulance paramedic
Paramedics deal with emergencies, giving people life-saving medical help.
Police officer
Policeman, policewoman, police constable
A police officer keeps law and order, investigates crime and supports crime prevention.
Prison officer
Prison guard, prison warder
Prison officers supervise and rehabilitate inmates in prisons, remand centres and young offenders' institutions.
Probation officer
Probation officers supervise people serving community and prison sentences, and help them to stay away from crime.
Security officer
Security officers make sure that buildings, valuables and people are safe and secure.


Xiaomi is a Chinese company that designs, develops and sells smartphones, applications and consumer electronics. Since the release of their first smarfon in August 2011, they have gained market share in China and expanded the with a wider range of consumer electronics. Xiaomi's goal is to maintain high quality and low prices.
| Network | Technology | GSM / HSPA / LTE |
| LAUNCH | Announced | 2019, January 10 |
| Status | Available. Released 2019, February 28 | |
| Display | Dimensions | 159.2 x 75.2 x 8.1 mm (6.27 x 2.96 x 0.32 in) |
| Weight | 186 g (6.56 oz) | |
| Build | Glass front (Gorilla Glass 5), glass back (Gorilla Glass 5), plastic frame | |
| SIM | Hybrid Dual SIM (Nano-SIM, dual stand-by) | |
| PLATFORM | rowspan="4" | Android 9.0 Pie, upgradable to Android 10, MIUI 12 |
| Chipset | Qualcomm SDM632 Snapdragon 632 (14 nm) | |
| CPU | Octa-core (4x1.8 GHz Kryo 250 Gold & 4x1.8 GHz Kryo 250 Silver) | |
| GPU | Adreno 506 |
# The Redmi Note 7S comes with a better camera whencompared to the Redmi Note 7. # The Redmi Note 7S comes with 48MP + 5MP dual rear camera setup on the back panel. # The phone also includes PDAF, EIS and AI Portrait Mode support. # In comparison,the Redmi Note 7 includes 12MP + 2MP camera setup on the rear panel.
# Thankfully, the Redmi Note 8 starts at 4GB/64GB, so you're getting more RAM and storage right away. # The Redmi Note 7 Pro was one of the more powerful mid-range phones upon its release, delivering a Snap-dragon 675 processor, 4GB to 6GB of RAM, and 64GB to 128GB of expa-ndable storage.
I am very pleased with phone. Great battery, good display, good camera, type C charger.
Nice design, compact phone, good battery life, excellent MIUI rom, perfectly adapted for the average user at an affordable price range.
Say what you know don't use because of what your phone is doing to say other's are also bad I have been using rn7 over 7 months now I haven't experienced any problem.
I love that phone and i've recommended it to several friends.
The new MIUI12.0.1 unlock animation kill me, cannot disable. Its full bugs and free ram have drop to less than 1gb. Its not smooth anymore... this is very bad. don't update guys.
Almost forgot, my best screen on time was 8 hours, with wifi, and screen brightness around 50% & I think it was mostly used to play offline videos...


{{ .name }}
{{ .description }}
${{ .price }} USD, free shipping for continental U.S. orders. Please call for international or non-continental orders.
{{ .description }}
${{ .price }} USD, free shipping for continental U.S. orders. Please call for international or non-continental orders.


--- layout: splash header: overlay_image: "assets/images/front/B7330B2D-CBC4-4A03-81DC-98A921515E5D.jpeg" actions: - label: "About Me" url: "/about/" - label: "Research Interests" url: "https://www.notion.so/tootouch/TooTouch-s-Research-Roadmap-96e13030376a491d9a5f031868c4618f" excerpt: Save my earth ---


Utilities related to representing bibliographic items, and ordering them using available year and volume metadata, in an order that is most consistent.


Privacy
We (“realsrikar.github.io/reddit-search”) use the localStorage API to store your last search. We do not use store this information.
We Use Collected Information for:
- To make a request to Reddit for the search.
We do not have access to anything else. Such as:
- Your location
- Your IP address
- Your browser history