AI Powered Validation
Deep learning model that validates each upload before allowing to create a report. Thus, reducing irrelevant data and ensuring efficient processing on the management end.
Spothole is a Artificially Intelligent Pothole Detection, Reporting and Management Solution. It is available on the Web and contains a Responsive Suite of Tools for Reporting and Management.
In articles covered by Guardian News & Media, potholes took a deadly toll in 2017, claiming almost 10 lives daily. InShorts reported, potholes killed more people than terrorists reporting 14,926 deaths in road accidents in India. Keeping the roads in good condition, along with keeping the people informed is a task. This has been the main motivation behind developing Spothole.
The idea behind Spothole is to help citizens report their inconveniences in a systematic way, and at the same time help concerned local authorities take actions and manage the same while staying in touch, thus enabling a communication channel between the authorities and the citizens.
Deep learning model that validates each upload before allowing to create a report. Thus, reducing irrelevant data and ensuring efficient processing on the management end.
A reporting system for the citizens where they can capture the scene of an area, which is geocoded and fed to the core AI to create a validated report.
An application for authorities to administer reports using different viewing techniques to manage work orders efficiently for their jurisdictions.
Desktop and mobile compatible citizen and authority applications. Supports a number of features and can be used with any of the popular browsers.
An application for reporting potholes, tracking complaints, communicating with the concerned authorities and also tracking an entire route's status by severity. In other words an app for the people.
The citizen's application has been divided into four main sections. Here's a detailed description of each of the sections.
1. Add a new report either by clicking on the floating action button at the bottom right or from the drawer by pressing the hamburger icon in the app bar.
2. Upload an image of a pothole either by browsing through the file system or by clicking a fresh photo using the inbuilt camera.
3. Once uploaded the image is validated by the deep learning model to verify if it contains one or more potholes.
5. Assuming that the uploaded image is validated successfully, users are given the option to select a location either current or to enter a custom location. After which users are asked to use a progress indicator to specify how severe the reported pothole is according to them.
6. Finally they are asked to give more details about their report using a description box. Once the user has successfully submitted the report, they can now view the same using the My Complaints Screen.
1. On signing into the app with their Google Accounts, users are presented with the My Complaints Screen.
2. Existing users who have at least one report created can manage the status of their report and add additional comments to it or reply on comments from authorities using this section of the App.
3. Users can click on any of the reports to view the detailed description for the report and monitor any notifications or to communicate with the authority through the chat section.
1. This screen presents the user with an option to enter the source and destination location to track a route.
2. The route displays the marked potholes on the path which were approved by the authorities. It uses Google's Maps API to build the route. Custom markers for potholes with status approved ranging on severity are presented to the user on the route if they are close to the route.
3. A legend explaining the different attributes of the map is presented to the user. Also, there is a street view renderer for the users. This screen can be used by any logged in user to monitor a route and the status for the different potholes on it and plan travel accordingly.
1. This screen contains the basic details of a user (avatar, name, email address).
2. It is then followed by a counter for reports with a status of either submitted, approved or completed. Based on the above counters the user is assigned with a badge score indicating their contribution to the community.
3. This score is a weighted average score based on the counters mentioned above. This score will later be used for rewarding the user.
The citizen's application has a number of screens and visual interfaces associated. Here's a section showcasing a few snaps on different devices.
Here are some important URLs developers can use to learn more about the application
The authority's application has been divided into four main sections. Here's a detailed description of each of the sections.
1. Once the authority has signed in successfully, they are presented with the dashboard screen which is divided into two main sections.
2. The first being the analytics section. This has a donut chart which shows a high level view of the user reports in the authority's zone based on the status. Next to that is the stacked bar chart which provides a more detailed view of the status.
3. The second section on the dashboard is a filterable data table containing details about the various user reports. There are options for sorting, filtering, selecting specific columns, searching, exporting the data as csv and printing the table contents too.
4. On clicking any report in the datatable, the authority is presented with the option to update it. Authories are required to provide reason for an update. Authorities can also comment on the report they clicked on and view all the other details of the report as a user would in their My Complaints screen.
5. Users are sent notifications through email after any update is made on their report.
1. Here authotities can view potholes reported in their region through an interactive map view. Existing users who have at least one report created in their jurisdiction can manage the status of their report and add additional comments to it or reply on comments from users using this section of the app. A legend is displayed for helping understand the map better.
2. Custom markers for potholes with different status values ranging on severity are presented to the authority on the map. Authorities can click on any of the markers to view the information window for it. They can update the status and severity directly from this view after clicking the view button in the info window.
3. Also, there is a street view renderer for the users. Finally there is an option to toggle on and off a heat map layer which is weighted on the severity of potholes reported in the region.
1. This screen presents the authority to manage all active users in their zone through a filterable data table. The data table contains options to filter, search, sort, select columns.
2. They can view a user's basic profile details. They can update a user's status to either blocked or allowed based on their activity too.
3. Users are sent out email notifications regarding updates in their status everytime an authority makes a change.
1. This screen contains the basic details (avatar, name, email address of the authority)
2. It also contains the address of the authority.
3. It is then followed by a counter for reports in the authority's zone with a status of either pending, in progress, approved, completed or cancelled.
The authority's application has a number of screens and visual interfaces associated. Here's a section showcasing a few snaps on different devices.
Here are some important URLs developers can use to learn more about the application
The server-side comprises of two main sections. The first being the deep learning model for the validation check. The second being the API for data exchange between the model built, the database, the datastore and the client applications.
1. The core idea behind Spothole was to develop a object detection based validation system that would perform checks on uploads by users thus reducing the effort level for the authorities and help in solving the issue quickly.
2. Also, as the system is independent of any medium to capture the area unlike previously mentioned approaches, more people can contribute towards the reporting segment.
3. All in all the validation check ensures near to no filtering of reports from the authority's end.
1. An entire endpoint suite has been made available for developers to use.
2. The suite consists of endpoints for interacting with the object detection model as well as with spothole / the consumer's local database, thus providing an easy to use mechansim to have communication between the model, the front-end applications and the relational database.
3. For a detailed documenation on the API please visit the developer's section for the core backend on this page.
1. This screen presents the authority to manage all active users in their zone through a filterable data table. The data table contains options to filter, search, sort, select columns.
2. They can view a user's basic profile details. They can update a user's status to either blocked or allowed based on their activity too.
3. Users are sent out email notifications regarding updates in their status everytime an authority makes a change.
1. This screen contains the basic details (avatar, name, email address of the authority)
2. It also contains the address of the authority.
3. It is then followed by a counter for reports in the authority's zone with a status of either pending, in progress, approved, completed or cancelled.
Here are some important URLs developers can use to learn more about the core backend functionality.
A number of technologies have been used to develop both the client applications and the core backend. Here are a few to name.
This project was started as part of the Capstone Project for my Master's in Information Sciences and Technologies at Rochester Institute of Technology, New York.
Capstone Committee
Dr. Charles Border
Prof. Edward Holden
Prof. Bryan French
To sign up as an authority may require special permissions. Please email contact.spothole@gmail.com


UnAadhar is an open source, free and easy to use face based verification service for users and developers.
With UnAadhar you can store all your legal documents right in your browser (securely and locally). You can upload documents and details that are generally required by a large number of web services just by showning your face!
So to get started you need to register your face and a fallback password (Face Verification is just not there yet!
:P) with us. Then upload the documents that websites usually ask from you for Proof of Identity/Address (PAN Card,
License, Bills, Passport, Aadhar) and we'll take care of the rest!


I currently work at Informa as a front-end web developer. I started as a COBOL mainframe developer with DST and was given the opportunity to join the front-end web development team. I was responsible for providing front-end support for the leading mutual fund companies websites. I was self taught but realized I needed to quickly expand my skill set to work as a web developer full time. I joined the KU Coding Bootcamp to learn full stack development and enjoyed the challenge. I learned a lot of new skills and would love the opportunity to apply those skills to a new job. I look forward to continuing to learn and expand my skills throughout my career.
I was born and raised in Odessa, Texas and moved to the Kansas City area after graduating high school. I married my wife Erin in 2011 and we have a 6 year old boy.
When I am not coding, I enjoy being outdoors. My hobbies include hiking, camping, mountain biking, and kayaking/canoeing.


Sean Higgins
I’m a Post-Doctoral Fellow at the Center for Effective Global Action and Haas School of Business at the University of California, Berkeley.
I am on the 2018-2019 job market and will be available for interviews at the ASSA meetings in Atlanta. You can find my CV here and job market paper here.
My research combines the fields of household finance and development economics. My job market paper studies financial technology (FinTech) adoption. I study the spillovers of consumers’ adoption of a particular financial technology—debit cards—on both the supply and demand sides of the market. My other working papers and projects study FinTech and the impact of access to entrerpreneurial and household finance.
I’m grateful to the Bill & Melinda Gates Foundation, CEGA-Visa Financial Inclusion Lab, Digital Credit Observatory, Fulbright Program, Innovations for Poverty Action, National Science Foundation (doctoral dissertation grant and standard grant), and UN Foundation for research funding.


Index
All Classes|All Packages
R
- range(byte[], int, int) - Static method in class networkObjects.ByteOps
-
Creates a new byte array based on the bytes within a range of the original.
- readBoolean(byte) - Static method in class networkObjects.ByteOps
- readBoolean(byte[]) - Static method in class networkObjects.ByteOps
- readByte(byte[]) - Static method in class networkObjects.ByteOps
- readBytesUntil(byte[], int) - Static method in class networkObjects.ByteOps
-
Reads the byte array until the end byte, then returns the array data up to but not including the end character
- readChar(byte[]) - Static method in class networkObjects.ByteOps
- readDouble(byte[]) - Static method in class networkObjects.ByteOps
- readFloat(byte[]) - Static method in class networkObjects.ByteOps
- readFromAllConnections() - Method in class networkObjects.NetworkIO
- readFromConnection(String) - Method in class networkObjects.NetworkIO
-
Reads data from a connection to an external server.
- readFromConnection(Client) - Method in class networkObjects.NetworkIO
- readFromServerClient(String) - Method in class networkObjects.NetworkIO
-
Reads data from a client connected to the internal server.
- readFromServerClient(Client) - Method in class networkObjects.NetworkIO
- readInt(byte[]) - Static method in class networkObjects.ByteOps
- readLong(byte[]) - Static method in class networkObjects.ByteOps
- readStringUntil(byte[], int) - Static method in class networkObjects.ByteOps
-
Reads the byte array until the end character, then returns the array data as a string up to but not including the end character
All Classes|All Packages


Ham Cockpit
Radio Amateur's integrated environment
Copyright © 2020 Alex Shovkoplyas VE3NEA
freeware
Tested on Windows 10, but may work on the earlier versions of Windows as well. Please try and let me know!
Ham Cockpit
Ham Cockpit is a program of a new type. All of its functions are implemented in the plugins, the main program simply loads the plugins and helps them work together. Some standard plugins come with the software, a wide variety of optional and third party plugins will hopefully be available soon.
Due to the modular approach taken to the extreme, Ham Cockpit becomes an integrated environment for a Radio Amateur that every user can build according to his needs. By installing the right plugins, one will be able to turn the program into an SDR client, a logger, a cluster monitor, a propagation prediction tool, etc., etc. - or have any combination of these working together in one program (once the corresponding plugins are available).
Ham Cockpit 1.0
This is the very first release of Ham Cockpit, it includes only a handful of plugins that turn it into an SDR client. Moreover, this version has drivers only for the ICOM IC-7610 radio, making use of its I/Q streaming capability, and Afedri-822x SDR. Don't worry, the drivers are just plugins, more radios will be supported soon.
Note
Despite the small number of currently available plugins, the program in its present state is an ideal tool for cracking CW pileups that I am already using on the air. I built it as part of my preparation to work 3Y0I, the only announced DXpedition to a country on my needed list. At 330 DXCC entities confirmed, I need just one more to win the Honor Roll award, so I did my best to get the right tool for the job.
Current version: see Version History
Third Party Developers
All software developers are welcome to create their own plugins for Ham Cockpit: open source, freeware, shareware - your choice.
If you have an idea of a new signal processing algorithm, it will be much easier for you to create a plugin that implements it than to build a stand alone application with its own audio input and output, radio control, settings dialog, etc. In a plugin, you will just write the interesting part and let Ham Cockpit do the rest.
What kinds of plugins can you create? Not just the signal processing ones. Any function useful for Radio Amateurs could become your next plugin. QSO logging, cluster monitoring, award tracking, propagation prediction, contesting, SO2R operation - the choice is limited only by your imagination.
A complete set of documentation for developers is available, please see the links below. The source code of many plugins is published on GitHub.
Non-programmers are also welcome to participate in the Ham Cockpit project. You can help with documentation, tutorials, video demos or data preparation. One area where data needs to be prepared is band plans. Currently we have only two band plans, for the USA and Canada and for Australia. We need band plans for other countries, broadcasting band plans, UHF band plans, etc.


Volunteering
Microsoft Learn Student Ambassador at Microsoft .
Currently (in 2020) enrolled as a pre final year student in Computer Science and Engineering in SRMGPC(Lucknow,India). An aspiring Data Scientist having a yen for professionally exploring fields like Deep Learning,Machine Learning and Artificial intelligence as well as Web development .
Download ResumeI will help you to create a remarkable first impression with creative designs
HTML, CSS (Bootstrap), JavaScript (MERN Stack) i can give you a responsive website of your choice.
In 2020 you can't go online without having a mobile responsive website. Let me take care of that for you!
If you already have a requirement for contents for your projects i can provide you with engaging contents.I can also serve you with Logos , brand taglines and other digital graphics as per your requirement.
Microsoft Learn Student Ambassador at Microsoft .
Chairperson at GeeksforGeeks_SRMGPC
Management Head D'Coders Club .
Working as Web Development Executive Intern at VeriHired .
Working as a python content developer intern in Be of Use .
Worked as a sales and marketing intern in My Caption
Worked as a AI summer intern in IBM .
Worked as a IOT trainee and intern in Blue Heart lab.
The project is about a Virtual Assistant that could detect the input in the form of speech from the user and will give the output in the form of speech and included Wikipedia search also. Features- 1. Speech Recognition 2. Wikipedia Search 3. Dataset domain- Human emotions
Viewthis will detect your eye(even with specs) and face on a live camera
ViewI used the python libraries to Generate a Disk Usage Report which will determine disk space and generate a report in form of csv file on disk usage on an Ubuntu Linux system.
View


Suggestr
.co
Suggestr is an app that helps university students find courses at their schools based on crowdsourced information from their classmates.
Get Started


James Cameroon Lifestyle 01 Sep 2017 Setting up your own Ghost theme Creating a totally custom design for your publication


Cinna Liselott, a dear friend of mine, is a New York City based puppeteer. She is fortunate to have a full time position creating and performing puppet shows throughout the city, but wanted to have a site of her own as she wanted to expand her horizons through children’s puppet parties.
I was interested in working with Cinna as I wanted to gain some more experience with parallax scrolling, and I felt that she had a unique product that deserved a unique site.
For this project, Cinna only needed a way for parents to see what services she offered and a way to contact her, that’s about it. Since I was more interested in creating a parallax effect, I decided to keep it simple and focus more on the functions and to keep it all client side.
I decided to use Bootstrap for a CSS framework out of preference, and use SASS partials using a widget-based CSS over object oriented CSS. All of the movement I decided to handle with hand written jQuery (rather than using something pre-written) so that I could figure out how parallax scrolling really worked.
The end result was a simple, single page site with aspects of parallax scrolling. (The effect looked similar, but the background doesn’t actually scroll slower than the foreground.) For the more information boxes, I used some jQuery to show and hide elements.
Also, as there was no actual budget for this project and it was a single page application, I was able to deploy it as a github page with its own domain name.


World Wide Web Access Statistics
File Accesses by Domain for IUSOCS
December 1998
Requests Received During Summary Period 20
Bytes Transmitted During Summary Period 60240
Average Requests Received Daily 10
Average Bytes Transmitted Daily 30120
There were no accesses from this domain.
Requests Received During Summary Period 65
Bytes Transmitted During Summary Period 152846
Average Requests Received Daily 8
Average Bytes Transmitted Daily 19106
Requests Received During Summary Period 24
Bytes Transmitted During Summary Period 74563
Average Requests Received Daily 5
Average Bytes Transmitted Daily 14913
Requests Received During Summary Period 19
Bytes Transmitted During Summary Period 50244
Average Requests Received Daily 4
Average Bytes Transmitted Daily 10049
Requests Received During Summary Period 21
Bytes Transmitted During Summary Period 68292
Average Requests Received Daily 7
Average Bytes Transmitted Daily 22764
Requests Received During Summary Period 1
Bytes Transmitted During Summary Period 584
Average Requests Received Daily 1
Average Bytes Transmitted Daily 584


public class GameOfLife
extends java.lang.Object
Represents the Game of Life itself. Handles everything has functions and attributes needed for the game such as Decks, Paths, Players, etc.
| Constructor and Description |
|---|
GameOfLife(int nPlayers,
int startingMoney)
All of the Game pieces will be Generated in the Board such as the
Deck(containing Card), Paths/Board, and Players.
|
| Modifier and Type | Method and Description |
|---|---|
static void |
addRoundStat(java.lang.String stat)
Adds an Update for the Round Stats
|
void |
addTurn()
Adds a turn and handles if turn greater than equal number of active players
|
Player[] |
getAllActivePlayers()
All the Active Player in the BoardGame
|
Player[] |
getAllRetiredPlayers()
All the Retired Players
|
Deck |
getBlueDeck() |
Deck |
getCareerDeck() |
Path |
getCareerPath() |
Path |
getCollegePath() |
Player |
getCurrentPlayer()
Returns the current Player based on the Player's turn
|
Deck |
getHouseDeck() |
int |
getNActivePlayers() |
int |
getNRetiredPlayers() |
Deck |
getOrangeDeck() |
Player[] |
getOtherPlayers()
The other players besides the current Player
|
static int |
getRound() |
static java.util.ArrayList<java.lang.String> |
getRoundStats() |
Deck |
getSalaryDeck() |
int |
getTurn() |
boolean |
hasEnded()
Ends the game only if all the Players aren't active anymore
meaning that all the Players are already retired.
|
void |
retirePlayer(Player player)
Transfers a Player from active to retired
|
void |
setRound(int round)
Changes the value of the round
|
void |
setTurn(int turn)
Changes the value of the turn
|
public GameOfLife(int nPlayers, int startingMoney)
nPlayers
- number of players for the gamestartingMoney
- starting money for each players in the gamepublic static void addRoundStat(java.lang.String stat)
stat
- string update to be addedpublic void retirePlayer(Player player)
player
- to be transferedpublic void setTurn(int turn)
turn
- value to be assignpublic void addTurn()
public void setRound(int round)
round
- value to be assignpublic int getNActivePlayers()
public int getNRetiredPlayers()
public static int getRound()
public static java.util.ArrayList<java.lang.String> getRoundStats()
public Deck getSalaryDeck()
public Deck getCareerDeck()
public Deck getOrangeDeck()
public Deck getBlueDeck()
public Deck getHouseDeck()
public Path getCareerPath()
public Path getCollegePath()
public Player getCurrentPlayer()
public Player[] getOtherPlayers()
public Player[] getAllActivePlayers()
public Player[] getAllRetiredPlayers()
public int getTurn()
public boolean hasEnded()


use Red::Utils; use Red::Cli::Column; unit class Red::Cli::Relationship; has Red::Cli::Column $.id is required; has &.transform-name = -> $name { S/_id$// given $name } method to-code(:$schema-class) { qq:to/END/.chomp; has \$.{ snake-to-kebab-case &!transform-name( $!id.name ) } is relationship({[ "\n\{ .{ $!id.formated-name } \}", "\n:model<{ snake-to-camel-case $!id.references<table> }>", ("\n:require<$schema-class>" if $schema-class), ].join(",").indent: 4} ); END }


Photography Web Design Social Media
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages
In an effort to help small businesses grow, I offer professional web design and social media setup at an affordable cost. Below is just a few of the services I provide. Drop me a line if you have questions or need help starting your business off right.
I develop clean, modern, and fully responsive websites using the latest in web design trends. From "under construction" pages, to full-scale designs, the only limit is your imagination.
I specialize in automotive and nature photography, but also do personal photoshoots and headshots. Please contact me if you have any questions about my photography services.
Have an existing website or business, but need a way to earn more customers? I can help you set up the latest in social media platforms. Attract customers and advertise your products.
Interested in starting a project? I'm available for projects large and small Feel free to message me using the form below and I will respond within 24 hours. Or feel free to just say hi. I like that too.


You can enter part of your results now before you submit and add more throughout the week as you finish testing.


Zap doesn’t require you to stick to a strict set of components, you have the freedom of overriding, extending or even creating your components. There are numerous ways you can apply custom styling to Zap:
The first and easiest way is to override the existing local definition variables. The list of available local definition variables sit at the top of each definition.
@max-width: 1600px;
@radius: 4px;
@default-color: #555;
Another way to to customize each component is to extend any of the existing properties or create modifier extensions.
.s-button {
.-custom-extension {
...
}
}
Lastly, if you wish to create your own entirely new component you can either create your own custom component prefixed with the appropriate category:
.m-custom-module-component {
...
}
.s-custom-single-component {
...
}
If its temporary, or your rule doesn’t sit in any of the existing categories you can simply create a Zap component and prefix it with the letter z e.g. z-hero-banner
Zap components are custom standalone css rules that sit at the end of all your css as a last resort or final state. This is particularly useful if you wish to quickly fix or test but it is recommended you create only a minimal set of zap components as this approach isn’t as scalable as the previous examples. Treat Zap components as a band-aid approach.
.z-completly-standalone-custom-component {
...
}
Lets say you wish you create a new component that belong inside the module category. It is highly recommended you name this definition with a single word rather than using a hyphenated descriptive approach.
/module/m-custom.definition
/module/m-banner.definition
You can then write hyphenated descriptive class rules inside each parent definition css file.
.m-custom-banner {
...
}
.m-custom-sidebar {
...
}
This is a simple, but an important approach to follow as it provides a way for you to easily group common keywords together.


Banun, Perak
/ TRLC /
Ammar, Fahmi and Luqman take a break for lunch at
Tropical Rainforest Living Collection Banun, Perak.
The loss of biodiversity is one of the greatest environmental challenges the world faces. In
Malaysia logging, agriculture, palm oil and development have all contributed to increased
forest fragmentation and species loss. Approximately 80% of Malaysian rainforests are
dominated by the Dipterocarpaceae family of trees, of which 93 species are considered
threatened in Malaysia.
Dipterocarps have a unique biology and a slow reproductive cycle. Seeds are produced
during mast fruiting events which occur every 5-7 years, and the seeds are ‘recalcitrant’ –
their high-water content makes them unsuitable for storage (e.g. in a seed bank), and thus
must be germinated. Recalcitrant seeds rescued from forest fragments can be planted out
with seeds from different parents to create a living collection of trees that can reproduce
perpetually. Seeds from the living collection could then serve future reforestation projects.
Tropical Rainforest Conservation and Research Centre (TRCRC) was established in 2012 to
restore tropical rainforests and address the critical rate of biodiversity loss in Malaysia.
TRCRC’s Mission is two-fold: to preserve tropical rainforest plant species and lead
landscape-wide protection and reforestation projects throughout the country.
TRCRC plans to reconnect forest fragments through the reforestation of degraded patches
using native trees sourced from nurseries as well as seedlings from rescued threatened
plants. It serves two important national conservation policies: ex-situ conservation for the
preservation of plant species and genetic diversity under the National Biodiversity plan, and
the Heart of Borneo initiative, to support Malaysia’s commitments towards conservation.
Tropical Rainforest Conservation and Research Centre (TRCRC) was established in 2012 to restore tropical rainforests and address the critical rate of biodiversity loss in Malaysia. TRCRC’s Mission is two-fold: to preserve tropical rainforest plant species and lead landscape-wide protection and reforestation projects throughout the country.
TRCRC plans to reconnect forest fragments through the reforestation of degraded patches using native trees sourced from nurseries as well as seedlings from rescued threatened plants. It serves two important national conservation policies: ex-situ conservation for the preservation of plant species and genetic diversity under the National Biodiversity plan, and the Heart of Borneo and Central Forest Spine initiatives, to support Malaysia’s commitments towards conservation.
With a dedicated team and through strategic partnerships, TRCRC has since grown and expanded its portfolio with the goal of making a bigger impact in forest conservation.
Forest Conservation & Sustainable Development
The mission of Tropical Rainforest Conservation & Research Centre (TRCRC) is to preserve tropical rainforest plant species and lead landscape-wide protection and restoration projects throughout Malaysia.
Tun Jeanne Abullah and Dzaeman showing TRCRC’s latest publications to Lang Cong, Vanke’s Managing Director at our TRCRC headquarters.
Successfully got the vehicle out from the sandy terrain in Terengganu.
In order to safeguard tropical rainforest plant species and ensure a stable ecosystem,
TRCRC aims to:
Establish multiple ex-situ Tropical Rainforest Living Collections (TRLCs) and plant
nurseries throughout Malaysia, where we germinate, propagate, and eventually
reintroduce rare and endangered plant species back into its native habitats
Lead landscape-wide protection and restoration projects throughout the country.
Dr Dzaeman Dzulkifli
Executive Director
Dzaeman is developing a range of sustainable land use strategies in efforts to realise the global dream of using underutilised land to mitigate climate change.
Adam Kamal
Project Coordinator
Adam is a graduate of University of Wisconsin in Biology (Evolution Ecology major, Conservation Biology minor) and has acquired interest to study birds of prey, unique plants, and organism - environment interactions. In TRCRC, he is a jack of all trades - developing baseline study designs, GIS monitoring systems, supporting environmental education and on-field programmes. He hopes to further establish GIS as a significant planning tool in TRCRC and eventually within Malaysia's conservation planning. During his free time, Adam spends it on rock climbing, multi-day backpacking, skiing, playing in the mountains, and an all - rounded naturalist.
Anjulie Razak
Stakeholder Engagement Executive
Anjulie is a bachelor’s degree graduate in Environmental Science from Universiti Malaysia Sabah (UMS). Her keen interest in environmental conservation and sustainability practices has led her to join the team to develop programmes that require stakeholders to play an active role within the conservation field. Over the years spent in Sabah, she initiated a contaminant-biomarker study, became an associate researcher for an invertebrate microclimate study and established UMS’s first ultimate Frisbee competitive team.
Allie Subramanian
Stakeholder Engagement Project Coordinator Manager
Allie firmly believes that small everyday decisions can lead to major environmental impacts, and hopes people will make more informed choices in their everyday lives to help mitigate the impact we have on the planet.
Dr Lee Jo Kien
Project Coordinator
Jo Kien completed his BSc. (Biotechnology) and Doctor of Philosophy (Science) degrees at Monash University. His interests include soil carbon dynamics, meteorology, quantitative ecology, and conservation management. As a project coordinator, Jo Kien focuses on stakeholder engagement for the Central Forest Spine (CFS) initiative in Perak and Terengganu, scoping for forest restoration opportunities to kickstart joint-restoration projects with the states.
Dr Nur Hazwani Abdul Bahar
Project Coordinator
Nur holds a PhD from Australian National University and has extensive research experience on physiology of tree and crop species. Previously, she was based in Bogor Indonesia for her consultancy role at the Center for International Forestry Research. She inspires to safeguard tropical rain forest while enjoying good things in life especially good company and delicious food.
Fairuz M. Musa
Planning and Operation Manager
Fairuz has a more than 18 years of experience in Landscape Architecture and has been involved in various design and construction projects. He believes that landscape design and nature are interconnected and leads to a better and more sustainable environment. As a Division Manager for Planning and Operation, he oversees the planning aspect of project management and is responsible for monitoring and executing overall projects.
Kate Barber
Partnership Development Manager
As Partnership Development Manager for TRCRC, Kate helps companies leverage corporate social responsibility (CSR) for advanced business performance. Kate has designed and managed CSR programs for leading brands in technology, tourism, health care, real estate, and financial services. Kate believes that when it comes to CSR, rainforest conservation is more than just “the right thing to do.” High performing companies recognize CSR and forest protection empower their businesses to do well by doing good.
M. Buhanuddin bin Mat
Senior Executive Planning and Operations
Prior to TRCRC, Bidin was working at the Malaysian Nature Society for the Tropical Biology Research Department. He has also had experiences as an invitational dendrologist for the Terengganu Forestry Department. His endless passion in the scientific study of tropical trees in Malaysia has made him to co-establish several plant database in Terengganu that has never been recorded, namely the species Dipterocarpus sarawakensis, Shorea kuantanensis dan Aquilaria rostrata. Bidin hopes to further contribute towards the Malaysian forest inventory while working here in TRCRC.
M. Ikmal Bin Mohamad Radzi
Senior Executive Planning and Operations
Graduated from Universiti Putra Malaysia with Bachelor Degree of Science Major in Biology, Ikmal gained a short experience with Malaysian Conservation Allience for Tiger (MYCAT), enough to nurture his interest in conservation field. He joined TRCRC to fulfill his passion and duty towards forest and its biodiversity. As part of the TRCRC Planning and Operations epartment, he hopes to make a difference through forest conservation work and contribute to better future of our rainforest.
M. Rafiq bin M. Yusof
Technical Executive (Data Management)
Muhammad Rafiq graduated from Universiti Teknologi MARA (UITM) Shah Alam. Graduated in 2014, he holds a bachelor degree in Park and Amenity Management. Rafiq works with TRCRC as a Technical Executive (Data Management). He is responsible for converting all data collected from the field into maps. He also assists in seed collection activities by identifying routes from the mapping software. He enjoys outdoor activity and finds his work at TRCRC very suitable as he can contribute to preserving tropical rainforest species in Malaysia.
Reuben Durairatnam
Project Manager
Reuben has a background in Chemical Engineering and Biotechnology with experience in different sectors but with a keen interest in environmental related solutions. He joined TRCRC as the Project Manager for the ‘Forest, the New Economy’ initiative. He is focused towards reforestation by developing economically viable sustainable solutions for degraded lands in Malaysia.
Venkata Ganesh
Project Manager
Ganesh graduated from the University of New South Wales with a masters degree in Engineering Science. He spent 15 illustrious years innovating in industries ranging from microprocessors to aviation before making the transition to rainforest conservation. At TRCRC, Ganesh is responsible to strategise and develop all private land conservation projects. Integrating biodiversity-rich private land into conservation planning and management is critical in maintaining protected land connectivity and ecological balance. Ganesh loves Japanese food, board-game nights, all things football, travelling and Lego.
Logan Vijayan
(Shared Service)
Finance Manager
Logan is an animal lover with a passion for sports and travelling. He has always been fascinated by untouched nature such as the Himalayas, the Swiss Alps and Mount Fuji.
Norsyazana M. Zain
(Shared Service)
Accounts Executive
Bubbly and relaxed, she loves traveling with her loved ones and photography.
Mariam Kadir
(Shared Service)
Board of Trustees Coordinator
Her passion in connecting chemistry and the environment grew from her undergraduate studies in air pollution biomonitoring and the potential of trees in air remediation.
Board Of Trustee
YABhg Tun Abdullah Ahmad Badawi
Advisor
The Honorable former 5th Prime Minister of Malaysia, Tun Abdullah Ahmad Badawi is dedicated to improving the lives of the nation and protecting nature for a healthy environment for now and future generations.
YABhg Tun Jeanne Abdullah
Chairman
The Honourable Tun Jeanne Abdullah began her career in the private sector and has had a vast and diverse experience in the field of hospitality management. She continuously seeks for ways to improve lives of Malaysian citizens and pays a large focus on the environment we live in.
David Dzulkifli
Member
An accountant by training and having worked across the globe with ExxonMobil over a period of 30 years, David has been ingrained with the ExxonMobil thinking vis-a-vis the environment. As a member of the Board of Trustees, he employs a hands-on approach in supporting TRCRC's efforts.
Datuk Ali Bin Tan Sri Kadir
Member
Datuk Ali bin Tan Sri Abdul Kadir was appointed as a Board of Trustees on 9th October 2015. Datuk Ali loves fishing, outdoor adventure and he is passionate about the environment. He believes that outdoor adventure will indirectly educate people on conservation.
James Kingham
Member
James Kingham started his career as a planter in the early days working out in the plantation landscape. He is well known across the landscaping profession and often hosts university courses on his site in Tanjung Malim to train students on the cultivation of rainforest species.
Venugopal Nambiar
Member
Venugopal Nambiar brings to TRCRC his vast experience in construction, with emphasis on project negotiation, engineering design, project feasibility study and evaluation as well as overall site management.
Aliasa Hj. Mualas
G-Team, Sabah
Aliasa has 19 years of experience in cocoa, rattan, forestry and tourism. Aliasa joined TRCRC to seek new skills and practical knowledge. As a ground staff, his job scope includes field work and nursery maintenance. Also, he is an authorized driver as he has experience driving off road.
Andi Akbar Muchamad
Data Management,
Technical Executive
With a Bachelor’s of Science in Environmental Management from Universiti Putra Malaysia and early exposure in rehabilitation research programs, Andi views TRCRC as a great platform to step ahead and gain knowledge and experience in rainforest conservation. As an Executive Technical Support for data management, his focus will be in finding and storing all data for TRLC – Merisuli.
Azmi Asmat
G-Team, Sabah
Azmi is part of the ground team in TRLC-Merisuli, Sabah. Besides having nursery and field work skills, he is a machine handler and has good electrical knowledge. As a general worker, he supports the construction of staff accommodation and nursery development.
Benny Tuzan
Corporate Communications
Executive
Benny’s love for nature and Malaysia’s tropical rainforest is one of the main reasons he joined the organisation’s effort to preserve and conserve tropical rainforest species. Graduated from the International University College of Technology Twintech (IUCTT), he received a bachelor’s degree in BSc (Hons) Biotechnology. As a Project Manager in TRCRC Sabah, his role is to plan the process and to execute the action plans for the TRLC project in Merisuli, Sabah.
Hasmawie Jumuk
G-Team, Sabah
Originating from the foot of Mount Kinabalu, Hasmawie adores the nature that surrounds him. Joining TRCRC as a ground staff has allowed him to gain knowledge and develop his abilities on managing the nursery and doing field work.
M. Rizam Ridjat
G-Team, Sabah
Rizam started his career in a different restoration project then became a lab assistant in a wood industries company. After joining TRLC-Merisuli as a ground staff, he was eager to support nursery and field work activities to ensure they run smoothly.
M. Salleh Sulaiman
Executive, Sabah
Salleh is a former student of University Malaysia Sabah (UMS). Graduated in 2014, he holds a bachelor degree in Conservation Biology, He gained his passion for nature In UMS and it strengthened during his internship with the Rainforest Discovery Centre, Sepilok. Salleh joined TRCRC with hopes of raising awareness and educating people about the importance of conservation. As the saying goes, without nature, we are nobody.
M. Touchry Maili
Executive, Sabah
Touchry is a field man that worked on a rainforest restoration project in Danum Valley before joining TRCRC. As a ground staff, his job scope includes nursery maintenance work, being part of the seed collection team and handling machine including heavy machinery.
Masnona Lorenti
G-Team, Sabah
Starting as a hobby for gardening then gaining work experience on the forest restoration project in Lahad Datu, Masnona is eager to apply her skills in nursery tasks in TRLC - Merisuli. As a Senior Nursery Assistant, she is involved in seed sowing, transplanting and maintaining the nursery.
Nurhidayat Kamsah
Admin cum Finance
Graduated with a Bachelor’s Degree in Conservation of Biology from Universiti Malaysia Sabah, Nur Hidayat Kamsah officially joined TRCRC to gain and apply her knowledge on conservation biology to the TRLC – Merisuli, Sabah. As an executive, her work is mainly assisting in tasks related to the TRLC – Merisuli, Sabah project. She treasures what nature has to offer and aspires to make a difference in the conservation of rainforests.
Nor Fatimah Abdul Halil
Program Executive
Fatimah was inspired to conserve the environment since young by watching nature documentaries from the National Geographic and Simfoni Alam. Her inspiration continued when she chose to pursue her studies in Universiti Malaysia Sabah for her degree in Forestry. As TRCRC’s Programme Executive, Fatimah develops and co-ordinates educational volunteering programmes for TRLC Merisuli. She is also in charge of establishing new engagements between TRCRC and other agencies for environmental education-based programs.
Ramsing Adil
G-Team, Sabah
Ramsing has experience both in nursery activities and on the field. Appointed as a grount staff, he is responsible of taking care of the plants, to collect seeds and lead the team into the forest. He is also known as the compass man based on his experience in reading a compass in the forest for establishment of planting plots and boundary.
Rasit Abdul
Nursery & Planting Executive
Rasit is part of the management team that is located in TRLC – Merisuli, Sabah and his responsibilities involves him assisting and liaise with Nursery and Planting Division Manager. He previously worked for rainforest rehabilitation project which has provided him with good field work and nursery experience. He hopes that in time, the nation will appreciate better the importance of forests for everyone.
Sarifah Samad
G-Team, Sabah
Sarifah had experience in restoration work in Lahad Datu before joining TRCRC. She has a gentle hand to manage the plants in nursery from germination process until the tree planting. Working as a ground staff in TRLC-Merisuli, her tasks include organizing the nursery and calculating stock of plants to fulfil data management records.
Wahid Othman
Supervisor, Sabah
Originating from Kota Kinabatangan, Sabah, Wahid joined TRCRC as the supervisor of the technical support team. He has over 20 years of hands-on experience in the field during his previous job with rainforest rehabilitation project. Wahid is currently based in the TRLC – Merisuli, Sabah project to supervise and lead the seed collection team and replanting operations. His personal vision is to contribute towards the success of the TRLC – Merisuli project.
Wahirin Maris
G-Team, Sabah
Having had research and field work experience, Wahirin joined TRCRC to support the conservation and restoration project in TRLC-Merisuli Sabah. As a ground staff, he is involved in nursery activities, seed collecting and developing the nursery to achieve TRCRC’s objective.
Mohd Rahimi Bin Md Rodzi
G-Team, Perak
Through his circle of friends in Gerik, Rahimi found out about the G-Team programme by word of mouth. He got curious about the programme and how it enables youths like him to participate in forest rehabilitation and restoration. Hailing from FELDA Lawin Selatan, he has experienced the effects of forest degradation firsthand and vows to find balance between development and sustainable forest management.
M. Ammar Amirrudin bin Abdul Shukor
G-Team, Perak
Ammar first entered the conservation scene by enrolling with the Sekretariat Malaysia Prihatin’s course on forest seedings. After 4 years of doing landscaping work, TRCRC was established and the Director saw the potential in him. He was offered to join and now is the Seed Collection Supervisor for TRLC-Banun.
Mohd Safarizal Sazwan Bin Mohd Sukor
G-Team, Perak
The eldest brother of the Mohd Shukor family, Safarizal eventually enrolled himself in the G-Team programme after hearing success stories from his younger siblings. Safarizal has always had an entrepreneurial mindset and was working independently back in his kampung at Bersia Lama, Gerik.
M. Luqman bin Ismail
G-Team, Perak
Luqman was one of the shining talent in nursery management while doing his course on forest seedlings by Sekretariat Malaysia Prihatin. Due to his tenacity and hard work, he was chosen to monitor the Nursery in TRLC-Banun as Nursery Supervisor. His job scope includes the administration of nursery equipment and the surrounding infrastructure.
M. Nazri bin Mohd Shukor
G-Team, Perak
Nazri was doing part-time work with with the Forestry Department when he received an offer from TRCRC. Shortly afterwards, he went through the forest seedings course in Tanjung Malim and passed with flying colours. His contribution towards TRCRC mainly lies with being in the Ground Team and doing nursery work as well as seed collection. He aspires to learn more about the forestry field while doing the things he enjoys most.
Nor Mizazur'iaty Akma Binti Mohd Yusoff
Admin, HR cum Finance Junior Executive
Miza graduated in Civil Engineering and has five years’ experience as Project Supervisor in electrical construction as well as briefly being an Electrical Junior Estimator. She never expected to change her career path into conservation even though her soul is close to nature. She joined TRCRC as an Admin, HR cum Finance Junior Executive based at TRLC-Banun Gerik and is also responsible in assisting the Project Manager. She really hopes TRCRC will be a platform for her to learn more about the environment.
Nor Wihanis Abdul Rahman
Project Manager, Perak
Wihanis has a Degree in Landscape Architecture from University Technology Malaysia (UTM). She has 15 years of hands-on experience in ornamental plants nursery and landscape project development and 12 years working experience with Sime Darby (TPC) as a Horticulturist. Wihanis joint TRCRC in June 2014 as Project Manager for TRLC Banun. Her role is to manage the overall project and ensure activities are in line with the project scope, timeframe, funder rules and Perak Forestry Department regulations. Wihanis loves forest trees and wants to ensure the conservation of our natural treasure.
M. Syafiq bin Mohd Sukor
G-Team, Perak
Inspired by his brother Nazri’s footsteps, Syafiq enrolled into the forest seeding course in Tanjung Malim. He finished the course and is currently part of the Ground team in TRLC-Banun. His job scope includes assisting in nursery work and seed collection efforts. He aspires to improve his livelihood while obtaining more knowledge in the field of tree identification.
Suhaili Mohamad
Nursery & Planting Manager
Suhaili Mohamed or more famously known as Elly, previously worked with Healers of the Forest, a plant nursery with Mr J. Kingham. There, she developed a love for the forest while caring for a wide variety of tree species. She is TRCRC’s tough cookie and hopes she can continue to contribute her expertise in the field of forestry with this organisation.
Wan Ikmal Izham bin Wan Muhd Yusofs
G-Team, Perak
Prior to joining TRCRC, Wan Ikmal was doing his part in construction work. Driven by his love of nature, he got into the tropical forest seedling course in Tanjung Malim. He was recruited by TRCRC after finishing the course and is currently part of the Ground Team. He helps in the nursery work and seed collection in the surrounding Forest Reserves. He aspires to increase his knowledge in tree identification and skills in nursery management.
Afiq Zikri
G-Team, Perak
Graduated from Universiti Malaysia Sabah with a bachelor’s degree in International Tropical Forestry, Afiq’s main expertise are data collection and research project co-ordination. His love for the outdoors has led him to be stationed out on our conservation site in TRLC Banun. Working hand-in-hand with the G-Team at Perak, Afiq believes that empowering the young generation is key towards securing sustainable and feasible forest management practices in the future.


Pollution and Over-Population, the Modern Evils
Over-population, pollution, global warming, ecology. We hear those often but was is really going on? What is actually over-population or pollution? Should we be concerned? My answer: definitely Yes! And here is why.
Introduction
In this article, I will use a very engineer-like approach best summarized with the following pseudo-code:
situation = get_situation_under_consideration()
optimization_criteria = situation.get_most_important_criteria()
if optimization_criteria.is_maximized():
pass
else:
problem = situation.discover_underlying_problem()
return problem.find_solution()
In this article, we will consider Earth’s present day situation.
Optimization Criteria
Let’s first make an egoistic assumption here and say that we want humanity to survive on the long term1. This will be our first criterion.
Criterion 1: Humanity should survive on the long term
Survival is probably not enough on its own, we want something more in our life, at least I do. So I will define my second criterion the following way:
Criterion 2: Humans should have enjoyable lives
I will not give a proper definition of what “enjoyable” is, because I am not sure it is possible to find a definition everzone accepts. For now I will just assume we have a common understanding of what an unenjoyable life is, which is enough to determine if life enjoyability is maximized.
Awesome, so here are my optimization criteria:
- Human survival
- Life enjoyability
Time For Observation
Now that I have fixed what I want to optimize, let’s look at the current situation and determine if we should change anything to the way we do things.
You probably guessed it, in my opinion, life enjoyability is not maximized at all on Earth and human survival could become a real question in the short term.
Poverty and hunger in Africa
Pollution and health issues in China
Over-population in India
There exist many other examples across the globe.
Understanding the Problem
So what went wrong? Well, before going any further in this reflection, let’s try have a deeper understanding of some of our optimization criteria.
What Human Survival is Made Of
Our survival depends maily on us being able to stay alive. To stay alive, we need enough energy to function and a good health, as simple as that.
Core Components of an Enjoyable Life
How could we define an “enjoyable life” so that anyone would agree with the definition? Finding good definition is a really complicated problem and I won’t pretend I have one for what an “enjoyable life” is. On the other hand I think it is possible to identify a few components that could reasonably appear in all possible definitions.
Alright so a first component I find reasonable is health. Staying healthy is often a very important part of having an enjoyable life.
Second, I think that all humans want some kind of comfort. Comfort might be very primitive like having enough to eat and a roof above one’s head, but we all want some. It seems quite clear from the previous example that comfort strongly depends on resources.
Lastly, I think that all humans want to have the chance of doing cool experiences, I’ll talk about opportunities. And those do, one way or another, also depend on resources. Let’s consider a few examples. Assume you have the opportunity to visit a foreign country. You will need resources to travel there (fuel if you take car or plane, food if you go by foot or bike, etc). You will also want to have some accommodation there (heat, light, food, shelter built using raw materials) which requires resources and opportunities to visit and discover which, themselves, will also require some form of resources. Basically, every actions we perform require resources (whether it is simply the energy needed to move our muscle that we gain from eating food or resources we use to create and power machine that perform actions for us). And the more resources we have at our disposal, the more things we can do, so the more opportunities we can have.
So we were able to pinpoint a very interesting common denominator: resources (for which I do have a definition this time).
Resource: Energy stored under a precise form that human kind can use. Example: food, fossil fuel, wind.
Thus the life enjoyability metrics in our modern society becomes very dependent on resources.
Resources
Humankind requires many different kind of resources: food, wood, electricity, heat, light, etc.
Resources available to us on Earth are limited though. A reasonable model for human accessible resources is given hereafter. Earth’s only source of energy is the Sun. As we can directly exploit Sun’s energy (solar panels, solar heat plants, etc) I will consider it a resource in itself. However, let’s note that we are not capable of transforming the Sun’s energy into all the types of resources we need (e.g. there are no human machine that can produce wood or food out of the Sun’s radiations). But the Sun’s energy can be transformed by non-human entities living on Earth like plants and those provide us with the resources that we are not capable of creating ourselves. Finally Earth also has a certain amount of stored resources like fossil fuels, already existing plants, radioactive matter, etc.
A few key takeaway points here:
- The total quantity of energy Earth receives per time unit is finite and defined by the Sun.
- We are unable to produce some of the forms of resources we need. This point is very important: it highlights the fact that we are very much dependent on the environment to provide us with the resources we need.
- Resources stored on Earth are finite, hence using more resources than the produced ones per time unit cannot be done for long: at some point we will simply run out of them.
Let’s formalize this:
Where:
- \(r(t)\) is the total human available resources at a given point of time. Unit: \([ressource]\)
- \(egr(t)\) are the environment generated resources at a given point of time. Units: \([ressource]\)
- \(hgr(t)\) are the human generated resources directly from the sun energy which nowadays is a very very small proportion of the total resources we consume. Units: \([ressource]\)
- \(reserves(t)\) are Earth’s stored resources at a given point of time. Units: \([ressource]\)
Now that we know what our optimization criteria actually rely on, let’s discover why they are not maximized.
An index I find really interesting about resource consumption, to have an idea is the planet equivalent. It basically boils down to “How many planets would we need to have all humans living like <nationality>?”. For example, if we all wanted to have an american lifestyle, we would require the resources produced by five planet Earth! On the other hand, if we all lived like Indians, we would only require 0.6 planet (Foot Print Network).
It is estimated that the present day human population consumes 1.7 Earths… We probably won’t be able to do it for long.
Two Major Problems: Over Population and Pollution
In the media we often hear about pollution, and over-population. We all have some understanding of those terms but what are we talking about exactly, and are they really so bad?
There is an intrinsic human perspective in the terms “over-population” and “pollution”. The Earth does not care about over-population or pollution, whatever that is. It was here long before us and will continue to do so long after we disappear.
One could argue that pollution and global warming are also animal and vegetal problem. I would absolutely agree, but when humans talk about pollution or over-population, they generally refers to the troubles it could cause them, not the troubles it causes other species. So let’s assume this perspective too.
Cool, so now, let’s try to define those terms and prove that they are key components of the problems we acknowldged above.
Over Population (and Lifestyle)
Over-population:
Overpopulation occurs when a species’ population exceeds the carrying capacity of its ecological niche.
I will define a few variables here:
- \(lifestyle\), that represent the average lifestyle of a population.
- \(pop\), the total total number of humans on Earth (\(pop\) for population). Units: \([individual]\)
- \(cri(lifestyle)\), the average consumed resources per individual per unit of time for a given lifestyle. Unit: \([ressource/(individual \cdot time)]\)
So over population is the state were:
This situation diminishes Earth’s stored resources \(ressources(t)\). And at some given point in time \(ressources(t_1) = 0\). Then we won’t have enough ressources available for our entire population to maintain its lifestyle. This generally results in lifestyle pejoration which lowers life enjoyability. Actually, this lifestyle pejoration can be bad enough so that at some point it event threaten the very survival of the individuals (famine are an example of such a situation). This now also impacts negatively our first criterion: human kind survival.
Hence using more resources than what the environment provides is a bad idea that will eventually catch up with us.
Mathematically one can summarize the maximal amount of ressources an individual should consume the following way:
Where:
- \(mri\) is the maximum resource quantity an individual should consume in average. Unit: \([resource/individual]\)
If \(mri(t) \lt cri(lifestyle)\), then the life enjoyability index is diminished because we simply cannot sustain having the wanted lifestyle as the maximum available resources per individual in less than the resources that would be needed for the given lifestyle. We remark that when the population becomes big, the \(mri\) get smaller. If the population get very big, then, at some point, \(mri\) will become less than \(cri\) and the above described situation will occur.
This a reason why over-population is a problem.
Pollution
Pollution: Adding substances or energy of some form (nose, light, etc) so fast into the environment that it causes changes that are harmful to human kind.
In my opinion, pollution is problematic for the following reasons:
- It impacts human health directly which has a negative impact on the optimization of human survival and life enjoyability.
- It indirectly diminishes human resources (e.g. ocean pollution causing fishes to die, massive bees extinction have had disastrous consequences on harvests), and thus lowers our life enjoyability.
Let’s again try to formalize this idea.
- \(pollution\) represents the total quantity of substances and energy released by human kind in the environment. Units: \([pollution]\)
- \(pi\) is the average pollution per individual. Units: \([pollution/individual]\)
Let’s make a few remarks here. As the definition tells us, pollution is problematic only above a certain threshold. So problems only arise when \(pollution(t) > epac\) where \(epac\) is the environment pollution absorbance capacity.
Do we generate more pollution than what the environment can absorb? If you ask me, it simply makes no doubt. To prove this claim, I will refer to the definition: are we polluting the environment enough that it causes troubles to us? Consider global warming and all the issues related to it (ocean rise, extrem climatical events, desertification, etc). You have your answer.
Solutions
Thanks to the formulas above we can easily find a lot of solutions. But first, let’s define a few things we want to keep constant or even increase. In my opinion, \(lifestyle\) should not be decreased, on the contrary, it should increase.
So what can we do?
We could reduce the pollution generated per individual. It is often considered a part of ecology: have the same lifestyle but reduce the generated pollution by it (recycling, less wrapping, local products, etc). We do it to some extend, but I believe we could do much more. Technology and innovation have big role to play here. This solution can help lower pollution and hence improves life enjoyability and human survival.
We could also improve resource efficiency which, in essence, means consuming less resources, while maintaining the same lifestyle. This is also often considered a part of ecology. Again technology and innovation have a big role to play here. This solution can help lower ressource consumption and hence improves life enjoyability.
But the two above given solutions can only have limited impact because there are fundamental limits to what can be done. Most action have a physical minimum amount of energy needed (transport can be made more efficient by reducing waste and friction for example but Newton’s law \(F = m \cdot a\) sets the minimum required enegry).
The solution I think has the biggest long term potential impact is human population reduction. This would reduce the total pollution generated and increase the total ressources available per individuals, thus improving life enjoyability and not changing human kind survival (I mean with 500 millions individuals, our chances of survival are as high as if we are 9 billions in my opinion).
Note that I do not pretend to propose solutions to diminish the human population on Earth. This is yet another complex problem and finding ethical solutions to it is actually quite complicated. I just say that if we could limit the human population, it would solve a lot of problems.
Imagine Another World
To conclude this article, imagine what a world with only 500 millions human being (which is roughly equivalent to the american population) would look like.
Here is how I envisage the situation. All humans would have decided to live on a single continent. The one that suffers the less from extreme climatical events like tornados, earthquakes or tsunamis. 500 millions probably represent enough human beings to maintain our lifestyle. It would simplify politics a lot as we could form only one country. Individuals could also pollute more while without causing much damage to the environment (you could take the plane without having problems of conscience for example).
Moreover it would allow many places on Earth to be exempt from human traces and authentique human-exempt areas could exists (which is an idea I find facinating).
Further Ideas
An Argument for Biodiversity and Environmental Protection (To Some Extent)
I said earlier that some forms of resources on Earth are only generated by plants. Actually human kind mostly relies on its environment to provide it with the resources it needs.
Interestingly enough, the machine producing the various resources we need, plants and animals, also happen to be the resources. It gets even crazier when we remark that the quantity of plants at \(t+1\) actually also depends on the plant quantity at \(t\) (this comes from the fact that plants reproduce, i.e. plants are their own factory, they are not produce by an external source). In short, plants and animals are self-generating, resource-producent and resource themselves.
Cool, let’s now assume that we want to maximize the total resource quantity made available to us by the environment over time. The question is how many plants (I will talk about plants only but this can be generalized to animals) can we harvest and transform into resources now and how many plants should we leave alone so that they serve plant generation.
The total harvested ressources are given with the following formula:
Where \(harvest(t)\) is the amount of plants harvested at time \(t\). But we need to understand how plants evolve with time to understand what the possible values of \(harvest\) are. For example if \(harvest(t_1) = plants(t_1)\), then all subsequent harvests will be zero (because you used all plants and left no one to perpetuate the plant stock). This probably means that we won’t maximize the total harvest.
A simple model is the following:
Where:
- \(plants(t)\) represent the quantity of entities that produce resources for us in some form at a given point of time.
- \(\lambda\) is the reproduction rate.
NB: Such models do have complicated mathematical solutions. The model presented here is also very simple and does not take in account many complicated aspects (like the fact that some resources get stale with time).
The main point is that if one harvests more than what the environment can compensate for, then, over time, the available quantity of plants gets lower and lower until you reach zero which is clearly not a good solution. I believe that we are currently doing exactly that: harvesting more resources than what the environment can compensate for. And this will most likely create very important troubles in a not so distant future, hence the need to stop over exploiting the environment.
Now some bits about biodiversity. Recent years, most probably because of pollution, we have witnessed one of the most massive species extinction rate in Earth history.
Fine, what’s the matter? Well the problem is that a loss of biodiversity implies a loss of genetical diversity.  In my opinion, it is therefore very important to preserve biodiversity.
An Argument for Equitable Resource Sharing Among Humans
We said we wanted to maximize life enjoyability and saw that it depended on resources. In this article, I implicitely considered that resources were shared equitably. Of course this is not the case and having a better distribution of resources across individuals wuld probably be a very good idea for the following reasons:
- A person with no resources probably has a very unenjoyable life
- Studies have shown that above a certain limit, having more resources does not make one happier
Changing resources distribution however is highly untrivial and will probably require a change of system. I will try to write an article about this in the future.
Hence you always try to find very easily acceptable axioms because if everyone agrees on the axioms you chose and if you proof is logically correct, then everyone should agree with your conclusion. Unfortunetaly it is highly non-trivial to find such axioms, especially if you want your proof to remain true across different populations, continents, cultures and time epochs. In that regard I find the axiom “Humanity should survive” very interesting because survival is probably implemented in our genes to some extent. And therefore I believe it is very easy easy to accept that axiom.
-
In the world of philosophy and logic, there are always some very basic sentences that you consider true but that you cannot prove, they are called axioms. ↩
Subscribe to ASARPhiB
Get the latest posts delivered right to your inbox


Introduction
We will be using C# to develop vector, matrix and differentiation classes
A test bed was created to ionvoke your test methods to display test data content as show below.
Test bed code
// Arguments are passed to console app in VSCode in the Launch.json file's section, args
//"args": ["Symbols_Tokens"]
//Main method in Program.cs spawns web browser
MethodRunner.RunIt(args[0]);
MethodRunner class code
The MethodRunner class uses C# refelection to create a hash table of all static methods with names that start with "Test_"
The static method RunIt invokes the method
public static int RunIt(string hashEntry)
{
MethodInfo mi = (MethodInfo)htTestFuncs[hashEntry];
return (int)mi.Invoke(null, null);
}
static MethodRunner()
{
// get all public static methods of MethodRunner type
MethodInfo[] methodInfos = typeof(MethodRunner).GetMethods(BindingFlags.Public |
BindingFlags.Static);
// sort methods by name
Array.Sort(methodInfos,
delegate (MethodInfo methodInfo1, MethodInfo methodInfo2)
{ return methodInfo1.Name.CompareTo(methodInfo2.Name); });
// write method names to hash
foreach (MethodInfo methodInfo in methodInfos)
{
if (methodInfo.Name.IndexOf("Test_") == -1)
{
continue;
}
string miKey = methodInfo.Name.Replace("Test_", "");
//Console.WriteLine(miKey);
htTestFuncs[miKey] = methodInfo;
}
}


I am trying to use emoncms on a cloud hosted web server (OVH). I have managed to make it work (more or less) with some tuning (see Installation d’emoncms sur serveur mutualisé OVH) but I still have an issue : the "kWh to kWh/d" does not function properly: anytime I try to define it I get this error when updating :
Fatal error: Call to a member function fetch_array() on a non-object in /homez.540/monrepertoire/www/emoncms/Modules/input/process_model.php on line 455
I wonder if it has a relationship with the fact that I need to use mySQL (I cannot install timestore because it is not "my" server).
This function was working on the emoncms.org server with the "kWh to kWh/d (OLD)", which is not in git (only on emoncms.org).
Re: SOLVED: issue with "kWh to kWh/d"
Hello Oliver, Try using the kwh_to_kwhd2 input processor, I need to look at those functions again, recent changes with the different engines may have broken it, Im not sure.
Re: SOLVED: issue with "kWh to kWh/d"
Thanks Tristan, I did not realize that there were two "kWh to kWh/d" functions (in the french translation they are both called "kWh vers kWh/j") : the second one seems to work (at least it does not return an error, I have to wait to check if result is ok).
Re: SOLVED: issue with "kWh to kWh/d"
I does not work either : using kwh_to_kwhd2 I get only 0 as a result, even though my input source increases.
Re: SOLVED: issue with "kWh to kWh/d"
I eventually found out the problem : it is necessary to delete the "kwhd" feed created by the kwh_to_kwhd function and not reuse it as a target of the kwh_to_kwhd2 process, as kwh_to_kwhd creates only one datafield in the feed mySQL table, and kwh_to_kwhd2 needs 2 !
Perhaps it would be a good idea to add a control in the input process creation ?
Re: SOLVED: issue with "kWh to kWh/d"
Great thanks for finding out the cause, Il look into adding a control, good idea.


Thank you for informing us of your self-organised workshop! The workshop administrative team will follow-up within a week.
Approximately 2 weeks prior to the workshop, please send a reminder to your learners to complete the pre-survey and install the necessary software prior to the workshop. Feel free to utilize the email template "Email Learners before Workshop", found in The Carpentries Handbook. The survey links for learners are automatically generated on the workshop's GitHub page, and typically located above and within the schedule.
If you are planning to teach the workshop online, you can look at resources that will help you get ready in the handbook.
Have a great workshop!
The Carpentries
A copy of your submission is included below for your reference.
{% include "includes/selforganisedsubmission_details.html" with admin=False object=object %}


Use .card-title
to add card titles to any heading element. The .card-text
class
is used to remove bottoms margins for a <p>
element if it is the last child (or the only one)
inside .card-body
. The .card-link
class adds a blue color to any link, and a hover
effect.


| 003:113 Khan | : |
Not all of them are alike; a party of the people of the Scripture stand for the right, they recite the Verses of Allah during the hours of the night, prostrating themselves in prayer. |
| 003:113 Maulana | : |
They are not all alike. Of the People of the Book there is an upright party who recite Allah's messages in the night-time and they adore (Him). |
| 003:113 Pickthal | : |
They are not all alike. Of the People of the Scripture there is a staunch community who recite the revelations of Allah in the night season, falling prostrate (before Him). |
| 003:113 Rashad | : |
They are not all the same; among the followers of the scripture, there are those who are righteous. They recite GOD's revelations through the night, and they fall prostrate. |
| 003:113 Sarwar | : |
The People of the Book are not all the same. Some of them are straightforward. They recite the words of God in prostration at night. |
| 003:113 Shakir | : |
They are not all alike; of the followers of the Book there is an upright party; they recite Allah's communications in the nighttime and they adore (Him). |
| 003:113 Sherali | : |
They are not all alike. Among the People of the Book, there is a party who stand by their covenant; they recite the word of ALLAH in the hours of the night and prostrate themselves before HIM. |
| 003:113 Yusufali | : |
Not all of them are alike: Of the People of the Book are a portion that stand (For the right): They rehearse the Signs of Allah all night long, and they prostrate themselves in adoration. |
Concepts/Themes Covered: أركان الإسلام > الصلاة > أداء الصلاة > السجود Pillars of Islam> The Prayers>Performing the Prayers> Prostration الدعوة إلى الله > حدودها > التساهل مع المسالمين The Call for Allah> Its Limits> Lenient with the Peace-Loving القرآن الكريم > تلاوته > الأمر بتلاوته The Holy Quran> The Quran Recitation> The Command to Recit it الديانات > أهل الكتاب: ( اليهود و النصارى) > العلاقة معهم Religions> The People of the Book (the Jews and the Christians)>The Relation with them الديانات > أهل الكتاب: ( اليهود و النصارى) > وجوب التساهل معهم(مع غير المحاربين) Religions> The People of the Book (the Jews and the Christians)> The Necessity to be Easy with them (with the Non-Fighters) الديانات > أهل الكتاب: ( اليهود و النصارى) > وجود المؤمنين بينهم Religions> The People of the Book (the Jews and the Christians)>The Available Believers among them
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Ram on the lam
by Rob GibsonA group of local residents and Central Saanich police teamed up to recapture a ram that was on the lam for several hours on Sunday morning.
The ram managed to escape its farm enclosure and got out onto the road in the area of Benvenuto Ave. and West Saanich Rd, causing traffic delays at approximately 10:30 a.m. Sunday.
RCMP tell CTV News Vancouver Island that the managed to corral the ram with the help of, "some really good neighbours and Good Samaritans".
It took officers and their helpers about 45 minutes to wrangle the ram before its owner arrived and took it back to the farm where it lives.
-with files from CTV News Vacnouver Island


Are you new to St. Andrews and still trying to find your way
around this beautiful little seaside town?
Or have you been here a while and want to make sure you haven’t missed any of St. Andrews’ quirky secret spots?
Then this website will give you a list of places not to be missed,
discovered by two adventurous girls who have been here for some time now!
Hi! My name is Maria and I am currently a third-year
Maths student at the University of St. Andrews.
I am a Bulgarian who loves travelling and hiking but sadly
I spend most of my time either in the Physics building or
in Rector's cafe.
Hey! I’m Clara, and I’m a Maths student at the University of St. Andrews.
I grew up in Ireland and have been living in Scotland for four years now!
When I’m not studying Maths, you’ll find me climbing a Munro,
listening to jazz or working at a student bar in town.


Thank you for taking the time to improve my webpage
Which option best describes your current role?
What design element do you like the most? (Select all that apply)
Overall, how satsfied are you with the design?
Any comments or suggestions?


Every kid in every school no matter their background, deserves to learn the basics about food - where it comes from, how to cook it and how it affects their bodies. These life skills are as important as reading and writing, but they've been lost over the past few generations. We need to bring them back and bring up our kids to be streetwise about food.
~ Jammie Olvier


Grid
When all of your measurements follow the same rules, you automatically get a more consistent UI.
Baseline Grid
The grid is based on a 4px square. This value controls the proportion, balance, and vertical alignment of every component. All elements – including icons – are aligned to this unit.
Spacing
When you design a component, elements are spaced following the grid. The same principle applies when you stack multiple elements within and between a component.


phpMyAdmin is a free and open source administration tool for MySQL and MariaDB. As a portable web application written primarily in PHP, it has become one of the most popular MySQL administration tools, especially for web hosting services.
WordPress is a free and open-source content management system written in PHP and paired with a MySQL or MariaDB database. Features include a plugin architecture and a template system, referred to within WordPress as Themes.
Nginx is a web server which can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Igor Sysoev and first publicly released in 2004. A company of the same name was founded in 2011 to provide support and Nginx plus paid software.


This page just doesn't exist so just press the back button to get back to where you were before you stumbled upon this page. :)


Side projects or interests I was engaged on or working on personally
Teachers get their own administrator dashboard to create quizzes, challenges and monitor student's activities and answers.
On the other end, students get their leaderboard, the current quizz, and explanations of past quizzes so they can learn from their mistake.
{% endcomment %}


Logging ZptSharp operations
ZptSharp integrates with the Microsoft.Extensions.Logging framework. By default it is configured to use a null/no-operation logger.
When configuring services in dependency injection, if you add a logger implementation then you may receive ZptSharp log messages.
Messages generated by ZptSharp are generally recorded at Debug
and Trace
levels.
Example
Here is a very simple example which activates console logging with dependency injection. As you can see, the addition of logging is not linked intrinsically to ZptSharp itself.
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Console;
using ZptSharp;
serviceCollection
.AddZptSharp()
.AddStandardZptExpressions()
.AddHapZptDocuments();
serviceCollection
.AddLogging(b => {
b.ClearProviders();
b.AddSimpleConsole(o => {
o.ColorBehavior = LoggerColorBehavior.Disabled;
o.IncludeScopes = true;
});
b.SetMinimumLevel(LogLevel.Debug);
});


Recent check-in near by
name
distance
Time
{{listitem.name}}
{{listitem.distance}}
{{listitem.time}}


Error Page
Application has encountered an error. Please contact support on ...
Failed URL: ${url} Exception: ${exception.message}
${ste}


Agglomerated SSL was written in order to hide the awful OpenSSL API. It strives to reuse the OpenSSL APIs and provide a much simpler and sane interface for programmers that are interested in writing applications that require the SSL/TLS protocol for secure communications. All code is written under the ISC license. The code currently is under heavy development so check this site often to pick up on new things and bug fixes.
The reason for this project is described in my rant. The rant is not 100% current but I'll add stuff whenever possible.
Please read the man page for a more detailed explanation.
make obj make depend make make installThis will compile and install libassl.* in /usr/lib.
To test the library go into the examples directory and run the following sequence of commands:
make obj make depend makeTo run the examples the server go into the server directory and type:
blocking/obj/bserverfor the blocking server example, or
nonblocking/obj/nbserverfor the nonblocking example.
The client is similar; go into the client directory and run:
blocking/obj/bclientfor the blocking client example, or
nonblocking/obj/nbclientfor the nonblocking example.
To subscribe to CVS changes send an email to<EMAIL_ADDRESS>and in the email body say: subscribe assl-changes.
Alternatively you can download the periodic snapshots here.
Copyright ©2009 Marco Peereboom <marco@peereboom.us>


--- layout: default ---
Well I am guy that like of development, no matter the plataform (web, desktop, embedded, mobile) whatever.
I am not nerd, but curious for logical problem and try solve them.
When we build software, patterns emerge. We hate re-inventing the wheel, so when we can’t find an existing library or utility to solve common problems, we extract a solution ourselves and release it as an open source software project.


Copyright © 2014 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark and document use rules apply.
This document is a collection of test results that show the longdesc
attribute as described in the HTML
Image Description Extension (longdesc) specification is
implementable, and that independent implementations are highly
interoperable, as required for a W3C specification to proceed beyond
Candidate Recommendation.
A number of independent implementations demonstrate interoperability in each of the specification's requirements, for a variety of real-world scenarios.
A set of tests was developed by the HTML Accessibility Task Force
covering the requirements of the specification in a variety of different
scenarios, for example whether the longdesc
refers to a
description on the same page as or a different page from the image,
where there is a base
element used on the page, where a
data:
URI is used as the value of the longdesc
,
etc. Test results for various User Agents were generated by various
members of the HTML Accessibility Task Force.
The specification explicitly defines 3 requirements for User Agents in section 3.03, plus a requirement on how the attribute is treated in the DOM in section 3.1.1, which in practice applies to User Agents:
longdesc
value is valid, User agents must
make the link available to all users through the regular user
interface(s).longdesc
value is valid, User agents must
expose the link to relevant APIs, especially accessibility-oriented
APIs.longdesc
IDL attribute must reflect
the HTML content attribute longdesc
.The User Agents tested are all publicly available software.
A more extensive list
of software that supports longdesc
is also
available.
A set of tests are used to test the following requirements for User Agents (in section 3.03):
longdesc
value is valid, User agents must
make the link available to all users through the regular user
interface(s).The tests The results of these tests are shown in table 1. There are a number of user agents that pass these tests.
The same set of tests were used to demonstrate that user agents make the relevant information available through the MSAA accessibility interface, as shown in Table 2, as per the requirement
longdesc
value is valid, User agents must
expose the link to relevant APIs, especially accessibility-oriented
APIs. In addition, the DOM is used as an accessibility API by many systems
(e.g. screenreaders interacting with Internet Explorer, such as NVDA).
The test showing that longdesc
is reflected in the DOM by
multiple independent browsers (table 3) is further
evidence that this requirement is met.
In practice, the fact that nearly all screenreaders except VoiceOver provide native access to longdesc demonstrates that this requirement is effectively met in the real world. For example in order to get data from Firefox, NVDA uses the IAccessible2 (IA2) accessibility API. Although there are no formal results testing the API directly, the fact that NVDA on Windows and Orca on Linux each successfully implement the specification with Firefox shows that in practice Firefox exposes correct data to both IA2 on Windows and AT-SPI/ATK on Linux.
The test that longdesc
is reflected in the DOM primarily
shows that the requirement
longdesc
IDL attribute must
reflect
the HTML content attribute longdesc
.(section 3.1.1) is met by multiple browsers, as per Table 3.
There are a
number of independently developed extensions for different browsers
that make longdesc
more readily available to users. These
demonstrate a variety of approaches to enabling discoverability, whether
by adding elements to the rendered webpage itself (as is also typical of
screenreaders, which do not have a visible browser UI) or
leaving the rendering intact and providing relevant indicators through
the visible browser UI.
Dirk Ginader ports his extension from Chrome
to Firefox as part of a one-hour presentation. Jim Thatcher's "favelet"
is designed as a cross-browser 'extension'. An experimental (but not
release-quality) port of the TellMeMore extension from Opera/Presto to
Blink took a few hours. Whle the major bug (support for longdesc
in frame
and iframe
) was not fixed in this
experimental effort, the difficulties are not relevant to longdesc
,
but the complications of interacting with frame
and iframe
.
The Opera browser implemented support for longdesc
in
version 10.1. The implementation took about a week to develop, including
time to debug and fix.
During the Last Call for the specification, it was implemented in the
NVDA screenreader. The developers had stated that they thought it made
more sense to implement directly in the browser, but eventually decided
that it was more important to provide the functionality to their users
than wait for Firefox to implement longdesc
natively. As
the test results show, NVDA managed to successfully implement for at
least two browsers. The developers clarified
in mail that they are using different accessibility APIs on the
same platform.
During the CR period, Orca (the most popular Linux screenreader) did an implementation from the specification without assistance from members of the Task Force. It reportedly took a few hours, and as Tables 1 and 2 shows, is a highly interoperable implementation.
| Test | Yandex 1.7 + longdesc extension, MacOS | FF 23, MacOS 10.7.5 | FF 23+ JAWS 15, Win | IE10, JAWS 15, Win | FF 27 Aviewer, Win | FF23 + NVDA 2013.2, Win | IE10 + NVDA 2013.2, Win | Opera 12.15, MacOS 10.7.5 | iCab 5.1, MacOS 10.7.5 | Orca, FF 32, Linux | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Disc. | Acc. | — | Acc. | Disc. | Acc. | Disc. | Acc. | Disc. | Acc. | Disc. | Acc. | Disc. | Acc. | Disc. | Acc. | Disc. | Acc. | Disc. | Acc. | |
| Comments | [1] | [2] | [3] | [4] | [5] | |||||||||||||||
| ext img - data:URI desc | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | ✕ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| empty img - external desc | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✔ | N/A | |
| ext img - ext desc | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| ext img - internal desc | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | ✕ | ✔ | ✔ | ✔ | ✕ | ✕ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | |
| ext img - ext desc fragment with spaces | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | |||
| ext img - ext desc fragment | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | |||
| ext img - ext desc with absolute base | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | ✕ | ✕ | ✔ | ✔ | ✔ | ✕ | ✔ | ✕ | ✔ | ✕ | ✔ | ✔ | |
| ext img - ext desc with relative base | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✕ | ✔ | ✕ | ✔ | ✕ | ✔ | ✔ | |||
img
in <iframe> |
✕ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✕ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||
| Comments | [1] | [2] | [3] | [4] | [5] | |||||||||||||||
| Test | Yandex 1.7 + "longdesc" extension (made for Chrome), MacOS | FF 23, MacOS 10.7.5 | FF 23, JAWS 15 | IE10, JAWS 15 | FF 27 Aviewer | NVDA 2013.2, FF23 | NVDA 2013.2, IE10 | Opera 12.15, MacOS 10.7.5 | iCab 5.1, MacOS 10.7.5 | Orca, FF 32, Linux |
Notes
longdesc
bug).| Accessibility API / User Agent | Windows - MSAA | Linux - AT-SPI/ATK | |
|---|---|---|---|
| IE 11.09,MSAA, Aviewer,WIN | FF 27.0a1,MSAA,Aviewer,WIN | FF 32, Orca, GNU/Linux | |
| Test | Results | ||
| ext img - data:URI desc | ✔ [1] [6] | ✔ [7] | ✔ |
| empty img - external desc | ✔ [2] [6] | ✕ [6] | ✕ [8] [6] |
| ext img - ext desc | ✔ [2] [6] | ✔ [7] | ✔ |
| ext img - internal desc | ✕ [3] [6] | ✔ [7] | ✔ |
| ext img - ext desc fragment with spaces | ✔ [4] [6] | ✔ [7] | ✔ |
| ext img - ext desc fragment | ✔ [4] [6] | ✔ [7] | ✔ |
| ext img - ext desc with absolute base | ✔ [5] [6] | ✔ [7] | ✔ |
| ext img - ext desc with relative base | ✔ [5] [6] | ✔ [7] | ✔ |
img
in <iframe> |
✔ [2] [6] | ✔ [7] | ✔ |
Notes
| Test | Yandex browser 1.7 + Longdesc extension, MacOS | FF 23 + JAWS 15, Win | IE10 + JAWS 15, Win | FF23 + NVDA 2013.2, Win | IE 10 + NVDA 2013.2, Win | Opera 12.15, MacOS 10.7.5 |
|---|---|---|---|---|---|---|
| longdesc updated by javascript | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |


Hi ${username} ! Welcome to FreeSeed!
After receiving this email, you can already log in to FreeSeed system！
If not, please ignore
© 2020
About FreeSeed
•
Privacy Policy
•
Edit Notification Settings
GIST, Suzhou, Jiangsu, China


|
MLIB
|
Lightweight inter-thread synchronization. More...
#include <critsect.h>
Public Member Functions | |
| criticalsection () | |
| Initializes critical section object. | |
| ~criticalsection () | |
| Deletes the critical section object. | |
| virtual void | enter () |
| Enter critical section. | |
| virtual bool | try_enter () |
| Return true if critical section was entered. | |
| virtual void | leave () |
| Leave critical section. | |
Only one thread at a time can enter a critical section. Critical sections must be leaved as many times as they were entered.


This sample uses Swagger Open API specification to generate tests for the todo app system under test. You can read more about the Citrus test generation features in reference guide
Objectives
The todo-list sample application manages todo entries. The application provides a REST web API for adding new entries and listing all entries. This API is specified using Swagger ()
The sample API specification looks like this.
{
"swagger": "2.0",
"info": {
"description": "REST API for todo application",
"version": "2.0",
"title": "TodoList API",
"license": {
"name": "Apache License Version 2.0"
}
},
"host": "localhost:8080",
"basePath": "/",
"paths": {
"/api/todolist": {
"get": {
"summary": "List todo entries",
"description": "Returns all available todo entries.",
"operationId": "listTodoEntries",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TodoEntry"
}
}
}
}
},
"post": {
"tags": [
"todo-list-controller"
],
"summary": "Add todo entry",
"description": "Adds new todo entry.",
"operationId": "addTodoEntry",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"parameters": [
{
"in": "body",
"name": "entry",
"description": "Todo entry to be added",
"required": true,
"schema": {
"$ref": "#/definitions/TodoEntry"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "string"
}
}
}
},
"delete": {
"tags": [
"todo-list-controller"
],
"summary": "Delete all todo entries",
"description": "Delete all todo entries.",
"operationId": "deleteTodoEntries",
"consumes": [
"application/json"
],
"produces": [
"*/*"
],
"responses": {
"200": {
"description": "OK"
}
}
}
}
},
"definitions": {
"Attachment": {
"type": "object",
"properties": {
"cid": {
"type": "string"
},
"contentType": {
"type": "string"
},
"data": {
"type": "string"
}
}
},
"TodoEntry": {
"type": "object",
"properties": {
"attachment": {
"$ref": "#/definitions/Attachment"
},
"description": {
"type": "string"
},
"done": {
"type": "boolean"
},
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string"
}
}
}
}
}
The Swagger API specification defines model objects as well as path resources that a client can call with Http GET, POST, PUT, DELETE and so on.
Citrus is able to generate client and server side test cases from that specification. Each path resource is the basis for a new test case. The test will use the information given in the specification to generate a proper send/receive request/response communication with the REST API.
The test code generation takes place in the Maven build lifecycle and uses the Citrus Maven plugin. You need to add the following plugin configuration to the Maven POM file:
<plugin>
<groupId>com.consol.citrus.mvn</groupId>
<artifactId>citrus-maven-plugin</artifactId>
<version>4.0.0-M1</version>
<executions>
<execution>
<id>generate-tests</id>
<phase>generate-test-sources</phase>
<goals>
<goal>generate-tests</goal>
</goals>
</execution>
</executions>
<configuration>
<type>java</type>
<framework>testng</framework>
<tests>
<test>
<endpoint>todoClient</endpoint>
<disabled>true</disabled>
<swagger>
<file>file:///Users/cdeppisc/Projects/Citrus/citrus-website/src/test/resources/swagger/TodoList.json</file>
</swagger>
</test>
</tests>
</configuration>
</plugin>
The plugin test generation binds to the generate-test-sources
Maven lifecycle phase and generates the tests in a default output directory target/generated/citrus
. The plugin needs the path to the Swagger Open PI specification file
which is usually a .json
or .yaml
file in your project.
When executed the plugin generates the Citrus tests to the target output directory. You can add those generated files to the Maven sources/resources with another plugin called build-helper-maven-plugin
.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-test-sources</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>/Users/cdeppisc/Projects/Citrus/citrus-website/target/generated/citrus/java</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-test-resources</id>
<phase>generate-test-resources</phase>
<goals>
<goal>add-test-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>/Users/cdeppisc/Projects/Citrus/citrus-website/target/generated/citrus/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
The build helper plugin adds the generated tests to the Maven project source/resource compilation. This automatically enables the generated tests for execution with the Maven build lifecycle in test/integration-test phase.
Run
NOTE: This test depends on the todo-app WAR which must have been installed into your local maven repository using mvn clean install
beforehand.
The sample application uses Maven as build tool. So you can compile, package and test the sample with Maven.
mvn clean verify -Dembedded
This executes the complete Maven build lifecycle. The embedded option automatically starts a Jetty web container before the integration test phase. The todo-list system under test is automatically deployed in this phase. After that the Citrus test cases are able to interact with the todo-list application in the integration test phase.
During the build you will see Citrus performing some integration tests. After the tests are finished the embedded Jetty web container and the todo-list application are automatically stopped.
Run
You can run the sample on your localhost in order to see Citrus in action. Read the instructions how to run the sample.