| Total net profit | -69.32 | Gross profit | 65.38 | Gross loss | -134.7 |
| Profit factor | 0.49 | Expected payoff | -0.37 | ||
| Absolute drawdown | -70.19 | Maximal drawdown (%) | 71.51 (5417.42%) | ||
| Total trades | 187 | Profit trades (% of total) | 70 (37.43%) | Loss trades (% of total) | 117 (62.57%) |
| Long positions (won %) | 91 (41.76%) | Short positions (won %) | 96 (33.33%) | ||
| Largest | profit trade | 2.24 | loss trade | -3.01 | |
| Average | profit trade | 0.93 | loss trade | -1.15 | |
| Minimum | profit trade | 0.04 | loss trade | -0.07 | |
| Maximum | take profit in pips | 32.4 | stop loss in pips | -35.4 | |
| Average | take profit in pips | 11.1 | stop loss in pips | -12.7 | |
| Minimum | take profit in pips | -4.0 | stop loss in pips | -4.5 | |
| Maximum | Reward-Risk | 5.9 | Duration in minutes | 3590 | |
| Average | Reward-Risk | 1.1 | Duration in minutes | 218.1 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 0 | |
| Maximum | consecutive wins (profit in money) | 4.0 (4.58) | consecutive losses (loss in money) | 17.0 (-15.74) | |
| Average | consecutive wins | 1.0 | consecutive losses | 3.0 |
| Total net profit | -36.49 | Gross profit | 31.46 | Gross loss | -67.95 |
| Profit factor | 0.46 | Expected payoff | -0.4 | ||
| Absolute drawdown | -36.49 | Maximal drawdown (%) | 37.58 (3447.71%) | ||
| Total trades | 91 | Profit trades (% of total) | 38 (41.76%) | Loss trades (% of total) | 53 (58.24%) |
| Largest | profit trade | 2.06 | loss trade | -2.82 | |
| Average | profit trade | 0.83 | loss trade | -1.28 | |
| Minimum | profit trade | 0.04 | loss trade | -0.08 | |
| Maximum | take profit in pips | 25.9 | stop loss in pips | -34.2 | |
| Average | take profit in pips | 9.7 | stop loss in pips | -13.9 | |
| Minimum | take profit in pips | -4.0 | stop loss in pips | -6.0 | |
| Maximum | Reward-Risk | 3.1 | Duration in minutes | 3590.0 | |
| Average | Reward-Risk | 0.8 | Duration in minutes | 213.2 | |
| Minimum | Reward-Risk | 0.0 | Duration in minutes | 0.0 | |
| Maximum | consecutive wins (profit in money) | 5.0 (3.37) | consecutive losses (loss in money) | 7.0 (-10.03) | |
| Average | consecutive wins | 2.0 | consecutive losses | 3.0 |
| Total net profit | -32.83 | Gross profit | 33.92 | Gross loss | -66.75 |
| Profit factor | 0.51 | Expected payoff | -0.34 | ||
| Absolute drawdown | -34.34 | Maximal drawdown (%) | 34.57 (15030.43%) | ||
| Total trades | 96 | Profit trades (% of total) | 32 (33.33%) | Loss trades (% of total) | 64 (66.67%) |
| Largest | profit trade | 2.24 | loss trade | -3.01 | |
| Average | profit trade | 1.06 | loss trade | -1.04 | |
| Minimum | profit trade | 0.14 | loss trade | -0.07 | |
| Maximum | take profit in pips | 32.4 | stop loss in pips | -35.4 | |
| Average | take profit in pips | 12.4 | stop loss in pips | -11.7 | |
| Minimum | take profit in pips | -1.1 | stop loss in pips | -4.5 | |
| Maximum | Reward-Risk | 5.9 | Duration in minutes | 3250.0 | |
| Average | Reward-Risk | 1.3 | Duration in minutes | 222.8 | |
| Minimum | Reward-Risk | Duration in minutes | 0.0 | ||
| Maximum | consecutive wins (profit in money) | 4.0 (5.75) | consecutive losses (loss in money) | 19.0 (-18.67) | |
| Average | consecutive wins | 1.0 | consecutive losses | 2.0 |


This package was debianized by Anthony Towns on
Tue, 10 Aug 1999 12:06:33 +1000.
It was downloaded from ftp://ftp.porcupine.org/pub/security/index.html
and includes ftp://ftp.porcupine.org/pub/security/tcpd-blacklist-patch
Copyright updated on 2001/06/08 from
ftp://ftp.porcupine.org/pub/security/tcp_wrappers_license
Upstream Author: Wietse Venema
Copyright:
/************************************************************************
* Copyright 1995 by Wietse Venema. All rights reserved. Some individual
* files may be covered by other copyrights.
*
* This material was originally written and compiled by Wietse Venema at
* Eindhoven University of Technology, The Netherlands, in 1990, 1991,
* 1992, 1993, 1994 and 1995.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that this entire copyright notice
* is duplicated in all such copies.
*
* This software is provided "as is" and without any expressed or implied
* warranties, including, without limitation, the implied warranties of
* merchantibility and fitness for any particular purpose.
************************************************************************/
Thanks to Wietse Venema for his permission to include the tcp_wrapper
package in the Debian Distribution.


13 Healthy Pork Recipes You Can Just Throw in the Instant Pot, and Your Job Is Done
by Caitlyn FitzpatrickWe don't know about you, but we're mildly obsessed with the Instant Pot. Not only can it make healthy meals fast, but it also usually does so with only minimal effort on your part, and really, is there anything better? That said, if you're running low on ideas, and you want to eat literally anything except chicken . . . again, you'll want to dig right into these healthy pork recipes. From classic pork chops to deconstructed egg rolls, these meals are packed with nutrients and flavor — just beware that scrolling through them has been known to cause extreme hunger.
1 Pork-Stuffed Cabbage
Wrap ground pork and riced cauliflower in white cabbage leaves, then pop the rolls into the Instant Pot along with a homemade tomato sauce. The result is delicious!
Get the recipe: pork-stuffed cabbage
2 Rosemary Pork Ragu With Cauliflower "Polenta"
The pork shoulder in this ragu is so tender, you'll want to go back for seconds — and thanks to the creamy cauliflower, you can feel pretty good doing exactly that.
Get the recipe: rosemary pork ragu with cauliflower "polenta"
3 Pulled Pork
This healthier pulled pork is ideal for meal prep. Make a batch on Sunday, then add it to dishes like a veggie-filled grain bowl or whole-wheat tacos throughout the week.
Get the recipe: pulled pork
4 Creole Chicken and Sausage
Try serving this protein-packed, New Orleans-inspired dish over brown rice or another whole grain for a flavorful, complete meal everyone will love.
Get the recipe: creole chicken and sausage
5 Black-Eyed Peas With Shredded Pork Roast
If you love the classic combination of pork and beans, you'll want to dig right into this version, made with black-eyed peas, onion, celery, and peppers. You don't even have to soak the beans first when you cook them in the Instant Pot.
Get the recipe: black-eyed peas with shredded pork roast
6 Bacon and Sausage Zuppa Toscana
The Instant Pot is clutch for making flavorful soups fast, and this hearty recipe is no exception — you'll have it on the table in 20 minutes.
Get the recipe: bacon and sausage zuppa toscana
7 Pork Chops
There's nothing boring about these pork chops, which are cooked with a homemade spice rub and topped with a whiskey-infused gravy. Serve them with a heaping plate of green vegetables.
Get the recipe: pork chops
8 Coconut Pork
Give shredded pork a fresh twist with coconut and a number of spices, including turmeric, ginger, and cardamom. To make this recipe healthier, swap out the white rice for a whole grain.
Get the recipe: coconut pork
9 Lentil Soup With Sausage and Kale
This filling soup, made with Italian sausage, lentils, onion, celery, kale, and garlic, is comfort food at its finest.
Get the recipe: lentil soup with sausage and kale
10 Pork Egg Roll Bowl
Who needs to order takeout when you can get the same delicious flavors from your Instant Pot in 15 minutes? That's right, just 15 minutes.
Get the recipe: pork egg roll bowl
11 Pork Carnitas
While tacos are always an option, you could also serve this keto- and Paleo-approved recipe over a heaping bowl of greens, along with your favorite toppings.
Get the recipe: pork carnitas
12 Sticky Chinese BBQ Pork Lettuce Wraps
Lettuce wraps can be surprisingly filling, especially when paired with tender, juicy pork rib loin, red cabbage, and chopped nuts. To keep the dish as healthy as possible, watch for added sugars when buying barbecue sauce.
Get the recipe: sticky Chinese BBQ pork lettuce wraps
13 Pork Posole
After you've seared the pork and sautéed it in onions and garlic, you'll simply add the rest of the ingredients for this Mexican soup to the Instant Pot, seal the lid, and let them cook for an hour. Before serving, add healthy toppings such as avocado, lime, and cabbage.
Get the recipe: pork posole


Post Office
问题描述 :
There is a straight highway with villages alongside the highway. The highway is represented as an integer axis, and the position of each village is identified with a single integer coordinate. There are no two villages in the same position. The distance between two positions is the absolute value of the difference of their integer coordinates.
Post offices will be built in some, but not necessarily all of the villages. A village and the post office in it have the same position. For building the post offices, their positions should be chosen so that the total sum of all distances between each village and its nearest post office is minimum.
You are to write a program which, given the positions of the villages and the number of post offices, computes the least possible sum of all distances between each village and its nearest post office.
输入:
Your program is to read from standard input. The first line contains two integers: the first is the number of villages V, 1 <= V <= 300, and the second is the number of post offices P, 1 <= P <= 30, P <= V. The second line contains V integers in increasing order. These V integers are the positions of the villages. For each position X it holds that 1 <= X <= 10000.
输出:
The first line contains one integer S, which is the sum of all distances between each village and its nearest post office.
样例输入:
10 5 1 2 3 6 7 9 11 22 44 50
样例输出:
9
解题代码:
/* @author: */ import java.util.Scanner; import java.util.Arrays; public class Main{ static int num[]=new int[302]; static int s[][]=new int[302][302]; static void cost(int n){ int i,j,k; for(i=1;i< n;i++){ for(k=i+1; k <= n; k ++){ int mid=(i+k)/2; for(j=i;j< mid;j++) s[i][k]+=num[mid]-num[j]; for(j=mid+1;j<=k;j++) s[i][k]+=num[j]-num[mid]; } } } public static void main(String args[]) { Scanner sc=new Scanner(System.in); int f[][]=new int[302][32]; int n,k; int i,j,m; for(i=0;i< s.length;i++) Arrays.fill(s[i],0); for(i=0;i< f.length;i++) Arrays.fill(f[i],1000000); n=sc.nextInt(); m=sc.nextInt(); for(i=1;i<=n;i++) num[i]=sc.nextInt(); cost(n); for(i=1;i<=n;i++) f[i][1]=s[1][i]; for(k=2;k<=m;k++){ for(i=1;i<=n;i++){ for(j=1;j< i;j++) if(f[j][k-1]+s[j+1][i]< f[i][k]) f[i][k]=f[j][k-1]+s[j+1][i]; } } System.out.printf("%d\n",f[n][m]); } }
(adsbygoogle = window.adsbygoogle || []).push({});
5.1处，反了；“上一个操作符的优先级比操作符ch的优先级大，或栈是空的就入栈。”如代码所述，应为“上一个操作符的优先级比操作符ch的优先级小，或栈是空的就入栈。”
不同的编译器，printf(),执行的顺序不同，所以结果也就不同，建议不要那么写
简洁的代码
3，求得所有的为的总和sum—->所有数的总和
printf( "Not Possible" );—->printf("impossible");
对吗？
学习了！！
没错的，九度OJ也有此题
这怎么用Catalan数啊？求解答！
int L[m+1][n+1];这样定义出错，这个在gcc上可以编译通过 在VS上不行 应该改为new 或者vector


Processed foods: Medicine or toxin? - The Nation Newspaper
Sir: Most times we are compelled to take a closer look at what we consume only when we are ill or when the body begins to show strange symptoms. Sometimes, we adhere strictly to taking some special kinds of foods when we are medically advised to do so. However, we may be doing our bodies a huge disservice if we fail to monitor what we take in as food on regular basis. Our daily diet can either be medicine or toxin to our bodies; it all depends on the composition of that food we take.
Any food product that is chemically treated in order to stay preserved is regarded as a processed food item. It becomes processed when preserved with chemicals so as to increase its shelf-life.
Food and health specialists world over have strongly and unequivocally advocated the consumption of fewer processed food if it cannot be totally avoided. Sometimes, even foods labeled as ‘natural’ or ‘organic’ must have been processed. So, it may, in reality, not be possible to completely eliminate processed food from our diets, but we can minimize how much of it we consume. Reason is not far-fetched, it is because the freshness and nutrients of some food items are locked and retained only when preserved. Consuming ultra-processed foods leads to serious health issues like obesity, heart diseases, diabetes and high blood pressure. Also, preservatives, chemical additives and other artificial ingredients present in processed foods alter the functional activities of that food in the body.
Read Also: Why 100% fruit juice is important in your diet
Although processed foods are easier and quicker to digest than the unprocessed ones due to lower calories in the former, nutritionists still recommend natural fresh meals as our diets. Processing of foods may improve or preserve the nutritional values that could be lost during storage, but it may at the same time damage the nutrients too. However, these benefits are no justifications to settle for processed foods in one’s diet because the health risks and disadvantages far outweigh the advantages.
We all can lead a healthy lifestyle and keep medical ailments at bay if the body is fed with more of unprocessed, natural or fresh foods. Consumption of highly processed foods denies the body of some vitamins and sensitive nutrients needed for proper body functioning and good health. Precautionary or anticipatory measures taken now to regulate the intake of processed foods will go a long way to prevent us from health risks that may arise from consuming these foods.
Consumption of diets high in processed contents may lead to life-threatening health consequences and will ultimately hasten one’s journey to the grave. When we religiously and consciously monitor what we consume, we make our diets work for us and not against us.
Kayode Ojewale,
<EMAIL_ADDRESS>.


px
| Title | Year | Score | Genre | Director |
| Sharknado | 2013 | 3.6 | Horror/Sci-Fi | Anthony C Ferrante |
| Watchmen | 2009 | 7.6 | Action/Drama/Mytery | Zack Snyder |
| Shawshank Redemption | 1994 | 9.3 | Drama | Frank Darabont |
| Manos: The Hands of Fate | 1966 | 1.9 | Horror | Harold P. Warren |
| Robocop | 1987 | 7.5 | Action/Crime/Sci-Fi | Paul Verhoeven |
| Ghostbusters | 1984 | 7.8 | Comedy/Fantasy | Ivan Reitman |
| Rear Window | 1954 | 8.6 | Mystery/Thriller | Alfred Hitchcock |
| Metropolis | 1927 | 8.4 | Drama/Sci-Fi | Fritz Lang |
| Road House | 1989 | 6.1 | Action/Thriller | Roady Herrington |
| Fight Club | 1998 | 8.9 | Drama | David Fincher |
| The Conjuring | 2013 | 7.8 | Horror/Thriller | James Wan |
| Aliens | 1986 | 8.5 | Action/Adventure/Sci-Fi | Ridley Scott |
| The Dark Knight | 2008 | 9.0 | Action/Crime/Drama | Christopher Nolan |


Trump ordered that disgraced Navy SEAL Eddie Gallagher keep his ‘Trident’ insignia
by Bruce GoldingPresident Trump ordered that embattled Navy SEAL Eddie Gallagher keep his coveted “Trident” insignia that signifies membership in the elite special operations unit, Defense Secretary Mark Esper said Monday.
“I spoke with the president on Sunday,” Esper told reporters at the Pentagon, according to Reuters.
“He gave me the order that Eddie Gallagher will retain his Trident pin.”
The revelation marked the latest twist in the controversy surrounding Gallagher, who had faced a disciplinary hearing set to begin next month until Esper fired Navy Secretary Richard Spencer on Sunday.
Gallagher, 40, was demoted following his July conviction for posing with the corpse of an ISIS fighter in Iraq in 2017. He was acquitted of more serious charges, including premeditated murder in the death of the 17-year-old militant.
Earlier this month, Trump granted Gallagher clemency that restored him to the rank of chief petty officer, but the Navy responded by scheduling the hearing at which he faced being expelled from the SEALs.


Contribute resources to DesktopHero.
Uploading assets has changed, use the new uploader.
{{ error|safe }}


Docs : SDK : getDatabases
The Get Databases API lets you retrieve all of your user's databases, or retrieve a single database.
userbase.getDatabases().then((databases) => {
// databases result available
}).catch((e) => console.error(e))
Parameters [optional]
-
databaseName [string | Len: 1-100 | optional] - The database name to retrieve.
-
databaseId [string | optional] - The database's unique identifier to retrieve.
Result
- databases [array]
- databaseName [string] - The database's name.
- databaseId [string] - The database's unique identifier.
- isOwner [boolean] - Whether or not the user owns the database.
- readOnly [boolean] - Whether or not the user has read only permissions to the database.
- resharingAllowed [boolean] - Whether or not the user has permission to reshare the database.
- encryptionMode [string] - The database's encryption mode. Can either be 'end-to-end' or 'server-side'. See the FAQ for more on the encryption modes.
- receivedFromUsername [string | optional] - The username of the user who shared the database with the user. Only provided if the user received access to the database from another user via shareDatabase.
- users [array] - The other users who have access to this database.
- username [string] - The user's username.
- isOwner [boolean] - Whether or not the user owns the database.
- readOnly [boolean] - Whether or not the user has read only permissions to the database.
- resharingAllowed [boolean] - Whether or not the user has permission to reshare the database.
- receivedFromUsername [string | optional] - The username of the user who shared the database with the user. Only provided if the user received access to the database from another user via shareDatabase.
- verified [boolean] - Whether or not the user has been verified via verifyUser.
Errors
- UserNotSignedIn
- TooManyRequests
- ServiceUnavailable


Contact page
Main Navigation
Navigation links
Home
Our beer
Shop
Responsibility
Contact
let's
Contact Us
Address
1535 Awesome Avenue,
London, Ontario,
N5X 4R1
Phone
226 555 3333
E-mail
<EMAIL_ADDRESS>Send Message
Full Name
E-mail
Type your message


The gem basically does three things:
require 'lotus/validations'
class Person
include Lotus::Validations
attribute :name, presence: true
end
person = Person.new(name: 'Luca')
person.name # => "Luca"
person.email # => raises NoMethodError
class Person
include Lotus::Validations
attribute :fave_food, format: /cake/
end
person = Person.new(fave_food: 'tears')
person.valid?
# => false
person = Person.new(fave_food: 'tears')
person.valid?
# => false
person.errors.inspect
# => "#<Lotus::Validations::Errors:0x00000001351140 @errors={
# :fave_food=>[
# #<Lotus::Validations::Error:0x00000001350fd8
# @attribute_name=\"fave_food\",
# @validation=:format,
# @expected=/cake/,
# @actual=\"tears\",
# @namespace=nil,
# @attribute=\"fave_food\">]
# }>"
You can specify a type on your attribute definitions. Assignments will then be coerced, if possible.
class Person
include Lotus::Validations
attribute :fav_number, type: Integer
# Or: Array BigDecimal Boolean Date DateTime
# Float Hash Integer Pathname Set
# String Symbol Time
end
person = Person.new(fav_number: '23')
person.valid?
person.fav_number # => 23
You can define your own coercion classes.
class FavNumber
# The constructor of a class used for type coercion must
# have an arity of one.
def initialize(number)
@number = number
end
end
class Person
include Lotus::Validations
attribute :fav_number, type: FavNumber
end
person = Person.new(fav_number: '23')
person.fav_number # => #<FavNumber:0x007ffc644bba00 @number="23">
Validations are triggered when you invoke #valid?
There are a bunch of them.
attribute :terms_of_service, acceptance: true
An attribute is valid if its value is truthy.
attribute :password, confirmation: true
An attribute is valid if its value and the value of a corresponding attribute is valid.
By convention, if you have a password attribute, the validation looks for password_confirmation.
attribute :pleasant_languages, exclusion: ['c', 'prolog']
Returns false if the attribute value is `#include?`ed in the exclusion list.
attribute :age, inclusion: 18..99
The opposite of exclusion.
attribute :name, format: /\A[a-zA-Z]+\z/
An attribute is valid if it matches the given regex.
attribute :name, presence: true
An attribute is valid if present.
Returns false even if attribute explicitly set to `nil`
“Showing up is 80 percent of life.” - Woody Allen
attribute :ssn, size: 11 # exact match
attribute :password, size: 8..64 # range
An attribute is valid if... uh.
This gem doesn't actually support uniqueness validations.
Any code-level uniqueness test will be subject to race conditions.
“Your relational database is designed to enforce data integrity; let it.”
Unfortunately there's not much to say about this gem.
It's pretty small, does one thing, and seems to do it pretty well.
If I had more time, I would have liked to try defining custom validations.


What is Trump doing now?
He is doing nothing
We have breaking news articles today that have the president of the united states meeting with the newly elected president of Egypt. the meeting went horribly and all in attendance where shell shocked by how these two ruthless dictators got along. we have no hope but for r2d2 to com and save us. these are just random lines in a long paragraph.
Some more news about the meeting, it seems as though there was one person in attendance, it was ivanka trump. She seems to be mind controlling her father, no one took notice as they didn't see any harm in that. the one news site that was scared for their lives was CNN. At the CNN offices they seem to be at defcon 2 general wolf blitzer is now leading the fight at the front lines with his colonel anderson cooper trying to assult the state department.


STRATEGIC DESIGNER. MAKE IT PRETTY. MAKE IT SMART.
Various digital projects worked on while working for UNL EdMedia. Wide range of clients and topics.
EXPERIENCE GAINED ||| Gained experience with taking a developer view and building an interface around that functionality. ||| Focused on user experience to ensure efficient products. ||| Branded images with consistent style across websites to ensure a pleasant and smooth user experience.


Man pleads guilty to trafficking Galapagos tortoise
MIAMI (AP) - A Nevada man has been sentenced in South Florida to 120 days of home confinement and ordered to pay a $7,000 fine for trafficking an endangered Galapagos tortoise.
Court records show that 33-year-old Alan Wheelock was sentenced in Miami federal court Thursday after pleading guilty to violations of the Endangered Species Act.
Prosecutors say a K-9 officer with the Florida Fish and Wildlife Conservation Commission alerted to a parcel at a Miami-area FedEx store in August 2018. The package being shipped to Wheelock in Las Vegas contained a juvenile Galapagos tortoise.
Investigators say Wheelock found a licensed breeder online in central Florida who would only sell to out-of-state customers with the proper permits. Wheelock paid a cousin who was living in Florida, Maurico Perez, to buy the reptile and then send it to Wheelock.
Perez had also been charged but died before his case could go to trial.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


TableTest source - for you programmers
who want to see what it can do.Introduction
I wanted to write a program one night; one of those programs to help organize something; you know the type, limited database access and a half baked GUI; so I sat down and thought about the design, poked about a bit and realized I didn't have any JDBC implementation to work with. Now I had heard of free JDBC implementations that I could download somewhere but I thought this application was so limited I wouldn't bother with that, I'd just write a simple flat file table class to store data and give me some limited query capability. I'd done it before, in C and C++ so I figured I'd be able to crank it out in a couple of hours and I would have it for next time. I started looking at the java.io classes as I kicked the file format around and asked my self one simple question that sent me on an extended journey, "Wonder if I could store a Java object in a table column?"
I spotted the object input and output streams and decided to try to write rows of objects to the disk instead of rows of primitive data types, like you would see in most relational databases. It didn't take long to realize that I would loose some flexibility because the objects are of arbitrary length. I wouldn't be able to open for read/write and update a record on the fly because the object I was writing could change in length and I could overwrite the row that existed further down in the file. I was using Java serialization to do this.
Now those of you that fully understand Java serialization must bare with me because this was a road of discovery for me that I intend to share with those willing to read about it. So contain your snickers and wait a while, you might learn something too.
I decided that since I couldn't write to a previously written file I wouldn't even try. I'd just open an output file and copy the input file to it as I go; when I reached a record that I wanted to update I'd write the updated data. I would not be able to back up, but you can't back up using JDBC either. If the table was closed early I'd just copy the rest of the data from the input to the output.
I know it sounds terribly inefficient, but I didn't care, I didn't intend to deal with huge amounts of data anyway. In the past, I wrote such programs on lesser machines; say 386 PCs with 8 meg. of RAM, so I was pleasantly surprised at the performance, although I didn't really understand why it was slow, when it was slow. It was slow when the stream was opened and closed to the point that I thought something was wrong, but I pressed on anyway.
Before too long I had 80% of the Table class you see can see in the sources. Like I said before, I had written similar programs in the past. I wrote a C++ implementation using templates that was so fast I tied it directly to a combo box. I'd like to say I intended to implement the JDBC interfaces but that fact is I stole the method prototypes from MFC implementations years ago. What did they do before cursors? Beats me.
If you look at the Table source you will see that I write and read an Object array. That's it, pure and simple. The ramifications of this are that I cannot write primitive data types. The object i/o streams have special methods for the primitives. This meant that I couldn't just write an array, I'd have to jump through all kinds of hoops trying to figure out the data type of the column and call the right method on the stream. I didn't like not being able to write primitives but I bit the bullet and pressed on knowing that I'd have to covert the primitives to their java.lang equivalent before writing them to the database. This was hard for me, being a hacker that came up from assembly and C, but I didn't want to spend too much time on the storage and get on with the application. Ironically, I can't even remember what kind of application I started out to write.
In the past I had created another class called Join and one called Filter. When you called moveNext on the Join it would call moveNext on two tables and make sure one of the columns from each was equal. When you called moveNext on the filter it would compare a field in the table to some value and call moveNext on the 'next object' until the comparison was true. I say the 'next object' because it could call to a Join, a Table or another Filter. With this you could set up a fairly complex relationship in code.
I implemented the classes pretty much as described but at some point I hit a snag. The Join could move through two tables, and I could hook up another Join but a field from the third table had to be involved in the Join, not just the Filter. Any way I massaged the connections between the classes I couldn't come up with a combination that I couldn't break by thinking of some other SQL statement. I had become more affluent in SQL since the earlier designs. I decided to scrap the Filter and Join and went to bed.
I don't know about you but I tend to dwell on things. In my spare time riding to work or at lunch I'd find my self trying to work out a way to put together a set of objects to form a working query. I also realized that my past designs lacked the ability to guarantee that every possible combination of rows across several tables would get hit. The more I pondered the more I thought about SQL statements. I began to break the statement up into clauses, working mostly with selects. The 'from' piece was what I was missing. I didn't need to try to combine the from with the join. The from guaranteed every possible combination of rows and the join was a decision maker. The functionality I had called Filter was really a where, and it too was a decision maker. In fact, if you can have a where that compares too fields, instead of just a field to a value, you don't even need a join.
At this point, if you are not familiar with SQL I've lost you. Sorry, I'm not going to explain SQL, I'm by no means an authority. If you are familiar with SQL you may be thinking "duh." Sorry, I've never had any formal education on SQL, I just piece it together in Java code and throw it at big servers for a living.
The next night I proceeded to code a From class that you could add tables to and call moveNext to reach every combination of rows. But at the same time I had taken on a new tact. I appreciated the natural language comfort zone that SQL had given me. I began to think that I might eventually write an SQL parser that would splice together objects to form a running query.
Normal people, when confronted with the prospect of coding an SQL parser, would be inclined to raise an eyebrow and say "Your kidding, right?" Better men than I have toiled for years creating SQL parsers. Well I'm no different, I hated the prospect of wading through all the possible permutations of SQL that might be thrown at a parser, so I made a resolution. I would parse the SQL I wanted to parse the way I wanted to parse it, and if it did not comply with the latest SQL standard, so be it. It would be close enough that anyone with experience with SQL could adjust.
Before I started in on the parser however, I needed classes that I could hook together to form a working query. I knew I needed a From class but it didn't do any of the decision making that takes place in the SQL where clause. If you break the where clause down, it is a list of conditions specifically grouped and compared to one another by more conditions. A condition being true or false, some conditions getting data from the database and others making logical comparisons of the former, all of which boil down to one condition asserting whether or not to stop on the row combination.
To set up a running query I save a list of fields, setup a From and process the where clause into a tree of conditions. The final condition is the one at the base of the tree.
Consider the following SQL statement:
To run the query I move through the From stopping on record combinations that satisfy the final condition. I then copy the listed fields of these records to the RecordSet.
You may have noticed, the design (or lack thereof) actually evaluates the conditions in reverse order from how they were written. It also does not allow for grouping of conditions with parentheses. For these reasons I know this area of the functionality will need to be revisited later. For now, I'm tired of parsing text.
I guess I should explain how the Where works. The class has 3 different constructors, one that compares to fields, one that compares a field to a value on the right and one that compares a value on the left to a field. When the Where is asked to compare() it tries to use the new JDK 1.2 interface java.lang.Comparable to make a decision. If one of the objects does not implement Comparable and the comparison type is for equality, it will fall back on java.lang.Object.equals(); short of that it throws an exception. So, if you want to write your own classes and store them in the database, and you want to make fancy comparisons in your SQL, you have to implement Comparable. It's not a stretch, there's only one method.
The And class just does a logical and of two Conditions. Same for the Or. I need to add an Xor, Like, and In to my library of Conditions. So far I support the following SQL syntax. I expect you to be able to figure out where all the spaces go. Lets keep it all lower case for now (the mainframers boo). Also, you must type out fully qualified field names in the form table.field even if there is only one table in the statement (the crowd hisses).
select [ first | unique ] field1 [ , field2 ... ]
from table1 [ , table2 ... ]
[ where field $ field | field $ value | value $ field
[ and | or field $ field | field $ value | value $ field ... ] ]
insert into table1 [ , table2 ... ]
( field [ , field2 ... ] )
values ( value1 [ , value2 ... ] )
delete [ first ]
from table1 [ , table2 ... ]
[ where field $ field | field $ value | value $ field
[ and | or field $ field | field $ value | value $ field ... ] ]
update [ first ] table1
set field1 = value1 [ , field2 = value2 ... ]
[ where field $ field | field $ value | value $ field
[ and | or field $ field | field $ value | value $ field ... ] ]
That's it for now, I know it's weak. I fully intend to add object oriented extensions to the SQL. Everything is in place to make this happen, I just have to make time before my evaluation period for JPadPro runs out. At the time I wrote this I had 9 more days.
At that point I was particularly pleased with how quickly I was able to crank out a functional database engine. Granted, it's probably not very fast compared to professional database engines, but it's useful, object oriented, and free! So, in my zest, I began thinking about other features of professional systems, which might include parameters in the SQL, transactions that can be rolled back and multi-user client/server connectivity. I decided it should be fairly easy to add transactions if I could roll-back statements. Parameters... just kind of happened. The client/server piece adds another level of thread management, locking and performance issues, maybe someday I'll tackle it.
Of my four Statement derived classes three of them actually modified the database. If I gave these three classes rollback capability I would be able to setup lists of modifying statements that could be rolled back if something should go wrong. I grouped these statements under a ModifyingStatement parent. I would maintain the list in a new class called Transaction. The Transaction would be able to mamage a list of ModifyingStatements, execute itself by calling execute on the ModifyingStatements and it would be able to rollback any changes on any ModifyingStatements it had executed so far.
The class hierarchy for Statements was shaping up like this:
All concrete statements implement build() and all concrete ModifyingStatements implement execute() and rollback(). Other nice features of the hierarchy is that all Statements can write themselves to disk, they all benefit from a protected processWhere() function and various other mechanisms that marry the statements to their parents. Among these inherited mechanisms was one that turned out to be very simple and very powerful, the ability to set any value of a built Statement. I'm jumping ahead, let me back up.
The "building" of the Statement is the process of creating a running query as described earlier. Once a statement is built it is either executed or asked for a record set, at that point the tables are actually opened and the data is processed. The building of the statement is a process that only needs to happen once unless the essence of the SQL changes. You are probably wondering what the word "essence" has to do with SQL. Nothing, I just couldn't think of a better word.
Consider this statement, as it stands it probably won't work, but it can still be built because it is syntactically correct. If we could substitute our own values for the literal values we could use it over and over.
As the Update is built the literal values are stored in a vector in the Statement class. The values are used when the update is executed, so we can change them between executes and use the update statement over and over without rebuilding it. To identify the value to change count the literal values, starting at 0, from left to right, top to bottom. The value substitution is built into the Statement class so it works for all Statements. I like to call it Parameters +.
All Statements are Serializable. You could save a statement that has not been built but that doesn't really accomplish much. The trick is saving processor time by saving all of your statements after they are built and loading them up at run time. By the way, there is nothing to stop you from saving pre-built statements in a table. I plan to create an application that will allow developers to create and maintain SQL statements outside of their programs.
I mentioned the rollBack() method earlier hinting at the ability to perform transactions. A transaction is a list of Statements that are related such that one is not worth doing if all can't be done. Since a select doesn't modify anything, it's use would be irrelevant to the outcome of subsequent statements, it really doesn't need to be part of a transaction. So only ModifyingStatements would ever be grouped into a transaction, and would need the ability to correct themselves. I created a Transaction class that ModifyingStatements could be added to and executed as a group. The statements must be built, Transaction will not build them. It executes the statements in the order they were added to the transaction, tracking there success.
Transaction implementations I have dealt with in the past usually had an execute, commit and roll-back capability. I never really understood why you would ever execute a transaction successfully and then not commit it. What is commit for? Anyway, I decided to take advantage of the language's strong exception handling capability and throw exceptions from the execute that could be used to decide what to do next. I figured if a transaction went amiss, you would want to do one of three things:
I also considered a ModifyingStatement that modified no rows a failure, however since a transaction can be continued you could catch the exception and go on. If you decide to roll-back each statement's rollBack() method is called in reverse order (back-roll?) Last but not least, since a Transaction is a list of Statements, and Statements are Serializable, why not be able serialize a Transaction as well?
The roll-back capability is different for each type of ModifyingStatement. You can look at the code to see how I did it. I take advantage of a row id that is automatically generated by the table. This id is guaranteed to be unique, identifying the row. The Table also has a package level access method that will move the cursor to a row id, however it will not back up to move-to the row. Package level access to moveTo() getRecord() and setRecord() were put in place specifically to speed up roll-back capability.


(College Edition, v0.7)
Note: indicate stage or progress for task, if in-process
+1 - Going to all classes and doing all assignments
+1 - Starting work on assignments early (soon after presented)
+1 - Completing assignment before they are due
+1 - Exploring the subject matter beyond requirement for the assignment
Note that this only a template for Engagement scoring. The specific items contributing to the score may vary depending on context, but should correspond to items under "What it means" in the FKA Overview.
Value (0-4):
0 - Not started
1-2 - Behind or missing interim work, no chance to make it up on time
2-3 - Behind or missing interim work, possible to make it up on time
4 - On schedule to complete, all interim work done
0 - Not completed, no credit
1-2 - Partial completion, partial credit
2-3 - Not completed on time, but made up the work afterward
4 - Work completed on time
Value (0-4):
0-4 corresponding to letter grade (F through A)
+1 bonus if both Learning Score and Engagement Score are 4 (max Achievement Score is still 4)
Possible +/-1 adjustment, depending on difficulty of the task (e.g. advanced-level or gravy class)
Mandatory -1 penalty if Completion Score < 4
Note: as a rule, Achievement Score (adjusted) cannot be higher than Completion Score
Value (0-4):
0 - No retention of knowledge or process (even if completing the work)
1-2 - Not full scope or depth in understanding the subject
3 - Full scope and depth of understanding
4 - Beyond required scope and/or depth of understanding
Note: as a guideline, Learning Score generally cannot be higher than Engagement Score
Value (0-4):
Failing to Complete
Achievement Score of 0 or 1
☐
Getting By
Achievement Score of 2 or 3
☐
Doing Well
Achievement Score of 4
Learning Score of 1 or 2
Note: Engagement Score must be 3 or 4, otherwise level is relegated to Basic Qualification
☐
Kicking Ass!
Achievement Score of 4
Learning Score of 3 or 4
Note: Engagement Score must be 3 or 4, otherwise level is relegated to Strong Qualification
☐


XXFIRSTNAME XXLASTNAME in his address to the Saints remarked that he was determined to have order in all things and righteousness should be practiced in this land that we had come here according to the direction and counsel of Bro. XXFIRSTNAME XXLASTNAME before his death and that he would still have been alive if the Twelve had been in XXCITY when he recrossed the river from XXCITY to XXCITY. He spoke of the Saints being driven from place to place, and said the only way XXLASTNAME, XXLASTNAME, XXLASTNAME, XXLASTNAME, and all the leaders of the mob could have been saved in the day of the Lord Jesus would have been to have come forward voluntarily and let their head been cut off and let their blood run upon the ground and gone up as a smoking incense before the heavens as an atonement but now they will be eternally damned. Also said all the governors--and presidents of the U.S.A. had rejected all our petitions from first to last, that when the Saints were driven from XXSTATE and perished as it were on the prairies, then President Polk sends for a draft of XXNUMBER men to go into the Army. What for? That they might be wasted entirely wasted away as a people.


Hollow Man (2000) Elisabeth Shue, Kevin Bacon, Josh Brolin, Kim Dickens, Greg Grunberg, Joey Slotnick, Mary Randle, William Devane. Music by Jerry Goldsmith. Screenplay by Andrew Marlowe, story by Gary Scott Thompson and Marlowe. Directed by Paul Verhoeven. 110 minutes. Rated R, 3 stars (out of five stars)
Review by Ed Johnson-Ott, NUVO Newsweekly www.nuvo.com Archive reviews at http://us.imdb.com/ReviewsBy?Edward+Johnson-Ott To receive reviews by e-mail at no charge, send subscription requests to<EMAIL_ADDRESS>or e-mail<EMAIL_ADDRESS>with the word "subscribe" in the subject line.
In the opening moments of "Hollow Man," a rat scurries across the floor, then hesitates as it hears ominous growling sounds. Suddenly, the twitching rodent is hoisted into the air by an unseen force and we watch as something takes a huge chunk out of the hovering animal's body. The scene is lurid, technically stunning and quite viscous, perfectly setting the tone for what is to follow.
"Hollow Man," a thriller about an invisible maniac, is a fascinating piece of work despite its flat, obvious script; thanks to top-notch special effects and the skewed perspective of director Paul Verhoeven, the Dutch filmmaker who brought the world "Robocop," "Total Recall," "Basic Instinct," "Showgirls" and "Starship Troopers." Verhoeven is to directing what Spinal Tap is to rock and roll, enthusiastically turning the control knob up to 11 while assaulting viewers with heavy-handed bursts of sex and violence. As with most Verhoeven films, "Hollow Man" is simultaneously campy and creepy. This is a guilty pleasure with the accent on guilty. After the closing credits, I felt an intense need to wash my hands.
Kevin Bacon plays Sebastian Caine, a cocky, but brilliant scientist trying to perfect an invisibility formula for his backers at the Pentagon. SPOILER ALERT: THE FOLLOWING REVEALS BASIC PLOT POINTS. After a successful experiment with a gorilla, Caine decides to skip protocol and try the process on a human being, using himself as the guinea pig. Without the knowledge of government liaison Dr. Arthur Kramer (William Devane), Caine convinces his teammates – ex-girlfriend Linda McCay (Elisabeth Shue), stud muffin Matt Kensington (Josh Brolin) and casualties-waiting-to-happen Sarah Kennedy (Kim Dickens), Carter Abbey (Greg Grunberg), Frank Chase (Joey Slotnick) and Janice Walton (Mary Randle) – to strap him to the table and inject the serum into his veins.
Within seconds, Caine is writhing in agony as he slowly begins to disappear, a layer at a time, in a spectacular visual sequence. His skin fades first, followed by muscles, internal organs and finally his skeleton. After recovering from the trauma, Caine joins his comrades in celebrating their success, but their giddiness turns to dread when attempts to return him to visibility utterly fail.
While his fellow scientists struggle to find a restoration formula, Caine's behavior takes a drastic downward turn. He begins indulging his secret urges; copping a feel from a sleeping female teammate and spying on Linda in the sack. When he makes a trip to the apartment of a voluptuous neighbor, things take a violent, deeply disturbing turn. Whether the serum or his own megalomaniacal tendencies trigger the change is uncertain, but his crew must face the fact that their leader has gone crazy, and their lives may be forfeit if they can't find a way to stop him. END SPOILER ALERT.
Story-wise, "Hollow Man" is just a formula horror flick. In fact, Andrew Marlowe's screenplay fumbles obvious opportunities by mostly confining Caine to the group compound instead of unleashing him on the public. Character development is sketchy at best; the supporting players are one-note and Caine merely slides from being a relatively sophisticated creep to becoming a much more dangerous one.
While the press notes for the film feature impressive quotes about the corrupting nature of power, the movie never addresses them. Make no mistake, "Hollow Man" is simply an exercise in special effects and grisly cheap thrills. But the special effects are knockouts and it's fascinating to watch Paul Verhoeven (to paraphrase Monty Burns from "The Simpsons") wallow in his own directorial crapulence.
Verhoeven grew up in occupied Holland during World War II and witnessed the ravages of war from a child's point of view. During a recent interview, he acknowledged (almost grudgingly) that there is goodness in the human spirit, but made it clear that his interest lies in the dark side of souls.
Boy howdy! Verhoeven movies are veritable orgies of violence and sex, with glossy settings and superhuman characters that treat the death of loved ones lightly (when a scientist's body falls out of a locker, her friends shriek in surprise, but display no sadness whatsoever) and handle grave wounds with remarkable ease (one character sticks her fingers deeply into the stomach wound of a colleague, announces "It didn't cut any organs," and patches him up with duct tape (!!); then the pair continue their very strenuous adventures).
It would be easy to mock or dismiss Verhoeven for the cheesy overkill. In fact, I've done so before, particularly with "Showgirls" and "Starship Troopers." But this time, I kept thinking of that little boy in Holland, forced by German troops to look at piles of dead bodies on the streets. All grown up, he copes with the memories by creating violent films where sexy, extraordinarily powerful humans fight operatic battles against the forces of evil. My interpretation could be wrong, of course, but it sure makes comic book gore-porn like "Hollow Man" a lot more interesting.
© 2000 Ed Johnson-Ott
Paul Verhoeven: The Un-Hollow Man
By Ed Johnson-Ott
As reporters gathered in Los Angeles to interview the cast and crew of the invisible man thriller, "Hollow Man," the topic repeatedly drifted from the spectacular special effects in the movie to the mindset and behavior of its director, Paul Verhoeven. The 62-year-old Dutch filmmaker, best known to American audiences for "Robocop," "Total Recall," "Basic Instinct," "Showgirls" and "Starship Troopers," is dismissed by detractors as a temperamental auteur preoccupied with juvenile displays of lurid sex and graphic violence.
But Verhoeven enjoys a fiercely devoted fan base as well and has received many positive notices from critics, although some are admittedly of the backhanded quality. For example, Andrew O'Hehir of Salon Magazine recently comparing the director favorably to Alfred Hitchcock, stating "Like Hitchcock, Verhoeven is an ice-veined European expatriate whose sleek filmmaking style cannot conceal the fact that he's not in control of his own obsessions. For both directors, male sexual anxiety is at the center of their aesthetic universe, and both have been accused of hating women."
"Hollow Man" star Elisabeth Shue went into the film aware of Verhoeven's reputation, but left the set impressed. "I had a great experience with him," she told me. "He was very supportive of me. He's very demanding and I think some people misinterpret that side of him. But for me, he was demanding in a way that made me feel challenged to do really good work. He's very passionate and I respect that he cares a lot about the films he's done. I would much rather deal with somebody who was mad about their film than somebody who could care less."
Kevin Bacon, the Hollow Man himself, said of Verhoeven, "He has a mercurial kind of personality, he explodes at any minute. He's incredibly passionate. He has a tremendous kind of single-mindedness when it comes to the execution of this movie, to getting the job done. Being a director is a consumptive kind of job ands it requires an amazing amount of focus, which he has. But the people who work with him work with him a lot. The crew, for instance, has done picture after picture with him. He is devoted to them and they are just as devoted to him. Throughout the process, we eventually were able to establish the relationship I like to have with a director, where they respect my opinion about things, about character. I loved working with him."
When Paul Verhoeven finally entered the room for his interview, the energy was palpable.  Verhoeven is quite comfortable holding court, with his booming voice punching every sentence.
The first thing we had to do was clear up an earlier conversation. While promoting "Starship Troopers" with phone interviews three years ago, Verhoeven had insisted to me that the wildly over-the-top feature was absolutely not a satire. It was simply a war movie set in outer space. The only satire was in the film's news broadcasts and propaganda ads, he told me at the time. Now, he wanted to amend his remarks.
"I think there was a misunderstanding," he said. "What I meant was that during the war scenes I am not commenting on it in any, let's say, ironic or satirical way. I'm just basically showing them as they are; they are shot like real war scenes.  That was the idea.  What is this society and why did I participate in this? Why did I go along with these people?'"
Fair enough. But why do his films always seem to end up dealing with man at his most grim, with death and destruction everywhere? He answered fast, obviously having dealt with this question many times before. "Am I fascinated with showing the dark side? I would say so. In American culture, there is always a tendency to look on the positive side, which is great, but I'm not sure that's the full truth. I think there are a lot of things hidden under the surface in this country, in any country, and sometimes it breaks to the surface. The shadow is there. We all have to deal with the shadow in everybody. How strong and how dominant that will be, probably that's a character thing or an environmental thing. But I've always been interested in that aspect of humanity because you see it displayed in the universe or on Earth in such a brutal way. Especially in the century we just left – I think 70 million people got killed, you know? More than anything you could ever imagine."
Verhoeven spent several minutes rambling on about the brutality of nature, often referring to an article he had read about two galaxies colliding with each other, and the indescribable destruction that must result from such an occurrence. He seemed simultaneously horrified and thrilled while describing the cataclysm. Eventually, his fever pitch softened and he dropped from the nether reaches of space to his own childhood. There was no hint of self-pity as he spoke. He simply got a little quieter.
"I grew up in occupied Holland," he said, "and I saw… there were a lot of people got killed by bombing, or resisters that were shot on the streets by Germans. I was about seven when the war stopped. When I was five, six, seven, we lived in the Hague and were constantly bombed there, not by the Germans, but by the English. Our house was about a mile from the rocket launching pads, where they launched the B-1's and B-2's to England, and the English and Americans were constantly bombing that area. The area around us, with the exception of the street we lived on and a couple of others, were completely destroyed. I remember the flames and the people being killed. And the Germans – one evening I remember walking with my father and suddenly we were held by Germans and they said 'You cannot walk there, you have to walk here and look at something.' And we walked there and saw 20 people they had taken out of prison and shot. They put them against the wall and shot them and made sure that everyone going home passed them. Dead bodies there, yeah, I remember all that. So you may be more optimistic than I am."
Ladies and gentlemen, meet Paul Verhoeven.
© 2000 Ed Johnson-Ott
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


A C D E F G I K L M N O P R S T U W misc
| acbind-method | Assays objects |
| arbind-method | Assays objects |
| assay | SummarizedExperiment objects |
| assay-method | SummarizedExperiment objects |
| assay<- | SummarizedExperiment objects |
| assay<--method | SummarizedExperiment objects |
| assayNames | SummarizedExperiment objects |
| assayNames-method | SummarizedExperiment objects |
| assayNames<- | SummarizedExperiment objects |
| assayNames<--method | SummarizedExperiment objects |
| Assays | Assays objects |
| assays | SummarizedExperiment objects |
| Assays-class | Assays objects |
| assays-method | SummarizedExperiment objects |
| assays<- | SummarizedExperiment objects |
| assays<--method | SummarizedExperiment objects |
| AssaysInEnv | Assays objects |
| AssaysInEnv-class | Assays objects |
| cbind-method | Assays objects |
| cbind-method | SummarizedExperiment objects |
| class:Assays | Assays objects |
| class:AssaysInEnv | Assays objects |
| class:RangedSummarizedExperiment | RangedSummarizedExperiment objects |
| class:ShallowData | Assays objects |
| class:ShallowSimpleListAssays | Assays objects |
| class:SimpleAssays | Assays objects |
| class:SummarizedExperiment | SummarizedExperiment objects |
| coerce-method | Assays objects |
| coerce-method | RangedSummarizedExperiment objects |
| coerce-method | Make a RangedSummarizedExperiment object from an ExpressionSet and vice-versa |
| colData | SummarizedExperiment objects |
| colData-method | SummarizedExperiment objects |
| colData<- | SummarizedExperiment objects |
| colData<--method | SummarizedExperiment objects |
| Compare-method | RangedSummarizedExperiment objects |
| coverage | Coverage of a RangedSummarizedExperiment object |
| coverage-method | Coverage of a RangedSummarizedExperiment object |
| coverage-methods | Coverage of a RangedSummarizedExperiment object |
| dim-method | Assays objects |
| dim-method | SummarizedExperiment objects |
| dimnames-method | RangedSummarizedExperiment objects |
| dimnames-method | SummarizedExperiment objects |
| dimnames<--method | RangedSummarizedExperiment objects |
| dimnames<--method | SummarizedExperiment objects |
| disjointBins | Inter range transformations of a RangedSummarizedExperiment object |
| disjointBins-method | Inter range transformations of a RangedSummarizedExperiment object |
| distance | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| distance-method | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| distanceToNearest | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| distanceToNearest-method | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| duplicated-method | RangedSummarizedExperiment objects |
| elementMetadata-method | RangedSummarizedExperiment objects |
| elementMetadata<--method | RangedSummarizedExperiment objects |
| end-method | RangedSummarizedExperiment objects |
| end<--method | RangedSummarizedExperiment objects |
| extractROWS-method | SummarizedExperiment objects |
| findOverlaps | Finding overlapping ranges in RangedSummarizedExperiment objects |
| findOverlaps-method | Finding overlapping ranges in RangedSummarizedExperiment objects |
| findOverlaps-methods | Finding overlapping ranges in RangedSummarizedExperiment objects |
| flank | Intra range transformations of a RangedSummarizedExperiment object |
| flank-method | Intra range transformations of a RangedSummarizedExperiment object |
| follow | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| follow-method | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| geneRangeMapper | Make a RangedSummarizedExperiment object from an ExpressionSet and vice-versa |
| getListElement-method | Assays objects |
| granges-method | RangedSummarizedExperiment objects |
| inter-range-methods | Inter range transformations of a RangedSummarizedExperiment object |
| intra-range-methods | Intra range transformations of a RangedSummarizedExperiment object |
| is.unsorted-method | RangedSummarizedExperiment objects |
| isDisjoint | Inter range transformations of a RangedSummarizedExperiment object |
| isDisjoint-method | Inter range transformations of a RangedSummarizedExperiment object |
| KALLISTO_ASSAYS | Input kallisto or kallisto bootstrap results. |
| length-method | Assays objects |
| length-method | SummarizedExperiment objects |
| makeSummarizedExperimentFromDataFrame | Make a RangedSummarizedExperiment from a data.frame or DataFrame |
| makeSummarizedExperimentFromExpressionSet | Make a RangedSummarizedExperiment object from an ExpressionSet and vice-versa |
| makeSummarizedExperimentFromLoom | Make a SummarizedExperiment from a '.loom' hdf5 file |
| mcols-method | RangedSummarizedExperiment objects |
| mcols<--method | RangedSummarizedExperiment objects |
| naiveRangeMapper | Make a RangedSummarizedExperiment object from an ExpressionSet and vice-versa |
| names-method | Assays objects |
| names-method | RangedSummarizedExperiment objects |
| names-method | SummarizedExperiment objects |
| names<--method | Assays objects |
| names<--method | RangedSummarizedExperiment objects |
| names<--method | SummarizedExperiment objects |
| narrow | Intra range transformations of a RangedSummarizedExperiment object |
| narrow-method | Intra range transformations of a RangedSummarizedExperiment object |
| nearest | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| nearest-method | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| nearest-methods | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| order-method | RangedSummarizedExperiment objects |
| pcompare-method | RangedSummarizedExperiment objects |
| precede | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| precede-method | Finding the nearest range neighbor in RangedSummarizedExperiment objects |
| probeRangeMapper | Make a RangedSummarizedExperiment object from an ExpressionSet and vice-versa |
| promoters | Intra range transformations of a RangedSummarizedExperiment object |
| promoters-method | Intra range transformations of a RangedSummarizedExperiment object |
| RangedSummarizedExperiment | RangedSummarizedExperiment objects |
| RangedSummarizedExperiment-class | RangedSummarizedExperiment objects |
| ranges-method | RangedSummarizedExperiment objects |
| ranges<--method | RangedSummarizedExperiment objects |
| rank-method | RangedSummarizedExperiment objects |
| rbind-method | Assays objects |
| rbind-method | SummarizedExperiment objects |
| readKallisto | Input kallisto or kallisto bootstrap results. |
| readKallistoBootstrap | Input kallisto or kallisto bootstrap results. |
| realize-method | SummarizedExperiment objects |
| replaceROWS-method | SummarizedExperiment objects |
| resize | Intra range transformations of a RangedSummarizedExperiment object |
| resize-method | Intra range transformations of a RangedSummarizedExperiment object |
| restrict | Intra range transformations of a RangedSummarizedExperiment object |
| restrict-method | Intra range transformations of a RangedSummarizedExperiment object |
| rowData | SummarizedExperiment objects |
| rowData-method | SummarizedExperiment objects |
| rowData<- | SummarizedExperiment objects |
| rowData<--method | SummarizedExperiment objects |
| rowRanges | RangedSummarizedExperiment objects |
| rowRanges-method | RangedSummarizedExperiment objects |
| rowRanges<- | RangedSummarizedExperiment objects |
| rowRanges<--method | RangedSummarizedExperiment objects |
| seqinfo-method | RangedSummarizedExperiment objects |
| seqinfo<--method | RangedSummarizedExperiment objects |
| seqnames-method | RangedSummarizedExperiment objects |
| setListElement-method | Assays objects |
| ShallowData | Assays objects |
| ShallowData-class | Assays objects |
| ShallowSimpleListAssays | Assays objects |
| ShallowSimpleListAssays-class | Assays objects |
| shift | Intra range transformations of a RangedSummarizedExperiment object |
| shift-method | Intra range transformations of a RangedSummarizedExperiment object |
| show-method | SummarizedExperiment objects |
| SimpleAssays | Assays objects |
| SimpleAssays-class | Assays objects |
| sort-method | RangedSummarizedExperiment objects |
| split-method | RangedSummarizedExperiment objects |
| start-method | RangedSummarizedExperiment objects |
| start<--method | RangedSummarizedExperiment objects |
| strand-method | RangedSummarizedExperiment objects |
| strand<--method | RangedSummarizedExperiment objects |
| subset-method | RangedSummarizedExperiment objects |
| subset-method | SummarizedExperiment objects |
| SummarizedExperiment | RangedSummarizedExperiment objects |
| SummarizedExperiment-class | SummarizedExperiment objects |
| trim-method | Intra range transformations of a RangedSummarizedExperiment object |
| updateObject-method | Assays objects |
| updateObject-method | RangedSummarizedExperiment objects |
| updateObject-method | SummarizedExperiment objects |
| width-method | RangedSummarizedExperiment objects |
| width<--method | RangedSummarizedExperiment objects |
| $-method | SummarizedExperiment objects |
| $<--method | SummarizedExperiment objects |
| [-method | Assays objects |
| [-method | SummarizedExperiment objects |
| [<--method | Assays objects |
| [<--method | SummarizedExperiment objects |
| [[-method | SummarizedExperiment objects |
| [[<--method | SummarizedExperiment objects |


Home
Home
Trending
All Controversial topics
Analytics
Dribbble
CodePen
Twitter
LinkedIn
Instagram
Debate Central
This is our YHack 2020 project
Mission statement: ,....s.adjasdjlkakhdjhjskaj


Upload Files
SCM Export
Kantech Export
Consolodation
Unknown Cards
In Kantech, not in SCM
| Card Number | Name | SCM Member | Action |
|---|---|---|---|
| 01:00046 | ALEX MAXWELL | Alexander Maxwell | Approve / unapprove / reject |
In SCM, not in Kantech
| Name | Kantech Member | Card Number | Action |
|---|---|---|---|
| New Guy | New Guy | 01:00046 | Approve / unapprove / reject |
Access Level Changes
| Name | Old Access Level | New Access Level | Action |
|---|---|---|---|
| Heather Drugge | Standard | Exec | Approve / unapprove / reject |
Updates
SCM
| Name | Removed Cards | Added Cards |
|---|---|---|
| Heather Drugge | 01:00003, 01:00009, 01:00010 | 5A:21111, 5A:21112, 80:09886, 80:09887, 80:09890 |
Kantech
| UserID | Name | Card info 1 | Card info 2 | Card info 3 | Access Level |
|---|---|---|---|---|---|
| 01:00022 | Heather Drugge | Daniel Campbell | Executive |


--- layout: page title: About header-img: "img/about-bg.png" ---
Full Time Cybersecurity Professional | Part Time Software Engineer in the Making


Gadgets Insurance
Gadgets insurance, although unpopular, is an insurance cover
designed for your gadgets, ranging from laptops to cameras and
other high-end devices.
Auto Insurance
Auto insurance is a contract between you and the insurance
company that protects you against financial loss in the event of
an accident or theft. In exchange for your paying a premium, the
insurance company agrees to pay your losses as outlined in your
policy. (An insurance premium is the amount of money an
individual or business pays for an insurance policy.)


Gateway
BOT
24-Mar-19 02:11 PM
[telegram] <Ash_Cool> thanks just checked the platform. So swaps are only with KMD pair (re @Regnar: If you don't want to use an exchange and don't mind paying the fee, (probably quicker if you are facing deposit delays) you can use this link. Komodo uses an affiliate program with coinswitch and receives 50% of the fee to use towards marketing and development costs.
https://exchange.komodoplatform.com/)
Now convert Komodo with ease, using CoinSwitch powered exchange.
[telegram] <Ash_Cool> what if i need to swap from btc to ltc. is it possible in komodo platform
[telegram] <Regnar> That is just an affiliate program between Komodo and Coinswitch. It isn't Komodos DEX. (re @Ash_Cool: thanks just checked the platform. So swaps are only with KMD pair)
[telegram] <Regnar> Yes. You would use Komodos actual DEX, I only posted that because people asked how to buy KMD and the newest version of Komodo DEX isn't fully released (re @Ash_Cool: what if i need to swap from btc to ltc. is it possible in komodo platform)
[telegram] <Ash_Cool> got it. what is the speed in Komodo DEX in terms of TPS please
[telegram] <Regnar> You may be able to get into the Mobile DEX beta but I think the beta group is full up right now
[telegram] <Regnar> Komodo DEX is all powered by Atomic swaps, so order matching and fulfillment is very fast in the new engine, each coin is still subject to those coin's blockchain rules. So you swapping KMD for ZILLA will be very fast to receive confirmations, KMD to BTC will still have to wait for BTC confirmations, however the coins will appear in your wallet immediately as they wait for confirmations (re @Ash_Cool: got it. what is the speed in Komodo DEX in terms of TPS please)
[telegram] <Regnar> So as you trade it will be swapped immediately, but because it's on chain you still should be aware of confirmations.
[telegram] <David> how bad I see it for komodo, the new crypto that will come out of binance's hand is going to eat the market. a pity on the part of komodo
[telegram] <Vollka_Racho> Why are you on this channel anyway? (re @David: how bad I see it for komodo, the new crypto that will come out of binance's hand is going to eat the market. a pity on the part of komodo)
[telegram] <PTYX11> WTF are you talking about (re @David: how bad I see it for komodo, the new crypto that will come out of binance's hand is going to eat the market. a pity on the part of komodo)
[telegram] <Vollka_Racho> He should switch to politics!!! FUD Maker No.1
[telegram] <David> I was expecting some novelty in escalation and in the end another crypto has come to take away the protagonism. Both presume that komodo has reached 20k TX and wants to climb to 1M to stay alone in smoke
[telegram] <PTYX11> You're just typing words (re @David: I was expecting some novelty in escalation and in the end another crypto has come to take away the protagonism. Both presume that komodo has reached 20k TX and wants to climb to 1M to stay alone in smoke)
[telegram] <David> Komodo does the same, just write words and still not advance
[telegram] <Vollka_Racho> Are you even invested in Komodo? Then you'd rather sell (re @David: I was expecting some novelty in escalation and in the end another crypto has come to take away the protagonism. Both presume that komodo has reached 20k TX and wants to climb to 1M to stay alone in smoke)
[telegram] <PTYX11> You must be looking at the wrong github repo (re @David: Komodo does the same, just write words and still not advance)


No objective selected.
Setup: {{ objective.setup }}
Special Rule: {{ objective.specialRule }}
End of Round: {{ objective.roundEnd }}
End of Game: {{ objective.gameEnd }}
Score: {{ objective.points }}


| Name | Value | Description |
|---|---|---|
| key | String (required) | API access key |
| routeID | String | A two-digit value describing a valid route in the Metro system. |
| destination | String | A value describing a valid route endpoint in the Metro system. When a destination is included in the query, the results will be limited to the stops that are headed in that direction. |
https://api.smsmybus.com/v1/getstops?key=xxx&routeID=03
Retrieve all stops for route 3 headed toward ETP:
https://api.smsmybus.com/v1/getstops?key=xxx&routeID=03&destination=ETP
No assumptions should be made about the order of the stops in the response.
{
"status" : "0",
"timestamp" : "12:38pm",
"routeID" : "03",
"stops" : [
{
"stopID" : "1391",
"intersection" : "Atwood & Ohio",
"latitude" : "43.0937715",
"longitude" : "-89.3467281",
"destination" : "ETP",
},
{
"stopID" : "1961",
"intersection" : "Atwood & Rusk",
"latitude" : "43.0924936",
"longitude" : "-89.3528187",
"destination" : "ETP",
},
...
...
],
}
{
"status" : "-1",
"description" : "Invalid request parameters",
}
| Name | Value | Description |
|---|---|---|
| key | String (required) | API access key |
| lat | String (required) | A geo-spaticial figure describing the latitude coordinate for a Metro stop. |
| lon | String (required) | A geo-spaticial figure describing the longitude coordinate for a Metro stop. |
| radius | Integer | The radius around the lat and lon parameters where you would like to search. The radius is in feet and must be less than 500. It defaults to 500. |
| routeID (not currently supported) | String | A two-digit value describing a valid route in the Metro system. If a routeID is provided, the results will be limited to stops that service that route. |
| destination | String | A value describing a valid route endpoint in the Metro system. When a destination is included in the query, the results will be limited to the stops that are headed in that direction. |
https://api.smsmybus.com/v1/getnearbystops?key=xxx&lat=43.0733673&lon=-89.4014633&routeID=03
No assumptions should be made about the order of the stops in the response.
{
"status" : "0",
"timestamp" : "12:38pm",
"stop" : [
{
"stopID" : "1391",
"intersection" : "Atwood & Ohio",
"latitude" : "43.0937715",
"longitude" : "-89.3467281",
"destination" : "ETP",
},
{
"stopID" : "1961",
"intersection" : "Atwood & Rusk",
"latitude" : "43.0924936",
"longitude" : "-89.3528187",
"destination" : "ETP",
},
...
...
],
}
{
"status" : "-1",
"description" : "Invalid request parameters",
}
| Name | Value | Description |
|---|---|---|
| key | String (required) | API access key |
| stopID | String (required) | A four-digit value describing a valid stop ID in the Metro system. |
https://api.smsmybus.com/v1/getstoplocation?key=xxx&stopID=1391
{
"status" : "0",
"timestamp" : "12:38pm",
"stopID" : "1391",
"intersection" : "Atwood & Ohio",
"latitude" : "43.0937715",
"longitude" : "-89.3467281",
}
{
"status" : "-1",
"description" : "Invalid request parameters",
}
| Name | Value | Description |
|---|---|---|
| key | String (required) | API access key |
| routeID | String (required) | A two-digit value describing a valid route in the Metro system. If a routeID is provided, the results will be limited to stops that service that route. |
| direction | String (not yet supported) |
A value describing a valid route endpoint in the Metro system. When a destination is included in the query, the results will be limited to the stops that are headed in that direction. |
| vehicleID | String (not yet supported) |
A three-digit value describing a valid vehicle (bus) in the Metro system and currently driving a route. The vehicleID filter will only be applied to the specified routeID parameter. |
https://api.smsmybus.com/v1/getvehicles?key=xxx&routeID=03
Retrieve all details for vehicle 991 of route 3:
https://api.smsmybus.com/v1/getvehicles?key=xxx&routeID=03&vehicleID=991
No assumptions should be made about the order of the stops in the response.
{
"status" : "0",
"count" : "3",
"routeID" : "07",
"timestamp" : "1/15/2012 10:13:44 AM",
"vehicles" : [
{
"lat": "43.0863712",
"lon": "-89.3601702",
"direction": "WTP",
"nextStop": "Jenifer & Ingersoll",
"vehicleID": "943",
"wifiAccess": false,
"bikeRack": false,
"wheelChairLift": false,
"wheelChairAccessible": false
},
{
"lat": "43.0535659",
"lon": "-89.4430852",
"direction": "WTP",
"nextStop": "West Transfer Point",
"vehicleID": "937"
"wifiAccess": false,
"bikeRack": false,
"wheelChairLift": false,
"wheelChairAccessible": false
},
{
"lat": "43.0742107",
"lon": "-89.3826771",
"direction": "ETP",
"nextStop": "Jenifer & Ingersoll",
"vehicleID": "015",
"wifiAccess": false,
"bikeRack": false,
"wheelChairLift": false,
"wheelChairAccessible": false
}
]
}
{
"status" : "-1",
"description" : "Invalid request parameters",
}


Only change the name (tightest constraints)
Change the name and kind of armour
Randomize the level and modify attributes
Add some random attributes and change the artifact quality
Your Armour


Source code for torch
r"""
The torch package contains data structures for multi-dimensional
tensors and defines mathematical operations over these tensors.
Additionally, it provides many utilities for efficient serializing of
Tensors and arbitrary types, and other useful utilities.
It has a CUDA counterpart, that enables you to run your tensor computations
on an NVIDIA GPU with compute capability >= 3.0.
"""
import os
import sys
import platform
import textwrap
import ctypes
import warnings
if sys.version_info < (3,):
raise Exception("Python 2 has reached end-of-life and is no longer supported by PyTorch.")
from ._utils import _import_dotted_name
from ._utils_internal import get_file_path, prepare_multiprocessing_environment, \
USE_RTLD_GLOBAL_WITH_LIBTORCH, USE_GLOBAL_DEPS
# TODO(torch_deploy) figure out how to freeze version.py in fbcode build
if sys.executable == 'torch_deploy':
__version__ = "torch-deploy-1.8"
else:
from .version import __version__ as __version__
from ._six import string_classes as _string_classes
from typing import Set, Type, TYPE_CHECKING
__all__ = [
'typename', 'is_tensor', 'is_storage', 'set_default_tensor_type',
'set_rng_state', 'get_rng_state', 'manual_seed', 'initial_seed', 'seed',
'save', 'load', 'set_printoptions', 'chunk', 'split', 'stack', 'matmul',
'no_grad', 'enable_grad', 'rand', 'randn',
'DoubleStorage', 'FloatStorage', 'LongStorage', 'IntStorage',
'ShortStorage', 'CharStorage', 'ByteStorage', 'BoolStorage',
'DoubleTensor', 'FloatTensor', 'LongTensor', 'IntTensor',
'ShortTensor', 'CharTensor', 'ByteTensor', 'BoolTensor', 'Tensor',
'lobpcg', 'use_deterministic_algorithms', 'set_deterministic',
'are_deterministic_algorithms_enabled', 'is_deterministic'
]
################################################################################
# Load the extension module
################################################################################
if sys.platform == 'win32':
pfiles_path = os.getenv('ProgramFiles', 'C:\\Program Files')
py_dll_path = os.path.join(sys.exec_prefix, 'Library', 'bin')
th_dll_path = os.path.join(os.path.dirname(__file__), 'lib')
# When users create a virtualenv that inherits the base environment,
# we will need to add the corresponding library directory into
# DLL search directories. Otherwise, it will rely on `PATH` which
# is dependent on user settings.
if sys.exec_prefix != sys.base_exec_prefix:
base_py_dll_path = os.path.join(sys.base_exec_prefix, 'Library', 'bin')
else:
base_py_dll_path = ''
dll_paths = list(filter(os.path.exists, [th_dll_path, py_dll_path, base_py_dll_path]))
if all([not os.path.exists(os.path.join(p, 'nvToolsExt64_1.dll')) for p in dll_paths]):
nvtoolsext_dll_path = os.path.join(
os.getenv('NVTOOLSEXT_PATH', os.path.join(pfiles_path, 'NVIDIA Corporation', 'NvToolsExt')), 'bin', 'x64')
else:
nvtoolsext_dll_path = ''
from .version import cuda as cuda_version
import glob
if cuda_version and all([not glob.glob(os.path.join(p, 'cudart64*.dll')) for p in dll_paths]):
cuda_version_1 = cuda_version.replace('.', '_')
cuda_path_var = 'CUDA_PATH_V' + cuda_version_1
default_path = os.path.join(pfiles_path, 'NVIDIA GPU Computing Toolkit', 'CUDA', 'v' + cuda_version)
cuda_path = os.path.join(os.getenv(cuda_path_var, default_path), 'bin')
else:
cuda_path = ''
dll_paths.extend(filter(os.path.exists, [nvtoolsext_dll_path, cuda_path]))
kernel32 = ctypes.WinDLL('kernel32.dll', use_last_error=True)
with_load_library_flags = hasattr(kernel32, 'AddDllDirectory')
prev_error_mode = kernel32.SetErrorMode(0x0001)
kernel32.LoadLibraryW.restype = ctypes.c_void_p
if with_load_library_flags:
kernel32.AddDllDirectory.restype = ctypes.c_void_p
kernel32.LoadLibraryExW.restype = ctypes.c_void_p
for dll_path in dll_paths:
if sys.version_info >= (3, 8):
os.add_dll_directory(dll_path)
elif with_load_library_flags:
res = kernel32.AddDllDirectory(dll_path)
if res is None:
err = ctypes.WinError(ctypes.get_last_error())
err.strerror += f' Error adding "{dll_path}" to the DLL directories.'
raise err
try:
ctypes.CDLL('vcruntime140.dll')
ctypes.CDLL('msvcp140.dll')
if cuda_version not in ('9.2', '10.0'):
ctypes.CDLL('vcruntime140_1.dll')
except OSError:
print('''Microsoft Visual C++ Redistributable is not installed, this may lead to the DLL load failure.
It can be downloaded at https://aka.ms/vs/16/release/vc_redist.x64.exe''')
dlls = glob.glob(os.path.join(th_dll_path, '*.dll'))
path_patched = False
for dll in dlls:
is_loaded = False
if with_load_library_flags:
res = kernel32.LoadLibraryExW(dll, None, 0x00001100)
last_error = ctypes.get_last_error()
if res is None and last_error != 126:
err = ctypes.WinError(last_error)
err.strerror += f' Error loading "{dll}" or one of its dependencies.'
raise err
elif res is not None:
is_loaded = True
if not is_loaded:
if not path_patched:
os.environ['PATH'] = ';'.join(dll_paths + [os.environ['PATH']])
path_patched = True
res = kernel32.LoadLibraryW(dll)
if res is None:
err = ctypes.WinError(ctypes.get_last_error())
err.strerror += f' Error loading "{dll}" or one of its dependencies.'
raise err
kernel32.SetErrorMode(prev_error_mode)
# See Note [Global dependencies]
def _load_global_deps():
if platform.system() == 'Windows' or sys.executable == 'torch_deploy':
return
lib_name = 'libtorch_global_deps' + ('.dylib' if platform.system() == 'Darwin' else '.so')
here = os.path.abspath(__file__)
lib_path = os.path.join(os.path.dirname(here), 'lib', lib_name)
ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL)
if (USE_RTLD_GLOBAL_WITH_LIBTORCH or os.getenv('TORCH_USE_RTLD_GLOBAL')) and \
platform.system() != 'Windows':
# Do it the hard way. You might want to load libtorch with RTLD_GLOBAL in a
# few circumstances:
#
# 1. You're in a build environment (e.g., fbcode) where
# libtorch_global_deps is not available, but you still need
# to get mkl to link in with RTLD_GLOBAL or it will just
# not work.
#
# 2. You're trying to run PyTorch under UBSAN and you need
# to ensure that only one copy of libtorch is loaded, so
# vptr checks work properly
#
# If you're using this setting, you must verify that all the libraries
# you load consistently use the same libstdc++, or you may have
# mysterious segfaults.
#
import os as _dl_flags
if not hasattr(_dl_flags, 'RTLD_GLOBAL') or not hasattr(_dl_flags, 'RTLD_LAZY'):
try:
# next try if DLFCN exists
import DLFCN as _dl_flags # type: ignore
except ImportError:
# as a last attempt, use compile-time constants
import torch._dl as _dl_flags # type: ignore
old_flags = sys.getdlopenflags()
sys.setdlopenflags(_dl_flags.RTLD_GLOBAL | _dl_flags.RTLD_LAZY)
from torch._C import *
sys.setdlopenflags(old_flags)
del old_flags
del _dl_flags
else:
# Easy way. You want this most of the time, because it will prevent
# C++ symbols from libtorch clobbering C++ symbols from other
# libraries, leading to mysterious segfaults.
#
# If building in an environment where libtorch_global_deps isn't available
# like parts of fbsource, but where RTLD_GLOBAL causes segfaults, you will
# want USE_RTLD_GLOBAL_WITH_LIBTORCH = False and USE_GLOBAL_DEPS = False
#
# See Note [Global dependencies]
if USE_GLOBAL_DEPS:
_load_global_deps()
from torch._C import *
# Appease the type checker; ordinarily this binding is inserted by the
# torch._C module initialization code in C
if TYPE_CHECKING:
import torch._C as _C
# Check to see if we can load C extensions, and if not provide some guidance
# on what the problem might be.
try:
# _initExtension is chosen (arbitrarily) as a sentinel.
from torch._C import _initExtension
except ImportError:
import torch._C as _C_for_compiled_check
# The __file__ check only works for Python 3.7 and above.
if sys.version_info >= (3, 7) and _C_for_compiled_check.__file__ is None:
raise ImportError(textwrap.dedent('''
Failed to load PyTorch C extensions:
It appears that PyTorch has loaded the `torch/_C` folder
of the PyTorch repository rather than the C extensions which
are expected in the `torch._C` namespace. This can occur when
using the `install` workflow. e.g.
$ python setup.py install && python -c "import torch"
This error can generally be solved using the `develop` workflow
$ python setup.py develop && python -c "import torch" # This should succeed
or by running Python from a different directory.
''').strip()) from None
raise # If __file__ is not None the cause is unknown, so just re-raise.
__all__ += [name for name in dir(_C)
if name[0] != '_' and
not name.endswith('Base')]
################################################################################
# Define basic utilities
################################################################################
def typename(o):
if isinstance(o, torch.Tensor):
return o.type()
module = ''
class_name = ''
if hasattr(o, '__module__') and o.__module__ != 'builtins' \
and o.__module__ != '__builtin__' and o.__module__ is not None:
module = o.__module__ + '.'
if hasattr(o, '__qualname__'):
class_name = o.__qualname__
elif hasattr(o, '__name__'):
class_name = o.__name__
else:
class_name = o.__class__.__name__
return module + class_name
[docs]def is_tensor(obj):
r"""Returns True if `obj` is a PyTorch tensor.
Note that this function is simply doing ``isinstance(obj, Tensor)``.
Using that ``isinstance`` check is better for typechecking with mypy,
and more explicit - so it's recommended to use that instead of
``is_tensor``.
Args:
obj (Object): Object to test
"""
return isinstance(obj, torch.Tensor)
[docs]def is_storage(obj):
r"""Returns True if `obj` is a PyTorch storage object.
Args:
obj (Object): Object to test
"""
return type(obj) in _storage_classes
[docs]def set_default_tensor_type(t):
r"""Sets the default ``torch.Tensor`` type to floating point tensor type
``t``. This type will also be used as default floating point type for
type inference in :func:`torch.tensor`.
The default floating point tensor type is initially ``torch.FloatTensor``.
Args:
t (type or string): the floating point tensor type or its name
Example::
>>> torch.tensor([1.2, 3]).dtype # initial default for floating point is torch.float32
torch.float32
>>> torch.set_default_tensor_type(torch.DoubleTensor)
>>> torch.tensor([1.2, 3]).dtype # a new floating point tensor
torch.float64
"""
if isinstance(t, _string_classes):
t = _import_dotted_name(t)
_C._set_default_tensor_type(t)
[docs]def set_default_dtype(d):
r"""Sets the default floating point dtype to :attr:`d`.
This dtype is:
1. The inferred dtype for python floats in :func:`torch.tensor`.
2. Used to infer dtype for python complex numbers. The default complex dtype is set to
``torch.complex128`` if default floating point dtype is ``torch.float64``,
otherwise it's set to ``torch.complex64``
The default floating point dtype is initially ``torch.float32``.
Args:
d (:class:`torch.dtype`): the floating point dtype to make the default
Example:
>>> # initial default for floating point is torch.float32
>>> torch.tensor([1.2, 3]).dtype
torch.float32
>>> # initial default for floating point is torch.complex64
>>> torch.tensor([1.2, 3j]).dtype
torch.complex64
>>> torch.set_default_dtype(torch.float64)
>>> torch.tensor([1.2, 3]).dtype # a new floating point tensor
torch.float64
>>> torch.tensor([1.2, 3j]).dtype # a new complex tensor
torch.complex128
"""
_C._set_default_dtype(d)
def use_deterministic_algorithms(d):
r""" Sets whether PyTorch operations must use "deterministic"
algorithms. That is, algorithms which, given the same input, and when
run on the same software and hardware, always produce the same output.
When True, operations will use deterministic algorithms when available,
and if only nondeterministic algorithms are available they will throw a
:class:RuntimeError when called.
.. warning::
This feature is in beta, and its design and implementation may change
in the future.
The following normally-nondeterministic operations will act
deterministically when `d=True`:
* :class:`torch.nn.Conv1d` when called on CUDA tensor
* :class:`torch.nn.Conv2d` when called on CUDA tensor
* :class:`torch.nn.Conv3d` when called on CUDA tensor
* :class:`torch.nn.ConvTranspose1d` when called on CUDA tensor
* :class:`torch.nn.ConvTranspose2d` when called on CUDA tensor
* :class:`torch.nn.ConvTranspose3d` when called on CUDA tensor
* :func:`torch.bmm` when called on sparse-dense CUDA tensors
* :func:`torch.__getitem__` backward when `self` is a CPU tensor and
``indices`` is a list of tensors
* :func:`torch.index_put` with ``accumulate=True`` when called on a CPU
tensor
The following normally-nondeterministic operations will throw a
:class:`RuntimeError` when `d=True`:
* :class:`torch.nn.AvgPool3d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.AdaptiveAvgPool2d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.AdaptiveAvgPool3d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.MaxPool3d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.AdaptiveMaxPool2d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.FractionalMaxPool2d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.FractionalMaxPool3d` when called on a CUDA tensor that requires grad
* :func:`torch.nn.functional.interpolate` when called on a CUDA tensor that requires grad
and one of the following modes is used:
- `linear`
- `bilinear`
- `bicubic`
- `trilinear`
* :class:`torch.nn.ReflectionPad1d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.ReflectionPad2d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.ReplicationPad1d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.ReplicationPad2d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.ReplicationPad3d` when called on a CUDA tensor that requires grad
* :class:`torch.nn.NLLLoss` when called on a CUDA tensor that requires grad
* :class:`torch.nn.CTCLoss` when called on a CUDA tensor that requires grad
* :class:`torch.nn.EmbeddingBag` when called on a CUDA tensor that requires grad
* :func:`torch.scatter_add_` when called on a CUDA tensor
* :func:`torch.index_add_` when called on a CUDA tensor
* :func:`torch.index_copy`
* :func:`torch.index_select` when called on a CUDA tensor that requires grad
* :func:`torch.repeat_interleave` when called on a CUDA tensor that requires grad
* :func:`torch.histc` when called on a CUDA tensor
* :func:`torch.bincount` when called on a CUDA tensor
* :func:`torch.kthvalue` with called on a CUDA tensor
* :func:`torch.median` with indices output when called on a CUDA tensor
A handful of CUDA operations are nondeterministic if the CUDA version is
10.2 or greater, unless the environment variable `CUBLAS_WORKSPACE_CONFIG=:4096:8`
or `CUBLAS_WORKSPACE_CONFIG=:16:8` is set. See the CUDA documentation for more
details: `<https://docs.nvidia.com/cuda/cublas/index.html#cublasApi_reproducibility>`_
If one of these environment variable configurations is not set, a :class:`RuntimeError`
will be raised from these operations when called with CUDA tensors:
* :func:`torch.mm`
* :func:`torch.mv`
* :func:`torch.bmm`
Note that deterministic operations tend to have worse performance than
non-deterministic operations.
Args:
d (:class:`bool`): If True, force operations to be deterministic.
If False, allow non-deterministic operations.
"""
_C._set_deterministic_algorithms(d)
def set_deterministic(d):
r"""This function is deprecated and will be removed in a future release.
Please use :func:`torch.use_deterministic_algorithms` instead.
"""
warnings.warn((
"torch.set_deterministic is deprecated and will be removed in a future "
"release. Please use torch.use_deterministic_algorithms instead"))
use_deterministic_algorithms(d)
def are_deterministic_algorithms_enabled():
r"""Returns True if the global deterministic flag is turned on. Refer to
:func:`torch.use_deterministic_algorithms` documentation for more details.
"""
return _C._get_deterministic_algorithms()
def is_deterministic():
r"""This function is deprecated and will be removed in a future release.
Please use :func:`torch.are_deterministic_algorithms_enabled` instead.
"""
warnings.warn((
"torch.is_deterministic is deprecated and will be removed in a future "
"release. Please use torch.are_deterministic_algorithms_enabled instead"))
return are_deterministic_algorithms_enabled()
################################################################################
# Define Storage and Tensor classes
################################################################################
from .tensor import Tensor
from .storage import _StorageBase
class DoubleStorage(_C.DoubleStorageBase, _StorageBase):
pass
class FloatStorage(_C.FloatStorageBase, _StorageBase):
pass
class HalfStorage(_C.HalfStorageBase, _StorageBase):
pass
class LongStorage(_C.LongStorageBase, _StorageBase):
pass
class IntStorage(_C.IntStorageBase, _StorageBase):
pass
class ShortStorage(_C.ShortStorageBase, _StorageBase):
pass
class CharStorage(_C.CharStorageBase, _StorageBase):
pass
class ByteStorage(_C.ByteStorageBase, _StorageBase):
pass
class BoolStorage(_C.BoolStorageBase, _StorageBase):
pass
class BFloat16Storage(_C.BFloat16StorageBase, _StorageBase):
pass
class ComplexDoubleStorage(_C.ComplexDoubleStorageBase, _StorageBase):
pass
class ComplexFloatStorage(_C.ComplexFloatStorageBase, _StorageBase):
pass
class QUInt8Storage(_C.QUInt8StorageBase, _StorageBase):
pass
class QInt8Storage(_C.QInt8StorageBase, _StorageBase):
pass
class QInt32Storage(_C.QInt32StorageBase, _StorageBase):
pass
class QUInt4x2Storage(_C.QUInt4x2StorageBase, _StorageBase):
pass
_storage_classes = {
DoubleStorage, FloatStorage, LongStorage, IntStorage, ShortStorage,
CharStorage, ByteStorage, HalfStorage, BoolStorage, QUInt8Storage, QInt8Storage,
QInt32Storage, BFloat16Storage, ComplexFloatStorage, ComplexDoubleStorage, QUInt4x2Storage
}
# The _tensor_classes set is initialized by the call to _C._initialize_tensor_type_bindings()
_tensor_classes: Set[Type] = set()
# If you edit these imports, please update torch/__init__.py.in as well
from .random import set_rng_state, get_rng_state, manual_seed, initial_seed, seed
from .serialization import save, load
from ._tensor_str import set_printoptions
################################################################################
# Initialize extension
################################################################################
def manager_path():
if platform.system() == 'Windows' or sys.executable == 'torch_deploy':
return b""
path = get_file_path('torch', 'bin', 'torch_shm_manager')
prepare_multiprocessing_environment(get_file_path('torch'))
if not os.path.exists(path):
raise RuntimeError("Unable to find torch_shm_manager at " + path)
return path.encode('utf-8')
# Shared memory manager needs to know the exact location of manager executable
_C._initExtension(manager_path())
del manager_path
# Appease the type checker: it can't deal with direct setting of globals().
# Note that we will see "too many" functions when reexporting this way; there
# is not a good way to fix this problem. Perhaps, try to redesign VariableFunctions
# so that this import is good enough
if TYPE_CHECKING:
# Some type signatures pulled in from _VariableFunctions here clash with
# signatures already imported. For now these clashes are ignored; see
# PR #43339 for details.
from torch._C._VariableFunctions import * # type: ignore
for name in dir(_C._VariableFunctions):
if name.startswith('__'):
continue
globals()[name] = getattr(_C._VariableFunctions, name)
__all__.append(name)
################################################################################
# Import interface functions defined in Python
################################################################################
# needs to be after the above ATen bindings so we can overwrite from Python side
from .functional import *
################################################################################
# Remove unnecessary members
################################################################################
del DoubleStorageBase
del FloatStorageBase
del LongStorageBase
del IntStorageBase
del ShortStorageBase
del CharStorageBase
del ByteStorageBase
del BoolStorageBase
del QUInt8StorageBase
del BFloat16StorageBase
del ComplexDoubleStorageBase
del ComplexFloatStorageBase
del QUInt4x2StorageBase
################################################################################
# Define _assert
################################################################################
# needs to be before the submodule imports to avoid circular dependencies
def _assert(condition, message):
r"""A wrapper around Python's assert which is symbolically traceable.
"""
from .overrides import has_torch_function, handle_torch_function
if type(condition) is not torch.Tensor and has_torch_function((condition,)):
return handle_torch_function(_assert, (condition,), condition, message)
assert condition, message
################################################################################
# Import most common subpackages
################################################################################
# Use the redundant form so that type checkers know that these are a part of
# the public API. The "regular" import lines are there solely for the runtime
# side effect of adding to the imported module's members for other users.
from torch import cuda as cuda
from torch import autograd as autograd
from torch.autograd import (
no_grad as no_grad,
enable_grad as enable_grad,
set_grad_enabled as set_grad_enabled,
)
from torch import fft as fft
from torch import futures as futures
from torch import nn as nn
import torch.nn.intrinsic
import torch.nn.quantizable
import torch.nn.quantized
from torch import optim as optim
import torch.optim._multi_tensor
from torch import multiprocessing as multiprocessing
from torch import sparse as sparse
import torch.utils.backcompat
from torch import onnx as onnx
from torch import jit as jit
from torch import linalg as linalg
from torch import hub as hub
from torch import random as random
from torch import distributions as distributions
from torch import testing as testing
import torch.backends.cuda
import torch.backends.mkl
import torch.backends.mkldnn
import torch.backends.openmp
import torch.backends.quantized
from torch import quantization as quantization
import torch.utils.data
from torch import __config__ as __config__
from torch import __future__ as __future__
from torch import profiler as profiler
_C._init_names(list(torch._storage_classes))
# attach docstrings to torch and tensor functions
from . import _torch_docs, _tensor_docs, _storage_docs
del _torch_docs, _tensor_docs, _storage_docs
[docs]def compiled_with_cxx11_abi():
r"""Returns whether PyTorch was built with _GLIBCXX_USE_CXX11_ABI=1"""
return _C._GLIBCXX_USE_CXX11_ABI
# Import the ops "namespace"
from torch._ops import ops as ops
from torch._classes import classes as classes
# Import the quasi random sampler
from torch import quasirandom as quasirandom
# If you are seeing this, it means that this call site was not checked if
# the memory format could be preserved, and it was switched to old default
# behaviour of contiguous
legacy_contiguous_format = contiguous_format
# Register fork handler to initialize OpenMP in child processes (see gh-28389)
from torch.multiprocessing._atfork import register_after_fork
register_after_fork(torch.get_num_threads)
del register_after_fork
# Import tools that require fully imported torch (for applying
# torch.jit.script as a decorator, for instance):
from ._lobpcg import lobpcg as lobpcg
# These were previously defined in native_functions.yaml and appeared on the
# `torch` namespace, but we moved them to c10 dispatch to facilitate custom
# class usage. We add these lines here to preserve backward compatibility.
quantized_lstm = torch.ops.aten.quantized_lstm
quantized_gru = torch.ops.aten.quantized_gru


{{> start title="Home - fbi Fullpack Template Demo" }} {{> nav tab='worker'}} Web Worker see Console
see Console


XTRAC Solutions is dedicated to engaging only the best technologists. We understand that in the tech space, it can be difficult to truly show your skills during the traditional interview process. Thus, we've created an opportunity for top talent to show us what they can really do!
Quick and painless. We use Github OAuth to create your account.
Put your resume at the fingertips of our recruiting team and hiring managers.
LinkedIn? Porfolio page? Code you're proud of? We want to see it!
Up for a challenge? Tech assessments across a range of disciplines.