Class: NEAT::Controller
Overview
Controller for all operations of RubyNEAT
This object contains all the specifications and details for evolving and evaluation of the RubyNEAT system. It is a type of “World”, if you will, for the entire enterprise.
Your application shall only have one Controller.
FIXME: The function hooks really should be able to take more FIXME: than one hook! we don't need that functionality right FIXME: now. Also, the Controller 'god' object itself will need FIXME: to undergo some refactorization so that we can have many FIXME: of them for HyperNEAT, co-evolution, etc.
FIXME: An alternative approach would be to have demigod objects FIXME: where the controller would lord it over them all. Attention FIXME: must also be given to Rubinius and JRuby so that we can FIXME: run under multiple cores.
Defined Under Namespace
Classes: NeatSettings
Instance Attribute Summary (collapse)
-
- (Object) evaluator
Returns the value of attribute evaluator.
-
- (Object) evaluator_class
Returns the value of attribute evaluator_class.
-
- (Object) evolver
Returns the value of attribute evolver.
-
- (Object) evolver_class
Returns the value of attribute evolver_class.
-
- (Object) expressor
Returns the value of attribute expressor.
-
- (Object) expressor_class
Returns the value of attribute expressor_class.
-
- (Object) generation_num
readonly
Current generation count.
-
- (Object) log
readonly
Logger object for all of RubyNEAT.
-
- (Object) neural_hidden
Class map of named input and output neurons (each critter will have instantiations of these) name: InputNeuralClass (usually InputNeuron).
-
- (Object) neural_inputs
Class map of named input and output neurons (each critter will have instantiations of these) name: InputNeuralClass (usually InputNeuron).
-
- (Object) neural_outputs
Class map of named input and output neurons (each critter will have instantiations of these) name: InputNeuralClass (usually InputNeuron).
-
- (Object) neuron_catalog
catalog of neurons classes to use { weight => nclass, … }.
-
- (Object) parms
Parameters for evolution (NeatParameters).
-
- (Object) population
readonly
population object and class specification.
-
- (Object) population_class
readonly
population object and class specification.
-
- (Object) population_history
readonly
population object and class specification.
-
- (Object) seq_num
readonly
current sequence number being evaluated.
Attributes inherited from NeatOb
Instance Method Summary (collapse)
- - (Object) gaussian
-
- (Controller) initialize(neural_inputs: nil, neural_outputs: nil, neural_hidden: nil, parameters: NeatSettings.new, &block)
constructor
-
neural_inputs – array of input classes - neural_outputs – array of output classes - parameters – NeatParameters object, or a path to a YAML file to create this.

Methods inherited from NeatOb
Constructor Details
- (Controller) initialize(neural_inputs: nil, neural_outputs: nil, neural_hidden: nil, parameters: NeatSettings.new, &block)
-
neural_inputs – array of input classes
-
neural_outputs – array of output classes
-
parameters – NeatParameters object, or a path to a YAML file to create this.
498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 |
# File 'lib/rubyneat/rubyneat.rb', line 498 def initialize(neural_inputs: nil, neural_outputs: nil, neural_hidden: nil, parameters: NeatSettings.new, &block) super(self) @gaussian = Distribution::Normal.rng @population_history = [] @evolver = Evolver.new self @expressor = Expressor.new self @neuron_catalog = Neuron::neuron_types.clone @neural_inputs = neural_inputs @neural_outputs = neural_outputs @neural_hidden = neural_hidden # Default classes for population and operators, etc. @population_class = NEAT::Population @evaluator_class = NEAT::Evaluator @expressor_class = NEAT::Expressor @evolver_class = NEAT::Evolver # Handle the parameters parameter. :-) @parms = unless parameters.kind_of? String parameters else # load it from a file open(parameters, 'r') { |fd| YAML::load fd.read } end block.(self) unless block.nil? end |
Instance Attribute Details
- (Object) evaluator
Returns the value of attribute evaluator
337 338 339 |
# File 'lib/rubyneat/rubyneat.rb', line 337 def evaluator @evaluator end |
- (Object) evaluator_class
Returns the value of attribute evaluator_class
337 338 339 |
# File 'lib/rubyneat/rubyneat.rb', line 337 def evaluator_class @evaluator_class end |
- (Object) evolver
Returns the value of attribute evolver
338 339 340 |
# File 'lib/rubyneat/rubyneat.rb', line 338 def evolver @evolver end |
- (Object) evolver_class
Returns the value of attribute evolver_class
338 339 340 |
# File 'lib/rubyneat/rubyneat.rb', line 338 def evolver_class @evolver_class end |
- (Object) expressor
Returns the value of attribute expressor
336 337 338 |
# File 'lib/rubyneat/rubyneat.rb', line 336 def expressor @expressor end |
- (Object) expressor_class
Returns the value of attribute expressor_class
336 337 338 |
# File 'lib/rubyneat/rubyneat.rb', line 336 def expressor_class @expressor_class end |
- (Object) generation_num (readonly)
Current generation count
321 322 323 |
# File 'lib/rubyneat/rubyneat.rb', line 321 def generation_num @generation_num end |
- (Object) log (readonly)
Logger object for all of RubyNEAT
371 372 373 |
# File 'lib/rubyneat/rubyneat.rb', line 371 def log @log end |
- (Object) neural_hidden
Class map of named input and output neurons (each critter will have instantiations of these) name: InputNeuralClass (usually InputNeuron)
328 329 330 |
# File 'lib/rubyneat/rubyneat.rb', line 328 def neural_hidden @neural_hidden end |
- (Object) neural_inputs
Class map of named input and output neurons (each critter will have instantiations of these) name: InputNeuralClass (usually InputNeuron)
328 329 330 |
# File 'lib/rubyneat/rubyneat.rb', line 328 def neural_inputs @neural_inputs end |
- (Object) neural_outputs
Class map of named input and output neurons (each critter will have instantiations of these) name: InputNeuralClass (usually InputNeuron)
328 329 330 |
# File 'lib/rubyneat/rubyneat.rb', line 328 def neural_outputs @neural_outputs end |
- (Object) neuron_catalog
catalog of neurons classes to use { weight => nclass, … }
324 325 326 |
# File 'lib/rubyneat/rubyneat.rb', line 324 def neuron_catalog @neuron_catalog end |
- (Object) parms
Parameters for evolution (NeatParameters)
331 332 333 |
# File 'lib/rubyneat/rubyneat.rb', line 331 def parms @parms end |
- (Object) population (readonly)
population object and class specification
334 335 336 |
# File 'lib/rubyneat/rubyneat.rb', line 334 def population @population end |
- (Object) population_class (readonly)
population object and class specification
334 335 336 |
# File 'lib/rubyneat/rubyneat.rb', line 334 def population_class @population_class end |
- (Object) population_history (readonly)
population object and class specification
334 335 336 |
# File 'lib/rubyneat/rubyneat.rb', line 334 def population_history @population_history end |
- (Object) seq_num (readonly)
current sequence number being evaluated
318 319 320 |
# File 'lib/rubyneat/rubyneat.rb', line 318 def seq_num @seq_num end |
Instance Method Details
- (Object) gaussian
530 |
# File 'lib/rubyneat/rubyneat.rb', line 530 def gaussian ; @gaussian.() ; end |
- (Object) new_innovation
529 |
# File 'lib/rubyneat/rubyneat.rb', line 529 def new_innovation ; self.glob_innov_num += 1 ; end |
- (Object) run
Run this evolution.
533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 |
# File 'lib/rubyneat/rubyneat.rb', line 533 def run pre_run_initialize (1..@parms.max_generations).each do |gen_number| @generation_num = gen_number # must be set first @population_history << unless @population.nil? @population else @population = @population_class.new(self) end @population.generation = gen_number @population_history.shift unless @population_history.size <= @parms.max_population_history @population.mutate! @population.express! ## Evaluate population @evaluator.ready_for_evaluation @population (@parms.start_sequence_at .. @parms.end_sequence_at).each do |snum| @seq_num = snum @population.evaluate! end @population.analyze! @population.speciate! $log.debug @population.dump_s unless self.verbosity < 3 new_pop = @population.evolve ## Report hook for evaluation<EMAIL_ADDRESS>## Exit if fitness criteria is reached #FIXME handle this exit condition better!!!!! exit_neat if stop_on_fit_func_hook(@population.report.last[:fitness], self) unless stop_on_fit_func_none? ## Evolve population @population = new_pop ## Finish up this run end_run_hooks(self) end end |


Craig_Cooper_Digital_Designer
Parkway Restaurant
Website & logo design
Parkway Restaurant website
Peter Bishop a highly talented painter specialises in paintings of Cader Idris and the surrounding mountains. His Book Cader Idris was designed to accompany an exhibition at MoMA Wales.
Craig designed an exhibition catalogue for me in 2012. His undoubted talent as a designer is aided by his ability to communicate fully with his client over any issue or concern over the development process culminating in the final publication. The Cader Idris cover is a work of art in itself. As an art world professional I always enjoy showing Craig's superb catalogue design to my collogues and friends.
A careful balance of typography and colour to compliment the artworks yet still let them leap from the page


As the next ACT testing date drew upon, I recalled my positive experiance last time I took the ACT in conjunction with adderall, and decided that I would snag some more for this time. After picking up 5 25mg capsules with the extended release granules inside, I promply went to my room. I pulled open two of the capsules and poured the granules on a sheet of paper. After trying to cut them up with a razor blade, and failing due to the fact they pops and shoot everywhere, I decided to put another peice of paper over them, and apply force on them via a rounded object. This did a good job of turning them all into powder, so I poured the mix back into the capsule and saved it for the next day.
By the way, the reason for this is because I simply wanted the Adderall to be effective for the duration of the ACT, because I had a soccer game later and any sort of amphetamine use during vigorous workout can prove to be hazardous as it constricts blood vessles, therefore putting excessive strain on the heart. And the level I play soccer is very competetive and you are running the whole time. I didn't need a heart attack.
Anyway, with act starting at 8 am, I took 2 capsules with the powdered granules at 7:10, after only consuming water and 2 Tums, the ph level in my stomach was lowered (or theorectically it was), which causes a slow breakdown and slower exit of the chemical from my blood stream, therefore potentiating the Adderall to a greater extent. Around 7:30, I felt mild effects including a surge of energy, and pretty speedy overall. I didn't know anyone there, but that was ok. I was real figety, and jerked my head back and for to look at various things, and im sure a few people may have noticed.
Around 8 am, it was starting to hit full force. I felt very energized, and anxious to take the test, which is good. Also, my thought process was much faster, and I was able to take things and break them down and comprehend and a greater rate than normal. A sense of urgency was present, which is also good since the test is timed. During the test, this helped a ton. I was able to concentrate IMMENSELY, and pretty much nothing could distract me. Occasionly I would feel a warm flush, followed by a tingling feeling running through my scalp and temples that some might describe as 'gooseflesh.' Also, small euphoric rushes came over me every once in a while, and my theighs felt these the strongest and almost felt numb, in a beautiful, relaxing way. This was pretty much an added bonus, but I also expected it since I have done this before.
Though there were no horible side affects, a few things that should be noted occurred. First off, with so much energy, my eye were about as wide open as they go, and for some reason I would stare as certain things before and between the test for large quantities of time, since nothing would really distract me enough to look away. This happened repeatedly when the test instructor talked, and I would stare at him with a look that probably seemed kinda maniac looking.
Also, my jaw was clenching like no tomorrow. If it was clencing, I made small motions that probably looked like I was chewing gum or shivering. I was also very tense muscularly, and could not stop shaking my feet up and down. Also, I was breathing harder than usual, and getting pretty sweaty.
Lastly, though I do not usually experiance any sort of compulsive anger while doing any substance like this, a few problems I just could not figure out. This pissed me off very badly, much more than it normally would. I got very mad, but told my self to skip such problems and go to the next ones. Overall it was pretty obvious I was tweaking to any one familiar with speed or this stuff, and probably looked like a physco to anyone else.
In conclusion, the Adderall helped out a lot on my ACT exam. Besides it being noticable that I was tweaking (I did not feel paranoid at all, though), adderall, or any sort of amphetamine, is a very useful tool when it comes down to situations where you must complete something in a alotted amount of time, or when you need to cram or just work hard and be motived more than usual.
I will probably continue to take Adderall or alike for things like this. Not only does it make me feel GREAT, it hotwires my brain and body into higher state of functionality. But what comes up, must go down. I personally have never come down hard, or even enough to be depressed or even notice it, but the desire to take more Adderall is VERY strong.
To feel like a king, and smarter than the rest, while making boring everyday tasks fun, is something that is just flat out awesome. This may be the perfect drug, but the potential for addiction is VERY high. Not a day goes by that I don't wish I had some or think 'Man this would be so much better if I had some adderall.'
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


German man killed by plasterboard in Cologne DIY store
A German man was fatally injured after a pile of plasterboard fell on top of him at a home improvement store in Cologne. Police have opened a criminal investigation into the incident.
A 69-year-old German man was killed on Monday after a pile of plasterboard fell on him at a Bauhaus home improvement store in Cologne.
According to police, the man was loading pieces of plasterboard with some helpers into his car from the warehouse of the store when a pile of pallets tipped over. The man was unable to get out of the way and was hit with the heavy load.
An emergency physician called to the scene was unable to resuscitate the man.
Police have opened a criminal investigation into the man's death. Police said an authorized expert has been called to the scene to evaluate whether proper safety precautions were taken.
dv/ng (dpa, AFP)


RandomAccessFile
inherits from InputStream
and is a base
class for: ReadableFile
for reading from a file; MemoryMappedFile
for
the same but with memory mapping; and BufferReader
for reading from a
buffer. Use these with the various table readers.
The $create()
factory methods instantiate the InputStream
object and
take the following arguments, depending on the subclass:
path
For ReadableFile
, a character file name
x
For BufferReader
, a Buffer or an object that can be
made into a buffer via buffer()
.
To instantiate a MemoryMappedFile
, call mmap_open()
.
arrow::Object
-> arrow::Readable
-> InputStream
arrow::Object
-> arrow::Readable
-> arrow::InputStream
-> RandomAccessFile
arrow::Object
-> arrow::Readable
-> arrow::InputStream
-> arrow::RandomAccessFile
-> MemoryMappedFile
arrow::Object
-> arrow::Readable
-> arrow::InputStream
-> arrow::RandomAccessFile
-> BufferReader
arrow::Object
-> arrow::Readable
-> arrow::InputStream
-> arrow::RandomAccessFile
-> ReadableFile
close()
InputStream$close()
RandomAccessFile$close()
MemoryMappedFile$close()
BufferReader$close()
ReadableFile$close()
clone()
The objects of these classes are cloneable with this method.
InputStream$clone(deep = FALSE)
RandomAccessFile$clone(deep = FALSE)
MemoryMappedFile$clone(deep = FALSE)
BufferReader$clone(deep = FALSE)
ReadableFile$clone(deep = FALSE)
deep
Whether to make a deep clone.
Read()
Read data from the stream
InputStream$Read(nbytes = NULL)
RandomAccessFile$Read(nbytes = NULL)
MemoryMappedFile$Read(nbytes = NULL)
BufferReader$Read(nbytes = NULL)
ReadableFile$Read(nbytes = NULL)
nbytes
Number of bytes to read. Default NULL
means to read all bytes.
ReadAt()
Similar to $seek(position)$Read(nbytes)
RandomAccessFile$ReadAt(position, nbytes = NULL)
MemoryMappedFile$ReadAt(position, nbytes = NULL)
BufferReader$ReadAt(position, nbytes = NULL)
ReadableFile$ReadAt(position, nbytes = NULL)
position
Integer starting position in the stream
nbytes
Number of bytes to read. Default NULL
means to read all bytes.
GetSize()
RandomAccessFile$GetSize()
MemoryMappedFile$GetSize()
BufferReader$GetSize()
ReadableFile$GetSize()
An integer number of bytes that the stream has.
supports_zero_copy()
RandomAccessFile$supports_zero_copy()
MemoryMappedFile$supports_zero_copy()
BufferReader$supports_zero_copy()
ReadableFile$supports_zero_copy()
Logical: whether the stream supports zero-copy access
seek()
RandomAccessFile$seek(position)
MemoryMappedFile$seek(position)
BufferReader$seek(position)
ReadableFile$seek(position)
position
Integer starting position in the stream
tell()
RandomAccessFile$tell()
MemoryMappedFile$tell()
BufferReader$tell()
ReadableFile$tell()
Resize()
MemoryMappedFile$Resize(size)
size
New size for the file


Grumpy is a utility data structure module with significantly improved performance and ease-of-use.
An example on creating and building with grumpy.
const Grumpy = require('grumpy');
const group = new Grumpy();
group.set('foo', 'bar');
group.get('foo'); // returns 'bar'


Instructions:
- Start game by clicking on screen or pushing spacebar
- Keep doing the above motion to avoid the pipes
- Use WASD or arrow keys to move tiles
- Score is based on tile movement, not pipe clearing
- You have 3 lives which decrements when colliding with pipe or hitting the ground
Created by Dominick Pham, based on code from 2048 and Floppy Bird. Source on Github


{% extends 'layout-lab-3-pregnant.html' %} {% block pageTitle %} Pregnancy - Being pregnant - Early days - Your pregnany to do list - NHS.UK {% endblock %} {% block beforeContent %} {% from 'details/macro.njk' import details %} {{ details({ "classes": "alpha-lab-breadcrumbs", "text": "Early days", "HTML": "
Stay organised during your pregnancy. Keep track of things you need to do and when you need to do them.
Page last reviewed: 7 June 2018
Next review due: 7 June 2021


Woman gets 15 days for throwing cup at Florida congressman
by The Associated PressPENSACOLA, Fla. — A woman has been sentenced to 15 days in federal custody for throwing a sports drink at a Florida congressman who frequently appears on television supporting President Donald Trump.
Federal court records show that 35-year-old Amanda Kondrat’yev was sentenced last Monday in Pensacola. Her confinement is scheduled to begin Dec. 2.
Kondrat’yev pleaded guilty to assault in August. She had faced up to a year in prison.
Authorities say Kondrat’yev was part of a group protesting in June outside a town hall meeting attended by U.S. Rep. Matt Gaetz. The second-term Republican was leaving a coffee house when a cup struck him in the back. Several witnesses identified Kondrat’yev as the assailant, and the throw was caught on video.
The Associated Press


labeled
by None at 2022-03-28 16:32:00.transferred
by None at 2022-03-28 16:40:46.unlabeled
by None at 2022-03-28 16:46:21.unlabeled
by None at 2022-03-28 16:46:21.labeled
by None at 2022-03-28 16:46:21.assigned
by None at 2022-03-28 18:28:23.referenced
by None at 2022-03-28 18:28:28.merged
by None at 2022-03-28 18:28:28.closed
by None at 2022-03-28 18:28:28.head_ref_deleted
by None at 2022-03-28 18:28:28.unlabeled
by Christina Chortaria at 2022-03-28 13:38:54.closed
by Christina Chortaria at 2022-03-28 17:29:20.closed
by Christina Chortaria at 2022-03-28 17:33:29.closed
by Christina Chortaria at 2022-03-28 17:40:24.closed
by Christina Chortaria at 2022-03-28 17:42:16.closed
by Christina Chortaria at 2022-03-28 17:43:59.closed
by Christina Chortaria at 2022-03-28 17:47:07.closed
by Christina Chortaria at 2022-03-28 17:47:58.closed
by Christina Chortaria at 2022-03-28 17:48:22.@mzelesky can you check this issue?
mentioned
by None at 2022-03-28 17:56:55.subscribed
by None at 2022-03-28 17:56:55.labeled
by None at 2022-03-28 15:19:50.labeled
by None at 2022-03-28 15:19:50.@dependabot rebase
Superseded by #1327.
mentioned
by Dependabot at 2022-03-28 15:19:02.closed
by None at 2022-03-28 15:19:52.head_ref_deleted
by None at 2022-03-28 15:19:54.labeled
by Trey Pendragon at 2022-03-28 19:31:00.labeled
by Trey Pendragon at 2022-03-28 19:31:05.referenced
by Trey Pendragon at 2022-03-28 19:43:46.assigned
by Trey Pendragon at 2022-03-28 19:43:46.referenced
by Trey Pendragon at 2022-03-28 19:50:18.closed
by Eliot Jordan at 2022-03-28 20:05:38.referenced
by Eliot Jordan at 2022-03-28 20:05:38.merged
by Eliot Jordan at 2022-03-28 20:05:38.closed
by Eliot Jordan at 2022-03-28 20:05:38.head_ref_deleted
by Eliot Jordan at 2022-03-28 20:05:39.closed
by Bess Sadler at 2022-03-28 14:02:54.closed
by Bess Sadler at 2022-03-28 14:03:05.assigned
by Eliot Jordan at 2022-03-28 18:56:25.Done.
Looked like this:
qs = ChangeSetPersister.default.query_service
correct = qs.find_by(id: "f97e8e8b-5bfe-466e-8c67-e17be912033e")
children = Wayfinder.for(correct).members
bad_resources = qs.custom_queries.find_by_source_metadata_identifiers(source_metadata_identifiers: children.flat_map(&:title))
bad_resources.each do |bad_resource|
change_set = ChangeSet.for(bad_resource)
ChangeSetPersister.default.delete(change_set: change_set)
end
assigned
by Trey Pendragon at 2022-03-28 19:12:10.closed
by Trey Pendragon at 2022-03-28 19:20:34.We think the best strategy is going to be a "band" at the top of the viewer which lets people swap between UV/Leaflet. @sdellis is going to make a mockup of the display for us.
We only add the band if there are two options.
Production example:
https://catalog.princeton.edu/catalog/99125464907006421 and https://figgy.princeton.edu/catalog/f97e8e8b-5bfe-466e-8c67-e17be912033e
mentioned
by Shaun Ellis at 2022-03-28 18:54:48.subscribed
by Shaun Ellis at 2022-03-28 18:54:49.labeled
by None at 2022-03-29 01:42:52.labeled
by None at 2022-03-29 01:42:52.Francis re-ran the ansible playbook. The system as still pointing to the old database. It recently migrated and we don't know why the change didn't stick.
labeled
by Bess Sadler at 2022-03-28 13:52:57.closed
by Bess Sadler at 2022-03-28 14:27:58.@kelea99 I cant reproduce this issue with the example you provided. It seems that is is fixed. Closing this ticket but feel free to reopen it if you see this issue again.
closed
by Christina Chortaria at 2022-03-28 16:32:29.mentioned
by Kim Leaman at 2022-03-28 16:32:29.subscribed
by Kim Leaman at 2022-03-28 16:32:29.We have changed this and we deploy to workers when deploying to production.
closed
by Christina Chortaria at 2022-03-28 16:37:25.unassigned
by Christina Chortaria at 2022-03-28 16:39:13.honeybadger shows as resolved
closed
by Christina Chortaria at 2022-03-28 16:41:08.we dont see this issue any more
closed
by Christina Chortaria at 2022-03-28 16:43:25.closed
by Christina Chortaria at 2022-03-28 17:04:50.@kayiwa can we close this?
mentioned
by Francis Kayiwa at 2022-03-28 17:17:11.subscribed
by Francis Kayiwa at 2022-03-28 17:17:11.closed
by Francis Kayiwa at 2022-03-28 17:18:32.we dont display items anymore
closed
by Christina Chortaria at 2022-03-28 17:19:12.@tpendragon @escowles can you clarify what we want to display in the host record ? https://catalog.princeton.edu/catalog/9969101253506421/ constituent: https://catalog.princeton.edu/catalog/9969101283506421/<PHONE_NUMBER>506421<PHONE_NUMBER>506421
The proposal here is that https://catalog.princeton.edu/catalog/9969101283506421/ would also show the same viewer that's in https://catalog.princeton.edu/catalog/9969101253506421/ (which has all three volumes.) It would do that by querying Figgy for the host record IDs in addition to the constituent IDs.
This is because in the future there won't be volumes in Figgy for individual volumes in a bound-with, the only link will be from Figgy to the host record.
mentioned
by Esmé Cowles at 2022-03-28 17:16:11.subscribed
by Esmé Cowles at 2022-03-28 17:16:11.mentioned
by Trey Pendragon at 2022-03-28 17:16:11.subscribed
by Trey Pendragon at 2022-03-28 17:16:11.closed
by Christina Chortaria at 2022-03-28 17:26:10.closed
by Christina Chortaria at 2022-03-28 17:28:07.we will use the languageianas field
labeled
by Jane Sandberg at 2022-03-28 17:36:04.transferred
by None at 2022-03-28 17:36:49.@hackartisan do we still need this?
mentioned
by None at 2022-03-28 17:58:11.subscribed
by None at 2022-03-28 17:58:11.assigned
by Christina Chortaria at 2022-03-28 18:54:31.renamed
by Christina Chortaria at 2022-03-28 19:11:54.closed
by Bess Sadler at 2022-03-28 14:04:02.assigned
by Bess Sadler at 2022-03-28 14:17:38.referenced
by Hector Correa at 2022-03-28 15:52:56.merged
by Hector Correa at 2022-03-28 15:52:56.closed
by Hector Correa at 2022-03-28 15:52:57.head_ref_deleted
by Hector Correa at 2022-03-28 15:52:57.assigned
by Hector Correa at 2022-03-28 14:09:30.Sitemap is now public (https://datacommons.princeton.edu/discovery/sitemap.xml), it's listed on robots.txt (https://datacommons.princeton.edu/discovery/robots.txt) and it has been submitted to Google:
Reference: https://developers.google.com/search/docs/advanced/sitemaps/build-sitemap
closed
by Hector Correa at 2022-03-28 13:35:31.The behavior I see when using this branch, is: - Titles have language tags (retrieved from bibdata) - Updates to other fields don't remove them - Other fields (e.g., creator) do not have langauge tags (bibdata doesn't present them with language tags, see https://bibdata.princeton.edu/bibliographic/4746714/jsonld)
So I'm going to merge this PR and close pulibrary/bibdata#589. I have created an issue for bibdata to add language tags to non-title fields: https://github.com/pulibrary/marc_liberation/issues/154. When that's in place, we can revisit whether those language tags are brought in and preserved after editing.
Ready for (re)-review @carolyncole.
I fixed the syntax problem, updated the QA vars to look at the lib-postgres-staging3
server instead of lib-postgres3
, and looked into the samba_shares_root
question. The staging and production bibdata servers both have the same symlinks in the /data
directory, so I think we need the variable (and the same value) in all environments.
mentioned
by None at 2022-03-28 16:48:38.subscribed
by None at 2022-03-28 16:48:38.Orangelight production group_vars still refer to catalog-alma
for passenger here. Should this also be changed?
The Solr URLs in the production groupvars also still reference catalog-alma-production
but this is consistent - it shows up in production vars for the solr8cloud, bibdata, and orangelight groupvars.
I think we would have to rename the existing solr index before changing these references. Is that accurate? Is it something we want to do? It would feel tidy, but mifhr require more work than it's worth.
head_ref_force_pushed
by Alicia Cozine at 2022-03-28 14:32:06.referenced
by Alicia Cozine at 2022-03-28 21:38:07.merged
by Alicia Cozine at 2022-03-28 21:38:07.closed
by Alicia Cozine at 2022-03-28 21:38:07.head_ref_deleted
by Alicia Cozine at 2022-03-28 21:38:07.Addressed by #2895.
closed
by Alicia Cozine at 2022-03-28 21:38:31.head_ref_force_pushed
by Alicia Cozine at 2022-03-28 22:51:21.ready_for_review
by Alicia Cozine at 2022-03-28 22:51:47.review_dismissed
by Alicia Cozine at 2022-03-28 22:52:45.renamed
by Christina Chortaria at 2022-03-29 00:12:23.unlabeled
by Christa Cleeton at 2022-03-28 15:20:31.unlabeled
by Christa Cleeton at 2022-03-28 15:22:08.Relates to #862
labeled
by None at 2022-03-28 15:41:41.@tpendragon It's @mzelesky who knows this process best — taking it off his plate and into something like the Pulfalight indexer that other people could work on more easily seems like a good idea to me.
Wondering if there's an update on this project? As a reminder, pulibrary/aspace_helpers#181 is a related request. Thanks!
referenced
by Eliot Jordan at 2022-03-28 18:58:40.merged
by Eliot Jordan at 2022-03-28 18:58:40.closed
by Eliot Jordan at 2022-03-28 18:58:40.head_ref_deleted
by Eliot Jordan at 2022-03-28 18:58:41.referenced
by Trey Pendragon at 2022-03-28 18:59:21.merged
by Trey Pendragon at 2022-03-28 18:59:21.closed
by Trey Pendragon at 2022-03-28 18:59:21.head_ref_deleted
by Trey Pendragon at 2022-03-28 18:59:21.closed
by Trey Pendragon at 2022-03-28 18:59:21.@tpendragon do you know where I can find the PUL Statement and the appropriate Rightstatements.org statement we should use here?
@sdellis https://github.com/pulibrary/figgy/blob/main/config/authorities/rights_statement.yml
The PUL boilerplate is here: https://github.com/pulibrary/figgy/blob/94d66c8b49436d49931d998666c503c80eac2f69/config/locales/en.yml#L111
assigned
by Shaun Ellis at 2022-03-28 14:26:42.mentioned
by None at 2022-03-28 15:56:58.subscribed
by None at 2022-03-28 15:56:58.mentioned
by Trey Pendragon at 2022-03-28 15:57:22.subscribed
by Trey Pendragon at 2022-03-28 15:57:22.mentioned
by Shaun Ellis at 2022-03-28 15:58:36.subscribed
by Shaun Ellis at 2022-03-28 15:58:36.unassigned
by Shaun Ellis at 2022-03-28 18:56:42.assigned
by None at 2022-03-28 18:08:20.assigned
by None at 2022-03-28 18:09:11.referenced
by None at 2022-03-28 18:09:23.merged
by None at 2022-03-28 18:09:24.closed
by None at 2022-03-28 18:09:24.head_ref_deleted
by None at 2022-03-28 18:09:27.assigned
by None at 2022-03-28 18:09:53.referenced
by None at 2022-03-28 18:09:59.merged
by None at 2022-03-28 18:09:59.closed
by None at 2022-03-28 18:09:59.head_ref_deleted
by None at 2022-03-28 18:10:02.


MSNBC Democrat Debate Garners Lowest Ratings to Date
Wednesday night’s Democrat debate hosted by MSNBC garnered the lowest ratings out of the five other debates this year, according to early Nielsen numbers.
by Kyle MorrisOn Thursday, Nielsen reported that the debate, which was held in Atlanta, Georgia, had more than 6.5 million viewers. That figure also included the 1.6 million in the popular 25-54 demographic.
The October 15th debate hosted by CNN received an estimated 8.5 million viewers with 2.4 million in the targeted 25-54 demographic.
CNN’s Democrat primary debates in August, which took place on two separate nights, attracted 8.7 million and 10.7 million viewers respectively.
The most-watched Democrat debate came in June, when an estimated 18 million overall viewers tuned in to see the candidates debate for the first time. Hosted by NBC, the two-day event received five million viewers in the target demographic.
Follow Kyle on Twitter @RealKyleMorris and Facebook.


{% extends "base.html" %} {% block title %}About{% endblock title %} {% block content %}
I created this site as a supplment to my resumé. Everthing that is found on my resumé can be found here with a more in-depth explanation of the implementation process for all projects. I also provide a more explicit explanation of my responsibilities and time at the places I have worked. I make clear the universities I attended, what I learned from each, and why I transfered. Finally, I describe any other experience that I feel has had a significant impact in my life. To explore my life, use the menu above.
Techincal Skills
Experienced
Python
Java
JavaScript (ES6)
HTML/CSS
SQL
Git
Familiar
Django
Node.js
C/C++
Bootstrap
Handlebars.js
jQuery
D3.js
AngularJS
MongoDB
Flexbox/Grid
RESTful APIs
Mocha
Dynammic Programming
Unittest
JUnit
Selenium
General Skills
International communication.
Comfortable in high-octane environments.
Ability to teach myself.
To contact me, please email me at christopherberry216@gmail.com


Returning Errors
Oct 10, 2015There are basically two ways to return errors in Go:
func (c Config) Save() error {
if err := c.checkDefault(); err != nil {
return err
}
...
}
or
func (c Config) Save() error {
if err := c.checkDefault(); err != nil {
return fmt.Errorf("can't find default config file: %v", err)
}
...
}
The former passes the original error up the stack, but adds no context to it. Thus, your saveConfig function may end up printing “file not found: default.cfg” without telling the caller why it was trying to open default.cfg.
The latter allows you to add context to an error, so the above error could become “can’t find default config file: file not found: default.cfg”. This gives nice context to the error, but unfortunately, it creates an entirely new error that only maintains the error string from the original. This is fine for human-facing output, but is useless for error handling code.
If you use the former code, calling code can then use os.IsNotExist()
, figure
out that it was a not found error, and create the file. Using the latter code,
the type of the error is now a different type than the one from os.Open, and
thus will not return true from os.IsNotExist. Using fmt.Errorf effectively
masks the original error from calling code (unless you do ugly string parsing -
please don’t).
Sometimes it’s good to mask the original error, if you don’t want your callers depending on what should be an implementation detail (thus effectively making it part of your API contract). However, lots of times you may want to give your callers the ability to introspect your errors and act on them. This then loses the opportunity to add context to the error, and so people calling your code have to do some mental gymnastics (and/or look at the implementation) to understand what an error really means.
A further problem for both these cases is that when debugging, you lose all knowledge of where an error came from. There’s no stack trace, there’s not even a file and line number of where the error originated. This can make debugging errors fairly difficult, unless you’re careful to make your error messages easy to grep for. I can’t tell you how often I’ve searched for an error formatting string, and hoped I was guessing the format correctly.
This is just the way it is in Go, so what’s a developer to do? Why, write an errors library that does smarter things of course! And there are a ton of these things out there. Many add a stack trace at error creation time. Most wrap an original error in some way, so you can add some context while keeping the original error for checks like os.IsNotExist. At Canonical, the Juju team wrote just such a library (actually we wrote 3 and then had them fight until only one was standing), and the result is https://github.com/juju/errors.
Thus you might return an error this way:
func (c Config) Save() error {
if err := c.checkDefault(); err != nil {
return errors.Annotatef(err, "can't find default config file")
}
}
This returns a new error created by the errors package which adds the given
string to the front of the original error’s error message (just like
fmt.Errorf), but you can introspect it using errors.Cause(err)
to access the
original error return by checkDefault. Thus you can use
os.IsNotExist(errors.Cause(err))
and it’ll do the right thing.
However, this and every other special error library suffer from the same problem - your library can only understand its own special errors. And no one else’s code can understand your errors (because they won’t know to use errors.Cause before checking the error). Now you’re back to square one - your errors are just as opaque to third party code as if they were created by fmt.Errorf.
I don’t really have an answer to this problem. It’s inherent in the functionality (or lack thereof) of the standard Go error type.
Obviously, if you’re writing a standalone package for many other people to use, don’t use a third party error wrapping library. Your callers are likely not going to be using the same library, so they won’t get use out of it, and it adds unnecessary dependencies to your code. To decide between returning the original error and an annotated error using fmt.Errorf is harder. It’s hard to know when the information in the original error might be useful to your caller. On the other hand, the additional context added by fmt.Errorf can often change an inscrutable error into an obvious one.
If you’re writing an application where you’ll be controlling most of the
packages being written, then an errors package may make sense… but you still
run the risk of giving your custom errors to third party code that can’t
understand them. Plus, any errors library adds some complexity to the code (for
example, you always have to rememeber to call os.IsNotExist(errors.Cause(err))
rather than just calling os.InNotExist(err)
).
You have to choose one of the three options every time you return an error. Choose carefully. Sometimes you’re going to make a choice that makes your life more difficult down the road.


Valencia MotoGP: Quartararo narrowly leads Miller in practice one
by Lewis DuncanPetronas SRT's Fabio Quartararo led a tight opening practice for MotoGP's Valencia Grand Prix by 0.057 seconds from fellow satellite rider Jack Miller.
World champion Marc Marquez set the pace for most of the session, but was deposed in the final few minutes by Miller and then Quartararo - who fired in a 1m31.455s right at the death.
Marquez led the early stages with a 1m32.327s, which he quickly chipped away at to produce a 1m31.665s to go almost a second clear of the field.
A further effort of 1m31.532s was set to increase his advantage, but a 1m31.976s from Yamaha's Valentino Rossi ensured his gap would only be four tenths.
Honda rider Marquez's laptime stayed the benchmark for almost the entire session, with Sepang winner Maverick Vinales emerging as his closest challenger for a while with a 1m31.595s.
Then with just two minutes left on the clock, Pramac Ducati's Miller finally deposed Marquez by 0.020s while Quartararo shuffled fellow Yamaha rider Vinales out of third.
Quartararo began lighting up the timing screen on his final effort, and took over top spot from Miller by 0.057s, while Marquez was just 0.020s behind the Pramac bike in third.
Vinales couldn't find time in the final flurry of laps and remained fourth with his earlier effort, while the sister SRT M1 of Franco Morbidelli completed the top five to cap off a near-perfect morning for Yamaha.
Rossi was still a factor in that battle for top spot come the closing stages, but a crash at the Nico Terol right-hander of Turn 4 late on resigned him to eighth.
Joan Mir was sixth on the first of the Suzukis, with Pol Espargaro seventh at the scene of his and KTM's maiden podium last year.
Behind Rossi came the works Ducati of Andrea Dovizioso, while Alex Rins rounded out the top 10 on the second of the Suzukis.
Ducati wildcard Michele Pirro's morning didn't get off to the best of starts, as he was forced to abandon his Desmosedici when it caught fire.
He returned to the circuit shortly after on his second bike and was 14th behind LCR stand-in Johann Zarco, Aprilia's Aleix Espargaro and Danilo Petrucci on the third of the works team Ducatis present this weekend.
- Lorenzo retires
- From destabilising Rossi to misery at the back
Jorge Lorenzo's farewell weekend kicked off with him sitting 1.4s off the pace in 18th, though only two tenths off LCR's Cal Crutchlow in 15th.
Lorenzo headed Avintia's Karel Abraham, who was the only other crasher aside from Rossi in the session - the Czech rider falling at Turn 10.
- KTM's line-up gamble
- The risks of KTM's attempt to create its own Quartararo
Moto2 frontrunner Iker Lecuona made his MotoGP debut filling in for the injured Miguel Oliveira on the Tech3 KTM he will ride full-time next year.
He completed the 23-rider field, 3.1s off the pace after 20 laps, though just two tenths adrift of team-mate Hafizh Syahrin.
Practice one times
| Pos | Rider | Team | Time | Gap | Laps |
|---|---|---|---|---|---|
| 1 | Fabio Quartararo | Petronas Yamaha | 1m31.455s | - | 24 |
| 2 | Jack Miller | Pramac Ducati | 1m31.512s | 0.057s | 19 |
| 3 | Marc Marquez | Honda | 1m31.532s | 0.077s | 23 |
| 4 | Maverick Vinales | Yamaha | 1m31.595s | 0.140s | 23 |
| 5 | Franco Morbidelli | Petronas Yamaha | 1m31.658s | 0.203s | 21 |
| 6 | Joan Mir | Suzuki | 1m31.794s | 0.339s | 21 |
| 7 | Pol Espargaro | KTM | 1m31.917s | 0.462s | 19 |
| 8 | Valentino Rossi | Yamaha | 1m31.976s | 0.521s | 18 |
| 9 | Andrea Dovizioso | Ducati | 1m32.132s | 0.677s | 18 |
| 10 | Alex Rins | Suzuki | 1m32.206s | 0.751s | 22 |
| 11 | Danilo Petrucci | Ducati | 1m32.235s | 0.780s | 20 |
| 12 | Aleix Espargaro | Aprilia | 1m32.244s | 0.789s | 17 |
| 13 | Johann Zarco | LCR Honda | 1m32.512s | 1.057s | 21 |
| 14 | Michele Pirro | Ducati | 1m32.538s | 1.083s | 10 |
| 15 | Cal Crutchlow | LCR Honda | 1m32.727s | 1.272s | 21 |
| 16 | Andrea Iannone | Aprilia | 1m32.769s | 1.314s | 17 |
| 17 | Mika Kallio | KTM | 1m32.852s | 1.397s | 21 |
| 18 | Jorge Lorenzo | Honda | 1m32.860s | 1.405s | 18 |
| 19 | Karel Abraham | Avintia Ducati | 1m33.312s | 1.857s | 15 |
| 20 | Francesco Bagnaia | Pramac Ducati | 1m33.365s | 1.910s | 21 |
| 21 | Tito Rabat | Avintia Ducati | 1m33.446s | 1.991s | 22 |
| 22 | Hafizh Syahrin | Tech3 KTM | 1m34.374s | 2.919s | 20 |
| 23 | Iker Lecuona | Tech3 KTM | 1m34.563s | 3.108s | 20 |


Gunter Mussbacher,
Benoit Combemale,
Silvia Abrahão,
Nelly Bencomo,
Loli Burgueño,
Gregor Engels,
Jörg Kienzle,
Thomas Kühn,
Sébastien Mosser,
Houari Sahraoui,
Martin Weyssow
(2020).
Towards an Assessment Grid for Intelligent Modeling Assistance.
MDE Intelligence 2020 - 2nd Workshop on Artificial Intelligence and Model-driven Engineering.
Jörg Kienzle,
Gunter Mussbacher,
Benoit Combemale,
Lucy Bastin,
Nelly Bencomo,
Jean-Michel Bruel,
Christoph Becker,
Stefanie Betz,
Ruzanna Chitchyan,
Betty H. C. Cheng,
Sonja Klingert,
Richard F. Paige,
Birgit Penzenstadler,
Norbert Seyff,
Eugene Syriani,
Colin C. Venters
(2020).
Toward model-driven sustainability evaluation.
Commun. ACM.
Antonio Bucchiarone,
Maxime Savary-Leblanc,
Xavier Le Pallec,
Jean-Michel Bruel,
Antonio Cicchetti,
Jordi Cabot,
Sébastien Gérard,
Hamna Aslam,
Annapaola Marconi,
Mirko Perillo
(2020).
Papyrus for Gamers, Let's Play Modeling.
Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings.
Gunter Mussbacher,
Benoit Combemale,
Jörg Kienzle,
Silvia Abrahão,
Hyacinth Ali,
Nelly Bencomo,
Márton Búr,
Loli Burgueño,
Gregor Engels,
Pierre Jeanjean,
Jean-Marc Jézéquel,
Thomas Kühn,
Sébastien Mosser,
Houari Sahraoui,
Eugene Syriani,
Dániel Varró,
Martin Weyssow
(2020).
Opportunities in Intelligent Modeling Assistance.
Software and Systems Modeling.
Benoit Combemale,
Jörg Kienzle,
Gunter Mussbacher,
Hyacinth Ali,
Daniel Amyot,
Mojtaba Bagherzadeh,
Edouard Batot,
Nelly Bencomo,
Benjamin Benni,
Jean-Michel Bruel,
Jordi Cabot,
Betty H C Cheng,
Philippe Collet,
Gregor Engels,
Robert Heinrich,
Jean-Marc Jézéquel,
Anne Koziolek,
Sébastien Mosser,
Ralf Reussner,
Houari Sahraoui,
Rijul Saini,
June Sallou,
Serge Stinckwich,
Eugene Syriani,
Manuel Wimmer
(2020).
A Hitchhiker's Guide to Model-Driven Engineering for Data-Centric Systems.
IEEE Software.
Bertrand Meyer,
Jean-Michel Bruel,
Sophie Ebersold-Marcaillou,
Florian Galinier,
Alexandr Naumchev
(2019).
Towards an Anatomy of Software Requirements.
Software Technology: Methods and Tools - 51st International Conference, TOOLS 2019, Tatarstan, Russia, October 15-17, 2019, Proceedings.
Mansur Khazeev,
Hamna Aslam,
Daniel de Carvalho,
Manuel Mazzara,
Jean-Michel Bruel,
Joseph Alexander Brown
(2019).
Reflections on Teaching Formal Methods for Software Development in Higher Education.
Frontiers in Software Engineering Education - First International Workshop, FISEE 2019, Villebrumier, France, November 11-13, 2019, Invited Papers.
Benoit Combemale,
Jörg Kienzle,
Gunter Mussbacher,
Olivier Barais,
Erwan Bousse,
Walter Cazzola,
Philippe Collet,
Thomas Degueule,
Robert Heinrich,
Jean-Marc Jézéquel,
Manuel Leduc,
Tanja Mayerhofer,
Sébastien Mosser,
Matthias Schöttle,
Misha Strittmatter,
Andreas Wortmann
(2018).
Concern-Oriented Language Development (COLD): Fostering Reuse in Language Engineering.
Computer Languages, Systems and Structures.


{{ site.title }} - Copyright © {{ site.time | date: "%Y" }} - {{ site.author }}
Powered by Octopress. {% unless site.hide_design_credits %} Initially designed by Adrian Artiles, modified by Filippos Vasilakis. {% endunless %}


Computer Architecture B
Computer Architecture Basics
Introduction to Computer Architecture
Transistors:
Basic element of computation that controls the flow of electricity, similar to but different than a switch. Transistors are used to build logic gates.
Logic gate:
A collection of transistors put together to perform one of the basic boolean logic functions on a single bit or a collection of bits. (E.g., AND, NOT, XOR, OR, NAND, NOR)
NAND gate is made of two transistors.
NAND and NOR gates
are called functionally complete since they can each be used to
build any other gates.
If you can make a NAND gate, you can make an entire computer.
Flip flop:
Basic memory storage device that can be used to hold registers — main memory is rarely made up of flip flops.
AND Gate:
It has two inputs (can have more than two) and it has an output.
A with a 1 on it, B with a 1 on it, want output to have 1 on it.
Boolean Logic:
If condition A is true && condition B is true… If condition A || condition B is true…
Basic Boolean operations are often demonstrated with truth tables. Values on left are input, values on left are result:
128 64 32 16 8 4 2 1
0 0 0 0 1 1 0 0 = 8 + 4 = 12
| 0 1 1 0 0 1 1 1 = 64 + 32 + 4 + 2 + 1 = 103
0 1 1 0 1 1 1 1 = 64 + 32 + 8 + 4 + 2 + 1 = 111
128 64 32 16 8 4 2 1
1 1 0 1 0 1 1 0 = 128 + 64 + 16 + 4 + 2 = 214
AND 1 1 1 1 0 0 0 0 = 128 + 64 + 32 + 16 = 240
1 1 0 1 0 0 0 0 = 128 + 64 + 16 = 208
If you want to extract two bits, you can shift a number
Original number: 01101111
Shifted one to the right: 001101111 <-- last one will fall off into space
Shifted two to the right: 00011011
Shifted three to the right: 00001101
Shifted four to the right: 00000110
Shifted five to the right: 00000011
Shifted six to the right: 00000001
00000001 = b
& 00000011 - and mask
-------------
00000001
a = 0b01101111;
b = a >> 6;
Architecture:
Visual 6502 : Can see what parts of memory are being accessed during program execution.
While program running:
Has to go out to RAM to see what the next instruction is. How is a number a computer instruction? Register — program counter: holds the index into memory of where the next instruction is, will store it in the instruction manager (IR).
In our simulation, 8 bits, each bit has a meaning. Some of the bits get stripped off and go to the control unit, some get stripped and sent to register file, and some go to the ALU.
Register file — R0 to R7 (all CPUs have different register names, this is a common one) — registers are like variables. R0 to R7, that’s not many variables. Within the CPU, extremely fast to operate on.
When a compiler builds code to run on the CPU, tries to use registers as much as possible to keep the speed high.
ALU — arithmetic logic unit:
Responsible for arithmetic and bitwise operations, and comparisons between numbers.
Cache:
High speed memory that’s close to the CPU. If reading byte at address 10, likely to get address 11, so cache stores subsequent bytes when retrieving data from RAM.
Memory Address Register:
Address of memory we’re interested in reading or writing. Memory Data Register: In case of write, holds value of what we want to write. In the case of a read, MDR gets loaded with the value that is in memory at the Memory Address Register address.
In our emulator, you’ll see this in the emulator.js file
Interrupt Handler:
If key gets hit, raises a voltage on a wire, which goes to the interrupt handler which sets a value in the interrupt status register and the CPU sees it. When it goes to execute the next instruction, a complicated set of steps happen where it finds another location in memory to begin executing instructions. That other location will handle the interrupt handler program. Interrupt handler returns and code continues executing like it did before the interrupt occurred.
- Interrupt flow of execution, perform some action in the handler, and then resume the flow of execution where the interrupt left off.
Can decide which interrupts you’re interested in by using the interrupt mask register — gets bitwise ANDed with the status register and masks out interrupts you’re not interested in.
Our CPU has two interrupts defined: a timer interrupt that occurs once per second, and a keyboard interrupt when a key is pressed.
One of the problems with having the CPU be the sole control of the RAM, the CPU will be busy copying data into RAM from devices that have a lot of data to present to it.
For example, if you have a disk and the OS wants to read block 7004 on the disk, the OS is going to command the peripheral to read block 7004 and get back to it when it’s done. How will CPU know it’s finished? Will get an interrupt.
Direct memory access — disk is asked to read a block, it puts it into memory and when it’s loaded, an interrupt happens to let the CPU know the information is there.
When we write the emulator, we’ll have registers, an ALU, a PC to keep track of what instruction we’re doing, an instruction register, simulated RAM that allows you to read and write bytes from RAM.
Important to remember: Individual instructions don’t do very much.
ADD:
Adds two numbers.
COMPARE:
Compares two numbers and sets flags whether numbers are greater than, equal or less than each other.
JUMP:
Takes program counter from where it’s running, jumps to another address and continues running there. Individual handlers we write in our emulator to simulate the individual instructions are short, usually one-liners.
Complexity of how to make a CPU work is from building on these tiny instructions. Doing that is a pain, which is why nobody programs that way.
Machine code — usually if you write in machine code, hexadecimal.
Mnemonics are great — three or four letter code lets you know what you’re doing (easier than remembering a hexadecimal number).
Talking about CPU and assembly language is down to the metal.
Clock:
Driver of voltage that goes up and down several times a second — every time it raises or lowers, work gets done. A lot of instructions just take one clock to execute. You can execute billions of instructions per second on a modern CPU.
Operations or Opcodes:
Opcode is shorthand for the instruction that you’re executing — not the data it’s working on. ADD Register 0 to Register 4 — Opcode is AND. Register 0 and Register 4 are operands.
Bus:
A way for information to get from one part of the motherboard to another part of the motherboard. It’s like a telephone line (bunch of wires). Different buses on the system that get used to move information back and forth.
RAM:
Grid of bits — more commonly exposed to programmers at machine level and up as an array of bytes. Program counter will be an index into the array of bytes.


abstract fun getNotary(name: CordaX500Name): Party?
Looks up a well-known identity of notary by legal name.
name - The CordaX500Name of the notary to retrieve.
name
Return The Party that matches the input name, or null if no such party exists.


Number of votes that a candidate is trailing by: (E.g. Biden is trailing by 165000 votes behind Trump in PA)
Percentage of votes the trailing candidate is expected to win, of the remaining uncounted votes.
Results:
The trailing candidate needs at least the following number of uncounted votes.
____
More calculations: Fill in the number of uncounted votes below, if you know and click Calculate above.
Results:
Of the remaining Uncounted Votes: _____
the trailing candidate will get: _____
and the other will get: ____
After counting is completed, the trailing candidate will then
____
_____.


To:
Value:
Tip (fee):
Params for 'received' handler (each param one row, use " to denote string)
Send


Reports any unnecessary uses of the
super
qualifier in method calls and fields references. A super qualifier is unnecessary when the field or method of the super class is not overridden in the calling class.
Powered by InspectionGadgets


Preview: Heat hit road for 1st matchup against Cavaliers
by APTV: FOX Sports Sun
TIME: Pregame coverage begins at 5:30 p.m.
STREAM IT LIVE ON FOX SPORTS GO
Miami Heat (7-3, third in the Eastern Conference) vs. Cleveland Cavaliers (4-6, seventh in the Eastern Conference)
Eastern Conference foes Cleveland and Miami will play.
Cleveland went 19-63 overall and 15-37 in Eastern Conference action in the 2018-19 season. The Cavaliers averaged 104.5 points per game last season, 44.5 in the paint, 14.4 off of turnovers and 10.6 on fast breaks.
Miami finished 39-43 overall and 23-29 in Eastern Conference games in the 2018-19 season. The Heat averaged 105.7 points per game while shooting 45% from the field and 34.9% from deep last season.
The matchup Thursday is the first meeting of the season between the two teams.
Cavaliers Injuries: Ante Zizic: out (foot), Dylan Windler: out (stress reaction), Kevin Porter Jr.: day to day (left hip contusion), John Henson: out (hamstring), Matthew Dellavedova: day to day (right calf soreness).
Heat Injuries: Justise Winslow: out (concussion), Tyler Herro: day to day (ankle), Derrick Jones Jr.: out (hip), KZ Okpala: day to day (left achilles strain), James Johnson: day to day (illness), Goran Dragic: day to day (unknown).


| Room | Details | Price |
| Single | Sunday to Thursday - inc breakfast | £35.00 |
| Single | Friday and Saturday - inc breakfast | £40.00 |
| Double or Twin | Monday to Sunday - inc breakfast | £70.00 |
| Discounts available for stay of over 3 nights |
Breakfast times are by prior arrangement to help you on your way.
Weekdays are between 7am to 8.30am, and weekends are between 8am to 9.30am
Terms and conditions apply
Premium rates apply at 20% per person per night when applicable
"Our hosts charlotte and les, were so friendly and accommodating and made an awesome full English breakfast" MattyS20 - Tripadvisor


NUMTOYMINTERVAL
converts a number to an INTERVAL YEAR TO MONTH
data type.
INTERVAL YEAR TO MONTH
NUMTOYMINTERVAL(n, 'interval_unit')
n
can be any numeric expression.
interval_unit
is a text expression that specifies the units. It must resolve to one of the following values:
YEAR
MONTH
These values are case insensitive.
NUMTOYMINTERVAL(18, 'MONTH')
returns the value +01-06
.


@* * This template is called from the `index` template. This template * handles the rendering of the page header and body tags. It takes * two arguments, a `String` for the title of the page and an `Html` * object to insert into the body of the page. *@ @(title: String)(content: Html)
@* And here's where we render the `Html` object containing * the page content. *@ @content


The tool checks if a Java file contains information flow breaches according to BLP model
View Test file (BankAccount.java)


Making Neural Nets Learn From Each Other
In a GAN, one net (the generator) tries to fool another net (the discriminator) using generated inputs meant to mimic the training data.
Analogy: a forger that tries to get better and better at mimicking someone else's handwriting by trying to fool a cop.
The generator references the training data to create a similar but different sample; it uses the response from the discriminator in order to see if and how it should improve.
The discriminator is tasked with correctly labelling both the training data and the generated fakes. By feeding the ground truth inputs throughout training, we can prevent its perception of real vs. fake from going astray.
GANs can be used to generate samples that seem like they were drawn from the same distribution as the training samples.
In other words, they can be used to create outputs that seem strikingly similar to the training data, but isn't the same.
This makes it popular for applications like data augmentation, super-resolution, style-transfer, and face generation, among others.
Difficulties in Training and Evaluation
Research is still being done to improve the stability and convergence of GANs to generate more realistic results. nVIDIA recently proposed the idea of progressively growing the nets of both the generator and the discriminator, which seems promising (results below).
Mode Collapse: a generator may learn to exploit the discriminator by focusing on generating data from certain distributions over others found in the training data.
Generative models aim to learn the probability distributions of the training data. Once the distribution is approximated, new samples that appear to come from the same distributions as the training data can be generated.
Therefore, often it is the Wasserstein distance between distributions that is optimized during training.
Currently, most evaluation is usually limited to performing additional classifications tasks, or qualitatively evaluating results in a cherry-picking way.
Evaluation Metrics
A GAN's discriminator can be evaluated using the area under its ROC curve (larger the better) against the generated images.
Structure Similarity (SSIM) can be used to measure the diversity between the generated images for detecting mode collapse.
Distribution Difference: evaluate the difference between the distributions of the fake data and the real data.
Popular Papers
["Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network", Ledig et al. CVPR 2017]
Style Translation ["Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks", Zhu et al. ICCV 2017]
Generated images of fake celebrities ["Progressive Growing of GANs for Improved Quality, Stability, and Variation", Karras et al. ICLR 2018]


Ubi Franklin's alleged 4th baby mama reacts to birth control for men
Sandra Iheuwa, the alleged 4th babymama of Nigerian businessman, Ubi Franklin, appears to have taken another swipe at him following the news of birth control for men getting approved.
It is no news that the relationship between Sandra and Ubi has been estranged ever since the scandal surrounding him getting a loan from her and allegedly putting her in the family way, broke out.
Well, it comes as no surprise that she recently threw some shade at him. Reacting to reports that male birth control injections have passed clinical trials and will soon be available for men, she took to her Instagram page to send across a not-so-subliminal message to who many people believe is him.
Sharing the post, she wrote:"Yay!!! A lot of you men need this don't come and say how did you get pregnant? Or start denying pregnancies .....if you don't want that babe to get belle go on birth control......the burden will no longer be on the woman. I love this "
Nigerians praise Wizkid shortly after Aloma accused him of buying fake Richard Mille wristwatch
PAY ATTENTION: Get the Latest Nigerian News on Legit.ng News App
PAY ATTENTION: Do you have news to share? Contact Legit.ng instantly
Recall how there was drama surrounding their relationship. Legit.ng had earlier reported the news of how Sandra delivered her baby in Boston, United States of America.
In her celebratory post, however, she revealed that Franklin denied being the father of her baby.
Would you marry a baby mama or baby 'papa'? | Legit TV


CAP5510 | Project Proposal
A method for analyzing numerical stability of genetic classifiers.
Intoduction
Perturbations can be introduced into gene expression data in a variety of ways - some natural (e.g. minor expression differences due to individual genomic events) and some artificial (e.g. instrumentation error). In this study, a method for analyzing the numerical stability of genetic classifiers will be developed. The developed method will use a divide and conquer approach, along with a genetic algorithm (GA) to determine scores for each classifier, allowing them to be ranked from most to least robust. Robustness refers to the missclassification rate, with more robust algorithms having a smaller misclassificatin rate.
Background
Three classifiers will be analyzed: kNN, linear SVM and NBC. Briefly, kNN classifies samples based on similarity scores of its k-nearest neighbors. Linear SVM is a binary classifier which can be adapted for multi-class datsets. It separates the given data points into their correct classes by constructing a hyperplane that separates the classes with the maximum margin. NBC is a correlation-based classifier that constructs a theoretical expression for each sample of each class, assigning the sample to the class with the closest matching expression.
Methods
First, the kNN, SVM and NBC classifiers will be implemented. Linear SVM and kNN are readily available for use in packages. NBC can be found described in the original paper and will be implemented. Second, Chi2, and random feature selection will be implemented.Chi2 is available in a package, while the random method will be implemented. Third, I will implement the stability analysis method according to the following rules.
Given a user specified robustness and a number of classifiers, the method will order the classifiers from most to least robust. A divide and conquer method will be used to select the number of features (k) to be altered in a test sample. For each selected k, a genetic algorithm will be used to select k features (genes) which give the greatest missclassification rate. This method will be repeated until k is minimized for the user defined robustness.
The algorithms will be ranked according to k, with smaller k being ranked higher. Additionally, the GA algorithm will be compared to 10-fold random selection and Chi2 feature selection, with robustness scores for a given k being used to compare them. All implementation will be completed using a mix of Python and C++.
Data
The following datasets will be used in the analysis: Lung Cancer, Breast Cancer, Colon Cancer.


AC Box based on dual AD9854
Part List
| PART | SUPPIER | PART # | PRICE | QTY | SUBTOTAL |
|---|---|---|---|---|---|
| AD9854 Eval board | Ebay/Amazon | - | $41.76 | 2 | $83.52 |
| ADUM4160 USB isolator | Digikey | EVAL-ADUM4160EBZ-ND | $62.50 | 1 | $62.50 |
| 3.3V Voltage Regulator | Digikey | LT1587CT-3.3#PBF-ND | $6.16 | 1 | $6.16 |
| SN74HC174 Flip Flop | Digikey | 296-1195-1-ND | $0.47 | 1 | $0.47 |
| Delay Line | Digikey | DS1100Z-200+-ND | $4.76 | 1 | $4.76 |
| Oscillator 20.00MHz | Digikey | 535-12045-1-ND | $3.34 | 1 | $3.34 |
| Straight Jack Receptacle | Digikey | J613-ND | $2.17 | 2 | $4.34 |
| 2 position .100” terminal block | Digikey | A98333-ND | $0.87 | 5 | $4.35 |
| Straight header | Digikey | S1012EC-40-ND | $0.56 | 1 | $0.56 |
| Enclosure | Digikey | 377-1238-ND | $81.00 | 1 | $81.00 |
| Switchcraft D3M | Digikey | SC1010-ND | $6.72 | 1 | $6.72 |
| Switchcraft A3F | Digikey | SC1001-ND | $4.40 | 1 | $4.40 |
| 2.1mm center-positive plug cable | Digikey | CP-2185-ND | $2.05 | 1 | $2.05 |
| Ribbon Cable | Digikey | H3AAH-4006G-ND | $1.88 | 2 | $3.76 |
| 6” SMB/SMB cable | Digikey | J7306-ND | $21.66 | 2 | $43.32 |
| 6” BNC/SMB bulkhead cable | Amazon | - | $6.00 | 4 | $24.00 |
| Arduino Due | Amazon | - | $27.99 | 1 | $27.99 |
| 6” USB-A to USB-Micro B cable | Amazon | - | $1.99 | 1 | $1.99 |
| 6’ USB-A to USB B cable | Amazon | - | $6.49 | 1 | $6.49 |
| USB-A to USB-B feedthrough | L-com | ECF504-UAB | $6.44 | 1 | $6.44 |
| 10V power supply | Acopian | B10G200 | $195.00 | 1 | $195.00 |
| Arduino shield | OSHPark | - | $46.25 | 1⁄3 | $15.46 |
| Total | $588.62 |
OSHParK board link


If you need to rebuild the caches due to development changes or corruption,
you can use these tools. They will not affect your browser cache!
Rebuild the content cache. Useful if you replace the database or change the data outside of Umbraco. Republishes content and rebuilds Examine indexes. Rebuild Content Cache
Delete all images cached by ImageProcessor.Web. Useful if media files or media data change outside of Umbraco. Can be slow to regenerate! Remove Cached Images
Pre-render page templates. Eliminates slow page loads on first request. This is useful to speed things up after a deployment or whenever the application is reset. Prerender Templates
Compact database. Delete the following if older than days or unused: log entires, property data, previews, and content versions. Compact database


An equal sign (=) following an address prints the line number of the matched line. Unless you suppress the automatic output of lines, both the line number and the line itself will be printed. Its syntax is:
[
line-address
]=
This command cannot operate on a range of lines.
A programmer might use this to print certain lines in a source file. For instance, the following script prints the line number followed by the line itself for each line containing a tab followed by the string "if". Here's the script:
#n print line number and line with if statement / if/{ = p }
Note that #n suppresses the default output of lines. Now let's see how it works on a sample program, random.c:
$sed -f sedscr.= random.c
192 if( rand_type == TYPE_0 ) { 234 if( rand_type == TYPE_0 ) state[ -1 ] = rand_type; 236 if( n < BREAK_1 ) { 252 if( n < BREAK_3 ) { 274 if( rand_type == TYPE_0 ) state[ -1 ] = rand_type; 303 if( rand_type == TYPE_0 ) state[ -1 ] = rand_type;
The line numbers might be useful in finding problems reported by the compiler, which typically lists the line number.


--- layout: post authors: ["Mike Jackson"] title: "Feedback from Edinburgh" date: 2013-12-05 time: "14:00" tags: ["University of Edinburgh"] ---
On the 3rd of December, Software Carpentry returned to Edinburgh with EPCC hosting a bootcamp as part of its involvement in both the PRACE Advanced Training Centre and The Software Sustainability Institute.
We had 34 attendees, half from Edinburgh and Glasgow and half from across the UK, with one attendee from Rutgers University. They included researchers from a wide range of disciplines: physics, engineering, chemistry and life sciences, earth sciences, medicine and space sciences, and humanities and social sciences. About half the attendees were PhD students, while the rest were senior researchers and academics.
My EPCC colleague Mario Antonioletti and I instructed on the boot camp with assistance from fellow EPCCers Amy Krause, Alistair Grant, Arno Proeme, Dominic Sloan-Murphy and David Scott. We were joined by Martin Jones from Edinburgh's School of Biological Sciences.
During the bootcamp we provided a hands-on introduction to version control and Git, scientific programming in Python (the numpy, scipy and matplotlib libraries), good programming practice and testing.
As is traditional on bootcamps, we went round the room to see what the attendees thought were the good points and bad points, so delivery can be improved (via a form of iterative development!) in future:
| Good points | Bad points |
|---|---|
| Git and revision control (mentioned by 6) | Difficult to catch up if one fell behind (mentioned by 3) |
| Python (mentioned by 4) | Too much information in too little time (mentioned by 3) |
| Seeing how to make code reusable across different data sets | A 3rd day would have helped with the above (mentioned by 2) |
| Mix of material to get a good overview | Visual references would have helped with Git |
| Time spent on practical aspects | Hard to see relevance of Git for a solo developer |
| Sticky green/red notes to say all is fine/request help (mentioned by 2) | Could have used bash instead of Python |
| Multiple projector screens | Using a Python IDE would help attendees keep up |
| Large number of helpers | Python debugging was not covered |
| Helpful instructors | Python was too basic |
| Timing of breaks | Still unclear as how unit testing can help |
| Tests only seemed applicable to simple codes | |
| Thought there would have been more on revision control and unit testing | |
| A common example running through all sessions would have been useful |
On a personal note, after battling in the past with Cygwin to install a shell, Git and Python and its scientific packages onto my laptop, using Git Bash and Anaconda, the all-in-one scientific Python installer, worked like a dream!
EPCC plans on running bootcamps next year as part of its user and computational science and engineering support for ARCHER, the UK's new national HPC service for academic research.


This large, friendly fishing village is situated on the Leeward (west) coast of St Vincent, just south of the volcano of Soufrière. Commonly referred to as just "Chato", it is the the fourth largest town in the country.
The bay is very green and beautiful, with palm trees hanging over the water and local families fishing and playing on the beach.
Local attractions include trinity falls, darkview falls, and rock carvings which are an archaeological find and are believed to have been left by Carib Indians.
Position 13° 18'02"N, 61° 14'28"W (bay entrance)
See St. Vincent Formalities and Fees for full details on clearance.
Whilst this has officially been a Port of Entry since 2003, the extremely friendly Customs Officer, Cherry Sparkle, who made cruisers so welcome here for many years, moved on in 2015.
Latest reports are that the Customs office is never open (even there is "supposed" to be a Customs officer here) and the police station no longer deal with Immigration.
Yachts can try to call Customs on<PHONE_NUMBER>1 or<PHONE_NUMBER>1 to find out the latest.
Note that Cumberland Bay is only for anchorage after checking in with Customs. Yachts going directly to Cumberland Bay to avoid clearance fees can be fined.
Last updated June 2016.
You will likely be met by George, a boat boy who paddles faithfully out to meet every single yacht that comes in, day or night, and helps them to anchor. He hasn’t got his hand out all the time, although most people will be more than happy to give him something for his troubles.
Note: Some cruisers have reported that George told them on arrival that Customs was no longer available in Chateaubelair. This is not true and should be ignored.
This is a good anchorage, especially in the eastern half of the bay, however northerly swells in the winter months can cause difficulties and security can be a problem here (see below).
There is a restaurant and bar on the beach front, and in town is a gas station, mini-market and bakery.
Security
This bay was avoided for several years by cruising yachts due to a number of armed boardings and robberies in the past. Since 2009 no crime against yachts had been reported here and the situation appeared to be improving. However sadly, in May 2015, a charter yacht anchored alone here was boarded at night and the crew assaulted and valuables stolen (see CSSN report).
Cruisers report that locals are friendly and helpful and are keen to see more cruising boats return to the bay, so hopefully this will be an isolated incident.
The coastguard does random patrols here to make sure no one is being harassed, however as with everywhere now it's best to take basic safety precautions and lock all hatches before going out as well as at night. Keep anything of value out of sight.
Last updated July 2015.


This simple app demonstrate how you can use golang for
creation reactjs like application.
Links:
A compiler from Go to JavaScript for running Go code in a browser
GopherJS bindings for Facebook's React, a Javascript library for building user interfaces


A FORMULA record describes a cell that contains a formula.
Record Data
|
Offset |
Field Name |
Size |
Contents |
|
4 |
rw |
2 |
Row |
|
6 |
col |
2 |
Column |
|
8 |
ixfe |
2 |
Index to XF record |
|
10 |
num |
8 |
Current value of the formula (see text) |
|
18 |
grbit |
2 |
Option flags |
|
20 |
chn |
4 |
(See text) |
|
24 |
cce |
2 |
Length of the parsed expression |
|
26 |
rgce |
var |
Parsed expression |
The chn field should be ignored when you read the BIFF file. If you write a BIFF file, the chn field must be 00000000h.
The grbit field contains the following option flags:
|
Bits |
Mask |
Flag Name |
Contents |
|
0 |
0001h |
fAlwaysCalc |
Always calculate the formula. |
|
1 |
0002h |
fCalcOnLoad |
Calculate the formula when the file is opened. |
|
2 |
0004h |
(Reserved) |
|
|
3 |
0008h |
fShrFmla |
=1 if the formula is part of shared formula group. |
|
15–4 |
FFF0h |
(Reserved) |
|
For more information about shared formulas, see “SHRFMLA EXB0174 ”.
The rw field contains the 0-based row number. The col field contains the 0-based column number.
If the formula evaluates to a number, the num field contains the current calculated value of the formula in 8-byte IEEE format. If the formula evaluates to a string, a Boolean value, or an error value, the most significant 2 bytes of the num field are FFFFh .
A Boolean value is stored in the num field, as shown in the following table. For more information about Boolean values, see “BOOLERR EXB0030 ”.
|
Offset |
Field Name |
Size |
Contents |
|
0 |
otBool |
1 |
=1 always |
|
1 |
(Reserved) |
1 |
Reserved; must be 0 (zero) |
|
2 |
f |
1 |
Boolean value |
|
3 |
(Reserved) |
3 |
Reserved; must be 0 (zero) |
|
6 |
fExprO |
2 |
=FFFFh |
An error value is stored in the num field, as shown in the following table. For more information about error values, see “BOOLERR EXB0030 ”.
|
Offset |
Field Name |
Size |
Contents |
|
0 |
otErr |
1 |
=2 always |
|
1 |
(Reserved) |
1 |
Reserved; must be 0 (zero) |
|
2 |
err |
1 |
Error value |
|
3 |
(Reserved) |
3 |
Reserved; must be 0 (zero) |
|
6 |
fExprO |
2 |
=FFFFh |
If the formula evaluates to a string, the num field has the structure shown in the following table.
|
Offset |
Field Name |
Size |
Contents |
|
0 |
otString |
1 |
=0 always |
|
1 |
(Reserved) |
5 |
Reserved; must be 0 (zero) |
|
6 |
fExprO |
2 |
=FFFFh |
The string value is not stored in the num field; instead, it is stored in a STRING record that immediately follows the FORMULA record.
The cce field contains the length of the formula. The rgce field contains the formula in its parsed format. For more information, see “Microsoft Excel Formulas EXB0251 ”.


Process hashCode/Equals over 100K objects:
Empty object-literal
Complex object-literal
Object instance without equality-comparer
Object instance with equality-comparer
Number
Float Number
String
Date
Boolean
Generate HashCode for 1M objects: