Being an Employee
As I currently work at a startup I have a small stake in the company. When talking with one friend of something I have been working with someone with on the side, the question came up over if this was a conflict of interest. I was actually quite shocked to hear the question at first, not only did I expect them to do likewise, as I know many that do. The full on conflict of interest statement just shocked me. Being at a startup it does make it slightly more of an interesting statement, but I received similar comments sometimes at my former Fortune 100 employer. I’ll start with that place and then migrate to the startup environment.
I could not disagree more being an employee at some place, and working on additional things being a conflict of interest.  Sure its great if you believe in the company and what they do, but in our generation you are not attached for life to the company you work for. The company has claim on what you do between 8-5 with regards to work, sure if you do things that may damange a company brand or your effectiveness to do business its fair for them not to retain you, but simply doing additional work in your spare time? Hardly!
Now as we move on to the startup atmosphere, where it’s pretty standard that when becoming employed you receive some amount of equity in the company. In most cases with not being a founder this stake is of relatively small size. Sure you could consider Google where I believe it was over 400 employees that were made millionaires by their IPO, but these situations are very rare. The equity receive normally vessts over a period of time, and from my perception is simply equivilant to a portion of your pay no more no less. Sure it does make you feel more of a sense of ownership, but does not extend to the full extent of the business owning you.
As an employee you’re being paid to perform a job, they don’t have full claim to what you do on your time.


Home
About
Products
Blog
Contact
Get in touch!
First name:
Email:
Age of business:
Reason for contact:
Discuss a project
Media and PR
Other


about me!
hello. my name is Lee. i am currently a second year
student at UC San Diego majoring in ICAM
(Interdisciplinary Computing and the Arts Major) with a
focus in Music and Visual Arts. i am also
pursuing two minors in Computer Science and
Interaction Design. i am a musician, designer,
photographer, and developer. i enjoy learning new
computer languages (like html, css, and js to make this
website) and sharpening my skills as an artist and
engineer. feel free to look at my work in the links
above, view my
Resume,
or contact me and find my social media in the
"contact" page above.
p.s. i swear i know how to capitalize my sentences. it's just for the aesthetic. also, this website is still a wip, so i'll be updating/tweaking it as i go. thanks for understanding! ^_^
p.s. i swear i know how to capitalize my sentences. it's just for the aesthetic. also, this website is still a wip, so i'll be updating/tweaking it as i go. thanks for understanding! ^_^


This tutorial explains how to drive QLC plus with MIDI from Mixxx. Mixxx ist an open source DJ application, running an Windows, MacOS and Linux, like QLCplus. The light effects are geared to a disco setup and we will use the beat detection of Mixxx to drive light effects synchronized with music.
The instructions were tested on Linux, but Windows or MacOS should be similar.
We need Mixxx to sent information about the music via Midi to QLCplus. For this capability we need a plugin script in Mixxx which send the information as MIDI events.
The script files (xms + js) must be installed in /usr/share/mixxx/controllers.
This is necessary because Mixxx hides the 'Midi Through' interface but we need it.
This will enable the sending of Midi events. You can now run a midi monitor, like 'kmidimon', connect it to the 'Midi Through' device and look at the all the events. Be careful, Mixxx sends 40 events 25 times per second. It to my kmdimon only a minute or two to hang because of overload.
Now we have Mixxx sending us lots of interesting data and want QLC to do something with it.
Here we need to add a Channel for each MIDI message we expect from Mixxx. The list of Midi messages is documented in the file 'VU-Meter_Info.txt' you got with the Mixxx plugin script.
For questions and problems with this, please go to the QLCplus Forum


Dumbledore's Army
Hermione Granger
Manager • Boss Witch
<EMAIL_ADDRESS>ID: 1
Office: Room of Requirement
Ron Weasley
Engineer • Accio Engineer
<EMAIL_ADDRESS>ID: 2
ronweas
Luna Lovegood
Engineer • Expelliarmus Engineer
<EMAIL_ADDRESS>ID: 3
loopyluna
Harry Potter
Intern • Assistant
<EMAIL_ADDRESS>ID: 4
Hogwarts


| 656 | (A) | than waspasiane wendis from the wallis wereand thaym harde |
| 659 | (C) | Vaspasiane wente fro þe wałł . & cursed hem ałł |
| 651 | (D) | vaspasian went fro þe wałł & weried hem hard |
| 633 | (E) | ¶ waspasyan fro þe wallys . wente a lytel while |
| (Ex) | ---- no text ---- | |
| 674 | (L) | waspasian wendeþ fram þe walles wariande hem alle |
| 613 | (P) | waspasian went fra þe wałł weryand þam harde |
| 642 | (U) | Vespasian went fro the wal / and waried hem alle |
| (V) | ---- no text ---- |


Instructions
maths2Clipboard should just write the way you expect. We hope you don't need to read these instructions, but should you get stuck here are some pointers:
- To write powers, simply use the circumflex symbol (^). For example to write x^2 simply type x^2
- Likewise, to write subscript simply use an underscore (_). To write x_2, simply type x_2
- Fractions are as simple as typing a forward slash. For example to write \frac{1}{x+1} simply type 1/x+1. If you have already written several terms, and would like to make them a numerator you can do one of two things:
- Highlight them with a mouse and then type / followed by your denominator
- Surround the relevant terms with parantheses, and then type / to produce a fraction
- An asterix (*) will produce a times symbol (\times).
- To type greek letters just write out the letters in english e.g. for \phi just write 'phi'. To get a capital version of a greek letter write the english version with a capital letter e.g to get capital phi (\Phi), just type 'Phi'.
- To type normal non-italicised text, press $ to switch to text mode. Press $ again to switch back.
- All of the standard LATEX, symbols can be added by simply writing a '\' followed by the relevant command. If unsure, refer to a full list of Latex symbols.
About
Entering mathematical expressions on most online platforms requires navigating a slow, clunky, and un-intuitive interface. It needn't be this way. It is quite simple to type maths in a natural fashion; the same way you most likely think about maths. No need for endless clicking, for learning LATEX, or for awkward interfaces.
Under the hood, maths2Clipoard uses the excellent mathQuill library to make writing maths in the browser easy. It then uses dom-to-image to render the resulting mark-up to png, and copies that to the clipboard. If there are any problems with the site or the extension, please raise an issue at the github repo.


--- layout: post title: Learning Devise for Rails is Out Now! date: 2013-11-21 20:06:43.000000000 -06:00 type: post published: true status: publish categories: - Ruby on Rails tags: [] meta: post_id: '412' blog_id: '11524188' is_reblog: '1' author: login: broberts65 email<EMAIL_ADDRESS>display_name: Bob Roberts first_name: '' last_name: '' ---
Awesome!! A lot of people complain about Devise but it just works. No need to roll your own authentication.


{% extends "base.html" %} {% load crispy_forms_tags %} {% block title %}Create a share{% endblock %} {% block content %}
This will create a new share from the '{{subdir}}' directory from the {{share.name}} share. Please note that any file changes in this share will be reflected in the original share, and vice-versa. Permissions assigned for each share will only effect access to the files accessible from that share.


FunnyTelemetry
FunnyBin
Pastes
(Currently omitting hidden entries, click
here
to show them)
Pastes
Hidden entries
Id
UUID
Short link
Submit date
Type
Tag
Submitter IP
Hide
Hidden
Hidden (click to show)
Hide


Copyright © 2021 STMicroelectronics
This software component is licensed by ST under Software License Agreement SLA0077, the “License”. You may not use this component except in compliance with the License. You may obtain a copy of the License at:
Software License Agreement SLA0077
What is MotionFD?
The library is generated for each ARM Cortex-M core with EABI compiler thus the library might be used with any other compiler which supports ARM EABI specification.
The library is available for two different wchar variable lengths - 16 bit (wc16) and 32bit (wc32).
By default the libraries are compiled with option -mfloat-abi=softfp which allows use of floating-point instructions but maintains compatibility with the soft-float ABI. The libraries ending with suffix hard are compiled with option -mfloat-abi=hard and uses floating-point instructions and the floating-point ABI.
Here is the list of references to the user documents:


Next: boole-1, Previous: parse-integer, Up: Numbers Dictionary
boole
op integer-1 integer-2 ⇒ result-integer
Op—a bit-wise logical operation specifier.
integer-1—an integer.
integer-2—an integer.
result-integer—an integer.
boole performs bit-wise logical operations on integer-1 and integer-2, which are treated as if they were binary and in two’s complement representation.
The operation to be performed and the return value are determined by op.
boole returns the values specified for any op in Figure 12–16.
Op Result boole-1 integer-1 boole-2 integer-2 boole-andc1 and complement of integer-1 with integer-2 boole-andc2 and integer-1 with complement of integer-2 boole-and and boole-c1 complement of integer-1 boole-c2 complement of integer-2 boole-clr always 0 (all zero bits) boole-eqv equivalence (exclusive nor) boole-ior inclusive or boole-nand not-and boole-nor not-or boole-orc1 or complement of integer-1 with integer-2 boole-orc2 or integer-1 with complement of integer-2 boole-set always -1 (all one bits) boole-xor exclusive or
Figure 12–16: Bit-Wise Logical Operations
(boole boole-ior 1 16) ⇒ 17 (boole boole-and -2 5) ⇒ 4 (boole boole-eqv 17 15) ⇒ -31 ;;; These examples illustrate the result of applying BOOLE and each ;;; of the possible values of OP to each possible combination of bits. (progn (format t "~&Results of (BOOLE <op> #b0011 #b0101) ...~ ~ (dolist (symbol '(boole-1 boole-2 boole-and boole-andc1 boole-andc2 boole-c1 boole-c2 boole-clr boole-eqv boole-ior boole-nand boole-nor boole-orc1 boole-orc2 boole-set boole-xor)) (let ((result (boole (symbol-value symbol) #b0011 #b0101))) (format t "~& ~A~13T~3,' D~23T~:*~5,' B~31T ...~4,'0B~ symbol result (logand result #b1111))))) |> Results of (BOOLE <op> #b0011 #b0101) ... |> ---Op-------Decimal-----Binary----Bits--- |> BOOLE-1 3 11 ...0011 |> BOOLE-2 5 101 ...0101 |> BOOLE-AND 1 1 ...0001 |> BOOLE-ANDC1 4 100 ...0100 |> BOOLE-ANDC2 2 10 ...0010 |> BOOLE-C1 -4 -100 ...1100 |> BOOLE-C2 -6 -110 ...1010 |> BOOLE-CLR 0 0 ...0000 |> BOOLE-EQV -7 -111 ...1001 |> BOOLE-IOR 7 111 ...0111 |> BOOLE-NAND -2 -10 ...1110 |> BOOLE-NOR -8 -1000 ...1000 |> BOOLE-ORC1 -3 -11 ...1101 |> BOOLE-ORC2 -5 -101 ...1011 |> BOOLE-SET -1 -1 ...1111 |> BOOLE-XOR 6 110 ...0110 ⇒ NIL
Should signal type-error if its first argument is not a bit-wise logical operation specifier or if any subsequent argument is not an integer.
In general,
(boole boole-and x y) ≡ (logand x y)
Programmers who would prefer to use numeric indices rather than bit-wise logical operation specifiers can get an equivalent effect by a technique such as the following:
;; The order of the values in this `table' are such that ;; (logand (boole (elt boole-n-vector n) #b0101 #b0011) #b1111) => n (defconstant boole-n-vector (vector boole-clr boole-and boole-andc1 boole-2 boole-andc2 boole-1 boole-xor boole-ior boole-nor boole-eqv boole-c1 boole-orc1 boole-c2 boole-orc2 boole-nand boole-set)) ⇒ BOOLE-N-VECTOR (proclaim '(inline boole-n)) ⇒ implementation-dependent (defun boole-n (n integer &rest more-integers) (apply #'boole (elt boole-n-vector n) integer more-integers)) ⇒ BOOLE-N (boole-n #b0111 5 3) ⇒ 7 (boole-n #b0001 5 3) ⇒ 1 (boole-n #b1101 5 3) ⇒ -3 (loop for n from #b0000 to #b1111 collect (boole-n n 5 3)) ⇒ (0 1 2 3 4 5 6 7 -8 -7 -6 -5 -4 -3 -2 -1)
Next: boole-1, Previous: parse-integer, Up: Numbers Dictionary


|
MRSL Motion Primitive Library
0.4
A motion primitive library for generating trajectory for mobile robots
|
Classes | |
| struct | compare_pair |
| Heap element comparison. More... | |
| class | env_base |
| Base environment class. More... | |
| class | env_cloud |
| Point cloud environment. More... | |
| class | env_map |
| Voxel map environment. More... | |
| class | GraphSearch |
| GraphSearch class. More... | |
| class | MapUtilBase |
| struct | State |
| Lattice of the graph in graph search. More... | |
| struct | StateSpace |
| State space. More... | |
| class | SubVoxelMapUtil |
| class | VoxelMapUtil |
Typedefs | |
| typedef std::string | Key |
| Key for node. More... | |
| template<class state > | |
| using | priorityQueue = boost::heap::d_ary_heap< std::pair< double, std::shared_ptr< state > >, boost::heap::mutable_< true >, boost::heap::arity< 2 >, boost::heap::compare< compare_pair< state > > > |
| Define priority queue. | |
| using | StatePtr = std::shared_ptr< State > |
| Declare StatePtr. | |
| using | hashMap = std::unordered_map< Key, StatePtr > |
| Define hashmap type. | |
The base class is provided by considering both 2D and 3D maps
| Ti | is integer index of cell/voxel |
| Tf | is float position of cell/voxel |
| Tmap | is defined as a 1D array |
| typedef std::string MPL::Key |
Key for node.
Key for hashmap.
We use string as the Key for indexing, by default the Key refers to 'pos-vel-acc-...'


Galate:
Oh, you're here for Kanis, are you?
My apologies, but can I know that for sure?
My enemies would stop at nothing to get what I'm working on at the moment, and I really can't be too careful...
Give the refined crystal samples from Kanis.


http://www.susangranger.com/
Susan Granger's review of "MEN OF HONOR" (Fox 2000/20th Century-Fox)
Based on a true story, this is an old-fashioned, inspirational military drama - which works for it and against it. Cuba Gooding Jr. effectively plays Carl Brashear, who became the Navy's first African-American master diver, while Robert DeNiro, as Billy Sunday, is the manic redneck instructor who torments and humiliates him before becoming his mentor. "Why do you want this so badly?" he's asked. "Because they said I couldn't have it" is Brashear's meaningful reply. Hal Holbrook adds to the rampant racism as the terrorizing commander of the Naval Diving School. Powers Boothe is the first officer to acknowledge Brashear's deep determination to succeed, and David Keith is the sympathetic officer who's there when a freak, shipboard accident cripples Brashear, causing the eventual amputation of his leg. Executive produced by Bill Cosby, written by Scott Marshall Smith and directed by George Tillman Jr. ("Soul Food"), the film obviously fictionalizes rather than depicts the various biographical incidents that transformed Brashear's early life as a Kentucky sharecropper's son ("Don't end up like me," his father warns.) and his military career which began in the '60s with mess duty. Gooding's and DeNiro's wives are predictably played by Aunjanue Ellis and Charlize Theron, respectively, while Michael Rapaport, Joshua Leonard and Holt McCallany portray other trainees. Credit cinematographer Anthony B. Richmond for capturing the danger and undersea isolation of the divers and the taut tension of the diving program's final exam. On the Granger Movie Gauge of 1 to 10, "Men of Honor" is a well-intentioned, if melodramatic 5, slipping into sloppy sentiment a bit too often as it extols Brashear's courage and indomitable spirit. The R-rating comes from salty language and racist comments.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Molecule schema
A full description of the overall Molecule model.
Required Keys
There are no required fields for the Molecule specification.
Optional Keys
- The following keys are optional for the Molecule specification.
Key Name
Description
Field Type
atom_labels
Additional per-atom labels as an array of strings. Typical use is in model conversions, such as Elemental <-> Molpro and not typically something which should be user assigned. See the
comments
field for general human-consumable text to affix to the molecule.array[string]
atomic_numbers
An optional ordered 1-D array-like object of atomic numbers of shape (nat,). Index matches the 0-indexed indices of all other per-atom settings like
symbols
andreal
. Values are inferred from thesymbols
list if not explicitly set. Ghostedness should be indicated throughreal
field, not zeros here.array[number]
comment
Additional comments for this molecule. Intended for pure human/user consumption and clarity.
string
connectivity
A list of bonds within the molecule. Each entry is a tuple of
(atom_index_A, atom_index_B, bond_order)
where theatom_index
matches the 0-indexed indices of all other per-atom settings likesymbols
andreal
. Bonds may be freely reordered and inverted.array[array]
extras
Additional information to bundle with the molecule. Use for schema development and scratch space.
object
geometry
An ordered (natom*ndim,) array for XYZ atomic coordinates. Default unit is Angstrom.
array[number]
geometry_units
Units for atomic geometry. Defaults to Angstroms.
string
identifiers
An optional dictionary of additional identifiers by which this molecule can be referenced, such as INCHI, canonical SMILES, etc. See the :class:
Identifiers
model for more details.object
mass_numbers
An optional ordered 1-D array-like object of atomic mass numbers of shape (nat). Index matches the 0-indexed indices of all other per-atom settings like
symbols
andreal
. Values are inferred from the most common isotopes of thesymbols
list if not explicitly set. If single isotope not (yet) known for an atom, -1 is placeholder.array[number]
masses
The ordered array of particle masses. Index order matches the 0-indexed indices of all other per-atom fields like
symbols
andreal
. If this is not provided, the mass of each atom is inferred from its most common isotope. If this is provided, it must be the same length assymbols
but can acceptNone
entries for standard masses to infer from the same index in thesymbols
field.array[number]
masses_units
Units for atomic masses. Defaults to unified atomic mass unit.
string
molecular_charge
The net electrostatic charge of the molecule. Default unit is elementary charge.
number
molecular_charge_units
Units for molecular charge. Defaults to elementary charge.
string
name
Common or human-readable name to assign to this molecule. This field can be arbitrary; see
identifiers
for well- defined labels.string
ndim
Number of spatial dimensions.
integer
provenance
The provenance information about how this object (and its attributes) were generated, provided, and manipulated.
object
schema_name
The MMSchema specification to which this model conforms. Explicitly fixed as mmschema_molecule.
string
schema_version
The version number of
schema_name
to which this model conforms.integer
substructs
A list of (name, num) of connected atoms constituting the building block (e.g. monomer) of the structure (e.g. a polymer). Order follows atomic indices from 0 till Natoms-1. E.g. [(‘ALA’, 4), …] means atom1 belongs to aminoacid alanine with residue number 4. Substruct name is max 4 characters.
array[array]
symbols
An ordered (natom,) array-like object of particle symbols. The index of this attribute sets the order for all other per- particle setting like
geometry
and the first dimension ofgeometry
.array[string]
velocities
An ordered (natoms*ndim,) array for XYZ atomic velocities. Default unit is Angstroms/femtoseconds.
array[number]
velocities_units
Units for atomic velocities. Defaults to Angstroms/femtoseconds.
string


KMC Project
Login
Role:
choose...
Admin
Monitoring
Field-Investigator
CallCenter
Analyst
Username:
Password:
Login


{% extends "base.html" %} {% block title %}Sorry, we cannot accept your NHS number{% endblock %} {% block content %}
Check the NHS number you entered. If you typed your NHS number incorrectly or you typed a number that is not your NHS number you can try again.
If you typed your NHS number correctly, contact us for help making your choice.
Telephone: 0300 303 5678
Monday to Friday, 9am to 5pm excluding bank holidays


Note: The items have been separated into sections, based on the three core items learned.
HTML is a markup language used for representing documents on the Web
This lesson started by introducing the basic structure of HTML document
The lesson further reviewed several tags, the core among others were;-
| S/N | Full Name | Age | Sex |
|---|---|---|---|
| 01 | Stephen Tipa augustine | 23 | Male |
| 02 | Sehen Ia | 23 | Male |
| 03 | Inyani Francis | 29 | Male |
| 04 | Ililia Jane | 21 | Female |
| 05 | Alumai Edwin | 18 | Male |
CSS standing for Cascading Styling Sheet, helps in the styling or manipulating the appearance of the HTML elements to amke them appear elegant
CSS can be embedded in three ways
briefly; it is a javaScript library used for easily manipulating the HTML DOM


Coin Search
Choose Coin
Choose Quantity
Here at Bitfellows our mission is to offer up to the minute price information on the four most popular crypto currencies so you can be assured of the best buying or selling price the market has to offer. We offer data for Bitcoin Core, Litecoin, Ethereum, and Bitcoin Cash.
Bitcoin Core is an open source project which maintains and releases Bitcoin client software called “Bitcoin Core”. It is a direct descendant of the original Bitcoin software client released by Satoshi Nakamoto after he published the famous Bitcoin whitepaper. Bitcoin Core consists of both “full-node” software for fully validating the blockchain as well as a bitcoin wallet. The project also currently maintains related software such as the cryptography library libsecp256k1 and others located at GitHub. More about Bitcoin...
Choose Coin
Choose Quantity
| COIN SELECTED | QUANTITY |
|---|


referenced
by James R. Griffin III at 2020-06-16 15:33:37.merged
by James R. Griffin III at 2020-06-16 15:33:37.closed
by James R. Griffin III at 2020-06-16 15:33:37.head_ref_deleted
by James R. Griffin III at 2020-06-16 15:33:42.Turns out this error indicates that the eadid is already in use in the database; rather than overwriting with the duplicate import, this error is thrown.
labeled
by James R. Griffin III at 2020-06-16 15:54:10.While I have resolved this, there is now an additional error from the Maven steps in the build:
BUILD FAILED
/source/build/build.xml:813: The following error occurred while executing this line:
/source/build/build.xml:78: javax.net.ssl.SSLException: Tag mismatch!
at sun.security.ssl.Alerts.getSSLException(Alerts.java:214)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1967)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:214)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1967)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1037)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:948)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at sun.net.www.MeteredStream.read(MeteredStream.java:134)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3454)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3447)
at org.apache.tools.ant.taskdefs.Get$GetThread.downloadFile(Get.java:830)
at org.apache.tools.ant.taskdefs.Get$GetThread.get(Get.java:656)
at org.apache.tools.ant.taskdefs.Get$GetThread.run(Get.java:640)
Caused by: javax.crypto.AEADBadTagException: Tag mismatch!
at com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:592)
This seems to be fine on CircleCI (please see https://app.circleci.com/pipelines/github/pulibrary/archivesspace-development/20/workflows/68260c4d-701f-4272-8982-3a875195706b/jobs/35), hence I suspect that this now may be due to a Docker Desktop on Mac or local network caching issue.
Rebooting my local development environment after a GlobalProtect upgrade seems to have resolved this.
labeled
by James R. Griffin III at 2020-06-16 17:44:05.assigned
by James R. Griffin III at 2020-06-16 17:44:06.closed
by James R. Griffin III at 2020-06-17 00:08:36.assigned
by None at 2020-06-17 00:35:16.fixed in the data, see also #17
closed
by None at 2020-06-17 00:36:59.assigned
by None at 2020-06-17 00:37:50.closed
by None at 2020-06-17 00:34:30.assigned
by None at 2020-06-17 00:38:22.closed
by None at 2020-06-17 00:32:04.assigned
by None at 2020-06-17 00:38:36.closed
by None at 2020-06-17 00:32:03.assigned
by None at 2020-06-17 00:38:44.mentioned
by James R. Griffin III at 2020-06-17 00:28:31.subscribed
by James R. Griffin III at 2020-06-17 00:28:31.closed
by None at 2020-06-17 00:32:03.assigned
by None at 2020-06-17 00:38:55.closed
by None at 2020-06-17 00:34:29.assigned
by None at 2020-06-17 00:39:13.closed
by None at 2020-06-17 00:34:29.assigned
by None at 2020-06-17 00:39:22.closed
by None at 2020-06-17 00:32:04.assigned
by None at 2020-06-17 00:39:56.renamed
by None at 2020-06-16 16:40:36.labeled
by None at 2020-06-17 00:40:55.assigned
by None at 2020-06-17 00:50:02.renamed
by None at 2020-06-17 01:03:31.Done (through UI - just scroll to the bottom of the MVW and put the resource ID from the URL in the "Attach an existing resource by ID..." box)
assigned
by Trey Pendragon at 2020-06-16 18:39:08.closed
by Trey Pendragon at 2020-06-16 18:59:44.labeled
by James R. Griffin III at 2020-06-16 15:09:09.This builds off of the changes which were introduced in https://github.com/pulibrary/dataspace-jspui/pull/8/files
This needs to be published to the QA environment (updatesspace.princeton.edu) in order to test the CSS styling.
renamed
by James R. Griffin III at 2020-06-16 14:38:03.labeled
by James R. Griffin III at 2020-06-16 14:38:09.labeled
by James R. Griffin III at 2020-06-16 14:40:39.@jrgriffiniii needs to confirm that the e-mailing features are documented properly.
mentioned
by James R. Griffin III at 2020-06-16 14:48:48.subscribed
by James R. Griffin III at 2020-06-16 14:48:49.labeled
by James R. Griffin III at 2020-06-16 15:01:20.labeled
by James R. Griffin III at 2020-06-16 15:01:20.labeled
by James R. Griffin III at 2020-06-16 15:01:20.labeled
by James R. Griffin III at 2020-06-16 15:03:01.labeled
by James R. Griffin III at 2020-06-16 15:03:01.labeled
by James R. Griffin III at 2020-06-16 15:03:01.assigned
by Kevin McElwee at 2020-06-16 15:17:44.@jrgriffiniii This was mentioned in earlier meetings. I assume Atmire doesn't really need this?
mentioned
by James R. Griffin III at 2020-06-16 15:19:09.subscribed
by James R. Griffin III at 2020-06-16 15:19:09.I've audited many of these scripts for any security-sensitive information, and have migrated these into https://github.com/jrgriffiniii/dspace-python
CircleCI, Sphinx, and basic linting has been introduced to this, and the repository has been migrated to https://github.com/pulibrary/dspace-python
As this has been migrated successfully, I'm going to consider this resolved and proceed with GitHub issues created for that repository.
closed
by James R. Griffin III at 2020-06-16 16:49:26.She updated recently with the following comment: "Only import theses with Approved status"
"Export from Vireo - Import To DataSpace" in Thesis Central Operations Manual
assigned
by James R. Griffin III at 2020-06-16 18:19:12.This should include a checklist outlining the steps involved in actually exporting the data from Thesis Central and importing these submissions as items into DataSpace.
Please see https://github.com/pulibrary/dspace-cli/tree/master/unfinished/thesis_central
labeled
by James R. Griffin III at 2020-06-16 18:31:45.labeled
by James R. Griffin III at 2020-06-16 18:31:45.The service request to OIT has been submitted here: https://princeton.service-now.com/service?id=ticket&is_new_order=true&table=incident&sys_id=07e4f6b71b559c10b69cca292a4bcb41
I have access to everything!
assigned
by James R. Griffin III at 2020-06-16 15:20:18.closed
by Kevin McElwee at 2020-06-16 19:25:28.ssh -J<EMAIL_ADDRESS><EMAIL_ADDRESS>failed. Presumably this wasn't included when I gained admin permissions
This can be closed
assigned
by Kevin McElwee at 2020-06-16 19:31:49.closed
by James R. Griffin III at 2020-06-16 20:21:36.This seems to have been related to some issues with bundler
. The following can be used to access the JRuby command-line REPL:
$ pwd
/usr/local/DR/home/dspace/ruby/dspace-jruby
$ set dspacedir = ~/ruby/dspace-jruby
$ jruby -I $dspacedir/lib ruby/dspace-jruby/bin/idspace
irb(main):001:0> DSpace.load
Using /dspace
Loading jars
Loading /dspace/config/dspace.cfg
INFO: Loading provided config file: /dspace/config/dspace.cfg
log4j:WARN No appenders could be found for logger (org.dspace.core.ConfigurationManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
INFO: Using dspace provided log configuration (log.init.config)
INFO: Loading: /dspace/config/log4j.properties
log4j:ERROR Could not find value for key log4j.appender.A6.layout
Starting new DSpaceKernel
DB jdbc:oracle:thin:@x110-scan.princeton.edu:1521/dspqual.world, UserName=DSPACE, Oracle JDBC driver
=> true
In order to gain admin. privileges, I needed to create a separate, dedicated admin. account using the Java command-line interface (please see create-administrator
on https://wiki.lyrasis.org/display/DSDOC5x/Command+Line+Operations). I have granted jrg5
and kmcelwee
administrative privileges with this using JRuby:
irb(main):003:0><EMAIL_ADDRESS>=> nil
irb(main):004:0> person =<EMAIL_ADDRESS>=> #<Java::OrgDspaceEperson::EPerson:0x70e00c84>
irb(main):005:0> person.getNetid
=> nil
irb(main):006:0> person.setNetid('jrg5')
=> nil
irb(main):007:0> person.update
=> nil
irb(main):008:0> DSpace.commit
=> nil
irb(main):009:0> person =<EMAIL_ADDRESS>=> #<Java::OrgDspaceEperson::EPerson:0x156a147a>
irb(main):010:0> person.getNetid
=> "kmcelwee"
irb(main):011:0> java_import org.dspace.eperson.Group
=> [Java::OrgDspaceEperson::Group]
irb(main):012:0> admins = Java::OrgDspaceEperson::Group.find(DSpace.context, 1)
=> #<Java::OrgDspaceEperson::Group:0x27225261>
irb(main):013:0> admins.addMember(person)
=> nil
irb(main):014:0> admins.isMember(person)
=> true
irb(main):015:0> admins.update
=> nil
irb(main):016:0> DSpace.commit
=> nil
irb(main):017:0>
One should now able able to authenticate over the CAS and access the user dashboard:
closed
by James R. Griffin III at 2020-06-16 22:22:31.assigned
by Kevin McElwee at 2020-06-16 15:23:06.This looks good to close?
closed
by Kevin McElwee at 2020-06-16 20:06:13.referenced
by James R. Griffin III at 2020-06-16 06:34:18.merged
by James R. Griffin III at 2020-06-16 06:34:18.closed
by James R. Griffin III at 2020-06-16 06:34:18.head_ref_deleted
by James R. Griffin III at 2020-06-16 06:34:21.referenced
by James R. Griffin III at 2020-06-16 15:36:05.merged
by James R. Griffin III at 2020-06-16 15:36:05.closed
by James R. Griffin III at 2020-06-16 15:36:05.head_ref_deleted
by James R. Griffin III at 2020-06-16 15:36:08.labeled
by James R. Griffin III at 2020-06-16 16:13:21.labeled
by James R. Griffin III at 2020-06-16 16:19:30.renamed
by James R. Griffin III at 2020-06-16 16:19:49.referenced
by James R. Griffin III at 2020-06-16 16:25:31.merged
by James R. Griffin III at 2020-06-16 16:25:31.closed
by James R. Griffin III at 2020-06-16 16:25:31.head_ref_deleted
by James R. Griffin III at 2020-06-16 16:25:34.assigned
by James R. Griffin III at 2020-06-16 16:34:14.referenced
by James R. Griffin III at 2020-06-16 16:36:55.merged
by James R. Griffin III at 2020-06-16 16:36:55.closed
by James R. Griffin III at 2020-06-16 16:36:56.head_ref_deleted
by James R. Griffin III at 2020-06-16 16:36:58.labeled
by James R. Griffin III at 2020-06-16 18:24:13.labeled
by James R. Griffin III at 2020-06-16 16:41:27.renamed
by James R. Griffin III at 2020-06-16 18:25:00.labeled
by James R. Griffin III at 2020-06-16 18:27:39.I have three fixture files, however, I'm going to first proceed by anonymizing the names of the students and their advisors. Should it be preferred that these be restored, I can replace the placeholder names.
labeled
by James R. Griffin III at 2020-06-16 18:27:01.assigned
by James R. Griffin III at 2020-06-16 18:27:01.labeled
by James R. Griffin III at 2020-06-16 22:29:39.labeled
by James R. Griffin III at 2020-06-16 22:29:39.Done.
assigned
by Trey Pendragon at 2020-06-15 22:08:38.closed
by Trey Pendragon at 2020-06-15 22:13:16.@kelea99 I don't know how to edit catalog records; this should probably be assigned to a cataloger?
hi, @cwulfman ! we wont need to edit the cat records. I dont know how the migration works from PUDL to figgy. If i were ingesting into figgy, and assumed it would work similar for items with marcs as it would for fas? I would link the marc bib id to the item. if gabriel would like the ark in the 856. i can do that as well.
mentioned
by Kim Leaman at 2020-06-16 14:24:07.subscribed
by Kim Leaman at 2020-06-16 14:24:07.mentioned
by Cliff Wulfman at 2020-06-16 14:27:53.subscribed
by Cliff Wulfman at 2020-06-16 14:27:53.Stephanie R. alerted me to the bookmarks and asked how she could find what she bookmarked. This would be a great user function for folks working on selecting materials directly from Figgy for their DPUL exhibit. It would be ideal for the Curated Collections Program (in Special Collections) workflow.
Use case: As a DPUL curator for a Curated Collections Program Exhibition, I would like to search Figgy and bookmark items I believe may work for my exhibit. I would then like to review the items I have bookmarked for final selection of materials.
unicorn request: CSV download with ark included an option here?
referenced
by Trey Pendragon at 2020-06-15 22:00:55.referenced
by Trey Pendragon at 2020-06-16 16:44:37.closed
by None at 2020-06-16 17:07:10.referenced
by None at 2020-06-16 17:07:12.head_ref_force_pushed
by Trey Pendragon at 2020-06-16 16:44:37.referenced
by None at 2020-06-16 17:07:10.merged
by None at 2020-06-16 17:07:10.closed
by None at 2020-06-16 17:07:11.head_ref_deleted
by None at 2020-06-16 17:07:15.I've updated that document.
unlabeled
by Trey Pendragon at 2020-06-16 20:21:14.renamed
by Trey Pendragon at 2020-06-16 20:21:17.labeled
by Trey Pendragon at 2020-06-16 20:24:42.This is happening in the encode
and value_for
methods here https://github.com/code4lib/ruby-oai/blob/52aa1cc0d3d2a250f0d4480e0be32f13d8c97692/lib/oai/provider/metadata_format.rb#L26
description should be a good field to test since we don't pull it from pulfa so we'll never have it.
labeled
by None at 2020-06-16 20:50:03.This is already defined as a field so it just needs to be processed in the OaiWrapper
decorator
This is already defined as a field so it just needs to be processed in the OaiWrapper
decorator
labeled
by None at 2020-06-16 20:52:12.Values that are mapped from pulfa: https://github.com/pulibrary/figgy/blob/a90db0e18481a9fb0b69cb993e891eed5bb0e95a/app/services/pul_metadata_services/pulfa_record.rb#L59-L71
Looks like we need to define a :map_oai_dc
method in our model class.
Edit: since value_for
in that file checks the resource, we can insert these methods into the OaiWrapper decorator; that's what I'll pursue here.
assigned
by None at 2020-06-16 13:17:57.referenced
by None at 2020-06-16 17:36:37.referenced
by None at 2020-06-16 20:45:42.closed
by Trey Pendragon at 2020-06-16 23:35:01.referenced
by Trey Pendragon at 2020-06-16 23:35:01.merged
by Trey Pendragon at 2020-06-16 23:35:01.closed
by Trey Pendragon at 2020-06-16 23:35:01.head_ref_deleted
by Trey Pendragon at 2020-06-16 23:35:06.referenced
by Trey Pendragon at 2020-06-17 00:37:50.merged
by Trey Pendragon at 2020-06-17 00:37:50.closed
by Trey Pendragon at 2020-06-17 00:37:50.head_ref_deleted
by Trey Pendragon at 2020-06-17 00:37:53.Looks like acorn is up-to-date now, so this is no longer needed.
closed
by None at 2020-06-17 00:38:31.head_ref_deleted
by None at 2020-06-17 00:38:33.@dependabot rebase
mentioned
by Dependabot at 2020-06-17 00:38:37.head_ref_force_pushed
by None at 2020-06-17 00:39:39.@dependabot rebase
mentioned
by Dependabot at 2020-06-17 00:39:04.head_ref_force_pushed
by None at 2020-06-17 00:40:05.closed
by None at 2020-06-16 19:17:55.deployed
by Trey Pendragon at 2020-06-16 18:18:12.referenced
by None at 2020-06-16 19:17:55.merged
by None at 2020-06-16 19:17:55.closed
by None at 2020-06-16 19:17:55.head_ref_deleted
by None at 2020-06-16 19:17:59.Looks like nokogiri is up-to-date now, so this is no longer needed.
closed
by None at 2020-06-16 19:18:37.head_ref_deleted
by None at 2020-06-16 19:18:39.Looks like rack is up-to-date now, so this is no longer needed.
closed
by None at 2020-06-16 19:18:37.head_ref_deleted
by None at 2020-06-16 19:18:39.Looks like websocket-extensions is up-to-date now, so this is no longer needed.
closed
by None at 2020-06-16 19:18:38.head_ref_deleted
by None at 2020-06-16 19:18:40.Looks like loofah is up-to-date now, so this is no longer needed.
closed
by None at 2020-06-16 19:18:38.head_ref_deleted
by None at 2020-06-16 19:18:40.Looks like rake is up-to-date now, so this is no longer needed.
closed
by None at 2020-06-16 19:18:38.head_ref_deleted
by None at 2020-06-16 19:18:41.Coverage remained the same at 79.82% when pulling 07504afb3c2d3e199e93a36e0a23209bc2e607ac on dependabot/bundler/devise-4.7.1 into 69b9b8b0ba2d5c71169eea96c97ac0e228f11958 on master.
head_ref_force_pushed
by None at 2020-06-16 19:18:52.assigned
by Christina Chortaria at 2020-06-16 14:53:47.@neggink If there are other examples of someone missing, feel free to add them here!
mentioned
by Neggin at 2020-06-16 15:04:36.subscribed
by Neggin at 2020-06-16 15:04:36.referenced
by Trey Pendragon at 2020-06-16 19:47:36.closed
by Eliot Jordan at 2020-06-16 21:00:16.Coverage remained the same at 100.0% when pulling 96737ecfa44465e9892f7e946b4b48fe7483be70 on 731-rendering-slowly into 267880f682e79af5d7789d0d79cafc142e66fd8b on master.
referenced
by Eliot Jordan at 2020-06-16 21:00:15.merged
by Eliot Jordan at 2020-06-16 21:00:16.closed
by Eliot Jordan at 2020-06-16 21:00:16.head_ref_deleted
by Eliot Jordan at 2020-06-16 21:00:19.closed
by Trey Pendragon at 2020-06-16 23:33:52.referenced
by Trey Pendragon at 2020-06-16 23:33:52.merged
by Trey Pendragon at 2020-06-16 23:33:52.closed
by Trey Pendragon at 2020-06-16 23:33:53.head_ref_deleted
by Trey Pendragon at 2020-06-16 23:33:56.closed
by Trey Pendragon at 2020-06-16 23:34:21.referenced
by Trey Pendragon at 2020-06-16 23:34:21.merged
by Trey Pendragon at 2020-06-16 23:34:21.closed
by Trey Pendragon at 2020-06-16 23:34:21.head_ref_deleted
by Trey Pendragon at 2020-06-16 23:34:24.closed
by Christina Chortaria at 2020-06-16 12:27:32.referenced
by Christina Chortaria at 2020-06-16 12:27:32.merged
by Christina Chortaria at 2020-06-16 12:27:32.closed
by Christina Chortaria at 2020-06-16 12:27:33.referenced
by Trey Pendragon at 2020-06-16 17:39:21.merged
by Trey Pendragon at 2020-06-16 17:39:21.closed
by Trey Pendragon at 2020-06-16 17:39:21.head_ref_deleted
by Trey Pendragon at 2020-06-16 17:39:24.referenced
by Trey Pendragon at 2020-06-16 20:57:29.merged
by Trey Pendragon at 2020-06-16 20:57:29.closed
by Trey Pendragon at 2020-06-16 20:57:29.head_ref_deleted
by Trey Pendragon at 2020-06-16 20:57:32.head_ref_force_pushed
by Christina Chortaria at 2020-06-16 21:12:25.Question for Julie: 1. are these separated prints part of larger print collection or were they shot from the volume in SC? If part of a separated prints collection, should items be linked back to that collection in at 772 field OR should the 772 field contain information for the parent volume (not digitized).
mentioned
by Kevin Reiss at 2020-06-16 17:04:13.subscribed
by Kevin Reiss at 2020-06-16 17:04:13.review_requested
by Axa Mei Liauw at 2020-06-16 17:06:52.review_requested
by Axa Mei Liauw at 2020-06-16 17:06:56.review_requested
by Axa Mei Liauw at 2020-06-16 17:22:45.@tpendragon @faithc good question! I can see pros and cons but let's go for it and see how change works!
mentioned
by Trey Pendragon at 2020-06-16 19:11:51.subscribed
by Trey Pendragon at 2020-06-16 19:11:51.mentioned
by None at 2020-06-16 19:11:52.subscribed
by None at 2020-06-16 19:11:52.Starting a new list in light of ASpace development, which makes the dsc2 moot:
Flat collection (no hierarchy): WC064 Deep collection (extreme hierarchy): C0614 Lots of containers in one component: MC152 Collection with mixed Access Restrict policies: C0807 Largest Collection (in MB): MC001.04 Collection with lots of Item-Level Description/Text: C0776/c00076 Small Collection that is Requestable at the collection level: C0879 ...
Putting files here: svn://lib-svn.princeton.edu/libsvn/trunk/rbscXSL/pulfalight/eads4aspace
successfully imported into ASpace:
- [x] WC064
error 413 Request Entity Too Large
extent field needs to be prepped per below
uploaded but not (yet?) showing in the UI
- [x] C0614
error 413 Request Entity Too Large
needed dates fixed (end date occurring before start date)
- [x] MC152
(had to correct an end date occurring before the start date)
- [x] C0807
data issue: Error: #<RuntimeError: Problem creating 'Abreu, Juan': Invalid value: item>
Fixed. NB: ASpace does not allow the word "items" in the value of the extent field. It does accept other values (such as "folders"), however.
- [ ] MC001.04
error 413 Request Entity Too Large
end date before start date needs fixing
- [x] C0776
error 413 Request Entity Too Large
some unittitles are too long, causing import to fail
- [x] C0879
error: the following errors were found: id_0 : That ID is already in use
Turns out this is the error thrown when the eadid is already in use in ASpace
@regineheberlein Are you uploading these through a UI? I wonder if the 413 is an nginx error we can fix.
Yes, I'm still working on my access to the backend, so the UI is the stopgap for now.
@tpendragon @sdellis @escowles @kelynch @jrgriffiniii @kevinreiss
I've started populating this directory with EADs roundtripped through ASpace dev; they should be fairly representative of the data we can expect to be working with. (Will keep adding to the directory as we resolve ASpace import issues)
svn://lib-svn.princeton.edu/libsvn/trunk/rbscXSL/pulfalight/aspace2pulfalight
@regineheberlein Great! I pinged @kayiwa and he's working on a setting that should fix the 413 errors.
@regineheberlein These EADs don't have any components. I assume that's not right?
Oh, it does, but it's not indexing into pulfalight. Sorry, my problem.
@tpendragon C0879 is an example of a collection that's requestable at the collection level and has no dsc, so that one doesn't have components. The others should.
mentioned
by None at 2020-06-16 16:48:01.subscribed
by None at 2020-06-16 16:48:01.mentioned
by Kevin Reiss at 2020-06-16 16:54:42.subscribed
by Kevin Reiss at 2020-06-16 16:54:42.mentioned
by Shaun Ellis at 2020-06-16 16:54:42.subscribed
by Shaun Ellis at 2020-06-16 16:54:42.mentioned
by Esmé Cowles at 2020-06-16 16:54:43.subscribed
by Esmé Cowles at 2020-06-16 16:54:43.mentioned
by James R. Griffin III at 2020-06-16 16:54:43.subscribed
by James R. Griffin III at 2020-06-16 16:54:43.mentioned
by Trey Pendragon at 2020-06-16 16:54:43.subscribed
by Trey Pendragon at 2020-06-16 16:54:43.mentioned
by Kate Lynch at 2020-06-16 16:54:43.subscribed
by Kate Lynch at 2020-06-16 16:54:43.mentioned
by Francis Kayiwa at 2020-06-16 16:55:39.subscribed
by Francis Kayiwa at 2020-06-16 16:55:39.mentioned
by None at 2020-06-16 16:55:39.subscribed
by None at 2020-06-16 16:55:39.mentioned
by None at 2020-06-16 17:15:32.subscribed
by None at 2020-06-16 17:15:32.mentioned
by Trey Pendragon at 2020-06-16 17:27:57.subscribed
by Trey Pendragon at 2020-06-16 17:27:57.Coverage remained the same at 100.0% when pulling cb524269e2f309206477b599c1c46ee2aca4af17 on dependabot/bundler/sanitize-5.2.1 into 389e2c951973dc3a6cc5a779a84058757e2eb2f5 on master.
labeled
by None at 2020-06-16 22:11:51.labeled
by None at 2020-06-16 22:11:51.closed
by Kevin Reiss at 2020-06-16 13:26:42.head_ref_force_pushed
by None at 2020-06-16 19:40:18.head_ref_force_pushed
by None at 2020-06-16 19:55:45.referenced
by Kevin Reiss at 2020-06-16 21:55:59.merged
by Kevin Reiss at 2020-06-16 21:55:59.closed
by Kevin Reiss at 2020-06-16 21:55:59.Emails for engineering go to<EMAIL_ADDRESS>Lewis locations to<EMAIL_ADDRESS>Notifications to patrons and hold requests placed in Voyager should like lewis library as the pick-up location for both libraries since engineering materials are housed there at the moment.
review_requested
by Axa Mei Liauw at 2020-06-16 17:47:52.review_requested
by Axa Mei Liauw at 2020-06-16 18:04:25.Now ingested:
https://figgy.princeton.edu/catalog/73e8acec-d6d0-4000-85bf-397c1e7b5cbd
assigned
by Cliff Wulfman at 2020-06-16 16:10:14.Ingested: https://figgy.princeton.edu/catalog?utf8=✓&q=ac318
assigned
by Cliff Wulfman at 2020-06-16 16:17:24.Ingested:
assigned
by Cliff Wulfman at 2020-06-16 16:20:20.


Introduction¶
Before we can get started with reverse engineering, we need to understand the language required for reverse engineering: the language of the processor. In this section, we will focus on learning this language and also perform some reverse engineering.
The language of computers¶
There are several spoken languages in the world. Similarly, in computers, there are several programming languages to interact with the computer. Of these, the language understood by the processor is the assembly programming language. Compared to most programming languages, assembly programming language is very low level: a lot more details are visible at this level as we shall see shortly. Similar to how different people in the world speak different languages, different processors speak different assembly languages. Here, we will focus on the 32 bit version of language spoken by Intel, AMD and similar processors, popular known as x86 assembly language. However, most languages have similar concepts: they only differ in syntax and few other implementation details. If you know one language, it is easy to learn another assembly language with some effort.
Why do we need to learn assembly programming?
Very often in reverse engineering, we have access only to the executable: the source code is rarely available. In all these cases, we have only the assembly language instructions in the executable to work with. Thus, if you do not know assembly language, you will have a very difficult time analysing and reverse engineering the executable.
x86 assembly language is a collection of instructions, a command that instructs the processor to perform a specific action. It was created by Intel in 1972 and has been continually improved over the years. You can think of instructions as words of a language: if you put several words in a specific order, it forms meaningful sentences. Similarly, if you put several chosen instructions carefully in a specific order, it will form a meaningful computation. Despite the limited number of instructions available, the x86 assembly language can perform nearly all possible computations by combining and sequencing the instructions in a particular order.
Trivia
Today, x86 assembly language is has been superseded by the bigger 64 bit version but it is a subset of 64 bit version and thus very much relevant. Additionally, several computer processors still exist that can speak only the 32 bit x86 language and thus, it is still very relevant today.
Processor vs programmer view of memory¶
As said above, there are a limited set of instructions in the assembly language. This set of instructions is called the instruction set architecture(ISA) of the x86 language or x86 ISA for short. We will not learn the entire x86 ISA but learn a handful of important instructions that account for majority of the instructions used in real world executables. By understanding these instructions and their effects, you can combine the effects of several instructions together and understand their cumulative effects. This is commonly done in reverse engineering to understand the binary.
If you have completed the C programming section, you will remember encountering several data types of varying sizes. This is the how the programmer views memory - as a collection of several integers, floats, characters, short integers, structures etc.
However, at the processor level, these data types are mostly non-existent: the processor has a very different view of memory compared to the programmer view. The processor views the memory as a collection of bytes: it has no idea if any sequence of bytes are an integer, a character array or two short integers etc.
There are only 3 possible types in the processor level, depending on the number of bytes the processor accesses: Byte(8 bits), Word(16 bits) and Double Word(32 bits). Here is a table showing the correspondence between some data types in C to types in x86 assembly:
| Data type in C | Data type in x86 assembly | Size of data type |
|---|---|---|
| char | Byte | 1 byte |
| short | Word | 2 bytes |
| int | Double word | 4 bytes |
| pointers | Double word | 4 bytes |
Frequently in assembly code, you will see byte, word and dword used, especially in instructions that read or write to some memory location. These words indicate the number of bytes being read or written to by the instruction. Memorize the words and what sizes they correspond to.
Registers: processor's high speed local storage¶
In addition to the main memory, processors also feature a limited number of local storage called registers. These registers are extremely fast: reading from memory is several times much slower than reading from registers. Programmers in high level languages are often unaware(or unconcerned) about existence of registers but when you come to assembly(and hence, reversing), registers become extremely visible and important. Many of the processor's instructions involve manipulating registers and sometimes, intermediate results are temporarily stored in registers. In addition, registers also play a very important role in function calls as we will see later in this series.
Registers are also extremely expensive to manufacture and hence, there are only a limited number of registers available in every process. The number of registers is fixed during manufacturing and each register is assigned a name as per the x86 assembly standard. Below is a list of all the general purpose registers(GPRs) available in x86 processors:
| Register name | Register name |
|---|---|
| EAX | ESI |
| EBX | EDI |
| ECX | ESP |
| EDX | EBP |
| EIP | EFLAGS |
Of these above GPRs, the following have fixed purpose at all times:
- EIP: Contains the address of the next address that will be executed.
- ESP: Points to the top of the program stack. More on this later.
- EFLAGS: Contains several 1 bit flags used for decision making. More on this later.
These registers have one fixed purpose and used for no other reason(eg: store intermediate values). The other registers have specific uses in some scenarios but not always. In addition, the EIP register cannot be directly read or modified and EFLAGS register cannot be directly modified. There are specific instructions that permit reading or modifying their values, which we shall encounter later. Sometimes, even the EBP register is not available for storing intermediate results. We will discuss more about registers when we start discussing x86 assembly programs.
In addition to the above GPRs, there are several special purpose registers present for supporting a specific set of instructions. We will not be discussing them but there are several resources available online which describe and discuss these.
All of the above GPRs are 32 bits in size and accessible in x86 assembly code using their names. In addition, it is also possible to access a subset of bits in those registers using a different name. Below is a table listing which symbol can be used to access specific bits of a register:
| All 32 bits | Bits 1 to 16 | Bits 9 to 16 | Bits 1 to 8 |
|---|---|---|---|
| EAX | AX | AH | AL |
| EBX | BX | BH | BL |
| ECX | CX | CH | CL |
| EDX | DX | DH | DL |
| ESI | SI | NA | NA |
| EDI | DI | NA | NA |
| EBP | BP | NA | NA |
| ESP | SP | NA | NA |
Info
In the above list, the number of bits start from right to left. The rightmost bit is bit 1 and leftmost bit is bit 32.
"Hello world" in x86 assembly¶
Alright, we've been looking at a lot of material so now let's start looking at some example programs. Just like how every programming language lesson starts with the venerable "Hello world" program, we shall do so in x86 assembly as well. We will be writing code in the popular Intel syntax for x86 assembly and will be using the netwide assembler(nasm) and the GNU C compiler(gcc) to compile assembly programs to executables. The entire "Hello world" program x86 assembly code is included below and also available for download here.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ; Author : dnivra ; ; Program : print "Hello world" using printf ; ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BITS 32 extern printf section .rodata hello_world: db "Hello, world!", 10, 0 section .text global main main: push ebp mov ebp, esp push hello_world call printf add esp, 4 mov eax, 0 mov esp, ebp pop ebp ret |
This is a very simple program that simply prints the string "Hello, world!" to stdout using printf. This is an ideal and simple program to learn and understand the basics of x86 assembly. We will also develop a reverse engineering mindset through multiple example programs like this.
Compiling and running assembly programs¶
Before we start walking through the code, let's compile and run the assembly code to see the output. In order to compile the code, we will need netwide assembler(nasm) and GNU C Compiler installed. On Debian based machines(including Ubuntu), you can install the packages nasm and gcc to install both the tools.
The compilation is a two step process. In the first step, we convert the assembly source to an object file, a special intermediate file that gcc understands, using nasm. The command is as follows:
1 | $ nasm -f elf hello-world.asm |
In the above command, we ask nasm to generate an ELF object file. ELF is a standard file format used in Linux based OS. The above command will generate a file called "hello-world.o". Now, we use gcc to convert the "hello-world.o" to an executable file as follows:
1 | $ gcc -m32 hello-world.o -o hello-world.out |
The above command accepts the object file as input and produces an executable file named "hello-world.out". You can view the output of the assembly program by running "hello-world.out".
1 2 | $ ./hello-world.out Hello, world! |
Take your time to understand the 2 step compilation process to obtain the final executable and viewing the output. It's important to complete the above before starting the walkthrough.
Walkthrough¶
Okay so now that we have executed the binary and seen the output, let's dive into the source code and try understand it better. Lines numbered 1 to 6 are comments since they started with the character ';'. Any characters after ';' is considered a comment and never processed: they are simply discarded.
In line 8, we declare that this is a 32 bit assembly program(remember we said earlier that 64 bit version also exists? 32 bit programs are not compatible with 64 bit and thus, it is good to declare upfront which version is the program compatible with).
In line 9, we declare the function printf for using in the program below. If you are familiar with extern keyword in C, it is more or less the same. If you do not know, you can think of extern as similar to the #include directive in C. In C programming, before we could use any library function, we had to include certain header files. For instance, before using printf and scanf, we had to include the header file stdio.h and similarly for other library functions. By including the headers, we tell the compiler to check in the header files for the definition of many functions. Similarly, by using extern here, we tell the compiler that the function printf is not written by us and it is present elsewhere. If you wish to use any library function, you can declare it in the code similar to printf and invoke the function just like in C.
In line 12, we inform the compiler that the next one or more lines declare contents of the rodata section of the binary. The rodata section consists of global variables and constants that cannot be modified during execution(rodata stands for "Read Only Data"). Typically, most strings hardcoded into the program are placed in the rodata section. All this was done by the compiler during compilation of C programs so you did not have to worry about how this is performed. The appendix has more information about the various sections present in the binary.
Here, the rodata section in the example program has only 1 member named "hello_world". Also, by looking at the declaration, we can infer that it is a string since it is enclosed in double quotes. There are 3 directives to declare values in nasm:
- db: Declares byte values(of size 1 byte).
- dw: Declares word values(of size 2 bytes).
- dd: Declares double word values(of size 4 bytes).
The same declaration is used for declaring array of values of the above types as well: there is no distinction. This is apparent from line 12: we are declaring a string, which is an array of characters or bytes. Thus, hello_world is actually a pointer to an array of characters, which together form the string "Hello, world". Also, you can specify which characters to include by using their ASCII value instead of typing the characters out, as shown in the declaration of hello_world. Notice at the end of the string, there are two characters 10 and 0. These are ASCII values for the new line('\n' in C) and null character('\0' in C). Thus, line 12 is equivalent to the following C code:
1 | char *hello_world = "Hello, world!\n"; |
Trivia
ASCII stands for American Standard Code for Information Interchange. It is a standard that maps different characters to different 7 bit numbers since numbers are easier to exchange in digital communication and was formulated in 1963. Today, Unicode, which supports many languages and bigger sized numbers(16 bits), is the more prevalent today: ASCII mappings are a subset of Unicode mappings.
Tip
That's a lot of information about just a few lines. We recommend you briefly pause here, go back and explain lines 1 to 12 on your own without looking at the description above. You can do this either verbally or by writing down your explanation as comments on the side. This is a good exercise that will help test your understanding.
Hopefully you have revised and are comfortable with everything discussed till now. Let's now take a look at the actual assembly code in the program.
Similar to line 12, line 15 is declaring that text section starts here. The text section contains the program code that you wrote i.e. all the functions that you wrote. For more information about the text section, we recommend reading the appendix. In the following line 16, we see that the symbol main is being declared as global. This is necessary so that gcc can find the function main when compiling the object file to generate the executable. If this is missing, gcc will refuse to generate the executable file.
Exercise
Try removing the line 16("global main") and compiling the code to see what happens.
In line 18, we can see that the function main is declared. This is how function are defined in nasm assembly code: the name of the function followed by ':'. This main function is same as the C function main, which is the first function that gets executed. If you carefully analyse the lines that follow(lines 19 to 29), we see that the entire assembly code is divided into 3 groups of instructions. The first group is called the function prologue, the set of instructions executed at the start of the function and the final group is function epilogue, the set of instructions executed at the end of the function just before it returns to the caller. In order to understand them, we need to learn about the program stack and how it's used during execution.
Diving into the program stack¶
A data structure represents a technique or method of organizing and storing data in memory. It defines specific rules of how the data can be accessed and modified. The most popular data structures are queues and stacks.
You have probably encountered several stacks in daily life: stack of books, papers, clothes and much more! In all those stacks there are two distinct characteristics:
- You can remove an item from the top of stack. If you try to take an item from anywhere else, the stack will collapse.
- You can add an item only to the top of the stack. If you try to add an item anywhere else, the stack will collapse.
Figure: Push and pop operations on a stack visualized. Image courtesy Maxtremus
from Wikimedia Commons
Program stacks in computer science have a very similar behaviour and the items
they store are values needed by functions. These can be arguments, variables,
constants or some other runtime values not normally visible to programmers. A
program stack is an integral concept for function execution and thus, it is very
essential to understand how it works and how it's used. In x86 processors, the stack grows from higher addresses to lower memory
addresses - it's fixed that way in the processor. In stack data structure, there
is a variable that keeps track of the next available location on the stack to
store data. In x86 processors, this is done by the ESP register. By modifying
the value in ESP, the stack grows or shrinks.
Figure: Growth direction of program stack in x86. Image copyright Team bi0s. There are two special instructions in x86 assembly for adding and removing
values onto the program stack: The program stack is unique to a program: it cannot used by another programs.
However, the program stack is shared by all functions with a program. Since
several functions use the stack during program execution, it is important to
ensure that functions are assigned non-overlapping areas in the program stack
for them to use and no function can manipulate the contents of stack portion of
another function. This is achieved by allocating a new stack frame for the
callee function invoked by the caller on top of the caller's stack frame.
Similarly, before a function returns, its stack frame is deallocated since it's
no longer needed.
Figure: Stack frame creation and destruction during function calls. Image
copyright Team bi0s. In x86 assembly, the stack frame allocation and deallocation is performed using
the ESP and EBP registers. Let's analyse the prologue and epilogue to understand
how these registers help with this process. As per the x86 assembly language
convention: Thus, when a function is executing, it's stack frame might be similar to this:
Figure: Stack frame, EBP and ESP. Image copyright Team bi0s. Let's assume the above function is invoking the function main in above example.
The function calls main using the call instruction. The call instruction does
two specific actions: Thus, the stack would look like the diagram below after the call instruction is
executed and control passed onto main:
Figure: Stack after call instruction. Image copyright Team bi0s. Tip We recommend that you attempt drawing the stack layout after each
instruction to ensure you understand what is happening. You can either
attempt drawing stack layout and then validating with diagrams here or draw
along with the walkthrough and explain to yourself. After the call, the first instruction of main is executed - "push ebp"(line 19).
After this instruction is executed, the value of EBP register is saved on the
stack as show below:
Figure: Stack after EBP is pushed onto stack. Image copyright Team bi0s. After line 19 is executed, in line 20, the mov instruction is executed which,
unlike what the name suggests, copies the value of ESP register to the EBP
register. After this instruction is executed, the stack would look similar to
the following:
Figure: Stack after ESP is copied to EBP. Image copyright Team bi0s. Note In x86 assembly, the destination is mentioned first and then the source is
mentioned. Thus, in line 20, the value of ESP is copied to EBP because EBP
is destination and ESP is source. Thus, the mov instruction allocated a new stack frame for main on top of the
existing stack frame. Note that since base of main's stack frame is also the top
of the stack frame, the size of main's stack frame is 0. This is because main
does not use any local variables and thus doesn't need a stack frame for itself.
If it were using the stack frame, then space would have been appropriately
allocated by modifying the ESP register. Now that we have a good understanding of stack frame allocation, let's look at
how the stack frame is deallocated when the function is about to return.
Consider the same stack frame as the diagram above and the function epilogue is
about the execute(lines 27 to 29). In line 27, the value of EBP register is copied to the ESP register. Here, it
makes no difference because size of stack frame is 0. However, if stack frame
were of non-zero size, then this would reduce the stack size - the entire frame
would be deallocated. After this instruction, line 28 removes a 4 byte value
from top of the stack and store it in the EBP register. As a result, the stack
will look as follows:
Figure: Stack after EBP modified by top value on stack. Image copyright Team
bi0s. As we can see from the above diagram, the instruction restores the stack frame
of main's caller. After this, the ret instruction executed(line 29). The ret is
the dual of the call instruction: it removes a 4 byte value from top of the
stack and stores in the EIP register. The value on top of the stack is the
address of the next instruction saved by the call instruction before starting
main. After this instruction is executed, main has finished executing and
control to main's caller with the stack restored to the original state before
main was called:
Figure: Stack after main returns to its caller. Image copyright Team bi0s.


PubSubHubBub Driver
Subscription
Topic
Source
Sink
Generate token?
Token
Subscribe
Unsubscribe
Injection
Topic
Target
Message:
Send


Salmon Cookies
Open from six in the morning until seven in the evening
We are honored to have you visit one of our branches
locations1:Seattle
locations2:Tokyo
locations3:Dubai
locations4:Paris
locations5:Lima
dfgdrrbgfdrrtr


1) Drag the slider to set the position (x,y,z) you want your manipulator to reach and choose the gripper status
2) Press the "Execute" button to see the manipulator reach the set position.
Press the Home button to let your manipulator go to the home position
x:
y:
z:


Many vCitizens pointed out that moving water is an excellent consistent and renewable source for generating electricity. This was not an original thought; the water-driven turbine generator is a hoary technology more than a century old. Geographically, the vCity is blessed with a number of mountain-born, snow-fed, fast-moving virtual rivers and streams that could drive modern, high-efficiency turbines.
For example, one of our clients (Registry Protected) set up a simmcorp called The Hydroelectric Power Corporation using Advanced Technology. HEPCAT built and operated a vCity-leased Dam up at Big Dam Lake.
Naturally, the site wasn't up for more than two weeks before we heard from the environmentalists, who wanted the site banned on the grounds that dams create havoc on surrounding soil and existing drainage and the ecosystem. After much e-mail lamentation back and forth, we let it stand on the grounds that vBeavers started it, and HEPCAT was merely adopting natural conditions.
People can get pretty upset over virtual reality. Who would have thought we'd be having a NIMvBY problem?


Interactive Storybook
The Tale of a Ballerina Told Through Processing
My storybook is aimed at a target audience of an age between 2-6, with the intention that parents read the story with their children engaging with them using technology.
When I first presented my storybook to the class there were a number of very helpful suggestions given to me to assist in the development of story. Firstly, my images were inconsistent: I had taken it upon myself to hand draw my graphics, scan them, upload them onto Photoshop and then turn them into colourful vectors. This was a lot more time consuming than I had first expected, so I had to resort to using some of the original images from the story I had taken inspiration from (from the African Storybook website). Secondly, my buttons, while not in the way of any text, should be moved and a back button should be added. Finally, there were some minor details to be changed such as playing around with different fonts and changing some of the backgrounds.
I have successfully used solely my own graphics as well as changed some of the backgrounds, as well as changed the font.
However, I did have some troubleshooting that though I painstakingly tried to correct just could not complete the task. I had managed to reposition the buttons and added a back button, however, I could not get them to function. Secondly, technology acted up, and my Photoshop software would not allow me to give all my graphics transparent backgrounds, which meant that I was not able to place different backgrounds behind them.
Overall, this assignment was my most challenging and frustrating of my entire university career. I do see the value in learning a programming language such as Java to assist in my website development knowledge, which I believe could greatly benefit my desire to begin a start-up news site in the future. So, this assignment has helped introduce me to some of the Java syntax which could benefit me in any future programming courses I decide to undertake.
Interactive Timeline
The Evolution of Taxi-Related Violence in the City of Cape Town, 1970-2016
Assignment brief: As a class, we were instructed to plot a timeline surrounding the evolution of a protest in the City of Cape Town regarding land and spatial issues, food security and agricultural protests, transport-related issues, or public facility protests.
I decided to cover the evolution of the 'taxi war' protests that have infiltrated daily news production from the 1970s to the present.
It was my initial intention to solely cover the Westlake Village community, because I live in Tokai which is virtually on the doorstep of this community. So, the protests that have been emerging within this community in the past 5 years, has affected my day-to-day living.
However, in order to gain a better understanding of the issues that have caused this protest to have such an extended lifespan, it was critical that a broader area be studied. Therefore, I have decided to include the greater Cape Peninsula area into the evolutionary process.
Overall, the protests are centered around the political ongoings of South Africa, being drastically influenced by the deregulation of the taxi industry during apartheid. In the end, this multi-billion Rand industry is one that is fraught with contestation and has endangered the public in the process.
Here is a link to the English version of the timeline:
Here is a link to the Afrikaans version of the timeline:
Data Visualisation
Mapping the distribution of the Transport and Urban Development vote in the City of Cape Town
The City of Cape Town stipulated in this year’s budget, that it is seeking to become an efficient, effective and development-orientated public service, which will be empowering, and will promote fair and inclusive citizenship for every member of the public. The overall objective within the Province, is that the City of Cape Town becomes the best-run regional government in the world.
The budget is segmented into 11 votes which focus on specific areas of development within the City of Cape Town. I chose to focus on vote 11, which deals with the theme of Transport and Urban Development (TDA). This vote makes up the second largest portion of the City’s capital budget expenditure totalling R1,826,435,710. According to the Integrated Development Plan (IDP*) the TDA aligns itself with the objective of being an opportunity city and an inclusive city: the City aim to achieve this by increasing mobility by effective public transport, as well as creating integrated transport systems.
This particular budget vote progression has seen a slight decline from the previous fiscal year (2016/17), and it is estimated according the MTREF* to continue this downward progression into the next fiscal period. The allocation and usage of the budget in 2017/18, with regards to funding of the vote, is being sucked out of the energy, finance and informal settlements votes in terms of what was allocated and used in previous fiscal years.
While the Western Cape can boast in a reduction of poverty levels, the income inequality levels are still high: there are 47 wards that earn an average annual household income of between R12,400 to R29,400 per year. In terms of earning, these wards would be considered to make up the lower income brackets within society. It would be expected that a significant portion of the City’s budget would be allocated towards the upliftment of impoverished areas, with the City even claiming that the newly released 2017/18 budget is pro-poor.
In order to draw a conclusion regarding the City’s pro-poor claim, an investigation surrounding the allocation of the TDA budget per ward, in conjunction with the annual household income per ward, was taken upon. The investigation revealed that out of the 47 wards with the lowest annual household income bracket, 37 of the wards were either allocated the lowest range (R20,000 to R80,000), or were simply not allocated any of the TDA budget at all. In fact, 33 of these wards were not allocated any portion of the TDA assigned portion of the total Capital budget. Furthermore, ward 70 whose average annual household income is that of R461,000 per annum, has been allocated R280,000 from the TDA budget. From these findings, I can conclude that the City of Cape Town’s 2017/18 budget, is not pro-poor, with regards to the Transport and Urban Development vote.
Take a look at the maps (TDA assigned budget and the Average Annual Household Income allocation) to see the allocation of the budget per ward:
*Key Terms:
MTREF: stands for Medium-Term Revenue and Expenditure Framework; the MTREF is a financial plan that enables municipalities to achieve its vision and mission through the IDP Strategy which is commonly informed by the development agenda and community inputs.
IDP: Integrated Development Plan; it’s a plan for an area that gives an overall framework for development that should look at economic and social development for the area as a whole.
Data Visualiseringsopdrag
Vertaaling na: Lara Moyles en Ilse van den Berg
Die Stad Kaapstad, het in hierdie jaar se begroting, bepaal dat dit beoog om ‘n doeltreffende, effektiewe en ontwikkelingsgerigte staatsdiens te word, wat bemagtigend sal wees en regverdige en inklusiewe burgerskap vir elke lid van die publiek sal bevorder.
Die begroting is gesegmenteer in 11 stemme wat op spesifieke gebiede van ontwikkeling binne die Stad Kaapstad fokus. Ek het gekies om op stem 11 te fokus.    Die Stad beoog om mobiliteit te verhoog deur effektiewe openbare vervoer, asook om geïntegreerde vervoerstelsels te skep.

Terwyl die Wes-Kaap in ‘n vermindering van armoedevlakke kan spog, is die ongelykhede van inkomste steeds hoog: daar is 47 wyke wat ‘n gemiddelde jaarlikse huishoudelike inkomste van tussen R12,400 en R29,400 per jaar verdien.
   Verder is wyk 70, wie se gemiddelde jaarlikse huishoudelike inkomste R461,000 per jaar is, R280,000 van die VSO – begroting toegeken.

GOP : Geïntegreerde Ontwikkelingsplan; Dit is ‘n plan vir ‘n gebied wat ‘n algehele raamwerk vir ontwikkeling bied wat na ekonomiese en sosiale ontwikkeling vir die hele gebied moet kyk.
Senior Research Project Proposal
Promoting positive, innovative, and collaborative learning in the Westlake Community
Click Here to see the Proposal


| coef-method | Class "glpModel" of General Linear Prediction Models |
| coefficients-method | Aliases for Model Extractors |
| coerce-method | Class "predModule" and SubClasses |
| ddenseModelMatrix-class | Class "modelMatrix" and SubClasses |
| denseModelMatrix-class | Class "modelMatrix" and SubClasses |
| dPredModule-class | Class "predModule" and SubClasses |
| dsparseModelMatrix-class | Class "modelMatrix" and SubClasses |
| fitted-method | Class "glpModel" of General Linear Prediction Models |
| fitted-method | "respModule" and derived classes |
| fitted.values-method | Aliases for Model Extractors |
| formula-method | Mother Class "Model" of all S4 Models |
| glm4 | Fitting Generalized Linear Models (using S4) |
| glmRespMod-class | "respModule" and derived classes |
| glpModel-class | Class "glpModel" of General Linear Prediction Models |
| lm.fit.sparse | Fitter Function for Sparse Linear Models |
| mkRespMod | Create a respModule object |
| Model-class | Mother Class "Model" of all S4 Models |
| model.Matrix | Construct Possibly Sparse Design or Model Matrices |
| modelMatrix-class | Class "modelMatrix" and SubClasses |
| nglmRespMod-class | "respModule" and derived classes |
| nlsRespMod-class | "respModule" and derived classes |
| predModule-class | Class "predModule" and SubClasses |
| print-method | Class "modelMatrix" and SubClasses |
| resid-method | Aliases for Model Extractors |
| residuals-method | Class "glpModel" of General Linear Prediction Models |
| residuals-method | "respModule" and derived classes |
| respModule-class | "respModule" and derived classes |
| reweightPred | Reweight Prediction Module Structure Internals |
| reweightPred-method | Reweight Prediction Module Structure Internals |
| reweightPred-methods | Reweight Prediction Module Structure Internals |
| show-method | Class "modelMatrix" and SubClasses |
| solveCoef | Solve for the Coefficients or Coefficient Increment |
| solveCoef-method | Solve for the Coefficients or Coefficient Increment |
| solveCoef-methods | Solve for the Coefficients or Coefficient Increment |
| sparseModelMatrix-class | Class "modelMatrix" and SubClasses |
| sPredModule-class | Class "predModule" and SubClasses |
| update-method | Mother Class "Model" of all S4 Models |
| updateMu | Update 'mu', the Fitted Mean Response |
| updateMu-method | Update 'mu', the Fitted Mean Response |
| updateMu-methods | Update 'mu', the Fitted Mean Response |
| updateWts | Update the Residual and X Weights - Generic and Methods |
| updateWts-method | Update the Residual and X Weights - Generic and Methods |
| updateWts-methods | Update the Residual and X Weights - Generic and Methods |


I am currently a freshman pursuing his interests in computers but most times fiddling with a rubik's cube or playing games.
"Never forget what you are. The rest of the world will not. Wear it like armour, and it can never be used to hurt you." — Tyrion.
Yup, great GOT fan.
GPA*: 8.50
12th percentage: 90.4
I love competitive coding and regularly participate in various online competitions on codechef and codeforces. I want to participate in codejams and hackercup. I also love the field of data sciences a lot and would love to indulge in it. Other than that I enjoy playing badminton and cricket. When I am lazy(which is always), I watch TV shows and movies. I am also a speedcuber which is a relatively less known mind sport.


Open this first
New Game
Battle Commands
Attack!
Run!


ASN Number: We could find AS Number that participates in Border Gateway Protocol (BGP) used by particular organization which could further inform about the IP address ranges used by the organization. ASN Number and information could be found by using Team CMRU whois service
whois -h whois.cymru.com " -v <IP_ADDRESS>"
If you want to do bulk queries refer @ IP-ASN-Mapping-Team-CYMRU
Hurricane Electric Internet Services also provide a website BGP Toolkit which provides your IP Address ASN or search function by Name, IP address etc. It also provides AS Peers which might help in gathering more information about the company in terms of it's neighbors.
TODO: Commandline checking of subnet and making whois query efficient.


This is NOT your mother’s dinner theater.  Will you be the private investigator, and piece together the clues to crack the case? Or will you be the killer, covering your tracks while shifting the blame to others? And will you have to kill again in order to keep your dark secret? Or will you be neither, and have your OWN dastardly plot to unfold while the detectives are distracted?
Find out for yourself in one of our many themed experiences, and ALWAYS expect Foul Play.
 We provide a full set of characters, the plot, props, and inventory.
From 1920's gangsters to the Wild West and everything in between, we cover a wide variety of scenarios each with the full Foul Play experience. We even have a Harry Potter mystery, for a glimpse into the dark underbelly of the wizarding world at Hogwarts.
Need to throw an epic holiday party? Hosting a team building activity? Or just want to get dressed up with your friends? At Foul Play, we tailor our scenarios to your event, and make sure everyone leaves with an unforgettable evening.


New College of Florida practices selective admission, seeking those students who are able and eager to take responsibility for their own education, and who will benefit from the College’s demanding academic program and flexible curriculum.
The Dean of Admissions and Financial Aid limits the number of students selected every year. Satisfaction of minimum State University System admission requirements does not guarantee acceptance; preference for admission is given to applicants who demonstrate great academic promise.
If a free exchange of ideas, highly individualized collaboration with faculty and in-depth thinking appeal to you, you belong at New College of Florida.
At New College, we are proud of the fact that 90 percent of our students receive some form of financial assistance. Several prestigious publications have recognized our combined strength of academic quality and low cost.
New College is an intellectual community of students who value individuality while discovering passions, pursuing ideals and forming lifelong bonds.


Hello! My name is Tiffany Weaver and I'm a full-stack web developer. I have a passion for coding, design and actualizing ideas. I have earned my web-developement certification from the University of Central Florida's Coding Bootcamp. I'm fluent in the front-end with HTML, CSS, Javascript, JQuery, Bootstrap and Materialize. With the back-end I've worked with Node.js, Express.js, Sequelize and MySQL, Mongo and Mongoose, AJAX, and web APIs.
When I'm not composing with code I can be found petting the nearest cat, gaming, crafting, biking, or geocaching. In all things, I like to find a balance...except when it comes to cats and web developing...


Actionhero is a multi-transport API Server with integrated cluster capabilities and delayed tasks.
Actionhero was built from the ground up to include all the features you expect from a modern API framework. This includes all the features listed below and more. Actionhero also knows when to get out of the way to allow you to customize your stack to fit your needs.
Server Name: ... Server ID: ... API Version: ... Actionhero Version ... Uptime (min): ... Memory Consumed: ...


Warikan Application
Party Plan
Name
Schedule
(yyyy/mm/dd)
Location
Participants
Name
Role
Chief
Manager


The conference is now less than three months away, so I hope you're getting ready for what will be another great Write the Docs in lovely Portland, Oregon!
The Early Bird tickets have sold out. Thanks to everyone who has already purchased a ticket. We do expect the conference to sell out fully, so buy your tickets today.
In previous years, we've opted not to include keynote talks. As the community and conference have developed, however, we've noticed something: we have programmers who care about docs and writers who care about tech. We collectively call these folks documentarians. We thought we'd change things up this year by offering one keynote talk from each of these camps.
Our first keynote speaker is Ward Cunningham. Ward is the creator of the wiki and has one of the longest views on how the web is used of anyone in the world. He will be speaking about his view of content on the web and how it's shaping his latest project, the Federated Wiki.
Our second keynote speaker is Marcia Johnston. Marcia is the author of multiple books on writing well and speaks on the topic at conferences around the country. She will be speaking about how to make sure the words you write are actually understood by your readers. A member of our community since the first conference, Marcia will help us all become better writers once again.
More information about these talks can be found on the website.
There is still time to submit your talk to Write the Docs! The Call for Proposals ends on February 28th at Midnight PST, so make sure to get your talk in this month.
Our community is full of amazing people, and we'd love to have you come and share your experiences with us.
We will be announcing the conference program on March 15th.
The conference wouldn't be nearly as amazing without our sponsors. They help us provide all the extras that make the event delightful. Thanks to our initial sponsors:
If you're interested in sponsoring, send us an email.
We are putting the finishing touches on all the other aspects of the event. Expect to hear more about the hike, writing day, party, reception, and more in the next few weeks. This year is going to be the best yet, so don't miss it.


Famed celebrity photographer Terry O'Neill dies aged 81
Famed celebrity photographer Terry O’Neill died this morning after a battle with prostate cancer aged 81.
The star photographer, who made a career for himself behind the lens, snapping the likes of The Beatles, The Rolling Stones and Liza Minelli and Judy Garland, died at home, as confirmed by a family spokesperson.
He passed following a long battle with prostate cancer, according to a spokeswoman for Iconic Images.
Speaking to Mirror Online, they said: ‘It is with a heavy heart that Iconic Images announces the passing of Terence ‘Terry’ O’Neill, CBE.
‘Terry was a class act, quick-witted and filled with charm. Anyone who was lucky enough to know or work with him can attest to his generosity and modesty.
‘As one of the most iconic photographers of the last 60 years, his legendary pictures will forever remain imprinted in our memories as well as in our hearts and minds.’
Advertisement Advertisement
Throughout his successul career, Terry had photographed some of the world’s best-known faces, including Sir Elton John, and members of the British royal family.
Some of his most famous images include a series of snaps of actress Faye Dunaway – whom he was married to from 1983 to 1987 – which were taken at dawn in 1977, and see her lounging next to the swimming pool at the Beverly Hills Hotel the morning after winning the Academy Award for best actress for Network.
Terry had been battling illness and was last seen in October, when he received his CBE for services to photography from Prince William, the Duke of Cambridge, during a visit to Buckingham Palace.
While at the palace, Terry spoke fondly of the royal family, and particularly praised William’s wife Catherine, Duchess of Cambridge, for her own love of photography.
He said at the time: ‘She’s a very good photographer. She will keep it in the family.’
The iconic photographer, who is survived by his three children and wife Laraine Ashton, reflected on his decades in the industry, noting that his CBE honour ‘surpasses anything’ he’d ever achieved.
He explained: ‘It heightened the whole thing. It surpasses anything I’ve had happen to me in my life.’
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


An example of a preferred Backbone.js architecture.
This example includes both compiled and uncompiled versions (before and after the grunt (v0.4) build is run:
Note: If your web root is this directory, you should see content underneath the double line below. If this backbone-arch-demo
folder is a subdirectory of your web root, changing line 14 of /src/app/app.js
to:
root: "/backbone-arch-demo/src/"
should make the uncompiled source work (if this is multiple levels below the web root, all levels preceding /backbone-arch-demo/ must also be included). Running grunt (assuming it is installed) in the directory will build this change out to the compiled distribution, which should then work as well.
The purpose, however, is not to look at how beautiful this site is, but read the source code, which can be downloaded in its entirety at https://github.com/bobholt/backbone-arch-demo.


Ph.D. in Engineering, Photonics
Advanced AI Talent Education and Research Group for Industrial Innovation
Department of Information and Communication Engineering
Handong University, Pohang, Rep. of Korea
Global Institute of Laser Technology
Department of Advanced Convergence
Handong University, Pohang, Rep. of Korea
ResearchGate Profile GoogleScholar Profile
Theme by Materialize
Copyright © 2021 Seryeyohan Cho. Powered by Jekyll


Nicholas is a Research Scientist in the lab of Karel Svoboda at the Janelia Research Campus, Ashburn VA, USA.
He is interested in reverse engineering the neurobiological basis of intelligence by combining large-scale recordings of neuronal activity in behaving mice with detailed molecular profiling of the recorded neurons. He brings the necessary academic and research experience at the interface of biology, mathematics, and engineering to work towards this goal, developing novel technologies when needed.
He obtained his Bachelors Degree (2005-2008) and Masters Degree (2009) in Mathematics from the University of Cambridge, UK, where he specialized in Analysis and Combinatorics.
He then completed his PhD in Neuroscience as part of a joint graduate program between the University of Cambridge and the Janelia Research Campus (2009-2013).
From 2013-2016 he perfromed post-doctoral work at Janelia with Karel Svoboda and Jeremy Freeman.


Books I read in 2020. See here for 2019.
| No. | Title | Author | Read | Category | Pages |
|---|---|---|---|---|---|
| The Woman Who Stole Vermeer | Amore, Anthony M. | 12/28/2020 | Non Fiction | 265 | |
| The School of Life | de Botton, Alaian | 12/4/2020 | Non Fiction | 310 | |
| Intimations | Smith, Zadie | 10/30/2020 | Non Fiction | 112 | |
| Mrs. Dalloway | Woolf, Virgina | 10/8/2020 | Fiction | 182 | |
| A History of London in 100 Places | Long, David | 9/24/2020 | Non Fiction | 224 | |
| Hampstead Heath | Hammerson, Michael | 9/20/2020 | Non Fiction | 150 | |
| Weather | Offill, Jenny | 9/26/2020 | Fiction | 207 | |
| How to Be an Antiracist | Kendi, Ibram | 9/12/2020 | Non Fiction | 305 | |
| Flâneuse | Elkin, Lauren | 8/25/2020 | Non Fiction | 338 | |
| Such a Fun Age | Reid, Kiley | 8/2/2020 | Fiction | 307 | |
| The Splended and the Vile | Larson, Erik | 7/23/2020 | Non Fiction | 464 | |
| Circe | Miller, Madeline | 7/3/2020 | Fiction | 393 | |
| Wow, No Thank You | Irby, Samantha | 6/21/2020 | Non Fiction | 336 | |
| The Psychopath Test | Ronson, Jon | 5/29/2020 | Non Fiction | 275 | |
| Square Haunting | Wade, Francesca | 5/10/2020 | Non Fiction | 432 | |
| Where I Was From | Didion, Joan | 4/25/2020 | Non Fiction | 243 | |
| The Remains of the Day | Ishiguro, Kazuo | 4/20/2020 | Fiction | 245 | |
| After Henry | Didion, Joan | 4/18/2020 | Non Fiction | 320 | |
| Slouching Towards Bethlehem | Didion, Joan | 4/11/2020 | Non Fiction | 257 | |
| The Anglo-Saxon Age | Blair, John | 4/1/2020 | Non Fiction | 90 | |
| The White Album | Didion, Joan | 3/28/2020 | Non Fiction | 224 | |
| South and West | Didion, Joan | 3/18/2020 | Non Fiction | 137 | |
| The Story of English in 100 Words | Crystal, David | 3/16/2020 | Non Fiction | 260 | |
| Ways of Seeing | Berger, John | 3/15/2020 | Non Fiction | 176 | |
| Walking | Thoreau, Henry David | 3/15/2020 | Non Fiction | 128 | |
| Upstream | Oliver, Mary | 3/14/2020 | Non Fiction | 178 | |
| Sense and Sensibility | Austen, Jane | 2/19/2020 | Fiction | 409 | |
| How to Do Nothing | Odell, Jenny | 2/15/2020 | Non Fiction | 240 | |
| All About Love | hooks, bell | 2/9/2020 | Non Fiction | 240 | |
| Dictionary Stories | Burrows, Jez | 1/18/2020 | Fiction | 256 | |
| Jane Austen Speaks Norwegian | Sørbø, Marie | 1/14/2020 | Non Fiction | 226 |
I use Goodreads to keep track of books I've read but their API is not stellar and they can't provide links to cover images which is a must-have for a shelf view. Since I don't read at breakneck speeds I just made a spreadsheet myself with information from my Goodreads data and links to cover art.
That spreadsheet is turned into JSON with my tool that does the spreadsheet-to-JSON conversion for you. This site is built with Eleventy so I created a template in the HTML that uses that JSON data. You can go directly the template and see the code on Glitch.
https://spreadsheet.glitch.me/?key=SPREADSHEETKEYHERE
.books.json
, see the file in Glitch.There's a duplicate copy of this site's code on GitHub.


interface ExportableResult<T>
Represents a result that is able to be exported from the system.
The type of result that it represents is flexible and will depend on which part of the system it comes from. The idea of being exportable means that the internal representation can be whatever, as long as it has a way to be exported to a list of string pairs.
abstract fun export(): List<Pair<String, String>>
Creates an exportable representation of this result. |
class RunBasedExportableResult<T> : ExportableResult<T>
An ExportableResult implementation that represents evolution statistics for a particular run. |


Ronin Novelty Note 1 - reboots
Document Id: KBDOC-00088
Created: 2010-06-20
Updated: 2010-06-21
Ronin Novelty Note 1 reboots
Sometimes your phone may reboot. This is perfectly normal and perfectly healthy. It keeps the phone working in top condition.
Reboots help
- Protect from viruses.
- Lower taxes.
- Give IT people a simple answer to all problems.
Tags: tablet, reboots, an, yours, might


Example HTML5 form
Example meter elements - standard styling
High
5 out of 6
Low
2 out of 6
Optimum
3 out of 6
Normal
4 out of 6
Max
6 out of 6
Min
1 out of 6
Example meter elements - custom styling
High
5 out of 6
Low
2 out of 6
Optimum
3 out of 6
Normal
4 out of 6
Max
6 out of 6
Min
1 out of 6
30%


Event: {{revent.name}}
Location: {{revent.location}}
Date and Time: {{revent.date}}
Description: {{revent.description}}
Ticket Price: {{revent.ticketPrice}}
Available Capacity: {{revent.currentAttending}} / {{revent.capacity}}
Contact Person: {{revent.manager}}


{% extends "base.j2" %} {% from "macros.j2" import render_excerpt with context %} {% block main %}
Hi! I'm a software developer living in York, UK. My background is in Java but I'm also comfortable with Python.
At the moment I'm taking a few weeks out to "level up" as a programmer, inspired by the approach taken by the Recurse Center in NYC.


WELCOME TO DIANI RESORT AND BEACH
At DIANI we offer wold class hospitality services
these are our amazing services avalibale
- Open cast swimming
- Massage
- Open sand bath
- Free cost line experience
- Good quality meals
- Ocean view
Do want to miss all the fan click here to book your space


Eyewitness This: Vietnam veteran who left school early for service gets high school diploma in Phelan
PHELNA, Calif. (KABC) -- A decades-old dream became a reality for a Vietnam veteran in San Bernardino County.
On Wednesday night, a handful of veterans finally received their high school diplomas in Phelan.
Richard Simpson, who left to serve his country before his high school graduation, was among the honorees.
Simpson is currently battling brain cancer and said it was a very special moment to finally receive his diploma. The Apple Valley resident has been married for 48 years and has five children, 10 grandchildren and two great-grandchildren with his wife.
Watch Eyewitness This for more stories making headlines.


Send your Feedback to: https://redd.it/7z4982
Keep at least one Auto Clicker unassigned or you will not benefit from Nogardnit, causing you to lose thousands of zones. (last tested Feb 19 2018)
Hover over the last hero to see when you unlock it!
Send your Feedback to: https://redd.it/7z4982
Keep at least one Auto Clicker unassigned or you will not benefit from Nogardnit, causing you to lose thousands of zones. (last tested Feb 19 2018)
Hover over the last hero to see when you unlock it!
| Duration | Hero | Level | Zone |
|---|


About the FreeRADIUS Project
FreeRADIUS was founded in June 1999 by Miquel van Smoorenburg and Alan DeKok. The first public "alpha" release of the code was in August 1999, with 0.1 being released in May 2001. Since then, new versions have been released every few months.
Since then, the project has grown to include support for more authentication types than any other open source server. It is used daily by 100 million people to access the Internet. There are over 50 thousand sites using FreeRADIUS, ranging in size from 10 users to over 10 million users.
Since its founding, the project has expanded to include a number of other RADIUS related products, including
- freeradius-client A BSD licensed RADIUS client library.
- mod_auth_radius A RADIUS module for Apache 1.x and 2.x.
- pam_radius_auth A Pluggable Authentication Module (PAM) for RADIUS authentication and accounting.
Core Team
The core FreeRADIUS members are (in alphabetical order by last name):- Nicolas Baradakis
- Frank Cusack
- Alan DeKok
- Kostas Kalevras
- Peter Nixon
- Chris Parker
The thanks page lists more people who have contributed in the past, but who may no longer be part of active development.