--- layout: base title: Bitcoin ABC subtitle: About BCHA ---
Want to know more about BCHA? We’ve got you covered!
On November 15, the Bitcoin Cash (BCH) blockchain split into two chains. To tell the two chains apart, each was given a provisional name by exchanges: Bitcoin Cash ABC (BCHA) and Bitcoin Cash Node (BCHN).
When a chain split happens, one chain will typically hold onto the original cryptocurrency name and ticker, while the other chain will become a separate cryptocurrency with new branding. In this case, BCHN held on to the BCH name and ticker.
That means BCHA will soon be branded with an official coin name, logo, and ticker. When it launches we’ll reach out to exchanges and other businesses directly to make them aware. If you’d like to get notified too, you can sign up here:
Described as innovative by Binance, BCHA has a unique funding feature called the coinbase rule, which reinvests 8% of each BCHA block reward to fund future network development. This funding model rewards the technical talent developing the network through predictable compensation (a salary), whereas BCH relies on a donation funding model instead.
Half of the funds raised by the coinbase rule will finance ongoing roadmap development, so BCHA can scale to become sound money for the world. The other half of the funds will be managed by the Global Network Council—a collection of miners and holders who decide which projects will receive funding to bring value to the network.
Before sending BCHA or BCH from your wallet, it is important to split your pre-fork coins so that your transactions are not replayed (for example also sending BCH when you only meant to send BCHA to someone). There a several ways this can be done.
A good way to split BCH and BCHA from each other is to use Electrum ABC and Electron Cash, as described here.
Some other methods are to use an exchange, as this tutorial explains, or alternatively you can use this website. But remember that the splitting process may not always go as planned so it is wise to test with smaller amounts first, or use a method where you only send coins to yourself (as with the Electrum ABC - Electron Cash method above).


Held at the Polytechnic University of the Philippines - Sto. Tomas Gymnasium. Presenting the SolAR System,
the award-winning AR integrated Mobile App that puts learning and innovation together. The app was presented
to the Bachelor of Science in Information Technology.
SolAR System is an App that implements AR
technology to showcase the beauty of the Solar System closely and in full rich detail
Awards
-
Mobile App Presenter
The Computer Society's Year End Event
-
C# Master
The Computer Society's Year End Event
Held at the Polytechnic University of the Philippines - Sto. Tomas Gymnasium. As part of the turn-over ceremony, the 4th year students on their respective awards passes down the title to the incoming 4th year students.
The title was the outcome of the students performance throughout his/her first three year in University. -
Champion
Integrated Southern Tagalog Association of Information Technology Association's iSIte 2018 C Programming Competition
Held at the Batangas State, University - Malvar Campus. Competing against 30+ Universities on the whole Region. To recognize the potentials of students to excel in the field of Information Technology and its applications through solving machine problems in a limited time using a specific Programming Language. The contestant that solves the most problems in the fewest attempts in the least cumulative time will be declared the winner.
-
5th Place | Presenter
National Academy of Science and Technologies' Salinlahi Evolution: An App Development Competition
The National Academy of Science and Technology of the Department of Science and Technology (DOST-NAST) through the Philippine Science Heritage Center (PSHC) invites individuals or teams, ages 16-61 years old and knowledgeable in creating and developing digital applications to participate in the Salinlahi Evolution: An App Development Competition. With the theme “Superheroes of Science”.
-
2nd Place
Polytechnic University of the Philippines' University Wide Academic Quiz Bee: Information technology Category
In celebration of the Polytechnic University of the Philippines' 111th Founding Anniversary, the PUP Community is invited to join the 2017 Academic Contest held at the Bonifacio Campus, Sta. Mesa, Manila.
-
Software Presenter
College of Computer and Information Science's Year End Event
Held at the Polytechnic University of the Philippines - Sto. Tomas' Cultural Building Auditorium. Presenting HealthMax - Your Health care Companion. The app was picked as the Best JAVA Software for the Year.
HealthMax is a mobile app that helps you track your health and shows you the data in a friendly manner. It has a talking assistant dedicated to remind you on the tasks ahead and it also acts as a helper to those with special needs. -
Champion
Computer Society's General Assembly Programming Quiz Bee
Held at the Polytechnic University of the Philippines - Sto. Tomas Gymnasium. The Programming Quiz Bee was a part of the General Assembly and was intended to pick those who will compete for the University Wide Academic Quiz Bee
-
Java Specialist
College of Computer and Information Science's Year End Event
Held at the Polytechnic University of the Philippines - Sto. Tomas Gymnasium. The annual event picks those who excel on their given programming languages.


*** This is the DRAFT VERSION 0.3 ALPHA of the Minimum Common Oncology Data Elements (mCODE™) implementation guide. ***
Treatment
The Treatment domain includes procedures and medications administered in the treatment of a cancer patient.
The following profiles are relevant to cancer treatment:
- CourseOfTreatmentPerformed
- RadiationTreatmentPerformed
The CourseOfTreatmentPerformed profile embeds elements which comprise a course of treatment. These include surgical, radiation, imaging, and medication therapies. These are further described below.
Procedures
Procedures are further categorized as:
- Surgical therapies which involve the removal of cancer tumors from the body.
- Radiation therapies which use of high-energy radiation from x-rays, gamma rays, neutrons, protons, and other sources to all cancer cells and shrink tumors (source: NCI).
- Imaging procedures which are used for diagnostic purposes as well as image-guided surgical procedures (source: NCI).
- Medication therapies are treatments with any substance, other than food, that is used to prevent, diagnose, treat, or relieve symptoms of a disease or abnormal condition (source: NCI).
mCODE does not currently constrain surgical, radiation, and imaging procedures to cancer-specific therapies. Extensible value sets for each are being considered for a future release, pending further requirements from clinical subject matter experts.
Medication Therapies
Medication therapies in mCODE are further categorized as:
- Chemotherapy agents which stop the growth of cancer cells, either by killing the cells or by stopping them from dividing.
- Targeted therapy agents identify and attack specific types of cancer cells with less harm to normal cells. Some agents block the action of certain enzymes, proteins, or other molecules involved in the growth and spread of cancer cells.
- Hormone therapy agents which add, block, or remove hormones as a means of slowing or stopping the growth of certain cancers.
Chemotherapy and hormone therapy agents are not specified as constraints within the profile. Rather, we provide a means of deriving the list of relevant drug integredients pertaining to the therapeutic drug class (as Rxnorm RXCUIs) on-demand using RXCLASS.
- for all antineoplastic agents, including chemotherapy and targeted therapy agents: https://rxnav.nlm.nih.gov/REST/rxclass/classTree.json?classId=L01
- for all endocrine/hormone therapy agents: https://rxnav.nlm.nih.gov/REST/rxclass/classTree.json?classId=L02


Let’s do a Discrete Wavelet Transform of a sample data x using the db2 wavelet. It’s simple..
>>> import pywt
>>> x = [3, 7, 1, 1, -2, 5, 4, 6]
>>> cA, cD = pywt.dwt(x, 'db2')
And the approximation and details coefficients are in cA and cD respectively:
>>> print cA
[ 5.65685425 7.39923721 0.22414387 3.33677403 7.77817459]
>>> print cD
[-2.44948974 -1.60368225 -4.44140056 -0.41361256 1.22474487]
Now let’s do an opposite operation - Inverse Discrete Wavelet Transform:
>>> print pywt.idwt(cA, cD, 'db2')
[ 3. 7. 1. 1. -2. 5. 4. 6.]
Violla! That’s it!
Now let’s experiment with the dwt() some more. For example let’s pass a Wavelet object instead of the wavelet name and specify signal extension mode (the default is sym) for the border effect handling:
>>> w = pywt.Wavelet('sym3')
>>> cA, cD = pywt.dwt(x, wavelet=w, mode='cpd')
>>> print cA
[ 4.38354585 3.80302657 7.31813271 -0.58565539 4.09727044 7.81994027]
>>> print cD
[-1.33068221 -2.78795192 -3.16825651 -0.67715519 -0.09722957 -0.07045258]
Note that the output coefficients arrays lenght depends not only on the input data length but also on the :class:Wavelet type (particularly on it’s filters lenght that are used in the transformation).
To find out what will be the output data size use the dwt_coeff_len() function:
>>> pywt.dwt_coeff_len(data_len=len(x), filter_len=w.dec_len, mode='sym')
6
>>> pywt.dwt_coeff_len(len(x), w, 'sym')
6
>>> len(cA)
6
Looks fine. (And if you expected that the output length would be a half of the input data length, well, that’s the tradeoff that allows for the perfect reconstruction...).
The third argument of the dwt_coeff_len() is the already mentioned signal extension mode (please refer to the PyWavelets’ documentation for the modes description). Currently there are six extension modes available:
>>> pywt.MODES.modes
['zpd', 'cpd', 'sym', 'ppd', 'sp1', 'per']
>>> [pywt.dwt_coeff_len(len(x), w.dec_len, mode) for mode in pywt.MODES.modes]
[6, 6, 6, 6, 6, 4]
As you see in the above example, the per (periodization) mode is slightly different from the others. It’s aim when doing the DWT transform is to output coefficients arrays that are half of the length of the input data.
Knowing that, you should never mix the periodization mode with other modes when doing DWT and IDWT. Otherwise, it will produce invalid results:
>>> x
[3, 7, 1, 1, -2, 5, 4, 6]
>>> cA, cD = pywt.dwt(x, wavelet=w, mode='per')
>>> print pywt.idwt(cA, cD, 'sym3', 'sym') # invalid mode
[ 1. 1. -2. 5.]
>>> print pywt.idwt(cA, cD, 'sym3', 'per')
[ 3. 7. 1. 1. -2. 5. 4. 6.]
Now some tips & tricks. Passing None as one of the coefficient arrays parameters is similar to passing a zero-filled array. The results are simply the same:
>>> print pywt.idwt([1,2,0,1], None, 'db2', 'sym')
[ 1.19006969 1.54362308 0.44828774 -0.25881905 0.48296291 0.8365163 ]
>>> print pywt.idwt([1, 2, 0, 1], [0, 0, 0, 0], 'db2', 'sym')
[ 1.19006969 1.54362308 0.44828774 -0.25881905 0.48296291 0.8365163 ]
>>> print pywt.idwt(None, [1, 2, 0, 1], 'db2', 'sym')
[ 0.57769726 -0.93125065 1.67303261 -0.96592583 -0.12940952 -0.22414387]
>>> print pywt.idwt([0, 0, 0, 0], [1, 2, 0, 1], 'db2', 'sym')
[ 0.57769726 -0.93125065 1.67303261 -0.96592583 -0.12940952 -0.22414387]
Remember that only one argument at a time can be None:
>>> print pywt.idwt(None, None, 'db2', 'sym')
Traceback (most recent call last):
...
ValueError: At least one coefficient parameter must be specified.
When doing the IDWT transform, usually the coefficient arrays must have the same size.
>>> print pywt.idwt([1, 2, 3, 4, 5], [1, 2, 3, 4], 'db2', 'sym')
Traceback (most recent call last):
...
ValueError: Coefficients arrays must have the same size.
But for some applications like multilevel DWT and IDWT it is sometimes conveniet to allow for a small departure from this behaviour. When the correct_size flag is set, the approximation coefficients array can be larger from the details coefficient array by one element:
>>> print pywt.idwt([1, 2, 3, 4, 5], [1, 2, 3, 4], 'db2', 'sym', correct_size=True)
[ 1.76776695 0.61237244 3.18198052 0.61237244 4.59619408 0.61237244]
>>> print pywt.idwt([1, 2, 3, 4], [1, 2, 3, 4, 5], 'db2', 'sym', correct_size=True)
Traceback (most recent call last):
...
ValueError: Coefficients arrays must satisfy (0 <= len(cA) - len(cD) <= 1).
Not every coefficient array can be used in IDWT. In the following example the idwt() will fail because the input arrays are invalid - they couldn’t be created as a result of DWT, beacuse the minimal output length for dwt using db4 wavelet and the sym mode is 4, not 3:
>>> pywt.idwt([1,2,4], [4,1,3], 'db4', 'sym')
Traceback (most recent call last):
...
ValueError: Invalid coefficient arrays length for specified wavelet. Wavelet and mode must be the same as used for decomposition.
>>> pywt.dwt_coeff_len(1, pywt.Wavelet('db4').dec_len, 'sym')
4


Xamarin provides a developer with tools that can help them building cross-platform mobile applications. Bitrise supports Xamarin apps, of course: this guide aims to walk you through the procedure of:
- adding a Xamarin app to Bitrise
- testing the app
- deploying the app
You can do the entire procedure in one single workflow but we recommend using at least two: one to test your app and one to deploy it. There is no need to have separate workflows for the different project types, though: you can build both an iOS and an Android version of a Xamarin app within a single workflow.
- Before you start
- Adding a Xamarin app
- Installing dependencies
- Testing Xamarin apps
- Deploying Xamarin apps
Before you start ⚓
Before adding a Xamarin app on Bitrise, you need to prepare your Xamarin solution file. Bitrise detects the solution file and all the available solution configurations present in it.
A Xamarin solution file can contain multiple projects. Your solution configuration determines which projects (solution items) should be built and what project configuration type (for example, debug or release) the build should use.
Set up your solution configurations in Visual Studio. The solution file will have to contain all the solution configurations that you want to build on Bitrise. Also, make sure that a solution configuration you wish to build on a given solution platform is compatible with that platform.
Adding a Xamarin app ⚓
- Click the
+
sign on the top menu bar and selectAdd app
. - On the Create new App page, choose the account you wish to add the app to.
- Set the privacy of the app to either Private or Public and click
Next
. - Select the Git hosting service that hosts your repository, then find and select your repository that hosts the project. Read more about connecting your repository.
- When prompted to set up repository access, click
No, auto-add SSH key
. Read more about SSH keys. - Type the name of the branch that includes your project’s configuration - master, for example - then click
Next
. - Wait while Bitrise is validating your project. We look for your configuration files and set up your app based on them. In the case of a Xamarin app, we’re looking for the Xamarin Solution file.
-
Select the Xamarin solution configuration. The available options are based on the solution file. This will be stored as an Environment Variable and it can be changed later.
- Select the Xamarin solution platform. This will be stored as an Environment Variable and it can be changed later.
- Confirm your build configuration.
- Register a webhook when prompted so that Bitrise can start a build automatically when code is pushed to your repository, or a pull request is created. This also kicks off your first build - click the message and it will take you to the build page.
Installing dependencies ⚓
Installing your dependencies with Xamarin apps is taken care of by a dedicated Step: NuGet restore
. This Step is part of every automatically created workflow for Xamarin apps and it has one required input: the path to the Xamarin solution file which is stored as an Environment Variable when you add the app.
- Enter the Workflow Editor of your app, and click the
Workflows
tab. -
Make sure you have the
NuGet restore
Step in your workflow.The Step’s single required input is the path to the Xamarin solution file. By default, the input is an Environment Variable, stored when adding the app to Bitrise. If you want to use a different solution file, click on the
Env Vars
tab in the Workflow Editor to change the value of the Environment Variable.
Testing Xamarin apps ⚓
You can run unit tests and UI tests on Bitrise, both with Android and iOS projects. It is easy to configure and you can use all the testing frameworks available on the Microsoft App Center.
Unit testing ⚓
Unit tests of Xamarin apps can be run with the NUnit Runner
Step. The Step runs NUnit 2.x and NUnit 3.0 or higher tests with the NUnit Console Runner (nunit3-console.exe).
- Enter the Workflow Editor of your app, and click the
Workflows
tab. -
Add the
NUnit runner
Step to your workflow.This Step should be after the
NuGet restore
Step: you will want to install all your dependencies before running tests on your app. - Fill in the required input variables. By default, all the inputs are Environment Variables. If you want to use a different solution file or solution configuration, click on the
Env Vars
tab in the Workflow Editor to change the value of the Environment Variable.- Path to Xamarin Solution: the location of your Xamarin solution file.
- Xamarin project configuration: the solution configuration, set up in Visual Studio, that you want to run on Bitrise. Change the appropriate environment variable if you want to run a different configuration; for example, if you only want to build an iOS project, as opposed to both iOS and Android projects.
- Xamarin platform: the target platform of your solution configuration.
UI testing ⚓
For UI tests, we strongly recommend using our App Center upload and schedule tests
Step. You need to set up the tests in the Visual Studio App Center - read more about it in our guide. Let’s go through the process in brief.
-
Add the
App Center upload and schedule tests
Step to your workflow.This Step should be after the
NuGet restore
and theXamarin Archive
Steps, in order to install all your dependencies and build the app before running tests. -
Fill in the required inputs of the Step. You can find all these in the App Center after setting up your test run: check the Submit tab.
If you’re interested in Calabash UI testing on Bitrise, check out this discuss guide!
Deploying Xamarin apps ⚓
With the help of Bitrise, you can deploy a Xamarin app to:
- Bitrise.io
- the App Store
- Google Play
To deploy your app, you need to build, sign and export the application file.
Code signing Xamarin apps ⚓
Code signing requires different approaches for iOS and Android projects. We’re presenting a brief overview here of code signing for both platforms.
For the purposes of deploying your app, we recommend creating a new workflow, based on the automatically created deploy workflow.
Android ⚓
For Android, you need an APK and you need to sign that APK. Bitrise makes that happen with the Sign APK
Step. The Step requires a keystore file, a keystore password and a keystore alias.
- Create a code signing identity in Visual Studio.
- Upload the keystore file to Bitrise: open the Workflow Editor of your app, go to the
Code Signing
tab and upload the file to theANDROID KEYSTORE FILE
section. - Set a keystore password, a keystore alias and a private key password.
- On the
Workflows
tab, add theSign APK
Step to your workflow, AFTER theXamarin Archive
Step.
Read more about using the Sign APK
Step in our guide!
iOS ⚓
- Set up your code signing identity and provisioning profile on Visual Studio.
- In the solution file, find the iOS project you want to build and set up its project options. You need to set:
- the signing identity you want to use (for example, Developer)
- the provisioning profile
You can also set up custom entitlements in a .plist file.
- On your own machine, use our codesigndoc tool to collect the code signing files of your project.
- Upload the files - the .p12 certificate and the provisioning profile - to Bitrise: open the Workflow Editor of your app and upload the files on the
Code Signing
tab. - Add the
Certificate and profile installer
Step to your workflow.
Read more about iOS code signing in our guide!
Exporting the app package file ⚓
On Bitrise, it does not matter whether you want to export an .ipa file, an .apk file or an .app file: the process is the same for all Xamarin apps. To make sure you build the correct project type, set up your solution configurations in Visual Studio.
For example, if you want to get an .apk file to upload it to Google Play, use a Release project configuration for your Android project in your solution configuration.
For your iOS project, set up the correct code signing identity in Visual Studio: for example, if you want to upload your app to the App Store, use a Distribution identity with an App Store type provisioning profile.
- Enter the Workflow Editor of your app, and click the
Workflows
tab. -
Make sure you have the
Xamarin Archive
Step in your workflow. - Make sure the required inputs of the Step have appropriate values. By default, all the inputs are Environment Variables. Click on the
Env Vars
tab in the Workflow Editor to change the value of the Environment Variable.- Path to the Xamarin Solution file: the location of your Xamarin solution file.
- Xamarin project configuration: the solution configuration, set up in Visual Studio, that you want to run on Bitrise. Change the appropriate environment variable if you want to run a different configuration; for example, if you only want to build an iOS project, as opposed to both iOS and Android projects.
- Xamarin solution platform: the target platform of your solution configuration.
Deploying to the App Store ⚓
- Go to the
Workflows
tab of the Workflow Editor. - Select the workflow you created for deploying your app.
- Check that the code signing Steps and the
Xamarin Archive
Step are included in the workflow. - If you want to use a different solution configuration, change the values of the relevant Environment Variables on the the
Env Var
tab. You can check out which Env Vars you need to change in the inputs of theXamarin Archive
Step. -
Add the
Deploy to iTunes Connect - Application Loader
Step to your workflow. - Click the
Deploy to iTunes Connect - Application Loader
Step, and enter your Apple ID and password in the relevant input field. - Start a build!
Deploying to Google Play ⚓
- Go to the
Workflows
tab of the Workflow Editor. - Select the workflow you created for deploying your app.
- Check that the code signing Steps and the
Xamarin Archive
Step are included in the workflow. - If you want to use a different solution configuration, change the values of the relevant Environment Variables on the the
Env Var
tab. You can check out which Env Vars you need to change in the inputs of theXamarin Archive
Step. -
Add the
Google Play Deploy
Step to the workflow.The Step needs to be after the
Xamarin Archive
Step. -
Upload the Service Account JSON key file to the Generic File Storage on the
Code Signing
tab of the Workflow Editor.Learn more about how to access your JSON key file.
- Create a Secret Environment Variable to reference the Service Account’s JSON key file.
- Click the
Google Play Deploy
Step, and add the Service Account’s JSON key file path and the package name in the relevant input field. - Start a build!
If the build is successful, congratulations - you’ve just deployed your Xamarin app!


|
ElfPSP_ParallelABC
Protein Structure Prediction using Parallel Artificial Bee Colony Optimization
|
Routines for manipulating Solution objects, such as creation, randomization, perturbation etc. More...
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <fitness/fitness.h>
#include <movelem.h>
#include <random.h>
#include "solution_structure_private.h"
Go to the source code of this file.
Macros | |
| #define | FITNESS_MIN -1E9 |
| #define | SOLUTION_INLINE inline |
Typedefs | |
| typedef struct Solution_ | Solution |
Functions | |
| SOLUTION_INLINE Solution | Solution_blank (int hpSize) |
| Returns a Solution whose fields are all uninitialized, but with due memory allocated. More... | |
| SOLUTION_INLINE Solution | Solution_copy (Solution sol, int hpSize) |
| Returns a deep copy (all memory recursively duplicated) of the given solution. More... | |
| SOLUTION_INLINE void | Solution_free (Solution sol) |
| Frees memory allocated for given solution. | |
| SOLUTION_INLINE Solution | Solution_random (int hpSize) |
| Returns a Solution whose movement chain is uniformly random. More... | |
| SOLUTION_INLINE Solution | Solution_perturb_relative (Solution perturb, Solution other, int hpSize) |
| Chooses a random element ELEM1 in 'perturb'. More... | |
| SOLUTION_INLINE double | Solution_fitness (Solution sol) |
| Returns the fitness of the given solution, calculating it only if needed. More... | |
| SOLUTION_INLINE void | Solution_set_fitness (Solution *sol, double fitness) |
| Sets the fitness of a solution. | |
| SOLUTION_INLINE int | Solution_idle_iterations (Solution sol) |
| Returns the number of iterations through which the solution didn't improve. More... | |
| SOLUTION_INLINE void | Solution_inc_idle_iterations (Solution *sol) |
| Increments the number of idle solutions of the given solution. More... | |
| SOLUTION_INLINE const MovElem * | Solution_chain (Solution sol) |
| Returns the MovChain of the given solution. More... | |
Routines for manipulating Solution objects, such as creation, randomization, perturbation etc.
| SOLUTION_INLINE Solution Solution_blank | ( | int | hpSize | ) |
Returns a Solution whose fields are all uninitialized, but with due memory allocated.
Returns the MovChain of the given solution.
Returns a deep copy (all memory recursively duplicated) of the given solution.
| SOLUTION_INLINE double Solution_fitness | ( | Solution | sol | ) |
Returns the fitness of the given solution, calculating it only if needed.
sol
. | SOLUTION_INLINE int Solution_idle_iterations | ( | Solution | sol | ) |
Returns the number of iterations through which the solution didn't improve.
sol
. | SOLUTION_INLINE void Solution_inc_idle_iterations | ( | Solution * | sol | ) |
Increments the number of idle solutions of the given solution.
Chooses a random element ELEM1 in 'perturb'.
Then chooses a random element ELEM2 in 'other'. Takes the distance DIST between ELEM1 and ELEM2 Changes 'perturb' so that its ELEM1 approaches ELEM2 by a random amount, from 0 to 100%. The solution 'perturb' is returned.
The returned Solution has its idle_iterations set to 0. The returned Solution won't have its fitness calculated.
| SOLUTION_INLINE Solution Solution_random | ( | int | hpSize | ) |
Returns a Solution whose movement chain is uniformly random.
The returned Solution has its idle_iterations set to 0. The returned Solution won't have its fitness calculated.


Honu
/Where the wind takes us next year no turtle can tell
But we'll still be at home, come high water or hell,
Because home is wherever you carry your shell.
-- Windward, by Stephen Savitzky, 2015
This project contains a set of configuration files, with Makefiles for setup and installation, that allow you to set up a home directory exactly the way I like it, with a single command. Unlike its predecessor, which was very specific to me, it's meant to be reasonably general -- it expects to find its repository on github, leaves your .mailrc and .signature files alone, and preserves most of your old configuration in case you didn't really mean it.
On the other hand, it still sets up my favorite aliases, gnome
configuration options, emacs options, and xmonad.hs
. Forking
is not only encouraged, it's practically mandatory if you want to stay
sane.
That said, it also has provisions for personal and machine-local customizations. I first started putting those in to accommodate laptop and desktop systems with a wide range of screen sizes; it's gotten somewhat more general since then.
Note: this file is meant for incorporation into my website. If
you're looking at it on github, you may already have noticed that it's
mostly a duplicate of README.md
.
bootstrap.sh
wget -O - https://github.com/ssavitzky/Honu/bootstrap.sh | bash
MIT_LICENSE.txt
Makefile
make install
is the main target;
eventually there will be targets for partial installs, e.g. on tiny
systems or systems where I don't have sudo
access.
to.do
bin/
dotconfig/
~/.config/
. These are symlinked so as not to conflict
with the stuff already there.
dotfiles/
emacs/
.emacs
, which you'll find in dotfiles
.
local/
make install
opt/
dzen2
-- older releases of Debian and Ubuntu don't have one that's recent
enough to include all the features I want to use with
xmonad
.)
setup/
-pkgs
suffix, that install
programs using apt
.


NRPN 25,0 on the Editor input copies a program file into another location. The Bank MSB and Data MSB specify the destination, and the Bank LSB and Data LSB specify the source. This is echoed back to the editor.
If the source and destination both exist, the source overwrites the destination; if the source doesn't exist, the destination is deleted. If the source and destination are the same, nothing happens, but it is still echoed.


Aristocrat freed from jail after telling court he mistook friend for an alien | IOL News
Bern - A Swiss aristocrat who killed his friend with a candlestick is to be freed from jail – because he thought his victim was a green alien.
British graduate Alex Morgan, 23, was on an Alpine skiing holiday when he was brutally attacked by drug-addled millionaire art-dealer’s son Bennet von Vertes.
Vertes was so high on cocaine and ketamine at his parents’ chalet that he says he mistook his friend for an extra-terrestrial.
The playboy, 34, was initially jailed for 12 years for the crime – but three judges have now downgraded his manslaughter conviction on appeal to the lesser charge of "negligent killing".


Chester Billiards League
2019-2020
Cayzer Cup Group B Fixtures & Results
| Week | Date | Home | Score | Pts | v | Pts | Score | Away |
| 1 | 28th January 2020 | Upton B | 735 | 2 | v | 0 | 666 | Eastham HG |
| 1 | | Waverton A | 794 | 2 | v | 0 | 640 | Waverton B |
| 2 | 4th February 2020 | Eastham HG | 711 | 0 | v | 2 | 725 | Waverton A |
| 2 | | Waverton B | 788 | 2 | v | 0 | 707 | Upton B |
| 3 | 11th February 2020 | Waverton B | 676 | 0 | v | 2 | 737 | Eastham HG |
| 3 | | Upton B | 668 | 0 | v | 2 | 800 | Waverton A |
| 4 | 25th February 2020 | Eastham HG | 800 | 2 | v | 0 | 697 | Upton B |
| 4 | | Waverton B | 666 | 0 | v | 2 | 800 | Waverton A |
| 5 | 3rd March 2020 | Waverton A | 758 | 2 | v | 0 | 652 | Eastham HG |
| 5 | | Upton B | 766 | 0 | v | 2 | 773 | Waverton B |
| 6 | 10th March 2020 | Eastham HG | 724 | 0 | v | 2 | 733 | Waverton B |
| 6 | | Waverton A | 782 | 2 | v | 0 | 525 | Upton B |


These are extra details that can be added to the room. Usually this is where static items are given the additional descriptions for searching, listening to, smelling, and reading. The term 'default' is defined for each as a case that happens when a player issues a command without speciying what. For ecample if player types search but not search desk then you can issue a message for a default search of the room or something similar.
SetSearches(mapping)
The result of the player issuing the searchcommand. The right box should either contain text for the result to display or an $-escaped function/functional that performs additional processing.
SetReads(mapping)
The result of the player issuing the readcommand. The right box should either contain text for the result to display or an $-escaped function/functional that performs additional processing.
SetSmells(mapping)
The result of the player issuing the smellcommand. The right box should either contain text for the result to display or an $-escaped function/functional that performs additional processing.
SetListens(mapping)
The result of the player issuing the listencommand. The right box should either contain text for the result to display or an $-escaped function/functional that performs additional processing.