Well, being bored and weedless one evening I discovered that I could get high of Gravol. Not only get high, but actually hallucinate! After reading a few reports on I came to the conclusion it was very similar to Datura, except it didn't last nearly as long. This sort of scared me, because I've always considered that to be the only drug I may not be able to handle. I know that's ignorant to say, and I'll probably pay for it one day, but oh well, that's the way I see it. Note that all hallucinations in this first trip were in very dark settings. Most of which were in a room with light only entering from streetlights shining through a window.
Anyhow, after carefully considering it for a few days I decided 'What the hell!' and dropped 800 mgs. I had a shower, and after some more thought I decided to drop another 100 mgs just in case. This was about 15 minutes after the first dose. I concluded that would be more than enough to do the trick, and went to my room to watch tv.
After about an hour I got rather tired. I'm not sure if this was because of the pills, or because I was sitting in my bed doing nothing entertaining, but either way it hit me hard. I decided to get up, because I didn't want to fall asleep before the trip started. I was rather entertained by the fact that getting out of bed proved to be difficult. I was clearly a bit intoxicated, and it reminded me of a similar occurance when I had dropped a shitload of temazepam. I guess to someone who hasn't done that, it could be compared to being really drunk. It's like the uncoordination of having a few too many, without the visual distortion.
After trying to keep myself awake for another hour and a half, I noticed that my condition wasn't changing, if anything my coordination had improved. So I decided that I probably hadn't dosed enough and went to bed. This was approx. 2.5 hours after injestion.
'Not right now, I'll sell you them later!' was the first thing I heared upon waking up. The person who said it clearly sounded frustrated and annoyed. Quickly I realized it was me, and noticed someone from my school (not really a friend, I guess an aquantince) was standing beside my bed. Quickly I realized that there was no was this could be possible, as it was the middle of the night. The instant I concluded this, he disappeared.
I knew right then and there the effects had hit me hard. Luckily my head seemed to be in the same place. With pretty much every drug I've done, the way I think had changed in some way or another, which is what I found interesting about dimenhydrinate. The trip seemed purely physical, any changes in my mindset were due to the things I was interacting with. In other reports I had read, users noted it felt like being in a dream. Possibly because I was aware of this and kept telling myself to 'stay alert and stay focused' I kept my mind in the right place, maybe it was the doseage, I'm not sure.
Either way, I knew I was headfirst in the trip. I decided to look at my clock to note when I first noticed the effects, with the idea that I might submit a report. My room was dark, and my light had broken earlier that day, so I could only see a small outline of my nighttable and alarm clock in the darkness. After reaching where I saw the clock, my hand went right through it and hit my wall rather hard. This scared me because my parents were in the room next to me, and I had to be very careful not to wake them up.  After a few minutes I finally found it and pressed the glow light.
To my dismay, all the numbers were scrambled. Well, they weren't even numbers, just those lines the numbers in digital clocks are made of. They would jump all over the place and make weird symbols and shapes. Normally I would enjoy this and trip to this and enjoy it for a while, but in this case it just pissed me off.
I then realized I had to go to the bathroom REALLY bad, so I turned to the other side of my bed and sat up. To my surprise, my dad was standing by my door with a shocked look on his face. He just stood there, looking at me in discust. I knew that it was probably just a hallucination, but I had no real way of telling, so I played along anyhow. In a really quiet voice I whispered 'What's wrong?' and he still just stood there with that same horrible look. Again I said 'What? I'm just tired.'  I don't remember exactly what happened after that, but my next memory was standing by my door trying to get back into my room. I know I must have gone to the bathroom, I just don't remember it. I'm assuming my confrontation with my dad was a hallucination, as there was no talk of it the next day.
My ability to judge distance between myself and other objects was horribly distorted. As I tried to get back in my room, I slammed my hand into the door multiple times because I thought it was further than it was, and it took me forever to find my doorknob in the darkness. Once I finally got back into bed, I noticed a lighter was on the covers in front of me. I reached for it, but again my perception of distance was distorted and my hand landed a good few inches away from it. I sat up in my bed and reached a little further, and still it wasn't far enough. Soon I was on my hands and knees reaching for it, and it kept getting further and further away. Eventually it was at the very edge of my bed, and finally I got my hand on top of it, but strangely I didn't feel it. I lifted my hand up and it was gone.
This was the first hallucination that I had automatically assumed was real. When I found out I was wrong and had just spent a few minutes trying to pick something up that wasn't there, I got extremely annoyed. It was actually rather embarassing, even though I was the only one there, I felt ashamed that I fell for it, after prepping myself so much ahead of time. Again my memory is a bit hazy, but I do know I spent some more time clearing things off my bed, falling for it every time. Every time I thought 'Okay, that last thing wasn't real but I'm SURE this thing is.'  That's about the only way I can put it. Eventually I'd had enough and just went to bed.
The next day I didn't feel too great, a bit hungover I guess. I still felt a bit 'weird' and often when entering a room, I felt the presence of other people there. At one point I was watching TV and actually thought my mom was in another chair in the room. I looked over to say something to her and felt really stupid when no one was there. So I guess in a sense it was similar to the hallucination of seeing people without the actual visual aspect.
After a few days of recovery, I decided to jump right at it and try again. I was amazed by the power of a completely legal pill which I had never even heard of as a hallucinogen before. What is interesting is that this was a completely different trip, and a friend was present (he didn't dose) so I figured I'll include this trip in the report as well.
Again I decided to go with 900 mg's. It wasn't too intense, but good enough to hallucinate, and I wanted to be coherent enough to be social with my friend. I'm trying to figure out what made this trip so different. I'm guessing it was because the first time I had dosed with 100 mg pills, and this time the majority of them were 50 mg's. The effects the second time started much faster, so maybe with smaller pills it kicks in quicker.
Either way, 45 minutes after dropping I said two words to my friend that said it all; 'I'm fucked'. This time, my mindset definitely changed, as opposed to the first time. The best way I can describe it was I felt very alone and lonely, even in the presence of a friend. My stomach was also hurting pretty bad. We were watching a movie, but I found I couldn't really focus on it. My vision was also getting distorted, I can compare it to the day after a roll after staying up all night. Objects were 'twitching' and there were little 'strings' everywhere, as if they were actually on my eyeball. They had a delayed movement if I moved my eyes. If I were to move them to the left, about half a second later these strings would follow, it was weird.
It was around this time I started to get scared. I looked at how much I tripped when it took over 2 and a half hours to kick in, now it's been just 45 minutes and I'm already feeling it strong. I decided to go to the bathroom, and already my coordination was off. Walking there and back proved to be quite a challenge. Half an hour later I was in the same state, but my friend really wanted to smoke weed. I decided 'What the hell', so we blazed a bowl or two.
This surprisingly didn't even seem to effect me, except I got extremely tired within minutes. We went back and continued watching the movie, when I saw my one of my sisters come into the room.  My friend just looked at me and said 'What the hell are you talking about?' I knew what was going on immediately, I didn't even have to look back to see that my sister wasn't there.
I decided right then and there it was time for me to go to bed.  The next day he was kinda pissed, but I had just thought he was a hallucination and didn't want to be bothered.
It's an interesting experience and I don't regret it, but it's by no means 'fun'.
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.


In the first section of this introduction to restez
we will explain how to download parts of GenBank on to your computer and from these downloads, construct a local database. GenBank can be downloaded from NCBI using the File Transfer Protocol (FTP), the online portal for these downloads can be viewed from your web browser, FTP NCBI GenBank. GenBank is hosted at this portal as 1000s of compressed sequence files called flatfiles. New versions of these flatfiles are released once a month as new sequence information is uploaded. For information on the latest GenBank release, see the NCBI statistics page.
restez
downloads a selection of these flatfiles and unpacks them into an SQL-like database (specifically, MonetDB) that can be queried using restez
’s functions. Because there are potentially huge amounts of sequence information, all of which is unlikely to be of interest to a user, restez
allows you to select the sets of flatfiles to download based on GenBank’s domains. For the most part these sets of flatfile types are determined by taxonomy, for example, a user can download all primate or plant sequences.
Here, we will explain how to set up restez
, download genbank and then create a database from the downloaded files.
Before we can download anything, we need to tell restez
where we would like to store the downloaded files and the eventual GenBank database. To do this we use the restez_path_set
function. With this function a user can provide a system file path to a folder within which the function will create a new folder called ‘restez’. In this example, we will create a restez
folder in a temporary folder.
library(restez)
#> -------------
#> restez v1.0.0
#> -------------
#> Remember to restez_path_set() and, then, restez_connect()
# rstz_pth <- tempdir()
restez_path_set(filepath = rstz_pth)
#> ... Creating '/var/folders/ps/g89999v12490dmp0jnsfmykm0043m3/T//RtmpPSdaDl/restez'
#> ... Creating '/var/folders/ps/g89999v12490dmp0jnsfmykm0043m3/T//RtmpPSdaDl/restez/downloads'
A user must always set the restez
path in order to use the restez
library and we are reminded to do this whenever we load the package. (We are also reminded to run restez_connect
but we’ll come to that a bit later.) Additionally, by running restez_path_set
on a new folder messages are printed to console telling us that the path was created and that a downloads subfolder was created.
Note, whenever you intend to use
restez
you will need to specify therestez
path. If you are using it regularly, it might be a good idea to set it using your .Rprofile.
Now we can download GenBank files using db_download()
. This is an interactive function, it looks up the latest GenBank release, parses the release notes and prints to console the available sets of flatfiles that can be downloaded. For this example, we will select the smallest available domain which is ‘Unannotated’ and can be pre-specified with ‘20’. Normally, you would run this function without the preselection
argument and just wait for the function to prompt you for a domain selection.
After launching, the download function will ask you whether it is OK to download and set up a database for the selected sequence files. If the selection is likely to be large you can always quit the process using either Esc
or Ctrl+c
. Please note that the diskspace estimates are preliminary. The package trys to be conservative in its estimates.
db_download(preselection = '20')
#> ───────────────────────────────────────────────────────────────────────────────────────────────
#> Looking up latest GenBank release ...
#> ... release number 228
#> [1] ""
#> ... found 3232 sequence files
#> ───────────────────────────────────────────────────────────────────────────────────────────────
#> Which sequence file types would you like to download?
#> Choose from those listed below:
#> ● 1 - 'Bacterial'
#> 542 files and 123 GB
#> ● 2 - 'EST (expressed sequence tag)'
#> 486 files and 243 GB
#> ● 3 - 'Constructed'
#> 372 files and 84.6 GB
#> ● 4 - 'Patent'
#> 340 files and 77.9 GB
#> ● 5 - 'GSS (genome survey sequence)'
#> 308 files and 117 GB
#> ● 6 - 'TSA (transcriptome shotgun assembly)'
#> 234 files and 53.9 GB
#> ● 7 - 'Plant sequence entries (including fungi and algae)'
#> 232 files and 62.8 GB
#> ● 8 - 'HTGS (high throughput genomic sequencing)'
#> 155 files and 36.7 GB
#> ● 9 - 'Invertebrate'
#> 112 files and 24.8 GB
#> ● 10 - 'Environmental sampling'
#> 103 files and 24.1 GB
#> ● 11 - 'Other vertebrate'
#> 94 files and 19.4 GB
#> ● 12 - 'Primate'
#> 59 files and 13.7 GB
#> ● 13 - 'Viral'
#> 58 files and 13.1 GB
#> ● 14 - 'Other mammalian'
#> 55 files and 9.44 GB
#> ● 15 - 'Rodent'
#> 31 files and 7.32 GB
#> ● 16 - 'STS (sequence tagged site)'
#> 20 files and 4.45 GB
#> ● 17 - 'HTC (high throughput cDNA sequencing)'
#> 15 files and 3.43 GB
#> ● 18 - 'Synthetic and chimeric'
#> 10 files and 2.42 GB
#> ● 19 - 'Phage'
#> 5 files and 1.12 GB
#> ● 20 - 'Unannotated'
#> 1 files and 0.00111 GB
#> Provide one or more numbers separated by spaces.
#> e.g. to download all Mammalian sequences, type: "12 14 15" followed by Enter
#>
#> Which files would you like to download?
#> ───────────────────────────────────────────────────────────────────────────────────────────────
#> You've selected a total of 1 file(s) and 0.00111 GB of uncompressed data.
#> These represent:
#> ● 'Unannotated'
#>
#> Based on stated GenBank files sizes, we estimate ...
#> ... 0.000222 GB for compressed, downloaded files
#> ... 0.00135 GB for the SQL database
#> Leading to a total of 0.00158 GB
#>
#> Please note, the real sizes of the database and its downloads cannot be
#> accurately predicted beforehand.
#> These are just estimates, actual sizes may differ by up to a factor of two.
#>
#> Is this OK?
#> ───────────────────────────────────────────────────────────────────────────────────────────────
#> Downloading ...
#> ... 'gbuna1.seq' (1/1)
#> Done. Enjoy your day.
#> [1] TRUE
Now the download has begun, we just need to wait for it to finish. For the largest domains, this can take quite a while and may be prone to server errors. If you ever encounter a failed downloaded file it is possible to re-run the db_download
function again and – so long as the same selection is made – the function will only download the missing files.
After the download has completed, we need to use db_create()
to create our local database. This looks in the downloads folder of our restez
path, breaks these files up into separate GenBank records and adds them to the SQL-like database. Again, for very large collections of sequences this can take quite a while.
Before running the db_create
function, however, we must first establish a connection to the database in the restez
path using the restez_connect
function. As with SQL databases we must always make sure to connect and then disconnect after we have interacted with a database.
restez_connect()
#> Remember to run `restez_disconnect()`
db_create()
#> Adding 1 file(s) to the database ...
#> ... [32m'gbuna1.seq.gz'[39m([34m1 / 1[39m)
#> Done.
restez_disconnect()
db_create()
allows a user to specify minimum and maximum sequence lengths. It’s always a good idea to limit the number of sequences in a database so that look-up times are faster. If you know you are only interested in certain lengths of sequences it is a good idea to limit the sequences in the database at this stage. You can always run db_create()
again to change the limits. You will simply need to delete the original database first with db_delete
.
After the download and the database creation steps are complete, we can confirm our setup using restez_status
.
library(restez)
restez_path_set(rstz_pth)
restez_connect()
#> Remember to run `restez_disconnect()`
restez_status()
#> Checking setup status at ...
#> ───────────────────────────────────────────────────────────────────────────────────────────────
#> Restez path ...
#> ... Path '/var/folders/ps/g89999v12490dmp0jnsfmykm0043m3/T//RtmpPSdaDl/restez'
#> ... Does path exist? 'Yes'
#> ───────────────────────────────────────────────────────────────────────────────────────────────
#> Download ...
#> ... Path '/var/folders/ps/g89999v12490dmp0jnsfmykm0043m3/T//RtmpPSdaDl/restez/downloads'
#> ... Does path exist? 'Yes'
#> ... N. files 2
#> ... N. GBs 0
#> ... GenBank division selections 'Unannotated'
#> ... GenBank Release 228
#> ... Last updated '2018-11-26 22:09:08'
#> ───────────────────────────────────────────────────────────────────────────────────────────────
#> Database ...
#> ... Path '/var/folders/ps/g89999v12490dmp0jnsfmykm0043m3/T//RtmpPSdaDl/restez/sql_db'
#> ... Does path exist? 'Yes'
#> ... N. GBs 0
#> ... Is database connected? 'Yes'
#> ... Does the database have data? 'Yes'
#> ... Number of sequences 448
#> ... Min. sequence length 0
#> ... Max. sequence length Inf
#> ... Last_updated '2018-11-26 22:09:11'
restez_disconnect()
The status function allows a user to always touch base with their restez
set-up. It can be run at any point, before and/or after download or database creation. It is also designed to provide useful messages to a user for what they need to do next in order for them to make queries to their database. If you ever get confused, run restez_status
to see what is happening.
Additionally, if you are developing your own functions that depend on restez
, you can use restez_ready
which will simply return TRUE or FALSE on whether the database can be queried.
library(restez)
restez_path_set(rstz_pth)
restez_connect()
#> Remember to run `restez_disconnect()`
if (restez_ready()) {
print('Database is ready to be queried!')
} else {
print('Database cannot be queried :-(')
}
#> [1] "Database is ready to be queried!"
restez_disconnect()
Once a restez database has been set up we can query the database using the gb_*_get()
functions. These functions allow us to retrieve specific columns in the SQL-like database: ‘sequence’, ‘definition’, ‘accession’, ‘version’ and ‘organism’. Also, they allow us to get the whole text formatted record and sequence data in fasta format. In this example, we can use list_db_ids()
to identify accession numbers in the database. We could also use entrez_search()
provided the database contains sequences of interest to us, see ‘search and fetch’.
Always remember to disconnect after you have finished your querying!
library(restez)
restez_path_set(rstz_pth)
restez_connect()
#> Remember to run `restez_disconnect()`
ids <- suppressWarnings(list_db_ids(db = 'nucleotide', n = 100))
(id <- sample(ids, 1))
#> [1] "AF298084"
# sequence
str(gb_sequence_get(id))
#> Named chr "GATCCTTCCGATGTCTTCGGCCTGGAAGAGATCCGGAAGAGAACGGGGTTCATGGCCGAGCCCCTCGTGGCGCCGGGTATGCTCATCGACTGGGCTTTGGAGAAGTATTAT"| __truncated__
#> - attr(*, "names")= chr "AF298084"
# definition
(gb_definition_get(id))
#> AF298084
#> "Unidentified clone A22 DNA sequence from ocean beach sand"
# version
(gb_version_get(id))
#> AF298084
#> "AF298084.1"
# organism
(gb_organism_get(id))
#> AF298084
#> "unidentified"
# fasta
cat(gb_fasta_get(id))
#> >AF298084.1 Unidentified clone A22 DNA sequence from ocean beach sand
#> GATCCTTCCGATGTCTTCGGCCTGGAAGAGATCCGGAAGAGAACGGGGTTCATGGCCGAGCCCCTCGTGG
#> CGCCGGGTATGCTCATCGACTGGGCTTTGGAGAAGTATTATCCGGAACCGGACAACGGGAGCAGCTCGGA
#> GAACGTGGTTGCCACCGCCCCTCAGGCCTCTCCTGCCACCCAGGACCAAGCCGTCCAGGGCGGCCCCGCG
#> CCGACGGAGGTAGAGCCTCTCTCCCCTCCCGGGCAACCCGTGGAAGGAGGCGTCTTCGGAGCCGTTCCCG
#> AGATCGTGGCGCCCCAACCCCCGGGAGAGGGAGCGAGTGACATCAAGGTGGCCGATTTCGAGGACTCGGA
#> GGCTGAGATCGTGGCCGGCGCANCGCCGGCGCCCGTTCAACCTGAAGTCCCCGCGGCCACGGAGATCCCG
#> GCCTTCGAGGAGTATGACGGA
# Note, for large databases these requests can take a long time to complete.
# Always try and limit the size of the database by specifying min and max
# sequence lengths with db_create()
# Also note, if an id is not present in the database nothing is returned
cat(gb_fasta_get(id = c(id, 'notanid')))
#> >AF298084.1 Unidentified clone A22 DNA sequence from ocean beach sand
#> GATCCTTCCGATGTCTTCGGCCTGGAAGAGATCCGGAAGAGAACGGGGTTCATGGCCGAGCCCCTCGTGG
#> CGCCGGGTATGCTCATCGACTGGGCTTTGGAGAAGTATTATCCGGAACCGGACAACGGGAGCAGCTCGGA
#> GAACGTGGTTGCCACCGCCCCTCAGGCCTCTCCTGCCACCCAGGACCAAGCCGTCCAGGGCGGCCCCGCG
#> CCGACGGAGGTAGAGCCTCTCTCCCCTCCCGGGCAACCCGTGGAAGGAGGCGTCTTCGGAGCCGTTCCCG
#> AGATCGTGGCGCCCCAACCCCCGGGAGAGGGAGCGAGTGACATCAAGGTGGCCGATTTCGAGGACTCGGA
#> GGCTGAGATCGTGGCCGGCGCANCGCCGGCGCCCGTTCAACCTGAAGTCCCCGCGGCCACGGAGATCCCG
#> GCCTTCGAGGAGTATGACGGA
# Always remember to disconnect
restez_disconnect()
Additionally, for more flexibility and options for extracting sequence record information see GenBank record parsing.
Entrez wrappers are part of the restez
package. These allow a user to make use of the local GenBank using functions that were built for rentrez
. This minimises the amount of coding changes required for any Entrez dependent code.
Currently, only
entrez_fetch()
is available with restez and only text formatted rettypes are allowed.
library(restez)
restez_path_set(rstz_pth)
restez_connect()
#> Remember to run `restez_disconnect()`
ids <- suppressWarnings(list_db_ids(db = 'nucleotide', n = 100))
(id <- sample(ids, 1))
#> [1] "AF148959"
# get fasta sequences with entrez
res <- restez::entrez_fetch(db = 'nucleotide', id = id, rettype = 'fasta')
cat(res)
#> >AF148959.1 PCR artifactual sequence for diagnosis of avian malaria
#> CATGAATAAATCCTCGTATTCAGGTGAGCCTCCCTGTCCTCTCGCCTCCCCCTTTGTGTCTGTCTCTGGG
#> AAAAGAAAAAGGTTGAAAAACCCCGGAGCACGAGGTGCGCAAGCCCTCCTGGCTGCGAGCGCTCTGCGGA
#> GGAGTGAGCGGCTGGTTCGCTGTGTATAAACAAGTGGAAAAGGCTTAAAAAGCAAAGCAAACGCGGCGGG
#> GCAGCTGGTTCCAGGCAGAGCCCGGCACTGGGGGCACGGAGCTTGTTATCTGAGGGCACCTGTGCCAGCA
#> GGGGGTGAGATCCATCGCCAAGTGACAGCGTGGCATGGGAACAGGACCGTGGGGTGTGTGTCTGAGTGTG
#> ACACTGGGCTGCAGGCATTTCCAAATCCCCTAATGCCGAGGGATTCTCTTCTGCCTTCTCCTGTCTGGCT
#> TGCCAGTTTGGCCCTACCGGGTGAGGGCATTTGCCCTCTGCTCGGGCAGCTCCTCCTCCCCGGCTGGCAC
#> AGAATGTGCAGCCACCCTG
# entrez_fetch will also search via Entrez for any ids not in the db
plant_sequence <- 'AY952423'
res <- restez::entrez_fetch(db = 'nucleotide', id = c(id, plant_sequence),
rettype = 'fasta')
#> [1] id(s) are unavailable locally, searching online.
cat(res)
#> >AF148959.1 PCR artifactual sequence for diagnosis of avian malaria
#> CATGAATAAATCCTCGTATTCAGGTGAGCCTCCCTGTCCTCTCGCCTCCCCCTTTGTGTCTGTCTCTGGG
#> AAAAGAAAAAGGTTGAAAAACCCCGGAGCACGAGGTGCGCAAGCCCTCCTGGCTGCGAGCGCTCTGCGGA
#> GGAGTGAGCGGCTGGTTCGCTGTGTATAAACAAGTGGAAAAGGCTTAAAAAGCAAAGCAAACGCGGCGGG
#> GCAGCTGGTTCCAGGCAGAGCCCGGCACTGGGGGCACGGAGCTTGTTATCTGAGGGCACCTGTGCCAGCA
#> GGGGGTGAGATCCATCGCCAAGTGACAGCGTGGCATGGGAACAGGACCGTGGGGTGTGTGTCTGAGTGTG
#> ACACTGGGCTGCAGGCATTTCCAAATCCCCTAATGCCGAGGGATTCTCTTCTGCCTTCTCCTGTCTGGCT
#> TGCCAGTTTGGCCCTACCGGGTGAGGGCATTTGCCCTCTGCTCGGGCAGCTCCTCCTCCCCGGCTGGCAC
#> AGAATGTGCAGCCACCCTG
#>
#> >AY952423.1 Livistona chinensis tRNA-Lys (trnK) gene, partial sequence; and matK gene, complete sequence; chloroplast
#> ATTGGGGTTGCTAACTCAACGGTAGAGTACTCGGCTTTTAAGTGCGACTATCATCTTTTACACATTTGGA
#> TGAAGTAAGGAATTCGTCCAGACTATTGGTAGAGTCTATAAGACCACGACTGATCCTGAAAGGTAATGAA
#> TGGAAAAAATAGCATGTCGTACGTAATACAATGAGAAACTTGTAATTTCTTATTGTAATTTTTTAAGTAG
#> AACTTTGAGTTTATCCTTACTGGATCATTACAAAAATATTGTATTTTATTTTTGGAAGGGGACGAAAAAA
#> AGGAAATTCCCAACATTTATTGTTTGGTCTAATGAATAAATGGATAGGGGCCTAGGGTAGGGCCCAATTT
#> TTGTAAAACAAAAAGCAACGAGCTTATGTTCTTAATTTGAATAATTACCCGATCTAATTAGATGTTAAAA
#> ATAAATTAGTGCCAGATGTGGTAAAGGGTTCTACTGTAAGTGGACCTTTTTTTTTTTTTTTTATGAATCC
#> TACCTATTATCTATTATGGATTAAAGATGGATGTGTATAAGAAGAAGTATACTGATAAAGAGAATTTTTC
#> CAAAGTCAAAAGAGCAATCGGGTTGCAAAAATAAAGGATTTTTACCTCCGAGAATTATAAATTAATTGGA
#> TCAAAAGGAGAGGAAAAAGTCTGTGATTGGACTCCTTCTATCCGCGGGTATGGGTATATAGTAGGTATAT
#> ATGTATATTTGTATACTATATAAATTACATGCCCTGTTCTGACCGTATTGCACTATGTATTATTTGATAA
#> TCCAAGAAATGCCTCCTACTTCTGGTTCAAGTAGAAATGAAAATAGAAGAATTACAAGAATATTTAGAAA
#> AAGATAGATCTCGGCAACAACACTTCCTATACCCACTTTTCTTTCAGGAGTATATTTATGCACTTGCTCA
#> TGATTATGGGTTTAAAGGGTTCGATTTTTTACGAACCTATGGAAATTGGGGGTTATGATAATAAATCTAG
#> TTCAGTACTTGTAAAACATTTAATTACTCGAATGTATCAACAGAATTATTTGATTTATTCTGTTAATGAA
#> TCTAACCAAAATCGATTGATTGAGCATAACAATTCTTTTTATTCTCAAATGATATCTGAAGTTTTTGCGA
#> TCATTGCAGAAATTCCATTCTCTCAGCAATTACTATTTTCTCTTCGAGGAAAAAAGAATACCAAAATCTC
#> AGACTTTACGATCTATTCATTCAATATTTCCCTTTTTAGAAGACAAATTATCACATTTAAACTATGTGTC
#> AGATATATTAATACCCTATCCCATCCATTTGGAAATCTTGGTGCAAATTCTTCAATGCTGGATCCAAGAT
#> GTTTCTTCTTTGCATTTATTGCGATTCTTTCTCCACGAACATCATAATGGGAATAGTTTTTTTTTTCCAA
#> AGAAATCCTTTTCAAAAGAAAATAAAAGACTCTTTCGATTCCTATATAATTCTTATGTATCTGAATGTGA
#> ATTTGTCTTAGTGTTTCTTCGTAAACAATCCTCTTATTTACAATCAAAATCCTATGGAATCTTTCTTGAG
#> CGAACACATTTCTATGGAAGAATGGAACATCTTATAGTAGTGTGTCATAATTATTGTCAGAAGGCCTTTT
#> GGGTCTTCAAGGATCCTTTTATGCATTATGTTCGATATCAAGGAAAAGCAATTCTGGCATCAAAAGGATC
#> TTATCTTTTGATGAAGAAATGGAGATGTCATCTTGTCAATTTCTGGCAATATTATTTTCATTTTTGGGCT
#> CAGCCTTACAGAATTTCAATAAACCAATTAGGAAATCATTCCTTCTATTTTCTCGGTTATCTTTCAAGTG
#> TATTAAAAAATACTTCGTCTGTAAGGAATCAAATGCTAGAGAATTCCTTTTTAATAGATACTATTACTAA
#> TAAATTGGATACCATAGTCCCAGTTCTTCCTCTTATTGGATCTTTGTCTAAAGCTAAATTTTGTACCGTA
#> TCCGGGCATCCTAGTAGTAAGCCAATCTGGACGGATTTATCGGATTCTGATATTATTGATAGATTTGGTC
#> GGATATGTAGAAATCTTTCTCATTATTATAGTGGATCCTCAAAAAAACAGAGCTTATATCGAATAAGGTA
#> TATACTTCGACTTTCTTGTGCTAGAACTTTAGCTCGTAAACATAAAAGTACAGTACGTGCTTTTTTGCAA
#> AGATTAGGTTCGGAATTATTAGAAGAATTCTTTACAGAAGAAGAAGGAGTTGTTTTTTTGATTTCCCAAA
#> AGAACAAAACCTCTTTTCCTCTCTATAGGTCACATAGAGAACGCATTTGGTATTTGGATATTATCCATAT
#> TAATGAATTGGTGAATTCATTTATGATGGGGCGATAAGCCCCTATAAAATAAGAAATATAAATTTTTTCT
#> AATGTCTAATAAATAGACGACAAATTCATTAATTTTCATTCTGAAATGCTCATCTAGTAGTGTAGTGATT
#> GAATCAACTGAGTATTCAAAATTTTTAGACAAACTTCTAGGGATAGAAGTTTGTTTTATCTGTATACATA
#> GGTAAAGTCGTGTGCAATGAAAAATGCAAGCACGATTTGGGGAGAGATAATTTTCTCTATTGTAACAAAT
#> AAAAATTATCTACTCCATCCGACTAGTTAATCG
restez_disconnect()


7. Using Queries
7.6 SQLTemplate Query
Not all features of SQL can (or should) be mapped in the object model in terms of DataObjects. For such cases
Cayenne provides a powerful mechanism for running both selecting and non-selecting SQL using scriptable SQLTemplate query. This chapter
describes how simple SQLTemplates can be created and executed with DataContext to select or update
the database data. Subsequent chapters show how to build SQL dynamically, bind parameters and describe result sets
using SQLTemplate scripting features.
Note:
In Cayenne 1.0 executing SQL directly was done via SqlSelectQuery and SqlModifyQuery.
These classes didn't provide adequate support for building dynamic parameterized SQL, and are now deprecated
in favor of SQLTemplate.
|
7.6.1 Creating SQLTemplate
While SQLTemplates can be built using CayenneModeler [not there yet, coming soon...], creating them in
the code is just as easy as regular SelectQueries. SQLTemplate consists of root and dynamic template string.
Dynamic behavior of the template is discussed in subsequent chapters, for now it is sufficient to know that the template string
is simply a valid SQL statement in the target database SQL dialect. Note that one of the parameters in SQLTemplate constructor
is a boolean specifying whether the query is expected to return the result or not.
import org.objectstyle.cayenne.query.SQLTemplate;
...
// create selecting SQLTemplate
SQLTemplate selectQuery = new SQLTemplate(Artist.class, "select * from ARTIST", true);
...
// create updating SQLTemplate
SQLTemplate updateQuery = new SQLTemplate(Artist.class, "delete from ARTIST", false);
|
7.6.2 Selecting Objects with SQLTemplate
Selecting SQLTemplate is very similar to SelectQuery in many respects. It can be executed via DataContext.performQuery(..)
and supports the same configuration parameters, such as fetch limit, pagination, etc. It can be configured to return DataObjects (default)
or data rows.
import org.objectstyle.cayenne.query.SQLTemplate;
...
// fetch all artists, but no more than 1000 objects...
SQLTemplate rawSelect = new SQLTemplate(Artist.class, "select * from ARTIST", true);
rawSelect.setFetchLimit(1000);
List artists = dataContext.performQuery(rawSelect);
|
7.6.3 Modifying Data with SQLTemplate
Non-selecting SQLTemplate allows to execute arbitrary SQL that modifies the database, but does not return the results.
DataContext.performNonSelectingQuery(..) is used for this task.
Important!
Developers making database changes via SQLTemplate must realize that these changes
are done directly to the database, bypassing ObjectStore, and therefore may potentially leave object graph in an inconsistent state.
|
import org.objectstyle.cayenne.query.SQLTemplate;
...
// fetch all artists, but no more than 1000 objects...
SQLTemplate rawDelete = new SQLTemplate(Artist.class, "delete from ARTIST", false);
int[] deleteCounts = dataContext.performNonSelectingQuery(rawDelete);
|
7.6.4 Customizing SQL Dialects
Even though SQL is an industry standard, different DB vendors still have their own dialects and
extensions. Two versions of the same query written for Oracle and PostgreSQL may look quiet
different.
Each SQLTemplate query has a default template, usually set in constructor. Internally it also keeps a map of alternative templates.
This map normally uses a fully-qualified class name of the target DbAdapter as a key. This way Cayenne can determine which one of the
SQL strings to use during the execution. Alternative SQL strings are configured using SQLTemplate.setTemplate(...) :
// build template with default SQL
SQLTemplate query = new SQLTemplate(Artist.class, "select * from ARTIST", true);
// for Postgres it would be nice to trim the CHAR ARTIST_NAME column
// or otherwise it will be returned padded with spaces
String pgTemplate = "SELECT ARTIST_ID, RTRIM(ARTIST_NAME), DATE_OF_BIRTH FROM ARTIST";
query.setTemplate(PostgresAdapter.class.getName(), pgTemplate);
|
|


Dialog module.
MIT. See LICENSE for full details.
Pops up a dialog box for the user to select a color.
auto dialog = new ColorDialog("Select a color") .setInitialColor(Color.white) .show(); string color = dialog.getResult();
Construct the dialog.
| Window parent | The parent window of the dialog. |
| string title | The title of the dialog. |
Construct the dialog.
| string title | The title of the dialog. |
Set the initial color to display in the dialog. Use colors from the preset color list or a web style hex color.
| string color | The initial color. |
This dialog to aid method chaining.
Show the dialog.
This dialog to aid method chaining.


{%extends 'base.html'%} {% block content %} {{ block.super }}
take your time to familiarise yourselve with the neighborhoods
{{hoods.pub_date}}
location: {{hoods.location}}
habited by {{hoods.count}} families


A Diamond Crossing in railroad phrasing is where two railroad lines cross (not really at right edges, framing the state of diamonds at the intersection point. People often wonder how many diamond crossing in India and while they are rare, one of them is super popular. They are all amazingly unusual but the most renowned one is the Diamond Crossing Nagpur which is a Double Diamond Railway crossing shaped by two twofold lines crossing one another.
A number of people have been said about this specific point, as the point where lines from the North, South, East and West meet and furthermore, even as the centre point of India! It is simple for such things to flourish, particularly since the use of the Internet.
In the first place, just three remarkable rail lines meet at the diamond railway crossing Nagpur. One originates from the east, from Gondia, the Howrah – Rourkela – Raipur line. Alternate originates from the north, from New Delhi. The last one goes towards the South, carrying trains to both the west and the south. This line divides into two separate lines toward the west (Mumbai) and the South (Kazipet) just at Wardha, approximately 80 km away. Also, just a single of these lines structures some portion of the jewel crossing, the Gondia line.
The British considered Nagpur as the geographic centre point of united India and raised the zero-mile marker there, however, once India was partitioned this moved and now according to official records, the centre point of India lies in a forest somewhere close to Jabalpur. This town "Karondi" lies is closest to it.
Presently, railroad wise, the "actual" point where the North, East, South and West of India meet is at Itarsi Junction rail route station, MP. Lines from the North (towards Agra – Delhi), South (towards Nagpur), East (Jabalpur – Allahabad and after that Howrah) and West (Khandwa – Mumbai) meet at Itarsi. It is equally "focus ish" to India, so guess, that will do.(Source)


New documents show contacts between Giuliani and Pompeo
Documents released late Friday show Donald Trump’s personal lawyer Rudy Giuliani was in contact with Secretary of State Mike Pompeo in the months before the U.S. ambassador to Ukraine was abruptly recalled.
The State Department released the documents to the group American Oversight in response to a Freedom of Information Act lawsuit. They show that Pompeo talked with Giuliani on March 26 and March 29.
Austin Evers, executive director of American Oversight, said the documents reveal “a clear paper trail from Rudy Giuliani to the Oval Office to Secretary Pompeo to facilitate Giuliani’s smear campaign against a U.S. ambassador.”
Last week, former Ambassador Marie Yovanovitch told House impeachment investigators she felt “kneecapped” by a “smear campaign” Giuliani led against her. She was withdrawn from her post in Ukraine in May.
The documents released Friday also include a report, that appears with Trump hotel stationery, that appears to summarize a January 23, 2019, interview with Ukraine’s former prosecutor general, Victor Shokin. The summary says Giuliani and two business associates, Lev Parnas and Igor Fruman, were present.
Parnas and Fruman were arrested last month on a four-count indictment that includes charges of conspiracy, making false statements to the Federal Election Commission and falsification of records. The men had key roles in Giuliani’s efforts to launch a Ukrainian corruption investigation against Democratic presidential contender Joe Biden and his son Hunter.
In the document, Shokin claims he was removed from his position under pressure from Biden.
A second memo appears to be a summary of an interview with Yuri Lutsenko, also a former prosecutor general of Ukraine, conducted in the presence of Giuliani, Parnas and Fruman. Lutsenko is quoted raising questions about compensation that Hunter Biden received from the Ukrainian oil company Burisma.
Our Morning Update and Evening Update newsletters are written by Globe editors, giving you a concise summary of the day’s most important headlines. Sign up today .


How to check in New ELT Project into Git Repository
Whenever a new ELT project needs to be checked in the Git Repository, the target Git repository needs to be cloned on your machine. Refer steps 1 through 6 from this page for cloning Git Repository.
1) Right click on the ELT project in Project Explorer > Team > Share Project
2) It will take to Configure Git Repository window. Select desired Git Repository from drop-down and click Finish.
3) Go to Project Explorer, Right click on the project > Team > Commit
Note: There may be few empty folders in your ELT project. By default, those folders will not be pushed to upstream repository. If you want to keep those folders in upstream Git repository, create a .gitigonre file with following 4-line content:
# Ignore everything in this directory
*
# Except this file
!.gitignore
However, once you add something to these empty folders, you would need to remove or update the .gitignore file accordingly.
Similarly, if you want to not check in certain files/folders and also, want to avoid them showing up in commit window, create a .gitignore and list such files/folders in it. For example, a .gitignore file with below content will exclude folders bin, target and files .settings, .classpath from checking in:
/target
/bin
/.settings
/.classpath
5) Enter commit message and drag files from unstaged changes into staged changes then click Commit.
6) Go to Project Explorer, right click on the project > Team > Push to upstream
It should show following confirmation screen:


Home
|
Contact
About
Products
Support
Download
News
Partners
Product
Customer Login
Acuitas Clinical Imaging
Download Brochure
Acuitas Optical CaseStudy
Download Brochure
Acuitas Optical Retail
Download Brochure
Phone : UK - 0800 9121004 , Ireland - 1800 927191.
Designed by
fractal | ink


| Class | Rails::Generator::NamedBase |
| In: |
vendor/rails/railties/lib/rails_generator/base.rb
|
| Parent: | Base |
The base generator for named components: models, controllers, mailers, etc. The target name is taken as the first argument and inflected to singular, plural, class, file, and table forms for your convenience. The remaining arguments are aliased to actions as an array for controller and mailer convenience.
Several useful local variables and methods are populated in the initialize method. See below for a list of Attributes and External Aliases available to both the manifest and to all templates.
If no name is provided, the generator raises a usage error with content optionally read from the USAGE file in the generator‘s base path.
For example, the controller generator takes the first argument as the name of the class and subsequent arguments as the names of actions to be generated:
./script/generate controller Article index new create
See Rails::Generator::Base for a discussion of manifests, Rails::Generator::Commands::Create for methods available to the manifest, and Rails::Generator for a general discussion of generators.
| singular_name | -> | file_name |
| args | -> | actions |
| class_name | [R] | |
| class_nesting | [R] | |
| class_nesting_depth | [R] | |
| class_path | [R] | |
| file_path | [R] | |
| name | [R] | |
| plural_name | [R] | |
| singular_name | [R] | |
| table_name | [R] |
# File vendor/rails/railties/lib/rails_generator/base.rb, line 203 203: def initialize(runtime_args, runtime_options = {}) 204: super 205: 206: # Name argument is required. 207: usage if runtime_args.empty? 208: 209: @args = runtime_args.dup 210: base_name = @args.shift 211: assign_names!(base_name) 212: end


Time is Money is a sentence which has become a symbol of our capitalistic society.
This highly condensed capitalistic bible brings in its meaning that whoever owns money owns time, owns our time.
I’ll let it sink down slowly: if time is money whoever owns money owns our time.
This is extremely true from small things to big ones.
If you own money you can spend it instead of time or you can buy other’s time to do what you want (two faces of the same coin).
Now think about taxation. In every modern state a portion of what you earn (in Italy about a half of it!) must be given back to the State.
This actually means that a portion of your job time is being worked for someone which is neither you nor your customer but the State. So a portion of your time is forcefully owned by the State through taxation, that is to say through money.
This is more than true for big financial players who literally own entire communities through their “public debt”. A clear example of this ownership is what has recently happened to Italy (just to name one of the european states that are actually bankers’ driven).
Italy had a government democratically chosen (at least to the extent to which Italy is still a democracy), bad or good it was our choice (actually not mine because I choose not to vote).
It was not the right government according to Big Finance and was to be replaced.
On order was sent to sell italian debt from major banks to all their big customers, spread went madly up and main stream information told that Italy had lost the trust from markets.
The government went under (further) pressure and selected Mario Monti (trilateral, bildenberg and Goldman Sachs man) to build a technical government. In his government stands the banker Corrado Passera.
This is just and example of how money and money makers own communities and can bring to power people they like and people who will serve their interest and not those of the communities.
Mario Monti (as Mario Draghi in the BCE and Papadopulous in Greece) are there for one and only reason: to force communities to pay their states’ public debt to banks.
So now the circle comes to its end:
- our states create public debt “for our needs” borrowing money from private banks in exchange for a compound interest rate
- during time the compound interest becomes the biggest part of states’ debt so
- states put higher taxes on the people owning more and more of their time
- states …. create public debt to pay interests on their debt!
This is the usurers loop in which we are actually in.
Our freedom and our time is almost completely in the hand of money makers: private banks.
This is not good life code! Life is designed to be free and real, financial debt is enslaving and fake.
This was well known both in the Jewish and Christian worlds in both of which it was solved by debt cancellation: each seven or twenty five years.

In our terminal capitalistic society the solution is simply to destroy life and real economy (see what’s happening to Greece).
How can we refactor this code so that it can be useful to life instead of destroying it?


Use modern web platform capabilities to deliver app-like experiences. High performance, offline, and zero-step installation.
Cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications.
Hit the ground running with comprehensive, modern UI components that work across the web, mobile and desktop.
Provide component layout features using a custom Layout API, mediaQuery observables, and injected DOM flexbox-2016 CSS stylings.


All Classes
Packages
org.drip.analytics.date
org.drip.analytics.daycount
org.drip.analytics.definition
org.drip.analytics.holiday
org.drip.analytics.holset
org.drip.analytics.output
org.drip.analytics.period
org.drip.analytics.rates
org.drip.analytics.support
org.drip.feed.loader
org.drip.param.config
org.drip.param.creator
org.drip.param.definition
org.drip.param.market
org.drip.param.pricer
org.drip.param.quoting
org.drip.param.valuation
org.drip.product.creator
org.drip.product.credit
org.drip.product.definition
org.drip.product.fx
org.drip.product.params
org.drip.product.rates
org.drip.quant.calculus
org.drip.quant.common
org.drip.quant.distribution
org.drip.quant.function1D
org.drip.quant.linearalgebra
org.drip.quant.solver1D
org.drip.regression.core
org.drip.regression.curve
org.drip.regression.curveJacobian
org.drip.regression.fixedpointfinder
org.drip.regression.spline
org.drip.sample.bloomberg
org.drip.sample.bond
org.drip.sample.credit
org.drip.sample.misc
org.drip.sample.quant
org.drip.sample.rates
org.drip.sample.spline
org.drip.sample.stretch
org.drip.service.api
org.drip.service.bridge
org.drip.service.env
org.drip.service.stream
org.drip.spline.basis
org.drip.spline.bspline
org.drip.spline.grid
org.drip.spline.params
org.drip.spline.pchip
org.drip.spline.segment
org.drip.spline.stretch
org.drip.spline.tension
org.drip.state.creator
org.drip.state.curve
org.drip.state.estimator
org.drip.state.representation
org.drip.tester.functional


CASS
Framework Manager
Profile Manager
Resource Alignment
View
Profile
Assertions
Action
Create
Assertion
👤
Busy...
Invite
Change Password
Login
Logout
X
Me
Assertions about
Selected Contact
across
All Frameworks
Selected Competency
Competency
<Restricted> ago
,
<Restricted>
claimed with
that
<Restricted>
demonstrated
Competency
at
Level
.
<Restricted> pieces of evidence
expires <Restricted>
Delete
Framework 1
🔒
Loading...
Loading...
Framework 1
Loading...
X
Me
X
Me
Loading...
No Description.
No Title.
No Description.
Login
An account will automatically be created if none exists.
Login
Change Password
Change
Source:
Target:
Competency:
Level:
Negative Assertion:
Confidence:
50
percent.
Evidence:
Time and Date:
Expiration:
Linear Decay
Logarithmic Decay
Exponential Decay
Make Assertion
Visibility
Private
Public
Name of Object
Owners:
X
Me
Viewers:
Evidence
Loading...


I am a maker and a strategist. I evolved from playing with legos as a child, to making jewelry, knitting and launching global UI/UX applications and architecture projects. Transitioning into web development, I went from tinkering in Chrome developer tools, to deploying full-stack web and mobile applications.
As an avid film lover, I studied storyboarding as a tool for visualizing a user's journey in both architectural and UI/UX projects. I am constantly growing by taking on new challenges and breaking down the problems and constraints in order to build the most elegant and user-focused solutions.
Proficient
JavaScript, ES6, React, ReactNative, Ruby, RubyOnRails
ActiveRecord, Sinatra, SQL, HTML5, CSS3
Exposure
Swift, ARKit, Python, Nokogiri
Professional
Adobe Creative Suite, AutoCAD, Autodesk Revit, SketchUp
Lumion, 3dsMax
Dev Bootcamp
Web Development Immersive
San Francisco, California
University of Michigan
Master of Architecture
Ann Arbor, Michigan
Miami University
Bachelor of Arts in Architecture
Oxford, Ohio
Dev Bootcamp Access Fund Scholarship Recipient
One of 4 full scholarships awarded for the San Francisco campus from hundreds of applicants.
17John Cotel | Prodigy Design Competition | Bifocal Natures | Finalist
An international crowdsourced competition to design the next generation hotel. I led a team of 9 young architects to the top 10 out of hundreds of submissions. Our team focused on utilizing technology to create more flexible public and private spaces.
See SubmissionOneStopShop
| GitHubTech Stack: ReactNative, JavaScript, Ruby, Rails, Postgresql, Axios, Yelp API
- iOS app that allows you to put all of your home shopping needs in one easy to use list, find a store near you, and filter by items found, distance, and price
- Managed the front-end in ReactNative and the Axios calls to connect the front and back end
IMDbc
| GitHubTech Stack: Ruby, Rails, AJAX, Postgresql, HTML5, CSS3, Adobe Photoshop
- A web-application to search through movies with interactive comment boards that stores authenticated users’ favorite movies and/or add movies to their watchlist
- Collaborated on the overall database schema and associations
- Developed the search implementation and creation of activities to show on the activity feed
- Designed the CSS and built the front-end of the overall site
Hawk Set
| GitHubTech Stack: Ruby, Rails, JavaScript, AJAX, Postgresql, HTML5, CSS3, Adobe Photoshop
- An online solo card game to race against the clock and create sets from 81 unique cards
- Players match 3 cards from the available 12 face-up cards on the board with attributes that either all match or are unique
- Built functionality to select three cards from the board and replace them with new cards from the deck using AJAX and Ruby logic to determine if the set is a valid
MASON Architects
2015 - 2017
Architectural Designer and Project Lead
San Carlos, California
- Started as a team of 2 and built the business up to 12 people over 2 years
- Mastered Lumion in a day to create rapid photorealistic renderings, improving design clarity for clients
- Project lead on 4 simultaneous projects with overlapping deadlines and varying scope
- Managed and trained a team of 4 employees across a variety of software platforms (SketchUp, AutoCAD, Revit, Lumion) to increase productivity by approximately 25%
- Collaborate with internal design team members, consultants and clients to achieve the best results matching client’s needs
HKS Architects
2012 - 2015
Architectural Designer and Project Lead
San Francisco, California
- Managed completion of simultaneous deadlines for multiple projects as a project lead with teams up to 14 people
- Developed rendered architectural floorplans and enhanced visitor experience for 2 Four Seasons hotels on the island of Lanai, Hawaii for client Larry Ellison (founder and former CEO of Oracle)
- Built collaborative opportunities amongst staff via Lunch and Learn events presented by both internal and external speakers
- Envisioned and developed social impact design competitions across 2 regional offices to rapidly produce designs for transportable / wearable homeless shelters
Bleecker Street Apps, LLC
2012
Co-founder, UI/UX Designer, Graphic Designer
Redwood City, California
- Led the deployment of 3 applications sold in the App Store
- Collaborated with engineering team in the ideation, development, and testing cycles
- Spearheaded UI/UX and graphic design for web and mobile companies
- Created wireframes, icons, buttons, backgrounds, splash screens, instruction screens, menu screens, logos, toolbars, etc.


Worried about your teenager?
It can be difficult for parents to tell whether their teenagers are just "being teens" or if there is something more serious going on.
Many of the things you may notice, such as changing moods, can often be attributed to normal teenage behaviour. However, it can be helpful to know when there may be signs of a more serious problem.
If you’re worried about your teenager’s behaviour or general wellbeing you should consider:
- speaking to your teenager about your worries
- getting advice from a GP
It’s important to know that many parents and carers find teenage behaviour difficult to understand or challenging to cope with.
Read more about coping with your teenager.
Depression in teenagers
Noticeable symptoms of depression in teenagers can include:
- continuous low mood or sadness as well as frequent tearfulness
- voicing/showing feelings of hopelessness and helplessness
- being irritable and intolerant of others
- little or no enjoyment of things that were once interesting to them
- increasing social isolation
- disturbed sleep patterns (for example, problems going to sleep and/or waking throughout the night)
Read more about depression.
Teenage eating disorders
The most common eating disorders include anorexia, bulimia, binge eating and other specified feeding or eating disorder (OFSED).
OFSED, when symptoms do not exactly match those of anorexia, bulimia or binge eating disorder, can be just as serious. Some children and young people may experience avoidant/restrictive food intake disorder (ARFID).
Signs of eating disorders can include:
- complaining about being fat, even though they are a normal weight or are underweight
- letting people around them think they have eaten when they have not
- being secretive about their eating habits
- becoming anxious, upset or guilty when asked to eat
- vomiting, or using laxatives in order to lose weight
Read more about eating disorders.
Get advice if you have a child with an eating disorder
Teenagers who self-harm
If you suspect that your teenager is self-harming, look out for any of the following signs:
- unexplained cuts, bruises or cigarette burns, usually on their wrists, arms, thighs and chest
- keeping themselves fully covered at all times, even in hot weather
- signs of depression, such as low mood, tearfulness, a lack of interest in everything
- signs of low self-esteem, such as blaming themselves for any problems or thinking they are not good enough
- signs they have been pulling out their hair
Read more about self-harm and if needed, where to get urgent help for mental health.
MindEd for families has more information about what to do in a crisis.
Teenagers who take drugs
Signs that your teenager is taking drugs can include:
- losing interest in hobbies, sports or other favourite activities
- dramatic changes in behaviour
- excessive tiredness and lack of appetite
- dilated pupils, red eyes, bad skin
- stealing money from you
Find out more about drug use and getting help.
How can I help my teenager?
If you're worried about your teenager and they refuse to talk to you, you may need to open up other channels of communication.
Avoid persistent direct questioning as this can make them feel threatened.
Try these tips to encourage your teenager to open up if there is a problem:
- be honest and explain that you're worried that they're going through something difficult
- point them towards websites or helplines that can give them information on depression, drugs and self-harm so they can find out the facts themselves
- do not blame yourself for any problems they're having and try not to take it personally – this will not help the situation
- tell them you'll be there for them when they do want to talk
- let them choose where to go for help, which may be a GP, a family friend or school counsellor
- help your teenager think for themselves – encourage them to think through the pros and cons of their behaviour, remind them what they’re good at and what you like about them, and help them think critically about what they see and hear
For more helpful tips, see Talking to your teenager.
More information and support
If you're concerned about the physical or mental health of your child or young person it may be a good idea to speak to a GP.
You can also read more about children and young people's mental health services (CYPMHS).
There are also several organisations that provide emotional support and practical advice for both your teenager and yourself:
- Family Lives is a charity specialising in families. You can call their confidential helpline on 0808 800 2222 (9am to 9pm Monday to Friday, 10am to 3pm Saturday to Sunday). You can also visit their forums
- Young Minds, the mental health charity, has a dedicated, confidential helpline. Call them on 0808 802 5544 (9.30am to 4pm Monday to Friday)
- Relate offers relationship advice and counselling. You can also use Live Chat to talk to a counsellor
- FRANK, the drugs charity, has comprehensive information about drugs. You can also call their helpline on 0300 123 6600 (available 24/7)
{% endblock %}


- My wife Darcy and I moved to Tacoma in the fall of 2013.
- We got married in the summer of 2005.
- I was born in Denver, and lived in the area for 31 years.
- I have a daughter, Rowan, who is now 3 years old.
Family Life
- 2 semesters of gen ed at Metropolitan State College of Denver
- A semester at Pickens Technical Institute for drafting
- Army cirtification for 21R Interior Electrician
Schooling
I don't have a lot of schooling to my name.
- Pool Hall Junkies
- Equilibrium
- Super Troopers
- Empire Records
- V for Vendetta
- Ultraviolet
- Aeon Flux
- Serenity
- Princess Bride
- Van Wilder
Top Ten
My top ten favorite movies
Army Times
I joined the army in 2007, to learn how to be an electrician. I got real world training and got a job later as a residential electrician.
I deployed to Afghanistan in 2010, and spent my deployment building command buildings with my unit.


| Author: | Dag-Erling Smørgrav |
|---|---|
| Author: | Stig Sandbeck Mathisen |
| Author: | Per Buer |
| Date: | 2010-05-31 |
| Version: | 1.0 |
| Manual section: | 1 |
The varnishd daemon accepts HTTP requests from clients, passes them on to a backend server and caches the returned documents to better satisfy future requests for the same document.
| -C | Print VCL code compiled to C language and exit. Specify the VCL file to compile with the -f option. |
| -d | Enables debugging mode: The parent process runs in the foreground with a CLI connection on stdin/stdout, and the child process must be started explicitly with a CLI command. Terminating the parent process will also terminate the child. |
| -F | Run in the foreground. |
| -f config | Use the specified VCL configuration file instead of the builtin default. See vcl(7) for details on VCL syntax. |
| -g group | Specifies the name of an unprivileged group to which the child process should switch before it starts accepting connections. This is a shortcut for specifying the group run-time parameter. |
| -i identity | Specify the identity of the varnish server. This can be accessed using server.identity from VCL |
| -l shmlogsize | Specify size of shmlog file. Scaling suffixes like ‘k’, ‘m’ can be used up to (e)tabytes. Default is 80 Megabytes. Specifying less than 8 Megabytes is unwise. |
| -n name | Specify a name for this instance. Amonst other things, this name is used to construct the name of the directory in which varnishd keeps temporary files and persistent state. If the specified name begins with a forward slash, it is interpreted as the absolute path to the directory which should be used for this purpose. |
| -P file | Write the process’s PID to the specified file. |
| -S file | Path to a file containing a secret used for authorizing access to the management port. |
| -t ttl | Specifies a hard minimum time to live for cached documents. This is a shortcut for specifying the default_ttl run-time parameter. |
| -u user | Specifies the name of an unprivileged user to which the child process should switch before it starts accepting connections. This is a shortcut for specifying the user run- time parameter. If specifying both a user and a group, the user should be specified first. |
| -V | Display the version number and exit. |
-w min[,max[,timeout]]
Start at least min but no more than max worker threads with the specified idle timeout. This is a shortcut for specifying the thread_pool_min, thread_pool_max and thread_pool_timeout run-time parameters.
If only one number is specified, thread_pool_min and thread_pool_max are both set to this number, and thread_pool_timeout has no effect.
The following hash algorithms are available:
The following storage types are available:
Storage for each object is allocated with malloc(3).
The size parameter specifies the maximum amount of memory varnishd will allocate. The size is assumed to be in bytes, unless followed by one of the following suffixes:
K, k The size is expressed in kibibytes.
M, m The size is expressed in mebibytes.
G, g The size is expressed in gibibytes.
T, t The size is expressed in tebibytes.
The default size is unlimited.
Storage for each object is allocated from an arena backed by a file. This is the default.
The path parameter specifies either the path to the backing file or the path to a directory in which varnishd will create the backing file. The default is /tmp.
The size parameter specifies the size of the backing file. The size is assumed to be in bytes, unless fol‐ lowed by one of the following suffixes:
K, k The size is expressed in kibibytes.
M, m The size is expressed in mebibytes.
G, g The size is expressed in gibibytes.
T, t The size is expressed in tebibytes.
% The size is expressed as a percentage of the free space on the file system where it resides.
The default size is 50%.
If the backing file already exists, it will be truncated or expanded to the specified size.
Note that if varnishd has to create or expand the file, it will not pre-allocate the added space, leading to fragmentation, which may adversely impact performance. Pre-creating the storage file using dd(1) will reduce fragmentation to a minimum.
The granularity parameter specifies the granularity of allocation. All allocations are rounded up to this size. The size is assumed to be in bytes, unless followed by one of the suffixes described for size except for %.
The default size is the VM page size. The size should be reduced if you have many small objects.
If the -T option was specified, varnishd will offer a command-line management interface on the specified address and port. The following commands are available:
Display a list of available commands.
If the command is specified, display help for this command.
Display a list if run-time parameters and their values.
If the -l option is specified, the list includes a brief explanation of each parameter.
If a param is specified, display only the value and explanation for this parameter.
Display the purge list.
All requests for objects from the cache are matched against items on the purge list. If an object in the cache is older than a matching purge list item, it is considered “purged”, and will be fetched from the backend instead.
When a purge expression is older than all the objects in the cache, it is removed from the list.
Show summary statistics.
All the numbers presented are totals since server startup; for a better idea of the current situation, use the varnishstat(1) utility.
Runtime parameters are marked with shorthand flags to avoid repeating the same text over and over in the table below. The meaning of the flags are:
Here is a list of all parameters, current as of last time we remembered to update the manual page. This text is produced from the same text you will find in the CLI if you use the param.show command, so should there be a new parameter which is not listed here, you can find the description using the CLI commands.
Be aware that on 32 bit systems, certain default values, such as sess_workspace (=16k) and thread_pool_stack (=64k) are reduced relative to the values listed here, in order to conserve VM space.
Default: 0.900 Flags: experimental
If we run out of resources, such as file descriptors or worker threads, the acceptor will sleep between accepts. This parameter (multiplicatively) reduce the sleep duration for each succesfull accept. (ie: 0.9 = reduce by 10%)
Units: s Default: 0.001 Flags: experimental
If we run out of resources, such as file descriptors or worker threads, the acceptor will sleep between accepts. This parameter control how much longer we sleep, each time we fail to accept a new connection.
Units: s Default: 0.050 Flags: experimental
If we run out of resources, such as file descriptors or worker threads, the acceptor will sleep between accepts. This parameter limits how long it can sleep between attempts to accept new connections.
Units: bool Default: on
Restart child process automatically if it dies.
Units: s Default: 0.0
How long time does the ban lurker thread sleeps between successfull attempts to push the last item up the purge list. It always sleeps a second when nothing can be done. A value of zero disables the ban lurker.
Units: s Default: 60
Default timeout between bytes when receiving data from backend. We only wait for this many seconds between bytes before giving up. A value of 0 means it will never time out. VCL can override this default value for each backend request and backend request. This parameter does not apply to pipe.
Units: bool Default: off Flags: experimental
Cache vbe_conn’s or rely on malloc, that’s the question.
Default: exec cc -fpic -shared -Wl,-x -o %o %s Flags: must_reload
Command used for compiling the C source code to a dlopen(3) loadable object. Any occurrence of %s in the string will be replaced with the source file name, and %o will be replaced with the output file name.
Units: bytes Default: 8192
Size of buffer for CLI input. You may need to increase this if you have big VCL files and use the vcl.inline CLI command. NB: Must be specified with -p to have effect.
Units: seconds Default: 10
Timeout for the childs replies to CLI requests from the master.
Units: s Default: 10
How much clockskew we are willing to accept between the backend and our own clock.
Units: s Default: 0.4
Default connection timeout for backend connections. We only try to connect to the backend for this many seconds before giving up. VCL can override this default value for each backend and backend request.
Default: 10seconds Flags: delayed
Default grace period. We will deliver an object this long after it has expired, provided another thread is attempting to get a new copy.
Units: seconds Default: 120
The TTL assigned to objects if neither the backend nor the VCL code assigns one. Objects already cached will not be affected by changes made until they are fetched from the backend again. To force an immediate effect at the expense of a total flush of the cache use “purge.url .”
Units: bitmap Default: 0 Bitmap controlling diagnostics code:
0x00000001 - CNT_Session states.
0x00000002 - workspace debugging.
0x00000004 - kqueue debugging.
0x00000008 - mutex logging.
0x00000010 - mutex contests.
0x00000020 - waiting list.
0x00000040 - object workspace.
0x00001000 - do not core-dump child process.
0x00002000 - only short panic message.
0x00004000 - panic to stderr.
0x00008000 - panic to abort2().
0x00010000 - synchronize shmlog.
0x00020000 - synchronous start of persistence.
0x80000000 - do edge-detection on digest.
Use 0x notation and do the bitor in your head :-)
Units: seconds Default: 0
The TTL assigned to the synthesized error pages
Units: bitmap Default: 0 Bitmap controlling ESI parsing code:
0x00000001 - Don't check if it looks like XML
0x00000002 - Ignore non-esi elements
0x00000004 - Emit parsing debug records
Use 0x notation and do the bitor in your head :-)
Units: kilobytes Default: 128 Flags: experimental
The default chunksize used by fetcher. This should be bigger than the majority of objects with short TTLs. Internal limits in the storage_file module makes increases above 128kb a dubious idea.
Units: s Default: 60
Default timeout for receiving first byte from backend. We only wait for this many seconds for the first byte before giving up. A value of 0 means it will never time out. VCL can override this default value for each backend and backend request. This parameter does not apply to pipe.
Default: ..... Flags: must_restart
The unprivileged group to run as.
Units: header lines Default: 64
Maximum number of HTTP headers we will deal with. This space is preallocated in sessions and workthreads only objects allocate only space for the headers they store.
Default: off
Enables experimental support for the HTTP range header, enabling Varnish to serve parts of an object to a client. However, Varnish will request the whole object from the backend server.
Default: :80 Flags: must_restart
Whitespace separated list of network endpoints where Varnish will accept requests. Possible formats: host, host:port, :port
Units: connections Default: 1024 Flags: must_restart
Listen queue depth.
Units: bool Default: off
Log the hash string to shared memory log.
Units: bool Default: off
Log the local address on the TCP connection in the SessionOpen shared memory record.
Units: seconds Default: 2 Flags: experimental
Grace period before object moves on LRU list. Objects are only moved to the front of the LRU list if they have not been moved there already inside this timeout period. This reduces the amount of lock operations necessary for LRU list access.
Units: includes Default: 5
Maximum depth of esi:include processing.
Units: restarts Default: 4
Upper limit on how many times a request can restart. Be aware that restarts are likely to cause a hit against the backend, so don’t increase thoughtlessly.
Units: % Default: 100 Flags: experimental
Percentage permitted overflow queue length.
This sets the ratio of queued requests to worker threads, above which sessions will be dropped instead of queued.
Units: seconds Default: 3 Flags: must_restart
Interval between pings from parent to child. Zero will disable pinging entirely, which makes it possible to attach a debugger to the child.
Units: seconds Default: 60
Idle timeout for PIPE sessions. If nothing have been received in either direction for this many seconds, the session is closed.
Units: bool Default: off
Prefer IPv6 address when connecting to backends which have both IPv4 and IPv6 addresses.
Units: bool Default: on
Detect and eliminate duplicate purges.
Units: requests per request Default: 3 Flags: experimental
How many parked request we start for each completed request on the object. NB: Even with the implict delay of delivery, this parameter controls an exponential increase in number of worker threads.
Units: objects Default: 10 Flags: experimental
The maximum number of objects held off by saint mode before no further will be made to the backend until one times out. A value of 0 disables saintmode.
Units: seconds Default: 600 Flags: delayed
Send timeout for client connections. If no data has been sent to the client in this many seconds, the ses‐ sion is closed. See setsockopt(2) under SO_SNDTIMEO for more information.
Units: bytes Default: -1 Flags: experimental
The minimum size of objects transmitted with sendfile.
Units: seconds Default: 5
Idle timeout for persistent sessions. If a HTTP request has not been received in this many seconds, the session is closed.
Units: bytes Default: 65536 Flags: delayed
Bytes of HTTP protocol workspace allocated for sessions. This space must be big enough for the entire HTTP protocol header and any edits done to it in the VCL code. Minimum is 1024 bytes.
Units: ms Default: 50 Flags: experimental
How long time the workerthread lingers on the session to see if a new request appears right away. If sessions are reused, as much as half of all reuses happen within the first 100 msec of the previous request completing. Setting this too high results in worker threads not doing anything for their keep, setting it too low just means that more sessions take a detour around the waiter.
Units: sessions Default: 100000
Maximum number of sessions we will allocate before just dropping connections. This is mostly an anti-DoS measure, and setting it plenty high should not hurt, as long as you have the memory for it.
Units: bytes Default: 255
Maximum number of bytes in SHM log record. Maximum is 65535 bytes.
Units: bytes Default: 8192 Flags: delayed
Bytes of shmlog workspace allocated for worker threads. If too big, it wastes some ram, if too small it causes needless flushes of the SHM workspace. These flushes show up in stats as “SHM flushes due to overflow”. Minimum is 4096 bytes.
Units: bool Default: on
Log all CLI traffic to syslog(LOG_INFO).
Units: milliseconds Default: 20 Flags: experimental
Wait at least this long between creating threads.
Setting this too long results in insuffient worker threads.
Setting this too short increases the risk of worker thread pile-up.
Units: requests Default: 2 Flags: experimental
Overflow threshold for worker thread creation.
Setting this too low, will result in excess worker threads, which is generally a bad idea.
Setting it too high results in insuffient worker threads.
Units: milliseconds Default: 200 Flags: experimental
Wait at least this long after a failed thread creation before trying to create another thread.
Failure to create a worker thread is often a sign that the end is near, because the process is running out of RAM resources for thread stacks. This delay tries to not rush it on needlessly.
If thread creation failures are a problem, check that thread_pool_max is not too high.
It may also help to increase thread_pool_timeout and thread_pool_min, to reduce the rate at which treads are destroyed and later recreated.
Units: threads Default: 500 Flags: delayed, experimental
The maximum number of worker threads in all pools combined.
Do not set this higher than you have to, since excess worker threads soak up RAM and CPU and generally just get in the way of getting work done.
Units: threads Default: 5 Flags: delayed, experimental
The minimum number of threads in each worker pool.
Increasing this may help ramp up faster from low load situations where threads have expired.
Minimum is 2 threads.
Units: milliseconds Default: 1000 Flags: delayed, experimental
Wait this long between purging threads.
This controls the decay of thread pools when idle(-ish).
Minimum is 100 milliseconds.
Units: bytes Default: -1 Flags: experimental
Worker thread stack size. In particular on 32bit systems you may need to tweak this down to fit many threads into the limited address space.
Units: seconds Default: 300 Flags: delayed, experimental
Thread idle threshold.
Threads in excess of thread_pool_min, which have been idle for at least this long are candidates for purg‐ ing.
Minimum is 1 second.
Units: pools Default: 2 Flags: delayed, experimental
Number of worker thread pools.
Increasing number of worker pools decreases lock contention.
Too many pools waste CPU and RAM resources, and more than one pool for each CPU is probably detrimal to performance.
Can be increased on the fly, but decreases require a restart to take effect.
Units: requests Default: 10 Flags: experimental
Worker threads accumulate statistics, and dump these into the global stats counters if the lock is free when they finish a request. This parameters defines the maximum number of requests a worker thread may handle, before it is forced to dump its accumulated stats into the global counters.
Flags: must_restart
The unprivileged user to run as. Setting this will also set “group” to the specified user’s primary group.
Units: bool Default: off
Trace VCL execution in the shmlog. Enabling this will allow you to see the path each request has taken through the VCL program. This generates a lot of logrecords so it is off by default.
Default: default Flags: must_restart, experimental
Select the waiter kernel interface.
A purge expression consists of one or more conditions. A condition consists of a field, an operator, and an argument. Conditions can be ANDed together with “&&”.
A field can be any of the variables from VCL, for instance req.url, req.http.host or obj.set-cookie.
Operators are “==” for direct comparision, “~” for a regular expression match, and “>” or “<” for size compar‐ isons. Prepending an operator with “!” negates the expression.
The argument could be a quoted string, a regexp, or an integer. Integers can have “KB”, “MB”, “GB” or “TB” appended for size related fields.
Simple example: All requests where req.url exactly matches the string /news are purged from the cache::
req.url == "/news"
Example: Purge all documents where the name does not end with “.ogg”, and where the size of the object is greater than 10 megabytes::
req.url !~ "\.ogg$" && obj.size > 10MB
Example: Purge all documents where the serving host is “example.com” or “www.example.com”, and where the Set- Cookie header received from the backend contains “USERID=1663”::
req.http.host ~ "^(www\.)example.com$" && obj.set-cookie ~ "USERID=1663"
The varnishd daemon was developed by Poul-Henning Kamp in cooperation with Verdens Gang AS, Linpro AS and Varnish Software.
This manual page was written by Dag-Erling Smørgrav with updates by Stig Sandbeck Mathisen<EMAIL_ADDRESS>This document is licensed under the same licence as Varnish itself. See LICENCE for details.


Full Stack Developer having experience in developing highly scalable products, application from scratch using cutting edge technologies.
Part of the Center of Excellence Team. Created the framework used by the Microcervices of Our platform . Setup the Kubernetes platfrom with Istio. Create the Gitlab CICD pipeline and Custom Helm Chart
Member of the product engineering team of Credit FInance Edge.Credit Finance Edge is an Integrated global loan servicing and asset management platform that manages multiple credit types and asset classes through the complete life cycle.
Part of CNP Eservices project
Apart from being a web developer, I enjoy long road trips, playing Bridge and games like Football , TT and Badminton.
I follow a number of sci-fi and fantasy genre movies and television shows, I am aspiring Phographer and I spend a large amount of my free time exploring the latest technolgy advancements in the web development world.


Satellite data.
•
Created by University of Helsinki.
•
Data acquired from FMI
No data
Satellite Ozone Data |
200
250
300
350
400
450
500


backbone-dnode is an integration package between Backbone and DNode, using Mongoose for persistance, providing seemless server side CRUD and Pubsub support for your Backbone.js projects.
The complete annotated source code is also available.
Introduction | Installation | Usage |
Backbone-DNode is a server to client integration package for use with, you guessed it, Backbone and DNode. The package brovides both node.js server side code for CRUD and Pubsub routines, as well as the matching client (or server) side routines.
The idea is to make writing a real-time Backbone application as simple as possible, the app is supported on the server side by using the Mongoose ORM for final validation and persistence.
The pubsub mechanics will default to using socket.io for updating the connected clients, however, you can pass a redis server and connection options to the pubsub config method to utilize the built in redis publish and subscribe methods.
backbone-dnode depends on Node.js and the Node Package Manager
(npm). If you don't already have these installed, grab the latest. Node
releases can be found on the download page.
NPM can be installed with a script:
curl http://npmjs.org/install.sh | sudo sh
Install backbone-dnode via NPM:
npm install backbone-dnode
The project can be installed via NPM, or by cloning this repo into your project.
npm install backbone-dnode
or
git clone git://github.com/sorensen/backbone-dnode.git
There are two parts to using the backbone-dnode package, one part is to be used on the server, the other the client.
Whip up a server and attatch DNode, while using the backbone-dnode methods as middleware.
var express = require('express'), dnode = require('dnode'), middleware = require('backbone-dnode'), browserify = require('browserify'), server = express.createServer();
Bundle the client side support files with browserify, then attatch it to the express server instance. DNode can be included directly into the bundle to avoid code duplication.
var bundle = browserify({ require : [ 'dnode', 'backbone-dnode' ], mount : '/core.js', }); server.use(bundle);
Register your Mongoose schemas, and then pass the database instance to the CRUD configuration. At least one mongoose schema must be registered to use the CRUD routines.
var Mongoose = require('mongoose'), Schema = mongoose.Schema, ObjectId = Schema.ObjectId; database = Mongoose.connect('mongodb://localhost/db'); Foo = new Schema({ bar : { type : String, index : true }, created : { type : Date, default : Date.now } }); middleware.crud.config(database);
Configure the Redis connection if you would like to use Redis as the pubsub mechanics. This will allow you to use other libraries such as Cluster, letting Redis act as the message queue.
var redis = require('redis'), pub = redis.createClient(), sub = redis.createClient(); middleware.pubsub.config(pub, sub);
Include DNode and the browserified bundle, as well as the Backbone and underscore dependancies.
<script src="underscore.js"></script> <script src="backbone.js"></script> <script src="dnode.js"></script> <script src="backbone-dnode.js"></script>
Use browserify to require the backbone-dnode package, which will return a JSON object containing the CRUD and Pubsub middleware for DNode. Attatch both packages and then supply them the DNode remote object for server communication.
var dnode = require('dnode'); var middleware = require('backbone-dnode'); dnode() .use(middleware.crud) .use(middleware.pubsub) .connect(function(remote) { });
To connect to node.js and mongoose from the browser (or on the server), a model type for mongoose must be specified, as well as overriding the sync method on each model, an underscore mixin has been created to provide optional support based on the model, in case you have different persistant support in mind.
Foo = Backbone.Model.extend({ type : 'foo', sync : _.sync })
Now create the collection, the attributes are set on both the model and collection to ensure that they will both use the same persistance, even if a model is created outside of the collection.
FooCollection = Backbone.Collection.extend({ url : 'foos', type : 'foo', sync : _.sync, model : Foo })
You can also override the sync method globally, by overriding the default Backbone.sync method
Backbone.sync = _.sync;
Once the middleware has been established, and a model has been set to use it (or if as been overridden globally), the default Backbone methods will automatically send the changes through the socket (dnode), where they will be mapped to the corresponding Mongoose schema, and then published to the connected clients that have been subscribed to the model or collection's URL.
Backbone Models and Collections have been extended with a subscribe and unsubscribe method, which both take options and a callback function as arguments. You can pass a specific channel name in the options, which will be used as the pubsub channel and lookup key, if omitted, the collection will default to the set URL if one can be found. The methods will trigger a Backbone event when used unless silent : true is sent with the options.
var options = {}; var foos = new FooCollection(); foos.subscribe(options, function() { foos.fetch({ finished : function(data) { // The server has responded with the fetched data, // and has added to the collection }, }); })
When the subscribe method has returned, you are now able to use all of the default Backbone model methods and have them interact with the server. When using any of the Backbone fetch, save, create, or delete methods, a callback function will be used when the server responds, and a finished method will be executed when the middleware is done with the Backbone integration methods. Can optionally pass in an error method that will be triggered if anything goes wrong on the server side. Think of finished as the Backbone success callback when normally using these methods, the name is changed to avoid conflicts.
foos.create({ bar : 'something' });
Backbone.fetch() has been overloaded to accept a query and sorting argument, which will be directly used on the server against the Mongoose ORM. The default behavior for passing in silent:true or add:true will still be used.
foos.fetch({ query : { bar : 'something' }, sorting : { sort: [['created',-1]], limit: 20 } });
A Beau Sorensen project.


Marco's Hobbies
Sailing
Segelclub Pfaffikon, SZ
WS Bootschule Zurich
Yachtschule Eichler HH
Skiing
Davos
Flims/Laax/Falera
Arosa
Lenzerheide
St. Anton, AT
Kranjska Gora, SI
Steamboat Springs, CO
Snowbird, UT
Hakuba, Japan🗾
Niseko, Japan🗾
Nozawa Onsen, Japan🗾
Hiking
Swiss Hiking Map
Inca Trail
Mt. Kilimanjaro
Mt. Fuji
Hiking Austria's Alps. Book by Jonathan Hurdle


Installing the SVL Simulator
Table of Contents
Graphics Drivers top#
Windows top#
- Download driver manually from NVIDIA's website and install.
Linux top#
You can check if the NVIDIA drivers are already installed, and their version by running in terminal:
$ nvidia-smi
The output should be similar to:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.57 Driver Version: 450.57 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:01:00.0 On | N/A |
| 0% 36C P8 11W / 280W | 202MiB / 11169MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1942 G /usr/lib/xorg/Xorg 114MiB |
| 0 N/A N/A 2292 G /usr/bin/gnome-shell 84MiB |
+-----------------------------------------------------------------------------+
If you do not have the latest NVIDIA drivers installed, then install the drivers for your system. For example:
-
Run
ubuntu-drivers devices
to check the highest supported driver version for your system:== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001B06sv00001462sd00003607bc03sc00i00 vendor : NVIDIA Corporation model : GP102 [GeForce GTX 1080 Ti] driver : nvidia-driver-435 - distro non-free driver : nvidia-driver-390 - distro non-free driver : nvidia-driver-450 - third-party free recommended driver : nvidia-driver-440 - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin ...
-
Install the appropriate driver:
$ sudo apt install nvidia-driver-450
Other Linux Requirements top#
Vulkan top#
Make sure the Vulkan userspace library is installed:
$ sudo apt install libvulkan1
NOTE: If you also have mesa-vulkan-drivers
installed (e.g. for Intel motherboard video) they can prevent the simulator from being able to access your NVIDIA GPU. If the simulator crashes when starting, try removing the mesa vulkan drivers:
$ sudo apt remove mesa-vulkan-drivers
Docker top#
Docker v19.03 or later must be installed on Linux in order to run local simulations that use the Python API
or VSE
runtime templates.
Follow the Docker installation instructions to install Docker.
Installing the simulator top#
The Simulator release can be downloaded as a prebuilt binary from the simulator distribution.
-
Download and extract the simulator binary zip file for your OS to a desired location.
- For Linux: svlsimulator-linux64-{release-version}.zip
- For Windows: svlsimulator-windows64-{release-version}.zip
-
Enter the svlsimulator-{operating-system}64-{version-number} folder and run the executable application named simulator (simulator.exe on Windows) by double-clicking it.
Link to Cloud top#
When the SVL Simulator program launches, it will connect to the SVL Simulator Cloud.
-
Click Open Browser to open the simulator user interface in a web browser.
If the Link to Cloud button is not available, check in the upper right corner to see if the simulator is Online or Offline. If offline, click the Offline button to re-connect the simulator to the cloud, then click Link to Cloud.
-
You should arrive at the SVL Simulator Sign In page.
If you already have an account, you can use your credentials to sign in.
If you don’t already have an account, click Sign Up to create an account.
To create an account, fill out the Sign Up form.
You will need to confirm your email address to be able to continue.
Click the "Verify email" link in the "Complete registration" email.
If you don't receive the confirmation email, please check your spam filter or add<EMAIL_ADDRESS>to your approved senders list.
-
After signing in (or signing up), you will be logged in and are almost ready to start creating and running simulations. Before you can create a simulation, you'll need to link your local simulator instance to your cloud account.
You should now see the Clusters view, where you need to enter a cluster name (e.g. "local-sim") for your local machine which is running SVL Simulator and click Create cluster.
If you wish to link additional machines into a cluster for distributed simulation, refer to Clusters Tab for more information.
If you don't see the New Cluster form, your running simulator may be offline. Return to the SVL Simulator program window and click the Offline button to re-connect the simulator to the cloud, then click Link to Cloud to return to the Clusters view. You should now be able to enter a name for your local machine (e.g. "local-sim") and click Create cluster.
If you get an error when creating the cluster, your running simulator may be offline. Return to the SVL Simulator program window and click the Offline button to re-connect the simulator to the cloud, then click Link to Cloud to return to the Clusters view. You should now be able to enter a name for your local machine (e.g. "local-sim") and click Create cluster.
-
At this point your local machine should now be linked to the cloud in your new default ("local-sim") cluster.
 Follow the instructions in Running the Simulator to run your first simulation.


Red Blue Green
I want the words to change to the color when they are clicked, but...something is wrong.
Check the <code> and see if you can fix it.
<code>


WITNESS LIST
Public Health Committee
May 4, 2011 - 8:00 AM
For:
Savransky, Alejandro (Self; Environment Texas)
Smith, Randall (Texas Impact)
Against:
Gregorich, Joe (Toy Industry Association)
Registering, but not testifying:
For:
Dimitry, Lauren (Texans Care for Children)
Metzger, Luke (Environment Texas)
Privett, Anita S (League of Women Voters of Texas)
Shelton, Emily (Texas Impact)
Against:
Ashley, Price (Tx Association of Manufacturers)
Womack, Daniel (Texas Chemical Council)
On:
Shuler, Dana (Tx Dept. of State Health Services)
For:
Olivarez, Eduardo (Hidalgo Co. Health & Human Services)
Ramberg, Todd (Christus Spohn Kleberg Hospital Round Rock Medical Center)
On:
Maberry, Jan (Texas Department of State Health Services)
Registering, but not testifying:
For:
Banda, Jennifer (Texas Hospital Association)
Gutierrez, Michael (Self)
Hansen, Frances (CHRISTUS-Spohn)
Perkins, Vicki (CHRISTUS Health)
Rocha, Israel (Hospital Coalition of South Texas)
Saenz, Gabriela (CHRISTUS Health)
Yanas, Chris (Teaching Hospitals of Texas)
For:
Bier, Marti (Self)
Drewes, Carmel (Self)
Wright, Stephen (Self)
1
WITNESS LIST
Registering, but not testifying:
For:
Coleman, Dennis (Equality Texas)
Smith, Chuck (Equality Texas)
For:
Oberoi, Bhawna (Texas Society of Radiology Practitioner Assistants (President))
Sanders, Vicki (Self; American Society of Radiologic Technologist Society of Radiology
Physician Extenders, Texas Society of Radiologic Technologist)
Registering, but not testifying:
For:
Roberts, Clark (Self)
On:
Hammer, Ann (Texas Department of State Health Services Resource witness only)
For:
Curtis, Michele (Harris County Hospital District)
Hanke, June (Harris County Hospital District)
Registering, but not testifying:
For:
Allen, Maria (Self)
Allers, Siree (Self)
Brady, Kristina (Self)
Dimitry, Lauren (Texans Care for Children)
Gutierrez, Michael (Self)
Holmes, Harry (Harris County Health Care Alliance)
Huemmer, Maria (Texas Catholic Conference-Active Roman Catholic Bishops of Texas)
Kopas, Edward (Self)
Kopas, Gaye (Self)
Kroll, Carrie (Texas Pediatric Society)
Milam, Susan (Natl. Association of Social Workers/Texas Chapter)
Rose, Denise (Texas Hospital Association)
Saenz, Gabriela (CHRISTUS Health)
Sanders, Morgan (March of Dimes)
Schroeder, Rebekah (Texas Children's Hospital)
Shelton, Emily (Texas Impact)
Smith, Andrew (University Health System)
Tashjian, Christy (Midwives Alliance of North America)
Wilson, Stacy (Central Health & Community Care)
Woolbert, Lynda (Coalition for Nurses in Advanced Practice)
Yanas, Chris (Teaching Hospitals of Texas)
2
WITNESS LIST
On:
Samsel, Rachel (Department of State Health Services)
For:
Jackson, Patrick (Self; Texas Health Freedom Coalition)
Kline, Justin (Self)
McCarthy, Peter (Self; Texas Health Freedom Coalition)
Silva, Lara (El Shaddai Life Ministries/ Michele O'Donnell)
Wynne, Kay (Self)
Against:
Ferguson, Pamela (American Organization For Bodywork Therapies of Asia (AOBTA (R)))
King, Debra (Texas Dietetic Association)
Lauterstein, David (Self; Lauterstein-Conway Massage School)
Ray, Janine (Self; Texas Assoc. of Massage Therapists)
Weitz, Tim (Texas Association of Acupuncture and Oriental Medicine)
On:
Robinson, Mari (Texas Medical Board)
Registering, but not testifying:
For:
Abdo, Richard (Self)
Archer, Barbara (Self)
Archer, Devon (Self)
Archer, Robert (Self)
Arredorido, Rosa (Self)
Beim, Terri (Self)
Bolen, Mary (Self)
Bolen, SR., Stephen (Self)
Brake, Douglas (Self)
Callis, Leslie (Self)
Carpenter, Beth (Self)
Christopher, Katherine (Self)
Coe, Caren (Self)
Cornelius, Tracy (Self)
Davis, Donald R. (Self)
Doyle, Jerry (Self)
Doyle, Leona (Self)
Espinosa, Carmen (Self)
Espinosa, Jason (Self)
Fair, Janis (Self)
Fannin, Ellen (Self)
Garza, Elma Irene (Self)
Garza, Marissa Lorraine (Self)
Gleis, Radhia (IAACN. International & American Assc- of Clinical Nutritionists)
3
WITNESS LIST
For:
Golden, Cinderella (Self)
Golden, Ernest (Self)
Grobb JR, Edgar L (Self)
Gutierrez, Michael (Self)
Johnson, Gwen (Self; Sunshine Health Freedom)
Johnson, Jimmy (Self)
Laredo, Carmen (Self)
Lucas, Amanda (Self)
Marsh, Nellie (Self)
McCarthy, Nancy (Self)
Mertz, Nancy (Self)
ODonnell, Michele (Self)
Pavon, Laura (Self)
Raymond, Caitlin (Self)
Raymond, Melissa (Self)
Raymond, Phil (Holistic Healthcare)
Ryke, Maria (Self)
Saltarelli, Rosella (Self)
Sembera, Andrew (Self; Allergy Solutions Inc, Hill Country Health Store)
Smith, Claudia (Self)
Smith, Kathryn (Self; Simply Healing LLC)
Tips, Cheri (National Health Federation Cheri Tips)
Vickery, Tracey (Self)
Walls, Pamela (Self)
Against:
Bien, Kelly (Self)
Capelo, Jaime (Coalition for Patient Safety)
Finch, Dan (Texas Medical Association)
Knox, Louis (Self)
Lazar, Jennifer (Self)
Mintz, Richard (Self)
Naile, Carolyn (American Massage Therapy Association)
Sullivan, Jon (Self)
White, Tara (Self)
On:
Tannert, Karen (Department of State Health Services)
For:
Anderson, Elyese (Self; Dental Laboratory Assoc. of Texas)
Mercadel, Larry (Self; Texas Dental Laboratories and Technicians Doing Business in The
State of Texas)
Pokladnick, Milton (Dental Lab Assoc of Texas)
4
WITNESS LIST
On:
Mansell, Jeffrey (Resource witness, Texas Department of State Health Services)
Registering, but not testifying:
For:
Box, Gary (Self)
Calvert, Jess (Texas Dental Association)
Cardenas, Ernest (Self; The Dental Laboratory Association of Texas President-Elect 2011)
Lujan, Andre (Self)
Morgan, Gary (Self; Dental Laboratory Association of Texas)
For:
Rutherford-Stuart, Christine (San Antonio Metropolitan Health District City of San Antonio)
Registering, but not testifying:
For:
DeLaGarza, Veronica (American Diabetes Association)
Dimitry, Lauren (Texans Care for Children)
Finch, Dan (Texas Medical Association)
Gutierrez, Michael (Self)
Guzman, Edward (City of San Antonio)
Johns, Stephanie (City of San Antonio)
Mitias, Marcus (Texas Health Resources)
Perkins, Vicki (CHRISTUS Santa Rosa Health System)
Rose, Denise (Texas Hospital Association)
Sabo, Jason (United Ways of Texas)
Smith, Andrew (University Health System)
Yanas, Chris (Teaching Hospitals of Texas)
On:
Fasko, Roger (Texas Department of State Health Services)
On:
Dodson, Gay (Texas State Board of Pharmacy)
Registering, but not testifying:
For:
Belcher, Nora (Texas e-Health Alliance)
Finch, Dan (Texas Medical Assn)
Gutierrez, Michael (Self)
Huddleston, Cheri (Texas Pharmacy Business Council)
Huddleston, Cheri (Texas Pharmacy Association-Academy of Compounding Pharmacists)
Huddleston, Cheri (Injured Workers' Pharmacy)
Reagan, Karen (Walgreen Co.)
5
WITNESS LIST
For:
Smith, Andrew (University Health System)
Wilson, Stacy (Central Health & Community Care)
Wright, Michael (Texas Pharmacy Association)
Yanas, Chris (Teaching Hospitals of Texas)
For:
Fredriksen, Amanda (AARP)
On:
Durden, Veronda (Department of Aging and Disability Services (DADS))
Registering, but not testifying:
For:
Gadberry, Gavin (Texas Health Care Association)
Gutierrez, Michael (Self)
Willmann, James (Texas Nurses Association)
Registering, but not testifying:
For:
DeLaGarza, Veronica (American Diabetes Association)
Dimitry, Lauren (Texans Care for Children)
Finch, Dan (Texas Medical Association)
Gutierrez, Michael (Self)
Mitias, Marcus (Texas Health Resources)
Perkins, Vicki (CHRISTUS Santa Rosa Health System)
Rose, Denise (Texas Hospital Association)
Sabo, Jason (United Ways of Texas)
Smith, Andrew (University Health System)
Wilson, Stacy (Central Health & Community Care)
Yanas, Chris (Teaching Hospitals of Texas)
On:
Fasko, Roger (Texas Department of State Health Services)
6


BTC Hop
Current BTC Price: US $
On this day ...
1 year ago
2 years ago
3 years ago
4 years ago
5 years ago
The price of 1 BTC was
US $


|
App Engine Python SDK
v1.6.9 rev.445
The Python runtime is available as an experimental Preview feature.
|
Public Member Functions | |
| def | __init__ |
| def | decode |
| def | __eq__ |
| def | __hash__ |
| def | copy_to |
| def | to_mime_message |
| def | __str__ |
| def | __repr__ |
Public Attributes | |
| payload | |
| charset | |
| encoding | |
Wrapper for a payload that contains encoding information. When an email is received, it is usually encoded using a certain character set, and then possibly further encoded using a transfer encoding in that character set. Most of the times, it is possible to decode the encoded payload as is, however, in the case where it is not, the encoded payload and the original encoding information must be preserved. Attributes: payload: The original encoded payload. charset: The character set of the encoded payload. None means use default character set. encoding: The transfer encoding of the encoded payload. None means content not encoded.
| def google.appengine.api.mail.EncodedPayload.__init__ | ( | self, | |
| payload, | |||
charset = None , |
|||
encoding = None |
|||
| ) |
Constructor. Args: payload: Maps to attribute of the same name. charset: Maps to attribute of the same name. encoding: Maps to attribute of the same name.
| def google.appengine.api.mail.EncodedPayload.__eq__ | ( | self, | |
| other | |||
| ) |
Equality operator. Args: other: The other EncodedPayload object to compare with. Comparison with other object types are not implemented. Returns: True of payload and encodings are equal, else false.
| def google.appengine.api.mail.EncodedPayload.__hash__ | ( | self | ) |
Hash an EncodedPayload.
| def google.appengine.api.mail.EncodedPayload.__repr__ | ( | self | ) |
Basic representation of encoded payload. Returns: Payload itself is represented by its hash value.
| def google.appengine.api.mail.EncodedPayload.__str__ | ( | self | ) |
String representation of encoded message. Returns: MIME encoded representation of encoded payload as an independent message.
| def google.appengine.api.mail.EncodedPayload.copy_to | ( | self, | |
| mime_message | |||
| ) |
Copy contents to MIME message payload. If no content transfer encoding is specified, and the character set does not equal the over-all message encoding, the payload will be base64 encoded. Args: mime_message: Message instance to receive new payload.
| def google.appengine.api.mail.EncodedPayload.decode | ( | self | ) |
Attempt to decode the encoded data. Attempt to use pythons codec library to decode the payload. All exceptions are passed back to the caller. Returns: Binary or unicode version of payload content.
| def google.appengine.api.mail.EncodedPayload.to_mime_message | ( | self | ) |
Convert to MIME message. Returns: MIME message instance of payload.