text:
Securing OpenClinica

Securing OpenClinca
Installing, configuring and securing the OpenClinica [OC] Community Edition [CE] is definitely an adventure and requires knowledge in a variety of aspects of computer science. With extensive googling and dedication, however, it can be done by anyone who has some affinity working with Linux. I am no computer scientist by trade, but nevertheless took on the path of deploying OC on a webserver and, in the end, managed to get it running successfully. There were points though, where I wished there was an extensive guide on how to manage with the process. With this post I would like to fill this gap, at least with the security aspect of OC, to give a helping hand to anyone attempting the same task.

The list of measures I took are what I could find from numerous sources and I cannot claim responsibility that they are exhaustive of everything that can be/should be done when securing OC. As I mentioned already, I am not an expert in the field, this guide is merely a result of a lot of searching and trial-and-error. Take everything you see here with a grain of salt, and, if you feel you know better, don't hesitate to change aspects of it. Please also feel free to suggest improvements/additions to this process so we can all benefit from this collective knowledge.

I took security as seriously as possible as the software required by the CE of OC is long out-of-date as of 2020, therefore doing everything possible to make it secure is of great importance, especially when working with patient data.

My setup-of-choice was the following:

 * OpenClinica CE 3.15
 * CentOS 8
 * PostgreSQL 8.4.22
 * Tomcat 7.0.52
 * JVM 1.7.0

I followed this installation guide as I could not find one for v3.15. Getting some of the specific software version listed above was quite a challenge and if I had to restart I would consider going with CentOS 6 instead, as this version is natively supporting some of these older dependencies. CentOS 6 is also out of support as of this year, therefore consider carefully when opting in for it.

As per instructed by the above mentioned guide, the root folder to all the components required to run OC is at: /usr/local

Without further adue, here we go:

SSH
First and foremost accessing the webserver (if it is a remote one) should be secured. There are hundreds of attempts made each day to log-in to webservers using common usernames, therefore this really should be your first line of security.

Modifying the sshd_config file
This file can be found under `/etc/ssh/sshd_config` and controls ssh access to your server. Before making any changes to it, make sure you that you have it backed up. In the file, modify the following parameters:

Only allow the usernames which will need to have access to your server
 * AllowUsers

Disable root logins
 * PermitRootLogin no

 * ChallengeResponseAuthentication no

After copying your ssh key to the server (with ssh-copy-id or manually, by copying your public key and pasting it in the `~/.ssh/authorized_keys` file on your server) you should disable password authentication. This way signing in is only possible by ssh key authentication.
 * PasswordAuthentication no

For added security, UsePAM can be also set to `no`, however, this messed with my ssh authentication process and had to set it back to `yes`.

After everything is configured restart the sshd service:

fail2ban
This package provides added SSH security by banning IPs which failed ssh authentication x number of times. Here is a great guide to configuring fail2ban.

Installation
Under `/etc/fail2ban` create a file named `jail.local` and paste the following in (use your own e-mail address):

[DEFAULT] bantime = 3600 maxretry = 5
 * 1) Ban hosts for one hour:

[sshd] enabled = true

destemail =  sender =  sendername = Fail2ban mta = sendmail action = %(action_mwl)s

Creating this file instead of configuring directly in `jail.conf` is preferred as a fail2ban update would override your configuration otherwise. Now you will receive e-mail notifications when an IP was banned after 5 failed log-in attempts or when fail2ban was stopped/started.

Restart the fail2ban service:

If you would like to receive additional information of the banned IP-s, you can install the `whoami.x86_64` package.

You can check the sshd jail status by:

Passwords
While it might sound obvious, it is nevertheless vital to maintain strong and unique passwords on your server. I recommend using KeePass to keep track of them as it also allows you to auto-generate seriously strong passes.

Tomcat
Securing Tomcat is just as vital as securing your webserver, as this is your point of contact with the outside world. I gathered the below listed security measures from the following sites

Access control
This is to make sure that even if an attacker can get hold of the webserver, there is only minimum damage she can do. First and foremost never run your webserver as the root user, create a new user called `tomcat` which has the minimum necessary privileges to run the server.

Make the folder `tomcat` and all its contents owned by the user tomcat and group tomcat:

(without the -R flag you only change the ownership of the folder, but not the contents)

Give the owner of the folder read write and execute permissions:

(Guide on using chmod: https://www.lifewire.com/uses-of-command-chmod-2201064) Word of caution: to be able to open a folder you need to have execute permission on it. I learned it the hard way as well.

Remove write and execute permissions from the configuration folder. This prevents an attacker to modify the configuration files of Tomcat:

However, Tomcat needs to be able to open the folder, therefore add execute permission TO THE FOLDER ONLY (=without the -R flag):

Remove read permission from the openclinica.config and openclinica-ws.config (if installed) folders:

Remove read permission from the logs folder:

Remove all permissions from the oldwebapps folder, as during deployment Tomcat will not have to do anything with these:

Set the `datainfo.properties` file to read-only (do the same of OpenClinica-ws if installed):

With this you are done with the access control aspect of Tomcat.

One additional thing you can do is to add your user to the tomcat group and grant read write execute privileges to group for the usr/local/tomcat folder. This way you can still conveniently edit everything without having to use root/sudo. I am really unsure about the security aspect of it and use it at your own risk. And do not forget to remove yourself from the group and remove the privileges once everything is configured.

HTTPS
As referenced above already, Tomcat's guide on setting up SSL should be the first step you do (https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html). You will have to make sure that all the steps laid out in this guide are done using the user `tomcat`, as if it is done otherwise, the .keystore file will be created under that other user's home directory and tomcat won't be able to find and read it. Theoretically you could also probably comment out the HTTP connector as enforcing using HTTPS for OC is good practice. Port forwarding will be enabled on a firewall level, therefore in theory Tomcat should never receive a request to port 8080, but I haven't tested this in action yet.

After this is configured you should be able to use HTTPS to communicate with your webserver (on https://localhost:8443/OpenClinica). If you are using a self-signed certificate your browser will complain, but you can nevertheless access the site. You can enforce using HTTPS within Tomcat, by adding the following at the end of your web.xml file under `tomcat/conf` (before the  tag):

  Protected Context /*   CONFIDENTIAL

Cookies, Custom Error Pages, Disabling listings ..
These are good to have practices, but not must haves. These include hiding server version from error pages or disabling file system listings to better protect you from DDoS attacks.

All of the following will need to be added to the `web.xml` file.

Secure and HTTP only cookies to prevent XSS attacks
(paste before the  tag)

<cookie-config> <http-only>true</http-only> true </cookie-config>

Custom Error pages
(paste before the </web-app> tag) (No error page will be displayed as Tomcat won't be able to locate the error page file, but it does get the job done by hiding the version number. If this is an issue for you skip this step.)

<error-page> <error-code>404</error-code> /error.jsp </error-page>

<error-page> <error-code>403</error-code> /error.jsp </error-page>

<error-page> <error-code>500</error-code> /error.jsp </error-page>

<error-page> <exception-type>java.lang.Exception</exception-type> /error.jsp </error-page>

<error-page> <exception-type>java.lang.Throwable</exception-type> /error.jsp </error-page>

Read-only resources and no listings
(paste within the DefaultServlet part of the file)

<init-param> <param-name>readonly</param-name> <param-value>true</param-value> </init-param>

<init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param>

Removing server banner
If you add the parameter `Server=" "` to the parameter-list of a connector, this hides the version number in HTTP headers. It should look something like this:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" Server =" " address="<webserver IP address or localhost>" clientAuth="false" sslProtocol="TLS" keystoreFile="${user.home}/.keystore" keystorePass=" " />

Changing shutdown command
To prevent attackers from being able to shut-down your server you should consider changing the shutdown port as well as the shutdown command. This you can do in the beginning of your server.xml file within the <Server> tag:

AJP connector
If OC is the only webapp that will be deployed in Tomcat, you can safely comment out the AJP connector line, as OC is not using this connector.

Disabling autodeployment
To prevent someone from auto-deploying their own, malicious, webapps in your Tomcat instance, you can turn auto-deployment off within the server.xml file by setting the following parameters to false within the <Host> tag.

This way if you restart your server you manually have to deploy OC, which you will have to figure out how to do.

Secure container
With tomcat you have the option to start your instance in a container which ensures that if anyone compromises the server, even in the worst-case scenario, they can only access resources and files within this container. It is, however, something you will have to spend time on to make work for OC, as it is known to (and have, for me) break an installation. It is probably worthwhile to do if you have the time and knowledge to make it work.

The usage is otherwise really simple, when starting the webserver add the -secure flag:

That's it for Tomcat.

PostgreSQL
There is not a lot you can confgire for PostgreSQL in terms of security, but a little bit of access control can be done here as well.

Change the ownership of the pgsql folder:

Change priviliges:

You also should be carefully configuring the pg_hba.conf file at `/usr/local/pgsql/data/`. This file controls the different access rights to your database. You need to give access to the openclinica database for the clinica user connecting locally, but block all other connection attempts. The authentication method should be set to `md5`, never used `password` as it sends these in clear text form. If you will be accessing the database directly from remote machines you will have to add the appropriate line here for that.

local  openclinica clinica                           md5 host   openclinica clinica     127.0.0.1/32          md5 local  all         all                               reject host   all         all         ::1/128               reject
 * 1) TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
 * 2) allow user clinica to connect to openclinica locally, using encrypted password based authentication (needed to automate backups)
 * 1) IPv4 local connections:
 * 1) "local" is for Unix domain socket connections only
 * 1) IPv6 local connections:

This configuration is also important for the automated backups, which will be described below.

Firewall
Setting up a firewall is a must for any webserver. This allows you to limit and monitor all traffic happening between your server and the outside world. The main goal here is to leave only those ports open which are necessary for your webapp to function. In this case it means:

 * port 80/tcp, where incoming http traffic is expected,
 * port 443/tcp, where incoming https traffic is expected,
 * port 22/tcp, where ssh traffic is taking place.

You will might have to do some trial-and-error to see if closing a certain port breaks anything, but for me allowing only these 3 open did the trick.

FirewallD
If you already are comfortable using FirewallD, you can skip to the next section (Setting up FirewallD).

CentOS comes with FirewallD preinstalled which is a powerful tool to manage these connections. There are plenty of resources online to learn more about it, such as this.

(Update: one phenomenon described in this article is outdated. Packets which could not be handled by their assigned zone are not "kicked-up" to the next zone (the notion of "zone-drifting"). It is considered insecure and will be removed in future releases of FirewallD. If you really would like to have this behaviour you can enable zone drifting in FirewallD-s config file)

First make sure that firewalld is installed and enabled on your system. The default zone enabled is `Public` which you can keep this way for our purposes. You can check which services are enabled by default in this zone:

Services are not some special entities, they are merely representing the ports the given service needs open to be able to function. These are defined under `/usr/lib/firewalld/services` as self-explanatory xml files. If you would like to define your own services, you can do this by copying one of these xml files to `/etc/firewalld/services` and customising it to your own needs. You can add any service to your firewall zone by:

And you can remove any unnecessary services by:

You can also add/remove directly the ports you need:

Without the permanent flag the changes will be reset once FirewallD is reloaded or restarted. You can experiment with rules without the flag and once you found out what works for you, you can finalise these rules by adding the --permanent flag.

Setting up FirewallD
The below configuration assumes that you are using ssh to access your remote server, however, if this is not the case, you can skip setting up an internal zone.

There will be three zones set up for the firewall: public, internal and trusted. The public should handle all http/s requests from any requesting IP address. The internal zone should have a source added with either your IP or MAC address, therefore (in theory) only when your machine is communicating with the server should this zone handle the data transfer. This is also the zone with the ssh service enabled (=having port 22 open).

Before you start with the configuration of FirewallD you should make sure that iptables is disabled and stop it from ever starting by masking it. Otherwise it might interfere with FirewallD and lead to some odd behaviour.

First start by removing any unnecessary services from the public and internal zones. Use the --list-all flag to see what is allowed at the moment. You should only leave (or add, if necessary) http/https there. In the internal zone also add the ssh service.

You should assign your outward facing network interface to the public zone (so all request arriving from outside will be handled by this zone). You can list all the available interfaces by:

You can add an interface by using the  flag.

Unfortunately the naming of these interfaces is non-trivial (at least for me, mine is called `ens192`) so you'll might have to do some research to see what's what.

You should also add your own IP/MAC to the sources of the internal zone, so only request coming from this IP/MAC address will be handled by this zone, e.g.:

You can also make this IP more general if you want ssh to be available e.g. from a certain VPN:

Which will allow anyone from 154.112.0.0-154.112.255.255 to use ssh. (Note that zones are only active if there is at least 1 interface or source assigned to them!)

The target of the zone public should be set to DROP, which returns no message upon a request arriving to an invalid port, instead of transmitting a reject message. This is considered more secure.

Next, create port-forwarding rules to limit communication to https as well as to accommodate to Tomcat's port conventions (it uses 8080 instead of 80 and 8443 instead of 443):

sudo firewall-cmd --zone=public --permanent --add-forward-port=port=443:proto=tcp:toport=8443 sudo firewall-cmd --zone=public --permanent --add-forward-port=port=80:proto=tcp:toport=8443

sudo firewall-cmd --zone=internal --permanent --add-forward-port=port=443:proto=tcp:toport=8443 sudo firewall-cmd --zone=internal --permanent --add-forward-port=port=80:proto=tcp:toport=8443

For port-forwarding to work you need to also enable masquerading (https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-port_forwarding):

Now this step is something I am less sure about as I could not find a lot of info about it. I assigned the lo (loopback) interface to the trusted zone. This is the interface for communicating with your webserver from the same machine (localhost, 127.0.0.1). Ideally this is inaccessible from the outside world, therefore I assumed that the trusted zone is appropriate for it, but again, I might be wrong here.

If you need pinging to work, run this (replace zone by the zone in which you need pinging to work):

You have to reload firewalld for the changes to take effect:

Now you have FirewallD configured to only allow http/s communication with the outside world, but still allow ssh connections from your personal machine / your VPN network.

You can test your firewall using the nmap package to see which ports are open.

OpenClinica
You have done most of what you can do to make OC secure already, but there are a few things you can still do within OC itself. If you sign in as root to the web interface, navigate to `Tasks/Administartion/Users/Configure Password Requirements`, there will be a few options which you can turn on/off and tweak to suit your needs. You should also definitely enable user lockout after x number of tries (`Tasks/Administartion/Users/Lockout`). As root you can unlock these accounts on the web interface if they get locked. Another measure I myself took, but unsure if it is a necessity: asked the users of my OpenClinica instance to set their password challenge question to a long (unguessable) string. This I did, as I am unsure how OC sends out the password reset e-mail and if this e-mail could be hijacked by a potential attacker. A much safer (although admittedly more inconvenient, even impractical if you have too many users) solution is to, as root, reset their password from the web interface and send them yourself.

Backups
This also really should be a must. The solution I share here is just one way of doing it, if you know better, don't hesitate to do it your way.

Here is a guide is a guide on how backups should be implemented in OC. Basically you want to periodically save your OC configuration file, your study directory ($TOMCAT_ROOT/openclinica.data) and your PostgreSQL database.

I have attached a script which, if executed, should backup all of these, wrap them up in a tarball file and save it to `/usr/local/OpenClinica_backups`. You can (and should) change the backup location to be outside of your server by editing the BCKP_path variable in the script. Additionally you will have to create a .pgpass file for it to work, more details below.

My addition to the above linked guide is to make these backups happen automatically, e.g. on a daily basis. For this I used the `cron` service, which comes preinstalled on CentOS 8.

To make your script execute daily, place it under `/etc/cron.daily/`. Normally, to be able to get a pg_dump you would need the password for your openclinica database. To allow automatic updates you need to create the .pgpass file under `/var/lib/pgsql/`. The content of it should be as follows:

For Postgres to be able to use this file it HAS to be owned by postgres:

and the permissions on it HAVE to be set to 0600:

Should you have any problems with authentication, see the documentation of pgpass.

To be able to create the pg_dump, postgres needs to be able to write into your backup folder. Change the group of the folder to be postgres and give group rwx permissions:

You should practice restoring your database to see how it is actually done. The above mentioned guide helps you with this.

Antivirus
There is this excellent GitHub repo which lets you run daily scans to detect various Malware, including Trojans, viruses or rootkits. If you place the script from the cloned repo under. It will be executed on a daily basis alongside with the auto-backup script.

One Last Crumble
Just to make a clear job, it's a good idea to disable logins for the tomcat, clinica and postgres users:

usermode -L tomcat usermode -L clinica usermode -L postgres

That's it
Well done, you just made your OpenClinica installation a lot more secure! Unfortunately, you have to keep in mind that the software we have been hardening is outdated software (very outdated), so you can only do so much and hope for the best. The best advise I can give is to, if possible, do not include information of your subject which allows the identification of them. This way, even if everything fails, at least your subjects do not have to worry over personal identity thefts.

Auto backup script

BCKP_path='/usr/local/OpenClinica_backups' DATE=`date +"%Y-%m-%d"`

cd $BCKP_path sudo -u postgres /usr/local/pgsql/bin/pg_dump -U clinica openclinica -w > pg_dump sudo tar -cf oc_data.tar /usr/local/tomcat/openclinica.data sudo cp /usr/local/tomcat/openclinica.config/datainfo.properties datainfo.properties
 * 1) create a database dump with pg_dump
 * 1) backup the data directory of OC with CRF, XML, etc.. data
 * 1) backup OC configuration

sudo tar -czf ${DATE}_openclinica_backup.tar.gz datainfo.properties oc_data.tar  pg_dump
 * 1) tar all the above created files and assign a date

sudo rm datainfo.properties sudo rm oc_data.tar sudo rm pg_dump
 * 1) remove created temporary files

sudo chmod 400 *.tar.gz
 * 1) add a bit of security

title: Securing OpenClinica


text:
Oberon/ETH Oberon/bios

Back to: Native Oberon Hardware Compatibility List   BIOS support Summary How to set up the BIOS on a machine If the BIOS setup offers a "Plug-and-Play OS Installed" setting, set it "No", to let the BIOS configure the PCI bus slots. If a USB controller is present, enable it and arrange to execute UsbSystem.Start in Oberon to start the USB driver (check the InitCommands section in Oberon.Text). Disable it if no USB device will be attached, but in that case do not start the USB driver. Later on, during the installation of Oberon and after, detailed information on the PCI and AGP slots equipment can be obtained by executing PCITools.Scan. 8.4GB hard disk capacity barrier for Oberon Modern hard disks offer an impressive amount of space, but the 8.4GB capacity barrier (see Limit 4 below) means that not all of the drive will be accessible. This limit forces one to install a bootable Oberon partition (primary or logical) in such a way that the first 1MB lies within the first 8.4GB of a disk. The partition itself may extend well beyond this limit, as the maximum partition size is 282GB. The same is true when an Oberon partition is started by means of a boot manager.

No such limit is imposed on an Oberon partition which will be started with a boot diskette or from DOS with noboot.exe. In that case, the partition may be located anywhere on a large disk. One may also consider starting such a partition with the assistance of a very small primary, bootable Oberon partition located below the 8.4GB limit or a diskette as just mentioned. The BootVol= value in the config data (Partitions.SetConfig) in the partition must then point to the effective Oberon partition which is mounted in cascade. Hard disk capacity barriers in general The combination of BIOS and IDE/ATA hard disk restrictions result in hard disk size barriers known since the 90s. Disk size barriers have dogged the ATA interface since its inception and they are still of importance to those willing to install Native Oberon on older machines. SCSI disks are not generally subject to such limitations. As time passed, the capacity limit has increased.

Limit Capacity  Comment up to    1     504MB   BIOS dated prior to July 1994 2    2.0GB   DOS file system partition limit - BIOS dated after July 1994 3    4.2GB   CMOS extended CHS addressing limit (not widely experienced) 4    8.4GB   BIOS INT 13H 24-bit addressing limit - OBL limit 5   32.0GB   BIOS limit

Limit 1: BIOS dated prior to July 1994, access a hard disk in CHS mode with limits of 1'024 cylinders, 16 heads, 63 sectors or 504MB of disk capacity. To go beyond this boundary, the BIOS INT 13H routines introduce a different way to address sectors: the Logical Block Addressing (LBA) feature needed for proper translation of sector address. Most manufacturers' BIOS did not provide the Logical Block Address (LBA) feature, while some BIOS had LBA mode in the setup, but the feature did not work properly.

Limit 2: The introduction of the LBA looked like a panacea, but it failed on several counts. Some BIOS manufacturers limited the LBA cylinder addressing to 4'096 cylinders in order to save address space. When the cylinder limitation threshold is reached, the system hangs during initial loading, either from floppy disk or hard drive.

Limit 3: For a similar reason, the LBA addressing is limited to 8'192 cylinders. When the cylinder limitation threshold is reached, the system hangs during initial loading, either from floppy disk or hard drive. For example cfr. Issues With Hard Drives Over 4GB.

Limit 4: This barrier is due to the INT 13H handling in BIOS. In the 24-bit address scheme, 10 bits are allocated for the cylinder number, 8 bits for the head number and 6 bits for the sector number, i.e. 1'024*256*63 sectors = 8.4GB. To go beyond this boundary, a new extended INT 13H function is needed from the BIOS. The Oberon boot loader (OBL) uses the BIOS to load the inner core of the system and does not support the extended BIOS calls needed to access the disk beyond 8.4GB. If an Oberon is already installed, you can inspect the disk(s) partitioning with Partitions.Show detail ~. The second column shows the sector number of the start of the partition, and it should be less than 16'514'048 = 1024 x 256 x 63 (cyls x hds x sectors).

To break this barrier, the Oberon boot loader needs to be adapted to support the extended INT 13H. Does any one volunteer to contribute to this?

Limit 5: Some PCs cannot access more than 32GB due to a bug in the new implementation, although fixes are available - mainly Award BIOS chips dated 1998/99. The majority, though, are capable of supporting drives up to 137GB.

The future beyond: The 137GB limit is now itself looking rather restrictive. The next version of the E-IDE protocol (ATA-6), currently being reviewed by the ANSI committee, allows for 48 bits of address space giving a maximum addressable limit of 144PB (Petabytes).

Read Andries Brouwer's Large Disk HOWTO to learn more about the technicalities (from a Linux perspective) and Wim's BIOS pages to learn more about BIOS. How to collect information about the installed disks The primary source of information on the installed disks is Partitions.Show detail ~. But even more details are obtained by executing System.OpenKernelLog which shows information written by the driver as it starts up. There, you will find if LBA or DMA is used.

[Top]

''11 Apr 2003 - Copyright © 2003 ETH Zürich. All rights reserved.''

E-Mail: oberon-web at inf.ethz.ch

Homepage: www.ethoberon.ethz.ch

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Oberon/ETH Oberon/bios


text:
Cookbook:Steamed Tuna Bao Buns

Steamed tuna bao buns are a type of steamed dumpling from American-Asian cuisine. They are made with a simple yeast leavened dough and steamed until soft and fluffy. They can be eaten plain or stuffed with a variety of fillings. This recipe uses a tuna and pineapple filling.

Dough

 * All-purpose flour
 * Rice flour
 * Tapioca starch (or potato starch)
 * ½ packet dry active yeast
 * 1 tbsp honey
 * Milk, warm (~100°F)
 * Vegetable oil
 * Salt
 * White granulated sugar
 * Lukewarm water (~100°F)

Filling

 * Canned tuna
 * Canned pineapple in juice, cut into small pieces
 * 1 tbsp canned pineapple juice
 * Barbecue sauce (your choice)
 * Seasoning powder (hot paprika, salt, pepper, garlic powder, ground ginger, ground star anise)
 * 1 pinch Vegeta seasoning (optional, has MSG)
 * 1 tsp spicy mustard
 * Shelled whole peanuts

Dough

 * 1) Add active dry yeast and honey to around 8 oz warm water and milk. If using instant yeast there is no need to bloom the yeast.
 * 2) Sift in a mix of all purpose flour, rice flour, tapioca starch. It should be mostly AP flour, but the exact mixture is not precise.
 * 3) Add a little salt and sugar. Begin to combine the dough with a oiled spatula, continue adding flour until it starts to come together.
 * 4) Begin kneading—it will be sticky—and continue adding flour. Oil on hands will help.
 * 5) Add a little oil if it is needed (not more than 1 tbsp) and continue kneading until the dough is elastic.
 * 6) Place the dough in a covered food-safe plastic container large enough to accommodate the expanding dough.
 * 7) Allow dough to rise somewhere warm. Check on it in around 2 hours—once it doesn't bounce back when poked, it is ready for filling.

Filling

 * 1) Combine tuna, pineapples, peanuts, and seasoning powder, and mix until the tuna has a paste-like consistency. Pineapple pieces should be small.
 * 2) Add a little barbecue sauce; it should be moist but not too wet.
 * 3) Optionally add 1 tbsp pineapple juice, which will make it sweet.
 * 4) Add mustard according to taste.
 * 5) Let rest, uncovered, for around 2 hours

Assembly

 * 1) Take a piece of dough slightly larger than a golf ball and flatten in your hand. Don't make this too thin.
 * 2) Add filling and fold closed by pinching around the edges (google "folding bao" for help with this step). For plain bao they can be log-shaped.
 * 3) Add to steamer with boiling water, and steam 10–12 minutes.
 * 4) Serve hot.

title: Cookbook:Steamed Tuna Bao Buns


text:
User talk:MtPenguinMonster

Welcome to Wikibooks, ComradePenguinMonster!

 First steps tutorial Wikibooks is for collaborative development of free textbooks.

You do not need technical skills to contribute. You can easily change most books. Please introduce yourself, and let us know what interests you.

If you already contribute at other Wikimedia projects, our Wikimedia Orientation should quickly get you started. (Would you like to provide feedback on this message?)

  Getting help   Made a mistake?   Goodies, tips and tricks Thanks, Jules  (Mrjulesd) 19:29, 11 May 2020 (UTC)
 * Read the Using Wikibooks book for a friendly introduction to the project, or our help pages for more information.
 * You can get friendly help from the community in the user assistance room or our IRC channel.
 * Upload freely licensed files to Wikimedia Commons. You may request permission to upload fair use files locally. Please include author and source information and a non-free use rationale for non-free files.
 * You can restore a previously saved version.
 * Pages should follow the  naming convention.
 * Need to rename a page? Use the move tab (is available once your account is 4 days old - until then, ask for help).
 * To request a page be deleted, add to the top of the page.
 * Was a page you made deleted? Please read the deletion policy, and check the deletion log to find out why. Also check the RFD archives if applicable. You can request undeletion at WB:RFU, or ask the administrator who deleted the page.
 * Please fill in the edit summary and preview your edits before saving.
 * Sign your name on discussion pages by typing ~~~~
 * User scripts can make many tasks easier. Look at the Gadgets tab of my preferences; check off the boxes for the scripts you want, and hit save!

Are you interested in becoming a WB:Reviewer?
Hi

I was wondering: are you interested in becoming a reviewer? You seem to fulfill the requirements to do so.

Being a reviewer means that you can:

 * Have one's own edits automatically marked as "reviewed", also held by autoreviewers
 * Mark revisions by yourself and others as being "reviewed"
 * Quickly rollback the edits of the last user who edited a particular page with a single click
 * Have one's own edits automatically marked as patrolled
 * View the list of unreviewed pages

I can't give it to you myself, but the normal procedure is to apply at WB:RFP. -- Jules (Mrjulesd) 11:08, 18 August 2020 (UTC)

We sent you an e-mail
Hello ,

Really sorry for the inconvenience. This is a gentle note to request that you check your email. We sent you a message titled "The Community Insights survey is coming!". If you have questions, email surveys@wikimedia.org.

You can see my explanation here.

MediaWiki message delivery (discuss • contribs) 18:48, 25 September 2020 (UTC)

title: User talk:MtPenguinMonster


text:
User talk:Furatus

--Furatus (discuss • contribs) 19:54, 11 May 2020 (UTC)

title: User talk:Furatus


text:
User:Quixotebus

Hold on, I'll get back to you.

Sustainability and Sense of Place in the Sonoran Desert

title: User:Quixotebus


text:
User talk:Trickypr

Welcome
Welcome to Wikibooks, Trickypr!

 First steps tutorial Wikibooks is for collaborative development of free textbooks.

You do not need technical skills to contribute. You can easily change most books. Please introduce yourself, and let us know what interests you.

If you already contribute at other Wikimedia projects, our Wikimedia Orientation should quickly get you started. (Would you like to provide feedback on this message?)

  Getting help   Made a mistake?   Goodies, tips and tricks
 * Read the Using Wikibooks book for a friendly introduction to the project, or our help pages for more information.
 * You can get friendly help from the community in the user assistance room or our IRC channel.
 * Upload freely licensed files to Wikimedia Commons. You may request permission to upload fair use files locally. Please include author and source information and a non-free use rationale for non-free files.
 * You can restore a previously saved version.
 * Pages should follow the  naming convention.
 * Need to rename a page? Use the move tab (is available once your account is 4 days old - until then, ask for help).
 * To request a page be deleted, add to the top of the page.
 * Was a page you made deleted? Please read the deletion policy, and check the deletion log to find out why. Also check the RFD archives if applicable. You can request undeletion at WB:RFU, or ask the administrator who deleted the page.
 * Please fill in the edit summary and preview your edits before saving.
 * Sign your name on discussion pages by typing ~~~~
 * User scripts can make many tasks easier. Look at the Gadgets tab of my preferences; check off the boxes for the scripts you want, and hit save!

--Pi zero (discuss • contribs) 10:21, 12 May 2020 (UTC)

title: User talk:Trickypr


text:
Oberon/ETH Oberon/WebConfig

  Configuration strings

Native Oberon uses configuration strings for setting low-level configuration options. These strings are (name, value) ASCII string pairs which are stored in a table on the boot device (diskette or hard disk). Permanent values for these strings are normally set during installation using the Install or FDInstall programs in Oberon-0. The strings are read by low-level modules in the system using the Kernel.GetConfig procedure. Higher-level modules should use the more flexible Oberon.Text and the Oberon.OpenScanner procedure for configuration information.

Sometimes it is necessary to temporarily override the setting of some configuration strings. The OBL bootstrap loader provides a facility for doing this:

When booting the system, before the message "Oberon Bootstrap Loader" appears, activate ScrollLock, or hold down any shift key. The "OBL>" prompt should appear and the current values of the configuration strings are displayed. There are some options at this prompt:

 * Enter "c" to continue booting.
 * Enter a string of the form "name=val" (without quotes) to set a new configuration string, or to modify an existing one. Strings can be deleted by setting them to empty values. Since version 2.23 the name strings are no longer case sensitive.
 * Enter "w" to write the new configuration to the configuration table on the boot diskette or hard disk.
 * Anything else will result in a short help display.

The DOS-based boot loader, noboot.exe, uses a DOS file for the configuration information. The latest version of the boot loader also supports the ScrollLock or shift key method of changing the configuration strings. Instead of a built-in editor, it invokes any DOS editor, using the command line specified by the EDITOR environment variable (default "edit"). When invoking the editor, noboot.exe appends the name of the configuration file to the command line. Configuration string definitions The following are the configuration strings currently defined (note the version numbers displayed below; some strings are only defined for some versions of the system).

Display drivers

 * "Display": Defines the prefix string used when loading Display.Obj. Common values are "VGA.", "W32.", "ET4000.", "S3C805." and "S3C924.". Used in the module Modules.
 * "Init": For display mode initialisation. A list of 8-bit hexadecimal numbers (up to 75 bytes) with no spaces in between. This string is interpreted at boot time, when the processor is still in 16-bit mode. The values are interpreted as machine code and executed. This is a powerful (if crude) way to set the display mode by setting up registers, writing to the low-memory setup area, and doing BIOS calls. Used in boot loader (since version 2.06). As a convenience when tracing installation problems, setting Init=9090 will implicitly set Display="Empty." and TraceBPS="-1" (in modules Kernel and Modules since version 2.3.4).
 * "DWidth": Sets the screen width. Valid values are 320, 640, 800, 1024 and 1280. The screen must be set into a compatible mode using Video. Used in most display drivers.
 * "DHeight": Sets the screen height. Valid values are 200, 480, 600, 768 and 1024. The screen must be set into a compatible mode using Video. Used in most display drivers.
 * "DDepth": Sets the screen depth. Valid values are 8, 16 and 32 (depending on driver). Used in truecolor display drivers.
 * "DMem": Sets the amount of display memory. Valid values are 1024, 2048 etc. Used in most display drivers.
 * "DRefresh": Sets the refresh rate (default 80). Used in Permedia 2 driver.
 * "DReset": If # 0, reset the card at startup. Used in Permedia 2 driver.

Input drivers

 * "PS2": Sets detection of PS/2 style mouse. Valid values are "0" and "1". If set to "0", detection of the PS/2 mouse will not be attempted. Used in module ConfigMouse (after version 2.3.7).
 * "Keyboard": Defines the keyboard type. Valid values are "US" for the US 101-key keyboard, or a file name to load a specific keyboard table file. Note that the Oberon fonts do not contain all keys printed on the keyboard, so some keys are not available. Used in module Input.
 * "NumLock": Set startup state of NumLock. Default value is "1". Set to "0" to disable NumLock on startup. Used in module Input (from version 2.2.7).
 * "MT" : Defines the type of mouse protocol used. Options are PS2, LM1, LM2, LM3, MS1, MS2, MS3, MS4, MSM, MSI (respectively PS/2-built-in, Logitech 1-3, Mouse Systems Corp 1-4, Microsoft 2-button, Microsoft IntelliMouse serial). This setting overrides the setting of MouseType. Used in module Input (from version 2.3.0).
 * "MouseType": Defines the type of mouse protocol used. Valid values are the numbers from 0 to 6, with the following meaning: 0=Microsoft Mouse protocol, 1=Mouse Systems protocol 1, 2=Logitech MMseries protocol, 3=Logitech protocol (old), 4=Mouse Systems Protocol 2, 5=Logitech MouseMan/TrackMan (new), 6=PS/2 mouse on auxillary port, 7=Mouse Systems Protocol 3, 8 = Mouse Systems Protocol 4. Mouse types 0 to 5 and 7 to 8 are all for mice on the serial port. Used in module Input. Types 7 & 8 introduced in version 2.2.9.
 * "MP": Shorter, overriding, name for MousePort. Used in module Input (from version 2.3.0).
 * "MousePort": For serial mice, defines to which port the mouse is connected. Valid values are 1 and 2 for the first and second serial port. Not required for the PS/2 mice. Used in module Input.
 * "Buttons": Defines how many buttons are available on the mouse. If this value is 2, the Ctrl key on the keyboard will emulate the mouse middle button. If the value is 3, the Ctrl key will have only its usual function. Since version 2.2.7: Values -2 or -3 will also use the Ctrl key, in addition to the actual middle button state (useful on laptops with a two-button and a three-button mouse). Since version 2.3.0: Value -3 is the default, and will now switch to value 3 as soon as a real mouse middle button is seen. Used in module Input. Alias "MB" since version 2.3.4.
 * "MouseMap": Rearranges mouse buttons. Value is exactly three digits, with each digit from 0-2. Defines the bit values returned by Input.Mouse in the following way: MR=digit0, MM=digit1, ML=digit2. Default value is "012". Set to "210" for left-handed use, or "021" for Logitech cordless mouse. Used in module Input (from version 2.2.7). Alias "MM" from version 2.3.4.
 * "Threshold": Defines when mouse speedup is activated. If the mouse is moved faster than this value (in pixels per mouse event), the cursor is speeded up or slowed down according to the value of "Speedup".The default threshold value is 5. Set it to 9999 to disable speedup. Used in module Input (from version 2.06).
 * "Speedup": Defines mouse speedup value. If the mouse is moved faster than the threshold, the cursor moves at "speedup/10" times the rate of the mouse. I.e. if the speedup value is 10, the cursor moves at the same speed as the mouse, and if it is 15 (the default), the cursor moves 1.5 times as fast as the mouse. Used in module Input (from version 2.06).
 * "EscCompat": ESC key compatibility option. Valid values are "1" for yes (default) and "0" for no. If yes, the ESC key will be interpreted as neutralise, as in other Oberon distributions. The ESC character can be generated in this mode using F3, Shift-ESC or the Alt-keycode technique. Used in module Input (from version 2.07).

File system and disk driver

 * "FileSystem": Defines the file system location for the FAT-based file system. If empty, a native partition is used. Used in Disk and InstDisk (in Oberon-0). Since version 2.2.8 this is called "FileSystem" in module InstDisk, and "DiskFile" in module Disk.
 * "Disk0": (IDEDisk only, not ATADisk!) Defines the parameters for hard disk 0. The value is three or six ","-separated integers. The first three integers define the number of cylinders (1-65535), heads (1-16) and sectors per track (1-63) respectively. For IDE disks the actual values are not that important, but the product of these three numbers divided by two should be equal to or less than the size of the disk in kilobytes. To avoid booting problems when sharing the disk with other operating systems, the values should be the same as the values used by the BIOS. If six integers are specified, the last three define the write precompensation value (normally 65535) and overriding values for the number of cylinders and number of heads returned in the Disk.GetParams call. These values are only used in exceptional cases when sharing a large disk with other operating systems. "Disk1" is the same as "Disk0", but for drive 1. Used in module IDE.Disk and IDE.InstDisk (in Oberon-0). From version 2.22 onwards, it is possible to specify "auto" as the value. This autodetects the parameters of the disk by reading the partition table. This is only useful if the disk is already partitioned. Otherwise, it is possible to specify only the size of the disk in Mb by specifying the value following directly by the letters "Mb".
 * "IDE": Defines the parameters for the IDE disk driver. Default value 14,1F0H,3F6H. First value is IRQ, second the control port and third the register port. Other common value 15,170H,376H. Used in module Disk and InstDisk (from version 2.21) and also ATADisk (from version 2.3.0). ATADisk also supports IDE1, IDE2, IDE3 and IDE4 for up to four controllers (after version 2.3.0).
 * "ATABM": If set to "0", the ATADisk driver does not attempt to detect bus-mastering capabilities. Used in module ATADisk (after version 2.3.0).
 * "SingleBlocks": If set to "1", IDE disk driver only reads and writes only one disk block at a time. Used in module Disk and InstDisk (from version 2.2.7).
 * "AHA1520": Defines parameters for AHA1520 SCSI disk driver. Value is 6 ","-separated numerical values: irq (11), portbase (340H), hostid (7), bios (DC000H), parity (0), disconnect (0). Default values indicated in parenthesis, hex values are suffixed with "H". Used in module AHA1520 (from version 2.25).
 * "DiskCache": default 100. Size of disk cache in 2k sectors. 100 gives good cache performance and takes about 200k of memory. A size of 0 disables caching. System.State Disk may be used to look at cache performance. Look at variables Creads, Cwrites, Creadhits and Cwritehits. Used in module Disk (from version 2.2). Since version 2.2.7 a second parameter ("i" or "p") may be specified separated with a comma from the size. "i" specifies a "write-in" cache, i.e. all writes are only stored in the cache, and not on disk. "p" specifies a "write-in-primed" cache, which is similar to a write-in cache, but at boot time the complete disk is read into the cache (that must be big enough) and then no further reads or writes are made to the disk.
 * "PartType": Defines the partition type for Native Oberon. Default 79. Values from 70-79 should be used. Used in module Disk and InstDisk (in Oberon-0, before 01.12.00).
 * "DiskGC": 10-100, default 10. Defines whether disk garbage collection should take place at startup. If less than x% of the disk is available, perform garbage collection. If less than a megabyte is available, or if the system was not shut down cleanly, GC is performed in any case. Used in module FileDir (from version 2.07).
 * "RamDiskSize": default (min) 400. Size of ram disk used in Oberon-0. Used in module Ram.Disk (from version 2.2 till version 2.2.8). Used again in module OFSBoot0, with default 1024 2k blocks (from 28.03.00).
 * "Prefix": Defines the default file prefix. Used when bootstrapping a new system.
 * "Diskette0": Defines the type of diskette drive 0. Valid values are 720, 1440 and 2880 for 720k, 1.44M and 2.88M drives respectively. Can be used to override the automatic checking, if it does not work on your hardware. "Diskette1" is the same, but for drive 1. Used in module Diskette0 (available from version 2.05).
 * "Archive": Defines the name of a .tgz archive to be unpacked into the RAM volume by Oberon-0. Used in OFSBoot0 (since 28.03.00).
 * "BootVol": Specifies the boot volume. Used in module OFSBoot (since 20.03.00 version).
 * "SCSIDebug": Trace flag bits. TraceSense = 01H and TraceDetection = 02H (since 03.05.00).

Memory management

 * "StackSize": Defines how many bytes are allocated for the stack. The default value is 131072, i.e. 128k. Used in module Kernel.
 * "DMASize": Defines how many bytes are available for allocation with Kernel.NewDMA. The default value is 18k (4800H). Used in module Kernel (from version 2.07).
 * "MapAdr#" and "MapLen#": Define range of physical addresses to map into the virtual address space. For experimental use. # is a number from 0 to 9. Addresses can be specified in hex using a "H" postfix. Used in Kernel module (from version 2.2).
 * "MapVesa": Map a special range of physical addresses into the virtual address space. Specifically for the Vesa 2.0 linear framebuffer display driver. If set to "1", will map 4Mb at DX:CX. DX:CX is the value of the DX and CX registers after the display "Init" string has been executed by the bootstrap loader. Used in Kernel module (from version 2.2).
 * "=0" and "=1": For VESA display initialization. Returns a 32-bit value encoded as a hex number with a "H" postfix. The value returned is BX:AX or DX:CX respectively. These are the values of the specified registers after the display "Init" string has been executed by the bootstrap loader. Used in Vesa 2.0 display module (from version 2.2).
 * "PageHeap": Number of low memory kilobytes to reserve for page heap (default 16). Used by MapPhysical to allocate page tables. Every 4Mb area mapped requires one 4k page. Used in Kernel module (after version 2.2.9).
 * "ExtMemSize": Number of megabytes of extended memory available (overrides automatic detection). Used in Kernel module (after version 2.2.9).

Compatibility

 * "CPU": Override processor detection. Can be set to "3", "4" or "5" to indicate a 386, 486 or Pentium respectively. Any other value will cause an autodetect to be performed. Used in Kernel module (from version 2.07).
 * "APM": Override Automatic Power Management (APM) detection. Can be set to "0" to disable APM detection. Used in Kernel module (from version 2.2).
 * "Copro": Override coprocessor detection. If set to "1", coprocessor is always used, and if set to "0", the emulator is always used, regardless if a coprocessor is present or not. Used in Kernel module (from version 2.06).
 * "ClockMode": Configure how the real-time clock is read. Default mode "0" means the RT clock is programmed to generate 1s interrupts. Mode "1" means the clock is polled, which is about 40 times slower. This mode will also be used automatically when no clock interrupt is detected within 3 seconds during startup. Used in Kernel module (from version 2.2.10).

Customization

 * "FontConv": If set to "0", the Syntax font will not be mapped to the Oberon font automatically. Used in module Objects until version 2.2.7 and module Fonts afterwards.
 * "Color": If set to "0", the basic system will come up in black & white. May be useful on old PCs without colour screens. Note that only the basic system will be in black & white. Gadgets will still be in colour.
 * "PowerSave": Set to "0" to disable HLT instructions in the Oberon idle loop. HLT instructions are executed by default to save power. Used in module Oberon (from version 2.2.7) and module Kernel (after version 2.2.9).

Tracing

 * "TracePort": This value is very useful to device driver writers. It can be used to send the output of the five Kernel.Write procedures (WriteString, WriteChar, WriteInt, WriteHex, WriteMemory) to a serial port. By connecting a terminal or serial printer to the port, trace output (even from interrupt handlers) can be viewed. Valid values are 1 and 2 for the first and second serial port. Used in module Kernel.
 * "TraceBPS": This value defines the speed of the serial connection set up with TracePort. Common values are 9600 or 19200. Setting this to -1 will cause the trace output to be sent to the screen memory. The screen must be in a 80x25 text mode for this to be visible (e.g. Init=90). Used in module Kernel.
 * "TracePrinter": Set to a number from 1 to 3 to send trace output to printer port n (1..3), as initialized by the BIOS. If n is 0, no printer tracing is performed (the default). If n is another number, that number is used as the base address for the printer port. Used in module Kernel (from 25.04.00).
 * "TraceSize": Size of Kernel.GetLog trace buffer in bytes (default 2048). Used in module Kernel (after version 2.3.7b).
 * "TraceDiskette": If set to "1", the diskette driver in the Diskette0 module will output some trace information. This may be used to find problems with the diskette driver.
 * "TraceHeap": The integer value is interpreted bitwise as flags to switch on various heap tracing statements. The actual flags may differ from release to release. First used in Kernel in version 2.05.
 * "TraceModules": If set to "1", trace module names and addresses as they are loaded. Used in module Modules (from version 2.21).
 * "ModExt": Default object file extension. Used in module Modules (from version 2.3.3).
 * "Beeps": If set to "0", morse code beeps during a kernel trap are disabled. Used in module Kernel (from version 2.3.0).

Obsolete

 * "Video": For display mode initialisation (obsoleted by the "Init" string since version 2.06). A list of ","-separated hexadecimal numbers (up to 16 digits each, i.e. 64 bits). This string is interpreted at boot time, when the processor is still in 16-bit mode. An INT 10H BIOS call is executed for every number specified. The registers AX, BX, CX and DX are set up according to the number specified. AX is set from the value of bits 0-15, BX from bits 16-31, CX from bits 32-47 and DX from bits 48 to 63. Example: "Video=12,3F001001" will execute two INT 10H calls. The first with AX=12H, BX=0, CX=0, DX=0 and the second with AX=3F00H, BX=1001H, CX=0, DX=0. Used in the bootstrap loader to initialise the display card for Display modules while the video BIOS is still available (16-bit mode).
 * "DiskIRQ": Defines the IRQ for the IDE disk driver. Default value 14. Used in module Disk and InstDisk (from version 2.07, replaced by IDE from version 2.21).
 * "DiskCtrl": Defines the control port for the IDE disk driver. Default value 01F0H. Used in module Disk and InstDisk (from version 2.07, replaced by IDE from version 2.21).
 * "DiskReg": Defines the register port for the IDE disk driver. Default value 03F6H. Used in module Disk and InstDisk (from version 2.07, replaced by IDE from version 2.21).
 * "AHA1520Base": Defines port base address for Adaptec 1520 controller. Default value 340H. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
 * "AHA1520BIOS": Defines bios address for Adaptec 1520 controller. Default value 0DC000H. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
 * "AHA1520IRQ": Defines irq for Adaptec 1520 controller. Default value 0BH. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
 * "AHA1520HostID": Defines host ID for Adaptec 1520 controller. Default value 7. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
 * "AHA1520Parity": Defines if Adaptec 1520 controller does parity checking. Default value 0. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).
 * "AHA1520Discon": Defines if Adaptec 1520 controller can do disconnect. Default value 0. Used in module AHA1520 (from version 2.1, replaced by AHA1520 from version 2.25).

[Top]

''26 Aug 2001 - Copyright © 2003 ETH Zürich. All rights reserved.''

E-Mail: oberon-web at inf.ethz.ch [expired]

Homepage: http://www.ethoberon.ethz.ch [expired]

title: Oberon/ETH Oberon/WebConfig


text:
Oberon/ETH Oberon/InitStrings

 Init Configuration Strings Q.: What is the meaning of the line such as Init="b8024fbb1441cd10b8014fb91401cd10268b4d28268b552a" which can be seen along with other configuration strings in the early stage of booting?

A.: Really not so daunting. The string is machine code which is interpreted when the processor is in real mode before switching to protected mode, V86 mode or long mode. This is a simple and direct means to configure the display by setting up registers, writing to the low-memory setup area, and doing BIOS calls.

When the system is installed with Oberon0, an Init string is provided by Config.Mod. Then whenever the system is started, the boot loader allows the user to change the string.

To understand a specific string, apply a disassembler. Then google to understand what is done with the video processor. Specifications for VESA 2.0 and VESA 3.0 are available as PDF files.

Begin with the simple case, Init="b81200cd10". Here are three methods to disassemble the Init string.

1) You can use this web-based disassembler online: https://www.onlinedisassembler.com/odaweb/. For "Arch" choose "i8086" (the processor is in real mode) and paste the hex bytes of the Init string into the window below the platform setting. On the right hand side find the disassembled code. .data:00000000 b81200      mov $0x12,%ax .data:00000003 cd10        int $0x10

2) We want a file Init.o containing these bytes. An obvious if not efficient method is to use Edit or ET to put any 5 characters in Init.o. Then Hex.Open Init.o, replace the characters with B8 12 00 CD 10 and Store. Move Init.o to a Linux system. There apply objdump.

objdump -b binary -m i8086 -D Init.o Init.o:    file format binary Disassembly of section .data: 0000000000000000 <.data>: 0:  b8 12 00                mov    $0x12,%ax 3:  cd 10                   int    $0x10

3) Kees C. suggests the libdisasm x86dis tool.

$ echo -e '\xb8\x12\x00\xcd\x10' | x86dis -r 0 5 -s att 00000000 B8 12 00            mov     $0x0012, %ax 00000003 CD 10               int     $0x10

Each method can be applied to any of the strings.

title: Oberon/ETH Oberon/InitStrings


text:
Create Vampires/Scientific Evidence For Vampires

Scientific Evidence For Vampires
Are there people, Scientist, who argue for the actual existence of vampires? Is there evidence that supports their claims? Online, many readers can access information about  Porphyria , also known as the "vampire disease." From tales of people living with, and finding treatments for their "vampire disease," to horrific stories told about actual people who became victims of grave-robbers, people who were exposed to a unknown drug that left them in coma-like states of unconsciousness, stiff and unable to respond to their close relatives. These grave tales generate fear in people, and lingering doubt in the ability of trained Medical professionals who, according to stories, seem to not know how to properly use a mirror to determine if a person is breathing, and thus alive and unconscious, or is non-breathing, thus dead, having taken their final breath, having met their final hour. Although Scientific evidence for people with both mental, and physical "vampire-related" diseases accumulated rapidly in the early 1980s, the Scientific classification for particular drugs that cause stiff, deep unconscious states, are less know and currently not popular in the public domain. Link: Create_Vampires/Scientific_Evidence_Against_Vampirism


text:
Talk:Create Vampires/Scientific Evidence For Vampires

Writers can help contribute to this page by adding Scientific, or Medical information that supports claims of "vampire-ism" [Vam-Pai-Yer-Ism].Peyton09 (discuss • contribs) 16:56, 12 May 2020 (UTC)


text:
User:Epic Blessing

<!DOCTYPE html> Blessing Mbakile

title: User:Epic Blessing


text:
Fijian/Adjectives

In Fijian, adjectives go after the noun. Some diferences
 * singular
 * Big city : na siti levu
 * New chair : a idabedabe vou
 * Far island : na yanuyanu yawa
 * good article : na yavu vina'a
 * plural
 * Big cities : na siti lelevu
 * New chairs : a idabedabe vovou
 * Far islands : na yanuyanu yawa
 * good articles : na yavu vivina'a
 * White sand : a nu'u vulavula
 * White horse : a ose vula

Formations of adjectives
VIA. SAU.
 * Tired =  viamoce
 * want =  via
 * to sleep =  moce
 * expensive =  sau levu

Sentences with adjectives.
 * I'm tired : au sa viamoce
 * I'm hungry : au sa viakana
 * I'm thirsty : au sa viagunu
 * I'm cold : au sa batabata
 * I'm Hot : au sa katakata
 * I have a beautiful boat : au sa dua na waqa totoka

title: Fijian/Adjectives


text:
Fijian/More phrases

 * I can go : au rawa ni lako
 * Pass the broom : mai na sasa
 * Blessings to you all : dou kalougata tiko
 * There another challengers : qori dua tale na bolebole
 * See you again after the lockdown : Sota tale ni oti na vakatatabu
 * I'm out of work : au sa Sega ni cakacaka
 * Believe that better days are coming : vakabauta ni na yaco mai na siga vinaka
 * Let us come together in love : me nodatou vata na loloma

title: Fijian/More phrases


text:
Fijian/Verbs

 * go – la'o
 * Leave – biu-ti
 * Pass – mai
 * Believe – vakabauta
 * Remember – nanuma
 * Be safe – taqomaki
 * Try – tovolea
 * Can – rawa
 * To be born – sucu
 * Understand – macala

Past
Ā : Past marker.

title: Fijian/Verbs


text:
User talk:24.200.157.42

In that game, Silver was a human player who was likely male. Probably doesn't matter, though. Belteshazzar (discuss • contribs) 04:48, 13 May 2020 (UTC)
 * This is my IP, I forgot to log in when editing. Thank you for the feedback. AA01blue (discuss • contribs) 15:45, 13 May 2020 (UTC)

title: User talk:24.200.157.42


text:
Suicide/Diseases

It is possible to seek for cancer, Bugchasing, malignancy, liver disease, kidney disease, digestive disease, Parkinson's disease, participate in a Corona Party, cirrhosis. See also: cardiotoxic, nephrotoxic, hepatotoxic for specific organs

title: Suicide/Diseases


text:
Fijian/Possessives

Singular

 *  ~First person~
 * My village is... : na no qu koro o...
 * My mother is... : na tina qu ko...
 * My father is... : na yaca qu ko...
 * My mothers village is... :  Au vasu i...
 *  ~Second person~
 * Your Language : na no mu vosa
 * Your wife : na wati mu
 * your family : na no mu matavuvale
 *  ~third person~
 * His car : a motoka na
 * Her t-shirt : a siqeleti na

Plural

 * our city : na siti imami
 * Your keys : a ki muni
 * their bottle : a tavaya dra

Possesive participle

 * The day of The born : na siga ni sucu
 * The house of the coocking : a vale ni kuro
 * The village of learn : koro ni vuli

title: Fijian/Possessives


text:
Fijian/Vocabulary

Family

 * Grandfather - tutu
 * Grandmother - bubu
 * Father - Tata
 * Mother - nana
 * son - tagane
 * Daughter - yalewa
 * Family - vuvale
 * Respect - vakarokoroko

Fruits

 * Papaya - weleti
 * Apple - yapolo
 * Coconut - niu

Vegetables

 * Carrot - kareti
 * Potato - kumala
 * Coconut- niu

Animals

 * Horse - ose
 * Cock - toa
 * Cat - pusi

Clothes

 * T-shirt - siqeleti
 * Shoes - ivā'vā
 * Pants - *tarausese*

Objects

 * Broom - sasa
 * Keys - ki
 * Bottle - tavaya
 * Ball - polo
 * Tolls - iyaya
 * Paper - pepa
 * Flag - kuila
 * Click - gauna
 * Chair - '''idabedabe
 * Cup - bilo
 * Map - mape
 * Telephone - talevoni
 * Box - kato
 * Passport - vola ni curu vanua
 * Door - *katuba*
 * Ceiling - *siligi*
 * Scissors *ikotikoti*

Languages

 * Fijian - na vosa vakaviti
 * English - vakavalagi
 * German - heremani
 * Dutch - horana
 * French - farani
 * Italian - itariano
 * Swedish - huitene

Others

 * House - vale
 * Window - lalaga
 * Library - vale ni vola
 * Farm - i teitei
 * Weather - draki
 * Color - roka
 * Bus - basi
 * Ladies' toilet - valelailai ni marama
 * Men's toilet - valelailai ni turaga
 * Car - motoka
 * Sand - nu'u
 * Movie - yaloyalo yavala
 * Train - sitima ni vanua
 * Airport - rara ni waqavuka
 * Store - Si toa
 * School - koro ni vuli

title: Fijian/Vocabulary


text:
Fijian/Sentences

 * Let us come together in love : me nodatou vata na loloma
 * Believe that better days are comming : vakabauta ni na yaco mai na siga vinaka
 * I'm out of work : au sa sega ni cakacaka
 * See you again after the lockdown : Sota tale ni oti na vakatatabu
 * Our clan is meeting tomorrow : na vei vosaki ni mataqali ni mataka
 * There another challengers : qori dua tale na bolebole
 * Pass the broom : mai na sasa
 * Blessings to you all : dou kolougata tiko
 * My stomach is empty : sa Lala na kete
 * I'm only joking : au veiwali walega
 * I'm returning to my farm : au sa lesu tale kina noqu i teitei
 * Let's rest it's been a long day : Me da vakacegu ni sa oti e dua na siga balavu
 * Please come back : yalovinaka lesu mai
 * Who are you? : O cei beka o kemuni
 * I don't know your names : au Sega ni kila na yacamuni
 * I can go or can i go? : Au rawa ni lako
 * Please say that again more slowly : tukuna tale mada vakamalua
 * I am going to watch the game : au lei sara qito
 * Have a great day : Vanuinui vinaka kina siga nikua
 * Have a great week : Vanuinui vinaka na Loma ni macawa

title: Fijian/Sentences


text:
Tahitian/Vocabulario

House = fare

Bank = fare Moni

School = fare ha'api'ira'a

Store = fare toa

title: Tahitian/Vocabulario


text:
Tahitian/Prepositions

 * In - i roto
 * With - ma
 * Below or under - raro
 * To - ia
 * on to - ni'a
 * To - mai

title: Tahitian/Prepositions


text:
Tahitian/Conjunctions

 * And - ma
 * Of - no
 * Of - o
 * - i

title: Tahitian/Conjunctions


text:
Tahitian/Vocabulary

Family

 * The Family : 'utuāfare fēti'i
 * Ancestor : tupuna
 * Grandfather : pāpā rū'au
 * Grandmother : māmā rū'au
 * Father : metua tāne
 * Mother : metua vāhine
 * Brother : tuāne tua'ana
 * sister : tuahine, teina
 * Sons : tamari'i
 * Son : tamaiti
 * Daughter : tamāhine
 * Aunt : pātea, māmā fēti'i
 * Uncle : pāino, pāpā fēti'i
 * Cousin : taea'e fēti'i
 * Nephew : iramutu

Foods

 * Egg : huero moa
 * Milk : ū
 * Bread : faraoa

Fruits

 * Mango - vī
 * Lemon - tāporo
 * Pineapple - painapo
 * Papaya - 'i'ita
 * Dragón fruit - matateni

Animals

 * Whale = tohora
 * Jellyfish = pa'ipa'i
 * Cat = pī'ifare, mīmī.
 * Dog = 'ūrī
 * Lizard = mo'o
 * Sheep = māmoe
 * Rabbit = rāpiti
 * Cock = Moa
 * Tiger = tāita
 * Ox = pua'atoro

Objects

 * Pearl - Poe
 * Book - puta
 * Chair - pārahira'a
 * Table - 'aira'a mā'a
 * Pillow - tūru'a
 * Bed - ro'i
 * Lamp - mōrī
 * Window - ha'amaramarama
 * Room - piha ta'oto
 * Kitchen - Fare tūtu
 * Fork - pātia mā'a
 * Glass - hāpaina
 * Plate - merēti
 * Knife - tipi
 * Spoon - punu, tāipu
 * Shield - taipe
 * Flag - reva

Jobs

 * Teacher - 'orometua
 * Nurse - utūtu mā'i
 * Farmer - ta'ata fa'a'apu
 * Doctor - taote

Forms

 * Square : 'ōrapa
 * Circle : menemene
 * Rectangle : 'ōrapa maha toa
 * Triangle : porotoru

Languages

 * English : marite
 * Spanish : paniora
 * German : heremani
 * Italian : 'itāriana
 * French : farāni
 * Chinese : tinitō
 * Japanese : tāpōnē
 * Fijian : vītī

title: Tahitian/Vocabulary


text:
Tahitian/Articles

Definite article

 *  Singular
 * The man –  te tane
 * The woman –  te vahine
 * The flower –  te tiare
 *  Plural
 * The men –  te mau tane
 * The women –  te mau vahine
 * The flowers –  te mau tiare

Indefinite article

 *  Singular
 * A mango –  e vii
 * A gift –  e taoa
 * A cloud –  e ata
 *  Plural
 * Mango es – ''' e mau vii
 * Gift s –  e mau taoa
 * Cloud s –  e mau ata

title: Tahitian/Articles


text:
Tahitian/Sentences

 * what's the day Today? : E aha teie mahana?
 * Today is Tuesday : i teie mahana e mahana piti ia
 * I love the dance tahitian : ua au vau i te ori tahiti
 * What is his name? : 'o vai too na i'oa
 * His name is ... : 'o ... too na i'oa
 * Good weekend! : 'ia maita'i te hope'ara'a hepetoma!
 * Give the date : hōro'a i te tai'o mahana.
 * Give your date of birth : hōro'a i tō 'oe mahana fānaura'a
 * Sunday march 15, 2020 : Tapati 'ahuru ma pae nō māti piti tauatini 'e piti 'ahuru
 * I was born on may 21, 1985 : 'ua fānauhia vau i te piti 'ahuru ma dahi nō mē i te matahiti tauatini iva hānere va'u 'ahuru ma pae

title: Tahitian/Sentences


text:
Tahitian/Verbs

 * Love – here
 * Accompany – 'ape'e
 * Accelerate – ha' apuai
 * Clap – popo
 * Bath – hopu
 * Buy – ho'o mai

Progressive
The modality represents to the Present continuos. Uses the marker TĒ preceding the verb, followed of the marker NEI.

Past
Aspect grammatical that expresses a finished action and uses the marker 'UA.

Future
This modality expresses an unfinished action. The marker that precedes to the verb is E.

Others aspects

 *  Imperative
 * Give me your hand! :  'a toro mai to rima!
 *  Negative imperative
 * Do not eat! :  'eiaha e 'amu!

title: Tahitian/Verbs


text:
Tahitian/Phrases

 * I love you : Ua here au ia 'oe
 * I am hungry : ua po'ia roa vau
 * Forbidden to eat : 'eiaha e 'amu
 * Where come you from? : No te hea fenua mai 'oe?
 * Where are you from? : nō hea mai 'oe?
 * I'm from Germany : Nō te fenua puritia vau
 * How old are you? : E hia matahiti to 'oe
 * I'm 18 years old : e 'ahuru ma va'u matahiti to 'u
 * Enjoy your meal! : Taamaa' a maita'i!
 * Do you have a question? : e uira'a tā 'oe?

title: Tahitian/Phrases


text:
Tahitian/Words

 * Directions
 * Up - ni'a
 * Down - raro
 * Rigth - 'atai
 * Left - 'au

title: Tahitian/Words


text:
Tahitian/Adverbs

 * Inside – roto
 * Outside – rapae
 * Very – roa

title: Tahitian/Adverbs


text:
Invertebrate Zoology/Annelids

Phylum - Annelid

The annelids also known as the ringed worms or segmented worms, are a large phylum, with over 22,000 extant species including rag worms, earthworms, and leeches. The species exist in and have adapted to various ecologies – some in marine environments as distinct as tidal zones and hydrothermal vents, others in fresh water, and yet others in moist terrestrial environments. The annelids are bilaterally symmetrical, triploblastic, coelomate, invertebrate organisms. They also have parapodia for locomotion. Most textbooks still use the traditional division into polychaetes (almost all marine), oligochaetes (which include earthworms) and leech-like species. Cladistic research since 1997 has radically changed this scheme, viewing leeches as a sub-group of oligochaetes and oligochaetes as a sub-group of polychaetes. In addition, the Pogonophora, Echiura and Sipuncula, previously regarded as separate phyla, are now regarded as sub-groups of polychaetes. Annelids are considered members of the Lophotrochozoa, a "super-phylum" of protostomes that also includes molluscs, brachiopods, and nemerteans.

title: Invertebrate Zoology/Annelids


text:
User talk:Mdmafujahmed

hi me Mdmafujahmed from Bangladesh

title: User talk:Mdmafujahmed


text:
A-level Mathematics/CIE/Pure Mathematics 1

 * /Quadratics/
 * /Functions/
 * /Coordinate Geometry/
 * /Circular Measure/
 * /Trigonometry/
 * /Series/
 * /Differentiation/
 * /Integration/


text:
A-level Mathematics/CIE/Pure Mathematics 1/Quadratics

Completing the Square

Completing the square is a method of converting an expression of the form $$ax^2 + bx + c$$ into an expression of the form $$a(x-h)^2+k$$.

It relies on the fact that $$(x+p)^2 = x^2 + 2px + p^2$$.

First, we take the expression $$ax^2 + bx + c$$ and factor out $$a$$ to get $$a(x^2 + (b/a)x + (c/a))$$.

Then, we need to recognise that $$(x + (b/2a))^2 = x^2 + (b/a)x + (b^2 / 4a^2)$$

Examples
Suppose we need to convert $$x^2 + 4x + 3$$ to completed-square form.

Here, $$a$$ is 1, so we don't need to do anything to factor it out.

Next, we recognise that $$(x+2)^2 = x^2 + 4x + 4$$, and need to find this in the expression.

$$x^2 + 4x + 3 = x^2 + 4x + 4 - 1 = (x+2)^2 - 1$$

Thus, we have our answer: $$x^2 + 4x + 3 = (x+2)^2 - 1$$

The Discriminant

The discriminant is a value that we can use to determine how many real roots the quadratic function has. A real root is where the value of a quadratic expression is equal to zero.

The discriminant for an expression $$ax^2 + bx + c$$ is calculated $$\Delta = b^2 - 4ac$$.

If the discriminant is greater than zero, there are two separate real roots.

If the discriminant is equal to zero, there is one reapeated root.

If the discriminant is less than zero, there are no real roots.

Solving Quadratics
There are three main methods for solving a quadratic equation or inequality: factorising, completing the square, and using the quadratic formula.

Factorising

Factorisation is where we break the expression into its factors.

e.g. $$x^2 + 5x + 6$$ can be factorised as $$(x+2)(x+3)$$

Factorisation can be used to solve equations: if the product of two factors is equal to zero, that means that one of the factors has to be equal to zero.

e.g. Solve $$x^2 + x - 6 = 0$$

$$\begin{align} x^2 + x - 6 = (x+3)(x-2) = 0 \\ \therefore x+3 = 0 \quad or \quad x-2 = 0 \\ x = -3\ or\ 2 \end{align} $$

To factorise an expression with a coefficient attached to the $$x^2$$ term, simply divide out the coefficient

e.g. Solve $$3x^2 + 12x + 9 = 0$$

$$\begin{align} 3x^2 + 12x + 9 = 0 \\ x^2 + 4x + 3 = 0 & \quad (\div 3) \\ (x+3)(x+1) = 0 \\ x = \{-3,-1\} & \quad \leftarrow \text{Set notation can be used to represent multiple solutions} \end{align}$$

However, not all expressions can be factorised.

Completing the Square
Completing the square is where we convert a quadratic equation from the form $$ax^2 + bx + c$$ to the form $$a(x-h)^2 + k$$. This makes it easier to solve equations, and it works in all cases, unlike factorisation.

e.g. Solve $$x^2 + 12x - 9 = 0$$

$$\begin{align} x^2 + 12x - 9 = 0 \\ (x + 6)^2 = x^2 + 12x + 36 \\ (x + 6)^2 - 36 - 9 = 0 \\ (x + 6)^2 = 45 \\ x + 6 = \sqrt{45} \\ x = -6 \pm 3\sqrt{5} \end{align}$$

Quardatic Formula
The quadratic formula states that:

$$ax^2 + bx + c \iff x = \frac{-b \pm \sqrt{b^2-4ac}}{2a} \quad (a \ne 0)$$

e.g. Solve $$6x^2 + x - 9 = 0$$

$$\begin{align} 6x^2 + x - 9 = 0 \\ x = \frac{-1 \pm \sqrt{1^2-4(6)(-9)}}{2(6)} \\ x = \frac{-1 \pm \sqrt{1^2+216}}{12} \\ x = (-1+\sqrt{217})/12\ or\ (-1-\sqrt{217})/12 \end{align} $$

You may have noticed that the part under the square root is the discriminant. The reason this makes sense is that if the discriminant is negative, the square root cannot result in a real number, and thus there are no real roots. If the discriminant is zero, then $$x = -b/2a$$, so there is one repeated root. This leaves the case of when the discriminant is positive, resulting in two real roots.

Solving Simultaneous Equations
Sometimes we will need to solve simultaneous equations which involve both a linear and a quadratic equation. To solve them, we need to use the method of substitution.

e.g. Solve the simultaneous equations $$x + y = -1$$ and $$x^2 + y^2 = 25$$

$$ \begin{align} x + y = -1 \rightarrow &\ y = x - 1 \\ x^2 + y^2 = 25 \rightarrow &\ x^2 + (x-1)^2 = 25 \\ x^2 + x^2 - 2x + 1 = 25 \\ 2x^2 - 2x - 24 = 0 &\quad \text{Now complete the square}\\ x^2 - x - 12 = 0 \\ (x - \frac{1}{2})^2 = 12 + \frac{1}{4} \\ x - \frac{1}{2} = \sqrt{\frac{49}{4}} \\ x = \frac{1}{2} \pm \frac{7}{2} \\ x = -3\ or\ 4 \end{align} $$

Recognising Quadratics
Sometimes quadratics will be hidden in other forms. If you can make a substitution to turn an expression into a quadratic, you can then solve it as you would a quadratic.

e.g. Find the value of x in $$6x = 1 -\sqrt{x}$$

$$\begin{align} Let\ s = \sqrt{x} \\ 6s^2 = 1 - s \\ 6s^2 + s - 1 = 0 \\ s^2 + \frac{s}{6} - \frac{1}{6} = 0 \\ (s + \frac{1}{12})^2 = \frac{1}{6} + \frac{1}{144} \\ s + \frac{1}{12} = \sqrt{\frac{24}{144} + \frac{1}{144}} \\ s = \frac{-1}{12} \pm \sqrt{\frac{25}{144}} \\ s = \frac{-1}{12} \pm \frac{5}{12} \\ s = \frac{-1}{2}\ or\ \frac{1}{3} \\ \sqrt{x} = \frac{-1}{2}\ or\ \frac{1}{3} \\ x = \frac{1}{4}\ or\ \frac{1}{9} \end{align} $$


text:
A-level Mathematics/CIE

This book is about A-level Mathematics. It aims to follow the CIE Syllabus for A-level Mathmatics but is not endorsed by Cambridge International.

If any part of this book is unclear or even wrong then please post a comment on the discussion page or simply fix it yourself! In particular, please say if the book assumes any knowledge or skills which not all A-Level Mathematics students have.

Course Structure
This book is split into 6 parts:

 * /Pure Mathematics 1/
 * /Pure Mathematics 2/
 * /Pure Mathematics 3/
 * /Mechanics/
 * /Probability & Statistics 1/
 * /Probability & Statistics 2/

Each part is split into chapters, where each chapter covers the topics for that part.

Contributing
If you find an error or want to add your own knowledge to this book, make sure to follow this book's /Local Manual of Style/.

If you are confused by any part of this book, mention it in the discussion page for that part.

title: A-level Mathematics/CIE


text:
Selected Essays

This books is helpful for the students interested effective communication, development of clear and analytical writing skills that is required in general competitive examinations.

Constructive Writings: General Topics

 * 1) /An Ideal Student /
 * 2) /My Childhood Memories/
 * 3) /Role of Media/
 * 4) /The Role of Indian Cinema/
 * 5) /Climate Change/
 * 6) /Forest of India/
 * 7) /A Visit to a Historical place/
 * 8) /Agriculture in India/
 * 9) /Globalisation/
 * 10) /Communal Harmony/

title: Selected Essays


text:
Selected Essays/An Ideal Student

The word 'student' refers to 'a learner'. A person who wishes to acquire a certain kind of knowledge and wisdom or skills in a particular field or enhances their intellectual capabilities in general manner is a learner or a student. Thought, all of us remain students of the Great Master called Life forever, our life is so divided, that we spend around 15-20 years of the early part of our life in acquiring the necessary knowledge in order to lead a successful life later.

This calls for a systematic and organised system of education. Pupils under the ambit of this formal system of education spend a bulk of their childhood, adolescence and a part of their youth in acquiring all the pre-required knowledge needed to build up a successful career and thereby lead a successful life.

Thus, we see that a person for the first quarter of their life is foremost a student. Even in ancient times in our country, the life of a person was systematically divided into four parts called the Ashrams viz the Brahmacharya Ashrama, the Grihastha Ashrama, the Vanprastha Ashrama and the Sanyasa Ashrama.

The Brahmacharya Ashrama was the time when the child practised celibacy and acquired knowledge, wisdom and understanding at the feet of his Guru. Even in these Ashramas, the students were supposed to be disciplined and abide by the rules of their Gurus. These rules were same, for the members of the royal family as well as for others.

A person in order to acquire knowledge and gain wisdom should have certain qualities, capacities and abilities in oneself in order to be a good student. A person who has such capacities makes for a desirable and likeable student in the eyes of his teacher. An ideal student should first of all be punctual. One should know the value of time. Unless one realises how precious time is, one will not be able to master oneself. If one lacks this quality, time, the great power, will finally beat them and they will fail to achieve their goals. next, an ideal student should be obedient and should have an open mind. unless one follows the instructions of one's teacher and allows oneself to be corrected and reformed for betterment, a student will never be able to succeed in life.

A good student should be humble as well. If one is humble, only then one will be able to learn, be obedient and gain the knowledge and skills imparted by the teacher. Students are like raw clay in the hands of a teacher. They are like tender saplings which need to be grafted and groomed. This is possible only, if the clay is willing to be moulded in a desirable shape and the sapling is tender.

A good student should be responsible. Without having the capability to shoulder the responsibility regarding anything, a student will not be able to achieve anything worthwhile in life. Only a responsible person can carry forward the greater responsibility of being a good citizen, a good person or even for that matter shoulder the responsibility of a family. A good student should be persevering and consistent in their studies. A person who moves ahead continuously without being discouraged by failures and obstacles, succeeds in life. Along with having perseverance, a good student should be hard working. Hard work and consistency go hand in hand.

Moreover, a good student will never be selfish. A good student will be very helpful. Knowledge, it is said, increases only by sharing. An ideal student will always help their fellow students. They will be full of humility and will know no pride, conceit, vanity or selfishness. An ideal student will have a keen observation and a curious mind. Without these two, they will fail to acquire knowledge, wisdom and understanding. In fact, they are seeds of knowledge. Only a curious mind will seek new things and like to learn novel ideas as knowledge of new things can be acquired only by a keen observer.

In modern days, an ideal student is sometimes mockingly called a ‘book worm’ or a ‘teacher’s pet’. But instead is a person who aptly utilizes their time. They study while it is time to study and plays appropriately too for his physical development. One is never slave to one's senses. An ideal student could have the curiosity for modern gadgets like others. But they know how to avoid temptation and addiction. A school servers like a community and an ideal student would learn to be a successful member of it; thereby proving an assent to the institution and to the country.

Swami Vivekananda has inspired many generations not only in India but in the world as well. In one's lessons, one has elaborated on certain qualities that a person should have in order to be an ideal student. Some of them are: respect, love, self-discipline, self-control, faith, concentration, truthfulness, conviction, strength firm-determination etc. The teaching of Swami Vivekananda has inspired many legendary figures, thinkers and leaders. These intellectual capacities are not sufficient. A healthy mind resides in a healthy body. Thus, an ideal student has to be physically strong and fit in order to have a good concentration and to work hard. An ideal student therefore, keeps fit by exercising regularly. Exercise increases their capacity to concentrate, makes them disciplined and orderly.

And we all know a disciplined student is always successful. Finally, a good student is also respectful. One who knows no respect, knows no knowledge, is a maxim. One cannot progress without the blessings of his teachers and elders, which is earned only when one is respectful. These are but a few qualities of an ideal student which are beacons on the march towards attaining the eternal wisdom.

title: Selected Essays/An Ideal Student


text:
User:Freddie2016

I am new here

title: User:Freddie2016


text:
Odia/Greetings

Hellos
Let us get familiar with some Odia phrases and sentences regarding greeting other people and striking a conversation.

Requests
Now that we have got over with basic hellos let us learn how to make requests and thank people.

title: Odia/Greetings


text:
A-level Mathematics/CIE/Pure Mathematics 1/Functions

Function Notation
There are two main ways of describing a function: with parenthesis notaton, e.g. $$f(x) = x^2 - 1$$, or with mapping notation, e.g. $$f: x \mapsto x^2 - 1$$. These both describe what the function does.

Definitions

 * Function
 * A function is a mapping from an input set to an output set. For example, the function $$f(x) = 3x$$ maps the input $$x$$ to the output $$3x$$ by multiplying it by 3

 * Domain
 * The domain is the set of all valid inputs. e.g., the function $$f(x)=\frac{1}{x}$$ has the domain $$x \in \mathbb{R}, x \ne 0$$.

 * Range
 * The range is the set of all possible outputs. e.g., the function $$f(x)=x^2$$ has the range $$x \geq 0$$

 * One-to-one function
 * A one-to-one function is a function which maps each input to exactly one output, and each output corresponds to exactly one input. For instance, $$f(x)=x^2, x \in \mathbb{R}$$ is not a one-to-one function, but $$f(x)=x^2, x \geq 0$$ is a one-to-one function.

 * Inverse function
 * An inverse function is a function that does the opposite of another function. For example, the function $$f(x) = x + 5$$ has an inverse function $$f^{-1}(x) = x - 5$$.

 * Composition of functions
 * Composition of functions is where the output of one function is input into another function. For example: if $$f(x)=x^2$$ and $$g(x)=3x+5$$, the composed function $$fg(x) = (3x+5)^2$$ and the composed function $$gf(x)=3x^2 + 5$$. Note that for two arbitrary functions $$f(x)$$ and $$g(x)$$, the composed functions $$fg(x)$$ and $$gf(x)$$ are not equal except for some special cases.

Finding the Range

To find the range of a function, we need to find the highest and lowest values that the function can take.

Example 1
Find the range of $$f(x) = \frac{1}{x}, x \geq 1$$

The lowest value that $$x$$ can take is 1, so one bound of the range is $$f(x) = \frac{1}{1} = 1$$.

The highest value that $$x$$ can take is infinite, so the other bound of the range is the value that $$f(x)$$ approaches as $$x$$ goes to infinity, which is 0.

So the range of the function $$f(x)$$ is $$0 < f(x) \leq 1$$. This range can also be expressed in interval notation as $$f(x) \in (0,1]$$

Example 2
Find the range of $$g(x) = x^2 - x - 2, x \in \mathbb{R}$$

A quadratic function always has a turning point, known as its vertex. This determines its range. The vertex can be found by completing the square.

$$\begin{align} g(x)&=\ x^2 - x - 2 \\ &=\ (x - \frac{1}{2})^2 - \frac{1}{4} - 2 \\ &=\ (x - \frac{1}{2})^2 - \frac{9}{4} \end{align}$$

Completing the square provides the coordinates of the vertex, $$(\frac{1}{2},-\frac{9}{4})$$.

Since the vertex is the lowest point of this function, we can express the range as $$g(x) \geq -\frac{9}{4}$$, which can be expressed as $$g(x) \in [-\frac{9}{4},\infty)$$

Composing Functions
A composite function is a function which is created by taking the output of one function as the input of another function.

e.g. Find the composite function $$gf(x)$$ when $$f(x) = 3x + 5$$ and $$g(x) = 2x^2$$.

$$\begin{align} gf(x) &= g(f(x)) = g(3x+5) \\ &= 2(3x+5)^2 = 2(9x^2 + 30x + 25)\\ &= 18x^2 + 60x + 50 \end{align}$$

It is important to note that a composite function can only be created if the range of the inner function is within the domain of the outer function.

Inverse Functions
An inverse function is the reverse of a given function, such as how $$f(x) = x + 5$$ has the inverse $$f^{-1}(x) = x - 5$$.

However, not all functions have an inverse. Only one-to-one functions have an inverse.

Determining whether a function is one-to-one
The formal way of determining whether a function is one-to-one is to prove that $$f(x)=f(y) \implies x = y$$

e.g. Prove that $$f(x) = x^3$$ is one-to-one.

$$\begin{align} f(x) &= f(y) \\ x^3 &= y^3 \\ \sqrt[3]{x^3} &= \sqrt[3]{y^3} \\ x &= y \\ \therefore f(x)\text{ is one-to-one} \end{align}$$

Finding the inverse
To find the inverse of a function, substitute $$x$$ for $$f^{-1}(x)$$ in the function definition then rearrange the variables to make $$f^{-1}(x)$$ the subject of the formula.

e.g. Find the inverse of $$f(x) = (2x+3)^2 -4$$

$$\begin{align} f(f^{-1}(x)) = (2f^{-1}(x)+3)^2 -4 \\ x = (2f^{-1}(x)+3)^2 -4 \\ (2f^{-1}(x)+3)^2 = x - 4 \\ 2f^{-1}(x)+3 = \sqrt{x-4} \\ 2f^{-1}(x) = \sqrt{x-4}-3 \\ f^{-1}(x) = \frac{\sqrt{x-4}-3}{2} \end{align}$$

Graphing Inverse Functions

If you plot a function and its inverse on the same graph, it is apparent that the graph of the inverse is the same as the graph of the function reflected across the line $$y=x$$.

The reason for this is that the graph $$y = f^{-1}(x)$$ is equivalent to $$x = f(y)$$

Transforming Functions
A transformation of a function changes the position, size, or shape of the function's graph.

 * Translation
 * Translation changes the position of the function's graph. $$y = f(x) + a$$ can move the function vertically and $$y = f(x+a)$$ can move the function horizontally.

 * Scaling
 * Scaling is where the function changes in size. $$y = af(x)$$ changes the size vertically and $$y = f(ax)$$ changes the size horizontally. If $$a$$ is negative, the function will also be reflected.

 * Reflection
 * Reflection is where the function is mirrored across a given line. This can be achieved with $$y = a-f(x)$$ for vertical reflection and $$y = f(a-x)$$ for horizontal reflection.


text:
Create Vampires /Vam-Pai-Yer

How Do You Spell Vam-Pai-Yer?
Phonetically, English speakers pronounce vampire this way "vamp-pie-yer" [Vam-Pai-Yer], yet how do people around the world spell and pronounce vampires? Etymology: [word origin] A Wikipedian fluent in American-Spanish, wrote about the "etimologia" of the word as "...posiblemente a traves del 'vampyre' frances del 'vampir' aleman..." The Wikipedian may have derived the origin of the word, vampire, from the dictionary: Merrian-webster.com. Under entry: vampire, Etymology: French, from German 'vampir...' The popular Urban Dictionary [online] claims the source of "vampyre" is "...the old english way of spelling 'Vampire.'" New words derived from vampire are: vampiric, and vampirish. Create Vampires/Alternative Spelling

title: Create Vampires /Vam-Pai-Yer


text:
Create Vampires/Scientific Evidence Against Vampirism

Scientific Evidence Against Vampirism
Medicalization of a Myth The authors Winkler and Anderson, responding to a proposal suggested by David H. Dolphin, linking a disease named porphyria with vampirism the "medicalization of a myth."

The Origin Of A Myth, Or A New Medical Condition?
David Dolphin, sharing his original hypothesis, speculated in the mid-1980s that a disease known as porphyria maybe the root cause of vampirism and werewolf myths.

David Dolphin's proposal eventually sparked criticism and debate. A 1995 article in Postgraduate Medical Journal questioned the evidence Dolphin presented, while other observers questioned the quality of the information he shared on television, and at a talk conference.

The "Vampire Disease" It seems that the history of understanding, and classifying "vampirism" is long and lengthy. According to Kennedy, a major contributor to the article: The Myth of a Medical Explanation for Vampirism, the myth of vampirism has evolved, mutated, changed shape, yet stuck around "for millennia." C Porphyria has been called the "vampire disease" because of its similar nature to people considered vampires...at least that is the story some people claim. Today's popular vampire mythology draws on Slavic folklore, and 18th century stories. These stories commonly involved a recently declared deceased family member, who, upon exhumation, meaning when un-buried, had little signs of decomposer, and appeared to be "full of fresh blood." This may be a explanation for why people, called vampires, are also called "un-dead." The people of 19th century New England continued this train-of-thought, and according to The Myth Of A Medical Explanation For Vampirism, this type-of-thought influenced Carmilla [1871] and Dracula, [1897] novels featuring vampires that were "mobile," more underground "un-dead." Behaviors associated with vampirism, such as hallucinating tendencies, have been linked with similar diseases such as rabies. Many critics of David H. Dolphin's hypothesis, objected to the practice of connecting vampiric characteristics to diseases that are known and understood. The New York Times reported David H. Dolphin's hypothesis, noting similar symptoms porphyria shares with vampirism, such as a sensitivity to sunlight, a possible lack of a needed molecule in their blood, and sensitivity to garlic. These similar symptoms were of such importance to Dolphin, that he mentioned these symptom similarities in a 1982 speech to the Royal Society, and on a 1984 TV appearance on NBC. Scientist, and Medical Professionals critical of David Dolphin's links, may have thought Dolphin was trying to define vampirism as a new disease! In a move to disassociate porphyria with vampirism, Mary G. Winkler and Anderson, asked the general public to stop building new myths, and to focus instead on more humane treatments for patients with porphyria. “There is a necessity for scientists and the media to set aside cynical assumptions about their audiences and consider first and foremost their responsibilities to the communities of patients who are affected by diseases and by stories about their diseases,” both authors wrote. They also wrote about patients who became depressed by reports in the media linking porphyria, their illness, with vampirism. In general, sympathy does extent to people in need of better treatment for their disease, yet porphyria is also known as the "vampire disease."

What evidence do Scientist and Medical Professionals have against vampirism?
Members of the modern medical profession publicly stated that vampire myths probably derive from misunderstandings concerning death (and decomposition). Ironically, if vampire myths contain some truthful parts, it is the people with family members who have been called vampires who should claim that modern medical Doctors do not seem to understand death, or simple techniques needed to ensure that a living person is not buried alive against their will.


text:
User:ShreSansh Maharaj

How to import a Manchester United logo in DREAM LEAGUE SOCCER 2020

title: User:ShreSansh Maharaj