During the last few months COVID19 has been the main thing being discussed. Till now we have 16,99,019 confirmed cases and the number is increasing exponentially. From n-Cov to Wuhan Virus to COVID19, the names have changed but the affects keep increasing. Now everyone has realized that only way out of this is by stopping it from spreading and finally fighting it. As we speak the data science and ML community worldwide is trying their best and coming up with solutions to fight this pandemic.
AI Models as virtual doctors
With the current crisis of COVID19 tests and the lack of medical practitioners AI based models are coming up to reduce the stress on them. ML engineers are coming up with AI based chat-bots that gather data from patients with flu like symptoms and determine whether he needs immediate medical attention. These type of models are useful as they reduce the stress on medical systems by automating basic screening. These models also help in determining whether a person needs a COVID19 test or not based on several parameters.
How Hospitals Are Using AI to Battle Covid-19
Remote sensing of body parameters
Parameters like body temperature and pulse are important parameters and they can’t be ignored. It is becoming important to measure these parameters without putting the front line workers at risk. For this computer vision based solutions are coming up which help in determining body temperature and pulse from facial skin analysis.
RhythmNet uses AI to estimate your heart rate using your face
Diagnosis of COVID19
People are coming up with computer vision based solutions to determine if a person has COVID19. These solutions help medical systems who are finding it difficult to cope up with ever increasing number of people. Solutions are coming up that diagnose COVID19 from chest X-Rays and CT Scans within seconds.
An attempt- Detection of COVID-19 presence from Chest X-ray scans using CNN & Class Activation Maps
Predicting viral-host protein-protein interactions
The protein-protein interactions between host and virus determine the affect a pathogen will have. The virus-host interactome is the entire map of interactions between a virus’s and a host’s proteins. This interactome can be seen as a blueprint of how the virus infects our bodies and replicates in our cells. Machine learning models trained with protein data have been successfully used to predict the most likely virus-host PPIs of some earlier viruses and studies are going to do same the same for COVID19.
Predicting spread through social networks
Social networks can be used for contact tracing and thus determining the spread of the virus. Machine Learning is being used to process the large scale data and thus establish an efficient contact tracing map quickly. This is especially useful in areas with less population density where cases can be limited by isolating and testing recent contacts of a COVID19 positive case.
Drug Research
People are inside their homes, they have not lived their normal lives since months. Humanity is doing it’s best it can to stop the spread of this virus. But at the end of all these lies a hope, a hope that someday someone will come up with a vaccine or a drug for COVID19 and all these will come to an end.
IBM's @dariogila on how the #COVID19 HPC Consortium came together in just a few days: "It started with a phone call to the White House on March 17, one that proved to be a catalytic moment for industry, academia and government to act together." https://t.co/OzlNx5R5SH
— IBM Research (@IBMResearch) April 9, 2020
Professionals are giving their best day and night and AI is helping them out in this. PPIs are being predicted using ML, protein folding is being analyzed and most importantly ML is helping in analysis of already available drugs and research papers to find a find a solution fast..
Data Scientists Use Machine Learning to Discover COVID-19 Treatments
Improved protein structure prediction using potentials from deep learning
Conclusion
Humanity is at a war with an invisible enemy and in this war invisible computer neural networks are turning out to be humanity’s biggest weapon. Above were just some examples of how AI and data science community is coming together to fight COVID19. AI and Data Science professionals are doing their best to defeat COVID19 and some day we will surely get back our normal lifestyle where someone in comfort of his home can debate on twitter how AI is harmful for humanity.


Deployment¶
Deployment with Heroku¶
If you’re new to Heroku, their getting started guide will walk you through the basics of creating a generic, non-dockerized Python app. If you don’t have it yet, install the Heroku CLI.
We can create a Heroku app by running
heroku create
within our project. Once you’ve done it, Heroku will provide you with the following message:`` Creating app… done, ⬢ one-example-12345 https://one-example-12345.herokuapp.com/ | https://git.heroku.com/one-example-12345.git ``
In this case,
one-example-12345
is the name of the app; yours is likely to be different.Make sure you link the Heroku app with your repository by running
heroku git:remote -a [app_name]
.For environment variables in production, you can set the config variables by running the following command:
heroku config:set PRODUCTION_HOST=[app_name].herokuapp.com SECRET_KEY=[your secret key] DJANGO_SETTINGS_MODULE=backend.settings.production
You can generate a valid Django Secret Key via this link. REMEMBER to put the key between apostrophes (‘), or you will likely get a
-bash: ****: event not found
error.
Now run
heroku stack:set container
to tell our Heroku app to use Docker.At this point, you’re ready to deploy: run
git push heroku master
.Checkout https://[app_name].herokuapp.com. You should be able to see your web app ready!


We want to give our users a framework that provides an infrastructure and connects the “service” parts of applications with their “brains”, or in other words, business logic.
--- layout: default group: 'navigation' title: FAQ bodyclass: faq headline: 'Frequently Asked Questions' ---
We want to give our users a framework that provides an infrastructure and connects the “service” parts of applications with their “brains”, or in other words, business logic.
As Protocol Buffers are already implemented in a variety of languages, they make interoperability between polyglot applications in your architecture much simpler. If you’re introducing a new service with one in Ruby or Go, or even communicating with a backend written in Node or Clojure, you simply have to hand the proto file to the code generator written in the target language, and you have some nice guarantees about safety and interoperability between those architectures.
The finer points of platform-specific data types should be handled for you in the target language implementation, and you can get back to focusing on your tasks instead of matching up fields and data types in your ad hoc JSON encoding and decoding schemes.
Have a look at the comparison matrix created by Kenton Varda, the author of Protobuf v2 and Cap'n Proto. Here are the main features that make Protobuf the best choice for our framework:
Also, proven success of Protobuf technology which Google gained over the years of its successful usage is a major factor for choosing Protobuf rather than other alternatives.
The framework is based on and supports only proto3 dialect.
Here are our plans for the future versions of Spine:
We shall also concentrate on coverage of popular programming languages and technologies:
No, and we don't have plans to support it.
If you are going to add Spine to an existing Maven-based projects, most likely it would be implemented as a Bubble Context.
If so, you can have a Gradle-based sub-project with which the outer Maven-based project integrates.


PhD candidate researching deep reinforcement learning and its applications. My goal is to expand the Alpha Zero algorithm to a larger class of games and apply it to robotics problems. Broad interest in machine learning and software engineering. When I'm not reading arXiv, I'm reading Hacker News.
Design project titled "Region Tracking in a Sequence of Images". Applied calculus of variations in order to achieve this. Developed an application that succesfully tracked the hand of a user from a webcam video and the outline of a bone throughout an MRI scan.
Course project titled "Applying Q-Learning to Flappy Bird". Achieved human-level performance by applying a reinforcement learning algorithm to the game Flappy Bird. Simulated the game and coded the algorithm in MATLAB.


Girl unresponsive at school, pronounced dead at hospital
CHICAGO (AP) - A 9-year-old girl who police say had a history of health issues has died after being found unresponsive at a special needs school on Chicago’s South Side.
The Chicago Sun-Times reports that police were called to the elementary school about 8:30 a.m. Thursday to find someone performing cardiopulmonary resuscitation on the girl.
The Chicago Tribune reports that the girl went into cardiac arrest on a school bus and that the bus driver took her to the school’s nursing office where CPR was performed.
TOP STORIES
Franklin Graham calls on nation to pray for Trump as impeachment effort gains speed
DHS confirms no new border wall yet
Trump 'war room' launches scathing Pelosi video
She was taken by ambulance to a hospital where she was pronounced dead.
Chicago Public Schools did not immediately comment Thursday on the girl’s death which is being investigated by police.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Search
Profile
Sell
Logout
SNEAKER SEARCH
Search
Search Shoes
RESULTS FOR:
[SEARCH TERM]
product name
size: 10
$100
product name
size: 10
$100
product name
size: 10
$100
product name
size: 10
$100


You can install, start, stop, and restart Riverbed Services Platform (RSP) in the Configure > Branch Services > RSP Service page.A VMware-based virtualization platform provides the benefits of the most commonly deployed and advanced virtualization tool set. Support for running up to five different additional services simultaneously on a single Steelhead appliance, depending on the service and Steelhead appliance model. Support for more services and types of services. These include in-band packages that sit in-line with optimization such as the Universal Threat Management (UTM) security services, proxy solutions such as video or network monitoring services, and improved support for out-of-band packages like Windows Active Directory, DNS and DHCP management software, and print services. A comprehensive, integrated, user management interface that provides granular control of RSP including setup, reporting, and the definition of the data flow between services. Important: Do not configure both RSP and PFS on the same Steelhead appliance. Riverbed does not support this configuration because PFS has no disk boundaries and can overwrite the space allocated to RSP.RSP uses VMware Server 2.0 as the virtualization platform. Both 32 and 64-bit versions of the RSP installation image are available.Important: 64-bit guest VMs (such as Windows Server 2008 R2) are not supported on Steelhead appliance models 250, 550, and the 1U xx20s because these models do not incorporate Virtual Technology (VT) support.After installing the RSP installation image, you can add packages to run more services and applications. RSP includes configuration options that allow you to determine the data flow to and from a package, and the ability to chain packages together.RiOS v6.0 and later supports Virtual in-path RSP (VRSP). VRSP extends the Riverbed Services Platform to allow RSP to operate with a single connection to the network while presenting an in-path view of the network to the optimization and virtual services running on the platform.Virtual-in-Path connections - connections going from client to the server, neither of which is running on the RSP platform. Routers redirect such connections to VRSP using one of these mechanisms: L2 redirect. Policy-Based Routing (PBR) allows you to define policies to route packets instead of relying on routing protocols. You enable PBR to redirect traffic that you want optimized by a Steelhead appliance that is not in the direct physical path between the client and server. Generic Routing Encapsulation (GRE) with Web Cache Communication Protocol (WCCP). Out-of-Path connections - connections that originate from a system outside of RSP to a service running on the RSP platform (inbound) or connections that originate from an RSP service to an external system (outbound). Redirected Out-of-Path connections - this is a variation of Out-of-Path connections where traffic to RSP is redirected to by a router using L2, PBR, or GRE with WCCP. VRSP, being an extension of RSP, inherits configuration/management mechanisms from RSP. The same facilities are still present and operating as they were in RSP, with these exceptions:VNI types VNI rules For details on configuring VRSP, see Configuring Subnet Side Rules, To add a DNAT rule to a virtual in-path VNI, and Configuring WCCP.This section provides an overview of the basic steps to install and configure RSP, followed by detailed procedures.
1. Verify that your Steelhead appliance supports RSP requirements.
2. Download and install the RSP image, which contains the VMware server and the RSP service. The Steelhead appliance RiOS image does not include the RSP image. You must install the RSP image separately.RSP is preinstalled on newly manufactured Steelhead appliances if you ordered RSP.
3. Start the RSP service on the Steelhead appliance.
• Use an existing package from Riverbed, a third-party vendor, or from within your organization.Important: The package files can be quite large and can take up several GBs of disk space. For details about creating an RSP Package for your application or service, see the RSP User’s Guide.
7. Specify VM settings, specify watchdog settings, create and manage virtual disks, manage Virtual Network Interfaces (VNIs), and perform operations such as uninstalling a slot or restoring RSP backup.
8. Place the slotted package optimization VNI into the data flow.Note: This step is not required for out-of-band packages. Note: This step is not required if you use the default rules for the package.


Toggle navigation
Menu
We Care
About
Services
Portfolio
Contact
Login
LogIn
Email address:
Password:
Remember me
Log in
Sign Up
×
Error Validation
Please enter valid username and password


Chocolate Pizza
POSTED ON 15 DEC 2013/DESERT
- 11/2 cups milk
- 1/2 cup mascarpone
- 1/2 tsp pink salt
- 1 lb Black Mission Figs
- 1/2 cup brown sugar
- 2-4 tbsp water
- 11/2 cups heavy cream
1/3 granulated sugar2 egg yolks- 1 lemon, juiced
- 2 tbsp butter
- 1 cup honey roasted pecans,
roughly chopped
Vanneca Stivenson
Food enthusiast, photography fan. Add a pinch of raw foodism and that's
pretty much who I am.


Introduction
I have been working with Hyperspectral Images for a long time now and these are some of the things I wish I knew when I started with this subject. Will not deny it was fun experimenting and experiencing some "dafuq" moments. Will try my best to keep this post as simple as possible. I will assume that you have basic knowledge of python.
So what is a Hyperspectral Image?
Hyperspectral imaging, like other spectral imaging, collects and processes information from across the electromagnetic spectrum. The goal of hyperspectral imaging is to obtain the spectrum for each pixel in the image of a scene, with the purpose of finding objects, identifying materials, or detecting process.
That was straight from Wikipedia. All you need to know is that if a normal image in matrix form has rows and columns. Hyperspectral images have rows, columns and bands and each point/pixel has its own associated spectrum (Mind = Blown!). So basically it gives the normal human eyes to see the unseen (Visible + Infrared + Ultraviolet). Pretty sweet isn't it?
Hyperspectral images contain a wealth of data, but interpreting them requires an understanding of exactly what properties of ground materials we are trying to measure, and how they relate to the measurements actually made by the hyperspectral sensor.
Speaking of Hyperspectral sensor AVIRIS, Airborne Visible/Infrared Imaging Spectrometer from NASA has acquired images of Cuprite, Nevada which is widely used for studying hyperspectral images. We will be using Cuprite images available free for download here
Let's Get Started
Just to let you know that Hyperspectral Images can be read through softwares like ENVI, ERDAS imagine which of course is not free.
We use Python! Free and Open Source!
The dependencies you will need
- Spectral (Spy).
- Numpy.
- Pylab.
- PIL.
- matplotlib.
We will be using IPython Notebook. (That was very obvious)
You can download all the above by running
$ pip install <dependency name>
in your command line.
Once you are done installing all the above run
$ ipython notebook --pylab
This will enable pylab and start IPython in your default browser. Navigate to the folder where you have downloaded the image and open a new Notebook.
The Code
import spectral
import numpy
import PIL
import matplotlib
This is self explanatory.
img = aviris.open('f970619t01p02_r02_sc01.a.rfl','f970619t01p02_r02.a.spc')
Here we are reading the image into img
variable. Since aviris.open
is a function of spectral library. This function will change based upon the hyperspectral image you will be using.
If it is .int extension then you use envi.open
. Similarly if it is .lan then you use erdas.open
The .a.rfl extension contains the actual image and .a.spc contains the data of the bands. If you get an error here the only possible reason will be you are not in the path of the image.
To know if the data has been read just type in
img
and execute and you should get something like this
Data Source: './f970619t01p02_r02_sc01.a.rfl'
# Rows: 512
# Samples: 614
# Bands: 224
Interleave: BIP
Quantization: 16 bits
Data format: int16
So now you have a clear cut picture of what's in store for you. The first 3 are understood.
Interleave can be of 3 type BIP
, BIL
, BSQ
. Probably i will explain this in detail in an other post as of now just know that Band interleaved by line (BIL), band interleaved by pixel (BIP) and band sequential (BSQ) are the ways of storing or should I say organizing the data by line, pixel or sequentially.
Every hyperspectral image will have a .hdr file associated with it. These are header files and contain the information about the various parameters/data about the image. Understanding header files will give you a good knowledge about the image. The file can be read by using TextEdit on a mac and i guess Notepad on windows would do a good job too.
Now let us load this into another variable. Execute
abc = img.load()
To check the data in abc
abc.info()
should output this
u'\t# Rows: 512\n\t# Samples: 614\n\t# Bands: 224\n\tData format: float32'
Note that the data format has changed from int16 to float32. I really do not know why this happens but after breaking my head I found out we can actually convert the result back into int16 infact any datatype that you want. Thanks to numpy.
Now type in
abc
and execute and that's the entire Hyperspectral image in matrix form!
[[[ 0. 0. 1.03670001 ..., 0.18799999 0.2414 0.2516 ]
[ 0. 0. 1.03670001 ..., 0.13349999 0.1662 0.13240001]
[ 0. 0. 1.03690004 ..., 0.18539999 0.1793 0.16320001]
...,
[ 0. 0. 0.98760003 ..., 0.1175 0.0937 0.0411 ]
[ 0. 0. 1. ..., 0.1221 0.1649 0.1714 ]
[ 0. 0. 0.9874 ..., 0.14040001 0.13 0.1503 ]]
[[ 0. 0. 0.0086 ..., 0.21520001 0.1631 0.1936 ]
[ 0. 0. 0.0086 ..., 0.28619999 0.219 0.2757 ]
[ 0. 0. 0.0086 ..., 0.13249999 0.1649 0.1101 ]
...,
[ 0. 0. -0.005 ..., 0.0931 0.0777 0.0428 ]
[ 0. 0. -0.005 ..., 0.0684 0.0597 0.0963 ]
[ 0. 0. -0.005 ..., 0.19419999 0.14650001 0.1762 ]]
[[ 0. 0. -0.005 ..., 0.16339999 0.1639 0.1094 ]
[ 0. 0. -0.005 ..., 0.18279999 0.19840001 0.2242 ]
[ 0. 0. -0.005 ..., 0.2186 0.2395 0.22849999]
...,
[ 0. 0. -0.005 ..., 0.1187 0.16689999 0.1479 ]
[ 0. 0. -0.005 ..., 0.0445 0.0444 0.1241 ]
[ 0. 0. -0.005 ..., 0.1469 0.12710001 0.1186 ]]
...,
[[ 0. 0. -0.005 ..., 0.1635 0.1406 0.1665 ]
[ 0. 0. -0.005 ..., 0.121 0.1401 0.0971 ]
[ 0. 0. -0.005 ..., 0.2062 0.1237 0.16689999]
...,
[ 0. 0. -0.005 ..., 0.23469999 0.2273 0.24590001]
[ 0. 0. -0.005 ..., 0.25619999 0.1961 0.1892 ]
[ 0. 0. -0.005 ..., 0.1538 0.1699 0.1832 ]]
[[ 0. 0. -0.005 ..., 0.13959999 0.1596 0.1245 ]
[ 0. 0. -0.005 ..., 0.13959999 0.17120001 0.1245 ]
[ 0. 0. -0.005 ..., 0.163 0.1573 0.17470001]
...,
[ 0. 0. -0.005 ..., 0.1367 0.1591 0.1373 ]
[ 0. 0. -0.005 ..., 0.1086 0.14650001 0.0896 ]
[ 0. 0. -0.005 ..., 0.1489 0.13940001 0.1134 ]]
[[ 0. 0. -0.005 ..., 0.2071 0.1648 0.1416 ]
[ 0. 0. -0.005 ..., 0.1234 0.1196 0.1427 ]
[ 0. 0. -0.005 ..., 0.14219999 0.1389 0.1709 ]
...,
[ 0. 0. -0.005 ..., 0.1052 0.1165 0.1056 ]
[ 0. 0. -0.005 ..., 0.1561 0.153 0.1569 ]
[ 0. 0. -0.005 ..., 0.1318 0.12809999 0.1049 ]]]
Note that 0. in the matrix doesn't mean that the value is 0. It has a value which is very small and negligible.
To get the desired row, column and band use
arr[56:60,56:60,23].astype(numpy.float32)
and it should output this
[[ 0.2221 0.23019999 0.2228 0.2008 ]
[ 0.24079999 0.2078 0.19159999 0.18880001]
[ 0.1934 0.18960001 0.1908 0.19230001]
[ 0.1885 0.1908 0.1868 0.19149999]]
In the above example we read the matrix values from 56-60 rows, 56-60 columns and of 23rd band.
.astype(numpy.float32)
is how to change the datatype of the matrix.
Lastly i will be showing you how you can view the Hyperspectral Image and see the spectrum.
To view the hyperspectral image type in
showimage = imshow(img, (5, 200, 200))
now in a new window you will be able to see something like this
To get the data limit values of RGB for the value that you have entered in, Execute
print view
and you will see
ImageView object:
Display bands : (5, 200, 200)
Interpolation : <default>
RGB data limits :
R: [0.054699999999999999, 0.2167]
G: [0.068400000000000002, 0.4829]
B: [0.068400000000000002, 0.4829]
Play around by changing the bands and you will see the color of the image will change. In the beginning I had mentioned that each band is associated with a wavelength and each point/pixel has its own spectrum. Don't believe me? Double click on any point on the image and you will see the spectrum graphically plotted.
That is Hyperspectral Image.
If you have any doubts feel free to comment or you can drop a mail to<EMAIL_ADDRESS>Peace.


Register
Invalid email
Cannot be left empty
Cannot be left empty
Invalid email
Invalid username(Should have only a-z,0-9,.,_ and 5-20 chars,without any spaces)
Cannot be left empty
Cannot be left empty
Invalid username(Should have only a-z,0-9,.,_ and 5-20 chars,without any spaces)
{{UsernameMessage}}
password too small or invalid character,use(8-25 char)(a-z,0-9,A-Z,!,@,#,$,%,^,&,*,(,),_,.)
Cannot be left empty
Cannot be left empty
password too small or invalid character,use(8-25 char)(a-z,0-9,A-Z,!,@,#,$,%,^,&,*,(,),_,.)
{{passtext}}
{{result}}
or
Facebook
Google


COVID-19
Home
(current)
COVID-19 Sao Tome and Principe - Italy REPORT
Novel Coronavirus (COVID-19) cases data provided by JHU CSSE
Italy - 228006
Infections - Sao Tome and Principe - 251
Italy - 32486
Deaths - Sao Tome and Principe - 8
Italy - 134560
Recovery - Sao Tome and Principe - 4
Back to Sao Tome and Principe
Compare To China
Compare to Italy
Compare to Spain


|
|
|
|
|
You can choose to upload one default track to be played in all executions by all troops representing this club, or one track per discipline.
The track selection is hierarchical, which means that in a tournament, we will first look for a track uploaded for that specific tournament in that specific discipline. That is configured when you assign your troops to a competition. If none is found, we will look for a track for a specific discipline, which you configure in this panel. If we still cannot find a track, we will look for a club track.


TABLE OF CONTENTS
HSX is a binary file format for indexing (or listing) DNA sequences in other files, allowing fast random access to those sequences. The format was created as part of the LASTZ project, providing a means to input selected sequences from several short read files into a single run of LASTZ.
This document is provided for users interested in creating HSX files with programs of their own design.
The HSX file contains a sequence index array and an associated hash table. Each sequence index entry includes the sequence's name, length, and a reference to the location of the sequence's data in some other file. This array can be accessed either sequentially or via the hash table. Note that the names in the index file do not have to match the original names or headers in the sequence files.
Sequence entries are ordered by the hashes of their names. Conceptually, the hash table groups the sequences into buckets of sequences with the same hash. For each bucket, the table gives the location in the sequence index of the first sequence in that bucket. Hash collisions are resolved by scanning subsequent index entries for the remaining sequences in the bucket.
There is also a file table, which allows a single index file to cover sequences from multiple sequence files of varying formats. However, currently LASTZ only supports indexing of files in FASTA format.
The file is stored in a binary format described by the table below. It can be written on either a big-endian or little-endian machine; programs reading the file determine the byte order of multi-byte fields by examining the magic number at the start of the file.
| File Offset | Data | Meaning |
0x00 |
D2 52 70 95
—or— 95 70 52 D2 |
Magic number indicating big-endian byte order.
Magic number indicating little-endian byte order. |
0x04 |
00 00 01 00 |
File conforms to version 1.0 of the HSX file format. |
0x08 |
00 00 00 1C |
Header length in bytes, including this field through the SOFF field. |
0x0C |
00 00 00 xx |
FLEN :
number of entries in the file table (limited to 255). |
0x10 |
xx xx xx xx |
FOFF :
offset (from file start) to the file table. |
0x14 |
xx xx xx xx |
HLEN :
number of buckets in the hash table. This also serves as the modulus for
the hash function.
Typically the number of buckets is set so that the average number of
sequences per bucket (
The hash table actually includes |
0x18 |
xx xx xx xx |
HOFF :
offset (from file start) to the hash table. |
0x1C |
xx xx xx xx |
SLEN :
number of entries in the sequence index table. |
0x20 |
xx xx xx xx |
SOFF :
offset (from file start) to the sequence index table.
Entries in the sequence index table are necessarily stored in hash order. Entries with the same hash are stored in alphabetical order (actually, in lexicographic order over the bytes of their names.) See the hashing description below this table for more information. |
FOFF |
xx xx xx xx |
FINFO0 :
offset (from file start) to the info record for the first sequence file
(file 0). |
| … | Offsets to info records for the remaining FLEN-1 files. |
|
FINFO0 |
xx xx … |
FTYPE0 :
file type for file 0, stored as a length byte
FTYPELEN0 followed by FTYPELEN0
bytes of ASCII text.
This is equivalent to a file extension (without a leading Together, this field and the next comprise a single info record in the file table. |
FINFO0+1+FTYPELEN0 |
xx xx … |
FNAME0 :
file name for file 0, stored as a length byte
FNAMELEN0 followed by FNAMELEN0
bytes of ASCII text.
This is used as the base file name for the corresponding sequence file, including path. However, it is usually an empty string, in which case the base name and path are copied from the name and path of the HSX file itself. This allows files to be renamed without rebuilding the index. |
| … | Info records for the remaining FLEN-1 files. |
|
HOFF |
xx xx xx xx xx |
SOFFH(0) :
offset (from file start) into the sequence index table, pointing to the first
sequence in the first hash bucket (bucket 0).
The most significant bit in a bucket's |
| … | Offsets for the first sequences in the remaining HLEN-1
buckets. |
|
HOFF+5*HLEN |
xx xx xx xx xx |
Sentinel hash bucket. This contains an offset to the end of the sequence index table (i.e., to the byte just beyond the last entry). |
SOFF |
xx xx xx xx xx |
IXLEN0 :
length (in nucleotides) of the first sequence.
A sequence may be empty, so zero is a legitimate value for the sequence length. Together, this field and the next three comprise a single entry in the sequence index table. |
SOFF+5 |
xx |
IXFILE0 :
index into the file table for the file containing the first sequence. |
SOFF+6 |
xx xx xx xx xx xx |
IXOFF0 :
offset (from the start of the appropriate sequence file) pointing to the first
sequence. |
SOFF+12 |
xx xx … |
IXNAME0 :
name of the first sequence, stored as a length byte
IXNAMELEN0 followed by
IXNAMELEN0 bytes of ASCII text. |
| … | Sequence index entries for the remaining
SLEN-1 sequences. |
The code for the underlying hash function is shown below, written in C.
The hash bucket for sequence name NAME
is computed by
bucket = hassock_hash(NAME,strlen(NAME)) % HLEN;
This hash function is a variant of Austin Appleby's MurmurHash2. The primary differences are that it has the seed hardwired and scans the input data in the reverse order (this is not structly true, since the non-multiple-of-four leftover bytes are handled slightly differently). It is also endian-neutral.
#include <stdint.h> uint32_t hassock_hash (const void* key, uint32_t len) { const uint32_t seed = 0x5C3FC4D3; const uint32_t m = 0x87C10417; const uint8_t* data = ((const uint8_t*) key) + len; const uint8_t* stop = ((const uint8_t*) key) + 4; uint32_t h, k; h = seed ^ len; while (data >= stop) { k = *(--data); k |= *(--data) << 8; k |= *(--data) << 16; k |= *(--data) << 24; k *= m; k ^= k >> 24; k *= m; h *= m; h ^= k; len -= 4; } switch (len) { case 3: h ^= *(--data) << 16; case 2: h ^= *(--data) << 8; case 1: h ^= *(--data); h *= m; } h ^= h >> 13; h *= m; h ^= h >> 15; return h; }
In this example, we have 10 sequences from 3 fasta files, indexed by a single HSX file. We first show the fasta files, then show a field-by-field hex dump of the corresponding HSX file. For demonstration purposes, the HSX file was created with only 5 buckets. Typical HSX files will deal with more sequences, more files, and have more buckets.
hsxexA.fa contains five sequences:
>HSXEXA_785 TAACGGCAATCTTTGGTAGACCTATTGGTCATATCATGAAATTGAAGGAT AATTATTGCCATAAAGTTTTTCACGTTACTATCTTTGCCTCGCAATGAAT AAAATATTCTTAGGGCTACTTTGTAACCTTGCAGAC >HSXEXA_88K TTAATTACTCGCATGATCTTTCAAGATCTTTACCGTTCACACAATTTCTC GAACACTCAGTA >HSXEXA_DNQ CAGTGTACAAAATAAACTATTAACTATATGTAGATAGATACATAGAGACA AAACGGGTAGCATCTAGTATCCTGACTGCGCATTGTGGGGTGTCGCTTCT AAGTACCCGAAATGAGCGT >HSXEXA_LRW TTAAGTACATTCAGATCCATCATGGTTTCGGAAGCTAATGGGAAAAGGGG TACAGAATACAACACCTAGTTGATACGATAGTTAGTTTTTTA >HSXEXA_R9V TATAGTGCGTGTATGACCAATATTACGATGATCGTGACGCCATAGGGTCA TATTCCTTAATATGTAAATATGAAGGTA
hsxexB.fa contains four sequences:
>HSXEXB_6YF AAGAGTTCTTACGGCAATAACAAAATGATGCTGTATCCTAGTAACAGGAA CGAACCATTCGCTTCTGTGTTCTATACAGAAGAAACCAGACTCGCTAAAC A >HSXEXB_WCV AATTAGTCTATTAAGGACTATATGTTTACAAGGATGGTAGTCCTAACGGA ATTGATACCAATAGGTGGCACTTACCGTAGCTAGGTAGATCGCCCTACTA CACCAGCTCAGCCATCTTGCCCCGCCAACT >HSXEXB_YKU GTCAACAGGTTTTCGGACTGGTGGCTTTCCTGATTTGATATTCAAAGGAA ATTAGGGTAAGGACTTTGAGTTGTCATAGAATTCAATTTCGGGCTCCGTC CATCACCTCGT >HSXEXB_YV1 GGTGATGTTGTGAATATCACTGTCATGAAGGTCTCCTTCGGCCGCCTTAA TCATCATCATAAGTTTCACCATGGTAAAATGAATTAGCCCCAAGCT
hsxexC.fa contains three sequences:
>HSXEXC_4ZL CACATCACATTGGTTGTTCATCCATATAATTATTTCCCATAAACTTTAAG AGCTCGGCTGGCCATACGTACTGACTAGCTTAGCCCCTAACTAATCGGCC ACAGCGATAGTACA >HSXEXC_936 TGGTTTTTAGAGTCCGTGGAGCCTCTCAGCCACACTGGGTTCGGGAAGTT TCAGGCAAGTCCTACCTGTAA >HSXEXC_GWD CTAATCTGGGCTTGGGTCTGAACTCGCCCATGAGGAGGTAAGCAAACCAA TAAATTCGGGTATGGCGGTCTTTATTATGCTTAAGGAACGGAACAA
The twelve sequence names are hashed into separate buckets, and sorted within buckets, like this:
| Hash Code/Bucket | Sequence Name | Fasta file | Offset to sequence, in fasta file |
0 |
HSXEXB_6YF | hsxexB.fa | 0x0000 00000000 |
1 |
HSXEXA_785
HSXEXA_DNQ |
hsxexA.fa
hsxexA.fa |
0x0000 00000000
0x0000 000000E3 |
2 |
HSXEXA_88K
HSXEXA_LRW HSXEXB_YV1 HSXEXC_4ZL |
hsxexA.fa
hsxexA.fa hsxexB.fa hsxexC.fa |
0x0000 00000097
0x0000 00000169
0x0000 00000183
0x0000 00000000 |
3 |
HSXEXB_YKU | hsxexA.fa | 0x0000 00000105 |
4 |
HSXEXA_R9V
HSXEXB_WCV HSXEXC_936 HSXEXC_GWD |
hsxexA.fa
hsxexB.fa hsxexC.fa hsxexC.fa |
0x0000 000001D3
0x0000 00000074
0x0000 00000081
0x0000 000000D6 |
Here is the complete HSX file, byte-by-byte:
| File Offset | Data | Field | Meaning |
0x00000000 |
D2 52 70 95
| Magic number | Big-endian. |
0x00000004 |
00 00 01 00 |
HSX version | 1.0. |
0x00000008 |
00 00 00 1C |
Header length | 28 bytes. |
0x0000000C |
00 00 00 03 |
FLEN=3 |
3 entries in file table. |
0x00000010 |
00 00 00 30 |
FOFF=30 |
File table is at 0x00000030. |
0x00000014 |
00 00 00 05 |
HLEN=5 |
5 buckets in the hash table. |
0x00000018 |
00 00 00 60 |
HOFF=60 |
Hash table is at 0x00000060. |
0x0000001C |
00 00 00 0C |
SLEN=0C |
12 entries in the sequence index table. |
0x00000020 |
00 00 00 60 |
SOFF=80 |
Sequence index table is at 0x00000080. |
0x00000024 |
00 00 00 00
00 00 00 00
00 00 00 00 |
Padding |
The creating program can insert padding here, at its descretion. |
0x00000030 |
00 00 00 40 |
FINFO0=40 |
Info record for file 0 is at 0x00000040. |
0x00000034 |
00 00 00 4A |
FINFO1=4A |
Info record for file 1 is at 0x0000004A. |
0x00000038 |
00 00 00 54 |
FINFO2=54 |
Info record for file 2 is at 0x00000054. |
0x0000003C |
00 00 00 00
| Padding |
|
0x00000040 |
00 66 61 |
FTYPE0 |
File type for file 0 is "fa". |
0x00000043 |
06 68 73 78
65 78 41 |
FNAME0 |
Base name for file 0 is "hsxexA". File name is hsxexA.fa. |
0x0000004A |
00 66 61 |
FTYPE1 |
File type for file 1 is "fa". |
0x0000004D |
06 68 73 78
65 78 42 |
FNAME1 |
Base name for file 1 is "hsxexB". File name is hsxexB.fa. |
0x00000054 |
00 66 61 |
FTYPE2 |
File type for file 2 is "fa". |
0x00000057 |
06 68 73 78
65 78 43 |
FNAME2 |
Base name for file 2 is "hsxexC". File name is hsxexC.fa. |
0x0000005E |
00 00
| Padding |
|
0x00000060 |
00 00 00 00 80 |
SOFFH(0)=80 |
Sequence entries for hash bucket 0 start at 0x00000080. |
0x00000060 |
00 00 00 00 97 |
SOFFH(1)=97 |
Sequence entries for hash bucket 1 start at 0x00000097. |
0x00000060 |
00 00 00 00 C5 |
SOFFH(2)=C5 |
Sequence entries for hash bucket 2 start at 0x000000C5. |
0x00000060 |
00 00 00 01 21 |
SOFFH(3)=121 |
Sequence entries for hash bucket 3 start at 0x00000121. |
0x00000060 |
00 00 00 01 38 |
SOFFH(4)=138 |
Sequence entries for hash bucket 4 start at 0x00000138. |
0x00000060 |
80 00 00 01 94 |
SOFFH(5)=194 |
Sentinel bucket indicates end of sequence entries is at 0x00000194.
The most significant bit of |
0x0000007E |
00 00
| Padding |
|
0x00000080 |
00 00 00 00 65 |
IXLEN0=65 |
(Start of hash bucket 0)
Sequence 0 is 101 bp. |
0x00000085 |
01 |
IXFILE0=1 |
Sequence 0 is in file 1 (hsxexB.fa). |
0x00000086 |
00 00 00 00 00 00 |
IXOFF0=00 |
Sequence 0 is at file offset 0x0000 00000000. |
0x0000008C |
0A 48 53 58
45 58 42 5F
36 59 46 |
IXNAME0 |
Sequence 0 is named "HSXEXB_6YF". |
00000097 |
00 00 00 00 88 |
IXLEN1=88 |
(Start of hash bucket 1)
Sequence 1 is 136 bp. |
0000009C |
00 |
IXFILE1=0 |
Sequence 1 is in file 0 (hsxexA.fa). |
0000009D |
00 00 00 00 00 00 |
IXOFF1=00 |
Sequence 1 is at file offset 0x0000 00000000. |
000000A3 |
0A 48 53 58
45 58 41 5F
37 38 35 |
IXNAME1 |
Sequence 1 is named "HSXEXA_785". |
000000AE |
00 00 00 00 77 |
IXLEN2=77 |
Sequence 2 is 119 bp. |
000000B3 |
00 |
IXFILE2=0 |
Sequence 2 is in file 0 (hsxexA.fa). |
000000B4 |
00 00 00 00 00 E3 |
IXOFF2=E3 |
Sequence 2 is at file offset 0x0000 000000E3. |
000000BA |
0A 48 53 58
45 58 41 5F
44 4E 51 |
IXNAME2 |
Sequence 2 is named "HSXEXA_DNQ". |
000000C5 |
00 00 00 00 3E |
IXLEN3=3E |
(Start of hash bucket 2)
Sequence 3 is 62 bp. |
000000CA |
00 |
IXFILE3=0 |
Sequence 3 is in file 0 (hsxexA.fa). |
000000CB |
00 00 00 00 00 97 |
IXOFF3=97 |
Sequence 3 is at file offset 0x0000 00000097. |
000000D1 |
0A 48 53 58
45 58 41 5F
38 38 4B |
IXNAME3 |
Sequence 3 is named "HSXEXA_88K". |
000000DC |
00 00 00 00 5C |
IXLEN4=5C |
Sequence 4 is 92 bp. |
000000E1 |
00 |
IXFILE4=0 |
Sequence 4 is in file 0 (hsxexA.fa). |
000000E2 |
00 00 00 00 01 69 |
IXOFF4=169 |
Sequence 4 is at file offset 0x0000 00000169. |
000000E8 |
0A 48 53 58
45 58 41 5F
4C 52 57 |
IXNAME4 |
Sequence 4 is named "HSXEXA_LRW". |
000000F3 |
00 00 00 00 60 |
IXLEN5=60 |
Sequence 5 is 96 bp. |
000000F8 |
01 |
IXFILE5=1 |
Sequence 5 is in file 1 (hsxexB.fa). |
000000F9 |
00 00 00 00 01 83 |
IXOFF5=183 |
Sequence 5 is at file offset 0x0000 00000183. |
000000FF |
0A 48 53 58
45 58 42 5F
59 56 31 |
IXNAME5 |
Sequence 5 is named "HSXEXB_YV1". |
0000010A |
00 00 00 00 72 |
IXLEN6=72 |
Sequence 6 is 130 bp. |
0000010F |
02 |
IXFILE6=2 |
Sequence 6 is in file 2 (hsxexC.fa). |
00000110 |
00 00 00 00 00 00 |
IXOFF6=0 |
Sequence 6 is at file offset 0x0000 00000000. |
00000116 |
0A 48 53 58
45 58 43 5F
34 5A 4C |
IXNAME6 |
Sequence 6 is named "HSXEXC_4ZL". |
00000121 |
00 00 00 00 6F |
IXLEN7=6F |
(Start of hash bucket 3)
Sequence 7 is 111 bp. |
00000126 |
01 |
IXFILE7=1 |
Sequence 7 is in file 1 (hsxexB.fa). |
00000127 |
00 00 00 00 01 05 |
IXOFF7=105 |
Sequence 7 is at file offset 0x0000 00000105. |
0000012D |
0A 48 53 58
45 58 42 5F
59 4B 55 |
IXNAME7 |
Sequence 7 is named "HSXEXB_YKU". |
00000138 |
00 00 00 00 4E |
IXLEN8=4E |
(Start of hash bucket 4)
Sequence 8 is 78 bp. |
0000013D |
00 |
IXFILE8=0 |
Sequence 8 is in file 0 (hsxexA.fa). |
0000013E |
00 00 00 00 01 D3 |
IXOFF8=1D3 |
Sequence 8 is at file offset 0x0000 000001D3. |
00000144 |
0A 48 53 58
45 58 41 5F
52 39 56 |
IXNAME8 |
Sequence 8 is named "HSXEXA_R9V". |
0000014F |
00 00 00 00 82 |
IXLEN9=82 |
Sequence 9 is 130 bp. |
00000154 |
01 |
IXFILE9=1 |
Sequence 9 is in file 1 (hsxexB.fa). |
00000155 |
00 00 00 00 00 74 |
IXOFF9=74 |
Sequence 9 is at file offset 0x0000 00000074. |
0000015B |
0A 48 53 58
45 58 42 5F
57 43 56 |
IXNAME9 |
Sequence 9 is named "HSXEXB_WCV". |
00000166 |
00 00 00 00 47 |
IXLEN10=47 |
Sequence 10 is 71 bp. |
0000016B |
02 |
IXFILE10=2 |
Sequence 10 is in file 2 (hsxexC.fa). |
0000016C |
00 00 00 00 00 81 |
IXOFF10=81 |
Sequence 10 is at file offset 0x0000 00000081. |
00000172 |
0A 48 53 58
45 58 43 5F
39 33 36 |
IXNAME10 |
Sequence 10 is named "HSXEXC_936". |
0000017D |
00 00 00 00 60 |
IXLEN11=60 |
Sequence 11 is 96 bp. |
00000182 |
02 |
IXFILE11=2 |
Sequence 11 is in file 2 (hsxexC.fa). |
00000183 |
00 00 00 00 00 D6 |
IXOFF11=D6 |
Sequence 11 is at file offset 0x0000 000000D6. |
00000189 |
0A 48 53 58
45 58 43 5F
47 57 44 |
IXNAME11 |
Sequence 11 is named "HSXEXC_GWD". |
00000194 |
(file ends here) |


Simple DTD based Completion Grammar Package
This package implements simple DTD grammar. It means
that the grammar can resolve queries by using no
document context. It means that if a content model declaration
prescribes a sequence and a document already contains
starting sequence members the grammar will provide
these also because it does not support document context.
This simplification is same as for HTML grammar provided
by editor module.
On the other hand there it prepared class {@link ContentModel}
that handles it. It is ready to be integrated.


Note : Clicking to add to cart button more than once will increase the quantity of product in the cart


Select graph to display by clicking on links to the right of the current graph.
Show more detailed data by hovering pointer over individual pins.
Scenario: ???
Actions:
Known browser issues: ???
Result images:


Enter a topic
It's time for good news
We love bad news and the media companies know it. The old adage "bad news sells" found a new signification in the 21st century.
At no point in modern history societies have been exposed to or as well informed about tragedies.
With Good news sells, you get to consciously choose to read either positive or negative news about the topic you want. You can decide how to consume news. Let's start!


This is a website about the continents and their countries.
Africa has too many countries to name so we have provided a link with a picture but it is not of Africa


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.swing.InputMap
public class InputMap
InputMap
provides a binding between an input event
(currently only KeyStroke
s are used)
and an Object
. InputMap
s
are usually used with an ActionMap
,
to determine an Action
to perform
when a key is pressed.
An InputMap
can have a parent
that is searched for bindings not defined in the InputMap
.
As with ActionMap
if you create a cycle, eg:
InputMap am = new InputMap(); InputMap bm = new InputMap(): am.setParent(bm); bm.setParent(am);some of the methods will cause a StackOverflowError to be thrown.
| Constructor Summary | |
|---|---|
InputMap()
Creates an InputMap with no parent and no mappings. |
| Method Summary | |
|---|---|
KeyStroke[] |
allKeys()
Returns an array of the KeyStroke s defined in this
InputMap and its parent. |
void |
clear()
Removes all the mappings from this InputMap . |
Object |
get(KeyStroke keyStroke)
Returns the binding for keyStroke , messaging the
parent InputMap if the binding is not locally defined. |
InputMap |
getParent()
Gets this InputMap 's parent. |
KeyStroke[] |
keys()
Returns the KeyStroke s that are bound in this InputMap . |
void |
put(KeyStroke keyStroke,
Object actionMapKey)
Adds a binding for keyStroke to actionMapKey . |
void |
remove(KeyStroke key)
Removes the binding for key from this
InputMap . |
void |
setParent(InputMap map)
Sets this InputMap 's parent. |
int |
size()
Returns the number of KeyStroke bindings. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public InputMap()
InputMap
with no parent and no mappings.
| Method Detail |
|---|
public void setParent(InputMap map)
InputMap
's parent.
map
- the InputMap
that is the parent of this onepublic InputMap getParent()
InputMap
's parent.
InputMap
that is the parent of this one,
or null if this InputMap
has no parentpublic void put(KeyStroke keyStroke, Object actionMapKey)
keyStroke
to actionMapKey
.
If actionMapKey
is null, this removes the current binding
for keyStroke
.
public Object get(KeyStroke keyStroke)
keyStroke
, messaging the
parent InputMap
if the binding is not locally defined.
public void remove(KeyStroke key)
key
from this
InputMap
.
public void clear()
InputMap
.
public KeyStroke[] keys()
KeyStroke
s that are bound in this InputMap
.
public int size()
KeyStroke
bindings.
public KeyStroke[] allKeys()
KeyStroke
s defined in this
InputMap
and its parent. This differs from keys()
in that
this method includes the keys defined in the parent.
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


Limerick hurler Paul Browne retires at just 30
He was named vice-captain for the memorable All-Ireland winning 2018 season
by Seán MoranLimerick’s Paul Browne has retired from inter-county hurling at the age of 30. From the Bruff club, he enjoyed an 11-year career with the county and made his first championship start in the 2009 replay defeat by Waterford.
His decision was announced on the Limerick GAA website on Thursday evening.
Named vice-captain for the memorable 2018 season, he had the misfortune to miss out on the All-Ireland triumph due to a cruciate injury.
“I leave with nothing but wonderful memories and pride from my eleven years playing with Limerick,” he said in his statement. “To have shared the dressing room with all my past team-mates and this incredible panel of players now has been the greatest honour of my life.
“I look forward to supporting the 2020 panel and management and I would urge all Limerick supporters to do so. There are fantastic times ahead.”


Know your AI
AI will take over the world ?
No, The reason is
What is AI ?
Build your AI
Build your AI
Ethical problems in AI
Will AI take over the world?
Previous


Enter the current password
Enter new password
Confirm new password
Your current phone number:
Enter your new phone number


Here are the latest research publications, abstracts, and teams I have been working with.
Rapid gut microbiome changes in a world-class ultramarathon runner by Grosicki, Durk, & Bagley (2019).
Gut microbiota composition is related to cardiorespiratoy fitness in healthy young adults by Durk and colleagues (2018).
Science doesn't happen alone, it is a team endeavour. Check out some of the researchers I have wokred with!
Muscle Physiology Lab


Everybody Likes Brisket
What is Brisket? and why is it so good?
Created by
Wayne Warner /
@wawjr3d
A delicious meat?
- jeffreyw
An isomorphic javascript framework
Why did we go isomorphic?
- Write one language
- One codebase
- More options (traditional or SPA)
- Media sites need SEO
What makes Brisket so good?
- Code freedom (seed framework)
- Feels like "just Backbone"
- Provides conveniences
- Provides tools to make your decisions
Key Concepts/Goals
- Optimize perceived speed
- The site works BEFORE javascript starts
- Feel like a library
What will my code look like?
How does Brisket actually work?
Basics
- Provides an express engine
- CommonJS code bundled for client
- jsdom on server side
- Base tag
- Client app start script
Routers return View (or Promise of a View)
A Router's job is to prepare a View to render into Layout
Delegate rendering management to Brisket
ChildView management
Brisket Views can have child views
Brisket child views can reattach themselves to existing DOM
Idempotent child view creation from server to client
Initial page load
Want an instant replay of server side route handling
- Sean MacEntee
Initial load state must be same as server for correct rendering
View reattachment
During server side render, Views get unique identifier
During client side render, Views gets the same unique identifier
Views search for themselves in the DOM
- Tambako The Jaguar
Bootstrapped Data
Server-side API responses are recorded and sent to client
Why should you use Brisket?
- You're building a media site
- You enjoy working in Backbone
- You're hungry
How can you consume Brisket?
Available on NPM
npm install brisket
Questions?
- Raymond Bryson
THE END
Barriga llena...corazon contento!!
- Joseph Bylund
BY Wayne Warner / @wawjr3d


Winning $1M unclaimed Powerball ticket sold in Michigan
by WXYZ StaffA $1 million Powerball jackpot remains unclaimed 11 months after the drawing.
The ticket matched the five white balls drawn - 15,29,31,37,43 - in the Dec. 19, 2018 drawing.
The winning ticket was bought at the Marathon gas station located in Farmington Hills, Michigan.
Tickets for Powerball are valid for one year from the drawing date. The winner is asked to contact the Michigan Lottery Public Relations Division at<PHONE_NUMBER> to collect the prize.


Schematic symbols: prefixes and pin numbers
Device and subcircuit (or hierarchical block) symbols created for use in schematics that are intended to be run as spice simulations, in addition to having a PCB Prefix that is used for the reference designator in the schematic, also have a Spice Prefix. They also have two sets of pin numbers: PCB pins and Spice pins.
PCB and Spice Prefix
The rules on the assignment of the PCB Prefix or reference designator of a schematic symbol are somewhat dependent on the EDA tool and on the user’s preferences. Depending on how a device is graphically represented by it’s schematic symbol it may have a different PCB Prefix or** reference designator**. For example, a single discrete MOSFET device may have a PCB Prefix of Q, M or perhaps TR, whereas if it is part of a monolithic multiple transistor array it may have a PCB Prefix of U or IC.
The rules on the assignment of the Spice Prefix of a schematic symbol are strict. This is because the Spice Prefix is used to tell the simulator which circuit element the symbol represents and therefore which simulation model it is to use.
Simulation models for most of the spice circuit elements are in the form of a single-line .model statement however some of them may be in the form of a multi-line .subckt subcircuit definition. For example, some MOSFETs may be described by a .model statement in which case their Spice Prefix is M but many MOSFETs are described by a .subckt and so their Spice Prefix is X.
Therefore, irrespective of the PCB Prefix chosen for a schematic symbol, the Spice Prefix for a schematic symbol representing a given circuit element must match the type of model required to simulate that instance of that circuit element in your schematic.
For example, if you have two different n-channel MOSFETs in a schematic; Q1, a BSS123 which is modelled by a .model statement:
BSS123*SRC=BSS123;DI_BSS123;MOSFETs N;Enh;100V 0.170A 1.00ohms Diodes Inc.
MOSFET
.MODEL DI_BSS123 NMOS( LEVEL=1 VTO=1.00 KP=6.37m GAMMA=1.24
+ PHI=.75 LAMBDA=625u RD=0.140 RS=0.140
+ IS=85.0f PB=0.800 MJ=0.460 CBD=19.8p
+ CBS=23.7p CGSO=36.0n CGDO=30.0n CGBO=124n )
* -- Assumes default L=100U W=100U --
and Q2, a BSS127S which is modelled by a .subckt:
BSS127S*---------- BSS127S Spice Model ----------
.SUBCKT BSS127S 10 20 30
* TERMINALS: D G S
M1 1 2 3 3 NMOS L = 1E-006 W = 1E-006
RD 10 1 84.22
RS 30 3 0.001
RG 20 2 29
CGS 2 3 1.958E-011
EGD 12 0 2 1 1
VFB 14 0 0
FFB 2 1 VFB 1
CGD 13 14 2E-011
R1 13 0 1
D1 12 13 DLIM
DDG 15 14 DCGD
R2 12 15 1
D2 15 0 DLIM
DSD 3 10 DSUB
.MODEL NMOS NMOS LEVEL = 3 VMAX = 8E+005 ETA = 1E-012 VTO = 3.419
+ TOX = 6E-008 NSUB = 1E+016 KP = 0.127 U0 = 400 KAPPA = 1.044E-015
.MODEL DCGD D CJO = 1.135E-011 VJ = 0.9232 M = 0.9816
.MODEL DSUB D IS = 2.294E-010 N = 1.601 RS = 0.1079 BV = 65
+ CJO = 1.956E-011 VJ = 1.514 M = 0.8171
.MODEL DLIM D IS = 0.0001
.ENDS
*Diodes BSS127S Spice Model v1.0 Last Revised 2012/6/6
then even though both have the same PCB Prefix of Q: Q1 must have a Spice Prefix of M and Q2 must have a Spice Prefix of X.
A list of Spice Prefixes and their associated circuit elements is given in the table below.
For more information on circuit elements in Ngspice, please refer to:
http://ngspice.sourceforge.net/docs/ngspice-manual.pdf#subsection.2.1.2
PCB and Spice pin numbers
The two sets of pin numbers are:
-
PCB pin number: these are the numbers for the real, physical device pins in its package. They are required so that the pins of a device symbol in a schematic can be mapped onto the physical pins of a PCB footprint. In other words, so that the connections shown in the schematic, end up connected properly by copper on the PCB.
-
Spice pin number or pin order: these are the numbers that map the pins on the symbol to their respective functions in the spice model or subcircuit.
Actually the spice pin ordering has a slightly deeper meaning.
Spice has no concept of component symbols: they are a construct of the schematic editor.
When a spice netlist is generated, the symbol in the schematic editor is either - in the case of model defined devices such as resistors, capacitors, inductors, diodes, transistors and sources - mapped directly to the relevant models (defined by the device prefix such as R, C, L, D, Q and so on), or in the case of a subcircuit, converted into a subcircuit call statement.
The spice pin ordering for the majority of built-in models such as resistors, capacitors, inductors, diodes, transistors and sources are defined and generally taken care of by the schematic editor, more care has to be taken with the spice pin ordering of subcircuits.
This can be illustrated by a simple opamp with 5 pins: inverting and non-inverting inputs; output and positive and negative supply pins but the principle applies to all spice subcircuits.
The subcircuit call for this opamp might look like this in the spice netlist:
X1 input feedback vpos vneg output opamp_ANF01
where:
X1 is the name of the subcircuit in the top level (i.e. the calling) circuit;
input feedback vpos vneg output are the netnames in the circuit calling (i.e. containing) the subcircuit and
opamp_ANF01 is the name of the subcircuit being called.
Pay special attention to the order of the netnames in the subcircuit call.
The spice pin ordering for the majority of opamp subcircuits is like that shown
in the example below:
*-------------------------------------------------------------------
*
* opamp_ANF01
*
* Simplified behavioural opamp
*
* Node assignments
* noninverting input
* | inverting input
* | | positive supply
* | | | negative supply
* | | | | output
* | | | | |
* spice pin order: 1 2 3 4 5
* | | | | |
.subckt opamp_ANF01 inp inn vcc vee out ; these are the netnames
* used internally to the
* subcircuit.
B1 out 0
+ V=(TANH((V(inp)-V(inn))*{Avol}*2/(V(vcc)-V(vee)))*(V(vcc)-V(vee))
+ +(V(vcc)+V(vee)))/2
*
.ends opamp_ANF01
*
Note that the spice pin order of the subcircuit call is in exactly the same order as that of the subcircuit.
Although the physical pin numbering of any device is critical for successfully mapping the pins on a schematic symbol onto a physical package footprint when laying out the PCB, because spice only knows about single devices and does not care about how they are physically packaged, each instance of any device in a spice schematic has to be mapped onto its own copy of the spice model or subcircuit, irrespective of where it is in any physical package.
Therefore, for the physical, package pin numbering of the four opamps in a quad opamp in say, a SOIC14 or a DIP14 package, as shown below, to work with the example subcircuit above, the spice pin ordering would be:
Opamp A pin number spice pin order
OUT 1 5
IN- 2 2
IN+ 3 1
V+ 4 3
V- 11 4
Opamp B pin number spice pin order
OUT 7 5
IN- 6 2
IN+ 5 1
V+ 4 3
V- 11 4
Opamp C pin number spice pin order
OUT 8 5
IN- 9 2
IN+ 10 1
V+ 4 3
V- 11 4
Opamp D pin number spice pin order
OUT 14 5
IN- 13 2
IN+ 12 1
V+ 4 3
V- 11 4
The physical package pin numbering reflects that of each opamp in the package.
The spice pin ordering is the same for each instance of the individual opamps.
Of course there is only one physical instance of each supply pin on the schematic symbol for the quad opamp in this example but each spice subcircuit must have the supply pins explicitly defined.
Exactly how this is handled is at the schematic symbol level depends on how the schematic capture package handles symbols for multiple devices with shared supply pins but the generation of a spice netlist from the schematic will always generate the complete set of pins required in the subcircuit calls.
In cases where the subcircuit is built by the user as opposed to where it is supplied by a vendor for a particular device, exactly the same rules apply except that it is up to the user to specify the subcircuit pin order and to construct the symbol appropriately.
Although as described earlier, built in spice models usually have defined spice pin orders, not all subcircuits have the same spice pin numbering. Therefore if your spice circuit throws errors - especially if there are warnings about pin numbers or pin names - it is worth remembering to check that the pin order of the symbol that is netlisted to form the calling statement matches that of the subcircuit that is being called!
[8] In Debian based distributions gerbv is listed under Electronics in the package management system. The version in the repositories may be an earlier version but some users may find it easier to install than the sourceforge archive.
[9] As is the opamp_ANF01 example above


(2014-12-04 04:05:19 UTC)
ruby lint.rb stable ../stable/packages/coq:math-comp/coq:math-comp.1.5.0
The package is valid.
Dry install with the current Coq version:
opam install -y --dry-run coq:math-comp.1.5.0 coq.8.4.5
[NOTE] Package coq is already installed (current version is 8.4.5). The following actions will be performed: - install coq:ssreflect.1.5.0 [required by coq:math-comp] - install coq:math-comp.1.5.0 === 2 to install === =-=- Synchronizing package archives -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =-=- Installing packages =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Building coq:ssreflect.1.5.0: make -j4 make install Installing coq:ssreflect.1.5.0. Building coq:math-comp.1.5.0: make -j4 make install Installing coq:math-comp.1.5.0.
Dry install without Coq, to test if the problem was incompatibility with the current Coq version:
true
opam install -y --deps-only coq:math-comp.1.5.0
The following actions will be performed: - install coq:ssreflect.1.5.0 [required by coq:math-comp] === 1 to install === =-=- Synchronizing package archives -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [coq:ssreflect.1.5.0] Downloading http://ssr.msr-inria.inria.fr/FTP/ssreflect-1.5.tar.gz =-=- Installing packages =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Building coq:ssreflect.1.5.0: make -j4 make install Installing coq:ssreflect.1.5.0.
opam install -y --verbose coq:math-comp.1.5.0
The following actions will be performed: - install coq:math-comp.1.5.0 === 1 to install === =-=- Synchronizing package archives -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [coq:math-comp.1.5.0] Downloading http://ssr.msr-inria.inria.fr/FTP/mathcomp-1.5.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 1019k 100 1019k 0 0 16.7M 0 --:--:-- --:--:-- --:--:-- 16.8M 200 =-=- Installing packages =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Building coq:math-comp.1.5.0: make -j4 make install coq_makefile -f Make > Makefile.coq mkdir -p bin make -f Makefile.coq all make[1]: Entering directory `/home/bench/.opam/system/build/coq:math-comp.1.5.0' "coqdep" -c -slash -R theories MathComp "theories/abelian.v" > "theories/abelian.v.d" || ( RV=$?; rm -f "theories/abelian.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/action.v" > "theories/action.v.d" || ( RV=$?; rm -f "theories/action.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/algC.v" > "theories/algC.v.d" || ( RV=$?; rm -f "theories/algC.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/algebraics_fundamentals.v" > "theories/algebraics_fundamentals.v.d" || ( RV=$?; rm -f "theories/algebraics_fundamentals.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/algnum.v" > "theories/algnum.v.d" || ( RV=$?; rm -f "theories/algnum.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/alt.v" > "theories/alt.v.d" || ( RV=$?; rm -f "theories/alt.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/automorphism.v" > "theories/automorphism.v.d" || ( RV=$?; rm -f "theories/automorphism.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/bigop.v" > "theories/bigop.v.d" || ( RV=$?; rm -f "theories/bigop.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/binomial.v" > "theories/binomial.v.d" || ( RV=$?; rm -f "theories/binomial.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/center.v" > "theories/center.v.d" || ( RV=$?; rm -f "theories/center.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/character.v" > "theories/character.v.d" || ( RV=$?; rm -f "theories/character.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/classfun.v" > "theories/classfun.v.d" || ( RV=$?; rm -f "theories/classfun.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/closed_field.v" > "theories/closed_field.v.d" || ( RV=$?; rm -f "theories/closed_field.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/commutator.v" > "theories/commutator.v.d" || ( RV=$?; rm -f "theories/commutator.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/countalg.v" > "theories/countalg.v.d" || ( RV=$?; rm -f "theories/countalg.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/cyclic.v" > "theories/cyclic.v.d" || ( RV=$?; rm -f "theories/cyclic.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/cyclotomic.v" > "theories/cyclotomic.v.d" || ( RV=$?; rm -f "theories/cyclotomic.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/div.v" > "theories/div.v.d" || ( RV=$?; rm -f "theories/div.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/extraspecial.v" > "theories/extraspecial.v.d" || ( RV=$?; rm -f "theories/extraspecial.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/extremal.v" > "theories/extremal.v.d" || ( RV=$?; rm -f "theories/extremal.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/falgebra.v" > "theories/falgebra.v.d" || ( RV=$?; rm -f "theories/falgebra.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/fieldext.v" > "theories/fieldext.v.d" || ( RV=$?; rm -f "theories/fieldext.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/finalg.v" > "theories/finalg.v.d" || ( RV=$?; rm -f "theories/finalg.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/finfun.v" > "theories/finfun.v.d" || ( RV=$?; rm -f "theories/finfun.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/fingraph.v" > "theories/fingraph.v.d" || ( RV=$?; rm -f "theories/fingraph.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/fingroup.v" > "theories/fingroup.v.d" || ( RV=$?; rm -f "theories/fingroup.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/finmodule.v" > "theories/finmodule.v.d" || ( RV=$?; rm -f "theories/finmodule.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/finset.v" > "theories/finset.v.d" || ( RV=$?; rm -f "theories/finset.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/frobenius.v" > "theories/frobenius.v.d" || ( RV=$?; rm -f "theories/frobenius.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/galois.v" > "theories/galois.v.d" || ( RV=$?; rm -f "theories/galois.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/generic_quotient.v" > "theories/generic_quotient.v.d" || ( RV=$?; rm -f "theories/generic_quotient.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/gfunctor.v" > "theories/gfunctor.v.d" || ( RV=$?; rm -f "theories/gfunctor.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/gproduct.v" > "theories/gproduct.v.d" || ( RV=$?; rm -f "theories/gproduct.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/gseries.v" > "theories/gseries.v.d" || ( RV=$?; rm -f "theories/gseries.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/hall.v" > "theories/hall.v.d" || ( RV=$?; rm -f "theories/hall.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/inertia.v" > "theories/inertia.v.d" || ( RV=$?; rm -f "theories/inertia.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/intdiv.v" > "theories/intdiv.v.d" || ( RV=$?; rm -f "theories/intdiv.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/integral_char.v" > "theories/integral_char.v.d" || ( RV=$?; rm -f "theories/integral_char.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/interval.v" > "theories/interval.v.d" || ( RV=$?; rm -f "theories/interval.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/jordanholder.v" > "theories/jordanholder.v.d" || ( RV=$?; rm -f "theories/jordanholder.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/matrix.v" > "theories/matrix.v.d" || ( RV=$?; rm -f "theories/matrix.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/maximal.v" > "theories/maximal.v.d" || ( RV=$?; rm -f "theories/maximal.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/morphism.v" > "theories/morphism.v.d" || ( RV=$?; rm -f "theories/morphism.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/mxabelem.v" > "theories/mxabelem.v.d" || ( RV=$?; rm -f "theories/mxabelem.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/mxalgebra.v" > "theories/mxalgebra.v.d" || ( RV=$?; rm -f "theories/mxalgebra.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/mxpoly.v" > "theories/mxpoly.v.d" || ( RV=$?; rm -f "theories/mxpoly.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/mxrepresentation.v" > "theories/mxrepresentation.v.d" || ( RV=$?; rm -f "theories/mxrepresentation.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/nilpotent.v" > "theories/nilpotent.v.d" || ( RV=$?; rm -f "theories/nilpotent.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/path.v" > "theories/path.v.d" || ( RV=$?; rm -f "theories/path.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/perm.v" > "theories/perm.v.d" || ( RV=$?; rm -f "theories/perm.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/pgroup.v" > "theories/pgroup.v.d" || ( RV=$?; rm -f "theories/pgroup.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/polydiv.v" > "theories/polydiv.v.d" || ( RV=$?; rm -f "theories/polydiv.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/poly.v" > "theories/poly.v.d" || ( RV=$?; rm -f "theories/poly.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/polyXY.v" > "theories/polyXY.v.d" || ( RV=$?; rm -f "theories/polyXY.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/presentation.v" > "theories/presentation.v.d" || ( RV=$?; rm -f "theories/presentation.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/prime.v" > "theories/prime.v.d" || ( RV=$?; rm -f "theories/prime.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/primitive_action.v" > "theories/primitive_action.v.d" || ( RV=$?; rm -f "theories/primitive_action.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/quotient.v" > "theories/quotient.v.d" || ( RV=$?; rm -f "theories/quotient.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/rat.v" > "theories/rat.v.d" || ( RV=$?; rm -f "theories/rat.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/ring_quotient.v" > "theories/ring_quotient.v.d" || ( RV=$?; rm -f "theories/ring_quotient.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/separable.v" > "theories/separable.v.d" || ( RV=$?; rm -f "theories/separable.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/ssralg.v" > "theories/ssralg.v.d" || ( RV=$?; rm -f "theories/ssralg.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/ssrint.v" > "theories/ssrint.v.d" || ( RV=$?; rm -f "theories/ssrint.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/ssrnum.v" > "theories/ssrnum.v.d" || ( RV=$?; rm -f "theories/ssrnum.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/sylow.v" > "theories/sylow.v.d" || ( RV=$?; rm -f "theories/sylow.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/tuple.v" > "theories/tuple.v.d" || ( RV=$?; rm -f "theories/tuple.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/vcharacter.v" > "theories/vcharacter.v.d" || ( RV=$?; rm -f "theories/vcharacter.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/vector.v" > "theories/vector.v.d" || ( RV=$?; rm -f "theories/vector.v.d"; exit ${RV} ) "coqdep" -c -slash -R theories MathComp "theories/zmodp.v" > "theories/zmodp.v.d" || ( RV=$?; rm -f "theories/zmodp.v.d"; exit ${RV} ) make[1]: Leaving directory `/home/bench/.opam/system/build/coq:math-comp.1.5.0' make[1]: Entering directory `/home/bench/.opam/system/build/coq:math-comp.1.5.0' "coqc" -q -R theories MathComp theories/div "coqc" -q -R theories MathComp theories/path "coqc" -q -R theories MathComp theories/tuple "coqc" -q -R theories MathComp theories/generic_quotient "coqc" -q -R theories MathComp theories/finfun "coqc" -q -R theories MathComp theories/fingraph "coqc" -q -R theories MathComp theories/bigop "coqc" -q -R theories MathComp theories/finset "coqc" -q -R theories MathComp theories/prime "coqc" -q -R theories MathComp theories/fingroup "coqc" -q -R theories MathComp theories/binomial "coqc" -q -R theories MathComp theories/ssralg "coqc" -q -R theories MathComp theories/morphism "coqc" -q -R theories MathComp theories/perm "coqc" -q -R theories MathComp theories/poly "coqc" -q -R theories MathComp theories/ring_quotient "coqc" -q -R theories MathComp theories/automorphism "coqc" -q -R theories MathComp theories/presentation "coqc" -q -R theories MathComp theories/quotient "coqc" -q -R theories MathComp theories/polydiv "coqc" -q -R theories MathComp theories/action "coqc" -q -R theories MathComp theories/finalg "coqc" -q -R theories MathComp theories/gproduct "coqc" -q -R theories MathComp theories/zmodp "coqc" -q -R theories MathComp theories/matrix "coqc" -q -R theories MathComp theories/ssrnum "coqc" -q -R theories MathComp theories/closed_field "coqc" -q -R theories MathComp theories/ssrint "coqc" -q -R theories MathComp theories/mxalgebra "coqc" -q -R theories MathComp theories/gfunctor "coqc" -q -R theories MathComp theories/cyclic "coqc" -q -R theories MathComp theories/commutator "coqc" -q -R theories MathComp theories/rat "coqc" -q -R theories MathComp theories/interval Warning: Not interpreting "*)" as the end of current non-terminated comment because it occurs in a non-terminated string of the comment. "coqc" -q -R theories MathComp theories/center "coqc" -q -R theories MathComp theories/pgroup "coqc" -q -R theories MathComp theories/finmodule "coqc" -q -R theories MathComp theories/vector "coqc" -q -R theories MathComp theories/mxpoly "coqc" -q -R theories MathComp theories/gseries "coqc" -q -R theories MathComp theories/polyXY "coqc" -q -R theories MathComp theories/mxrepresentation "coqc" -q -R theories MathComp theories/nilpotent "coqc" -q -R theories MathComp theories/primitive_action "coqc" -q -R theories MathComp theories/jordanholder "coqc" -q -R theories MathComp theories/sylow "coqc" -q -R theories MathComp theories/intdiv "coqc" -q -R theories MathComp theories/countalg "coqc" -q -R theories MathComp theories/falgebra "coqc" -q -R theories MathComp theories/alt "coqc" -q -R theories MathComp theories/abelian "coqc" -q -R theories MathComp theories/maximal "coqc" -q -R theories MathComp theories/hall "coqc" -q -R theories MathComp theories/extremal "coqc" -q -R theories MathComp theories/fieldext "coqc" -q -R theories MathComp theories/frobenius "coqc" -q -R theories MathComp theories/extraspecial "coqc" -q -R theories MathComp theories/separable "coqc" -q -R theories MathComp theories/mxabelem Warning: Nothing to inject.
Total: 53,300 K
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/fieldext.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/mxrepresentation.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/extremal.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/character.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/mxalgebra.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/galois.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/ssralg.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/classfun.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/matrix.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/action.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/gproduct.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/polydiv.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/vector.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/inertia.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/abelian.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/poly.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/maximal.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/fingroup.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/ssrnum.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/algC.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/morphism.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/mxabelem.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/separable.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/vcharacter.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/finset.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/algebraics_fundamentals.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/falgebra.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/mxpoly.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/integral_char.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/algnum.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/center.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/extraspecial.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/ssrint.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/intdiv.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/hall.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/quotient.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/bigop.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/prime.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/pgroup.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/frobenius.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/countalg.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/finmodule.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/cyclic.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/ring_quotient.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/rat.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/finalg.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/sylow.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/closed_field.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/alt.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/nilpotent.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/jordanholder.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/path.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/automorphism.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/gseries.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/perm.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/polyXY.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/fingraph.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/binomial.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/div.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/primitive_action.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/interval.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/generic_quotient.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/commutator.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/cyclotomic.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/tuple.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/finfun.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/gfunctor.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/zmodp.vo
/home/bench/.opam/system/lib/coq/user-contrib/MathComp/presentation.vo
/home/bench/.opam/system/lib/coq:math-comp/opam.config
/home/bench/.opam/system/install/coq:math-comp.install
opam remove -y coq:math-comp.1.5.0
The following actions will be performed: - remove coq:math-comp.1.5.0 === 1 to remove === =-=- Synchronizing package archives -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [coq:math-comp.1.5.0] mathcomp-1.5.tar.gz is in the local cache, using it. =-=- Removing Packages =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Removing coq:math-comp.1.5.0. rm -R /home/bench/.opam/system/lib/coq/user-contrib/MathComp


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.swing.text.GlyphView.GlyphPainter
public abstract static class GlyphView.GlyphPainter
A class to perform rendering of the glyphs. This can be implemented to be stateless, or to hold some information as a cache to facilitate faster rendering and model/view translation. At a minimum, the GlyphPainter allows a View implementation to perform its duties independant of a particular version of JVM and selection of capabilities (i.e. shaping for i18n, etc).
| Constructor Summary | |
|---|---|
GlyphView.GlyphPainter()
|
| Method Summary | |
|---|---|
abstract float |
getAscent(GlyphView v)
|
abstract int |
getBoundedPosition(GlyphView v,
int p0,
float x,
float len)
Determines the model location that represents the maximum advance that fits within the given span. |
abstract float |
getDescent(GlyphView v)
|
abstract float |
getHeight(GlyphView v)
|
int |
getNextVisualPositionFrom(GlyphView v,
int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
Provides a way to determine the next visually represented model location that one might place a caret. |
GlyphView.GlyphPainter |
getPainter(GlyphView v,
int p0,
int p1)
Create a painter to use for the given GlyphView. |
abstract float |
getSpan(GlyphView v,
int p0,
int p1,
TabExpander e,
float x)
Determine the span the glyphs given a start location (for tab expansion). |
abstract Shape |
modelToView(GlyphView v,
int pos,
Position.Bias bias,
Shape a)
Provides a mapping from the document model coordinate space to the coordinate space of the view mapped to it. |
abstract void |
paint(GlyphView v,
Graphics g,
Shape a,
int p0,
int p1)
Paint the glyphs representing the given range. |
abstract int |
viewToModel(GlyphView v,
float x,
float y,
Shape a,
Position.Bias[] biasReturn)
Provides a mapping from the view coordinate space to the logical coordinate space of the model. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public GlyphView.GlyphPainter()
| Method Detail |
|---|
public abstract float getSpan(GlyphView v, int p0, int p1, TabExpander e, float x)
public abstract float getHeight(GlyphView v)
public abstract float getAscent(GlyphView v)
public abstract float getDescent(GlyphView v)
public abstract void paint(GlyphView v, Graphics g, Shape a, int p0, int p1)
public abstract Shape modelToView(GlyphView v, int pos, Position.Bias bias, Shape a) throws BadLocationException
v
- the GlyphView
containing the
destination coordinate spacepos
- the position to convertbias
- either Position.Bias.Forward
or Position.Bias.Backward
a
- Bounds of the View
BadLocationException
- if the given position does not represent a
valid location in the associated documentView.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
public abstract int viewToModel(GlyphView v, float x, float y, Shape a, Position.Bias[] biasReturn)
v
- the GlyphView
to provide a mapping forx
- the X coordinatey
- the Y coordinatea
- the allocated region to render intobiasReturn
- either Position.Bias.Forward
or Position.Bias.Backward
is returned as the zero-th element of this array
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public abstract int getBoundedPosition(GlyphView v, int p0, float x, float len)
v
- the view to find the model location to break at.p0
- the location in the model where the
fragment should start it's representation >= 0.x
- the graphic location along the axis that the
broken view would occupy >= 0. This may be useful for
things like tab calculations.len
- specifies the distance into the view
where a potential break is desired >= 0.
View.breakView(int, int, float, float)
public GlyphView.GlyphPainter getPainter(GlyphView v, int p0, int p1)
v
- the GlyphView
to provide a painter forp0
- the starting document offset >= 0p1
- the ending document offset >= p0public int getNextVisualPositionFrom(GlyphView v, int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
v
- the view to usepos
- the position to convert >= 0b
- either Position.Bias.Forward
or Position.Bias.Backward
a
- the allocated region to render intodirection
- the direction from the current position that can
be thought of as the arrow keys typically found on a keyboard.
This may be SwingConstants.WEST, SwingConstants.EAST,
SwingConstants.NORTH, or SwingConstants.SOUTH.biasRet
- either Position.Bias.Forward
or Position.Bias.Backward
is returned as the zero-th element of this array
BadLocationException
IllegalArgumentException
- for an invalid direction
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


In our first class, we started by briefly discussing what the Internet is. We talked about different types of websites, both static and dynamic and the differences between the two.
We then moved on to learning about HTML, a coding language which creates and describes the basic structure and content on a web page.
In HTML, you use brackets and tags to tell the computer how to perform certain functions. Tags have both an opening and closing bracket, with the content between the two.
For example, the command < p1 > creates a new paragraph of text, as shown below, with both a opening and closing tag, and the message you would like to write in the middle.
HTML Basics
All HTML files must start with the tag < !DOCTYPE html > to let the computer know which language you are using in your file.
Next, place a < html > tag in which all of your content will be enclosed. But from that point you can start adding content in your HTML file.
HTML documents have a head and a body, each categorized by a < head > and a < body > tag respectively. Within the head of an HTML doc, place titles and formatting tags to help structure your website.
The main content of the website, what you want viewers to see, should be placed in the body. This can include things such as images, text, headings, and links.
Cover Image from Unsplash Images


--- layout: post title: spotify infographic date: '2013-02-16T17:58:52+01:00' tags: - spotify - infographic tumblr_url: http://blog.alezzandro.com/post/43234930310/spotify-infographic ---
Spotify Infographic


No user interface should be looking at this window. It is an internal postMessage-to-WebSocket forwarder for the Pledger wallet in this ag-solo instance.