UPDATE:
Deck
Slide(s)
Object(s)
NET-Slides devA-online by Brendon, 12/29/2019.
Welcome to NET-Slides! Application messages will appear here.


Called when user executes a form action.
onAction = function(target, eventData)
If you have .actions defined for the form, each time an action gets executed
it will trigger this event. You can add event listener during the object creation:
or any time during run-time:
Your event listener can be executed before or after the event has been processed. You can also cancel
the default behavior. See Events page in utilities.


Sales Report Not Imported Yet
Sorry, but Launchkit has not received your sales report for today. The report should appear here between 6-8am PST.
If you think something is wrong, please try to disconnect and reconnect iTunes Connect.
Reset iTunes Connection


Biggest rate discrepancy is between {{max.MARKET}} ({{max.DIFTOAVERAGEPRICE}}%) and {{min.MARKET}} ({{min.DIFTOAVERAGEPRICE}}%) for total of {{max.DIFTOAVERAGEPRICE + -min.DIFTOAVERAGEPRICE}}%


First page Back Continue Last page Overview Graphics
More Robust Programming in ES5
Tamper proof objects
Objects can be sealed or frozen.
Primordial objects should be frozen after initialization.
Wart removal, clarification, and exchanges
Defensive "strict" code
Noisy errors – assumption violations throw.
Static scoping. Functions really encapsulated.
No implicit wrapping. No global object leakage.


NettyFinder 🚀
This script checks a Nigerian
Telephone number and detects which network it belongs to.
Enter number without (+234), e.g<PHONE_NUMBER>4 🔥
Number must be 11 digits and not less than or greather than. 🔥
Enter Telephone number
Submit
Clear
NettyFinder Result
Tweet to @iambolajiayo


Hi! My name is Andrew Yoon and I'm 20 years old! I graduated from Rutgers-New Brunswick with a Bachelors Degree in Computer Science in December of 2016! Currently, I am studying Chinese at Jiangsu Normal University in Xuzhou, China. Scroll down to learn more about me!!
I graduated from Rutgers-New Brunswick in December of 2016 with a Bachelors Degree in Computer Science. After graduating from Rutgers, I moved to China in order to attend Jiangsu Normal University. Currently, I am studying Chinese language here at 江苏师范大学 (Jiangsu Normal University). This card briefly describes my educational background!
This card describes some of my other experiences related to Software and Computer Science.
This card describes some of my skills both related and not related to Computer Science.
View Some of My Work!!
How to Contact Me


| AVR Libc Home Page | AVR Libc Development Pages | ||||
| Main Page | User Manual | Library Reference | FAQ | Alphabetical Index | Example Projects |
#include <math.h>
This header file declares basic mathematics constants and functions.
libm.a
. See also the related FAQ entry.errno
variable. Therefore the majority of them are declared with const attribute, for better optimization by GCC.
Defines | |
| #define | M_PI 3.141592653589793238462643 |
| #define | M_SQRT2 1.4142135623730950488016887 |
| #define | NAN __builtin_nan("") |
| #define | INFINITY __builtin_inf() |
Functions | |
| double | cos (double __x) |
| double | fabs (double __x) |
| double | fmod (double __x, double __y) |
| double | modf (double __x, double *__iptr) |
| double | sin (double __x) |
| double | sqrt (double __x) |
| double | tan (double __x) |
| double | floor (double __x) |
| double | ceil (double __x) |
| double | frexp (double __x, int *__pexp) |
| double | ldexp (double __x, int __exp) |
| double | exp (double __x) |
| double | cosh (double __x) |
| double | sinh (double __x) |
| double | tanh (double __x) |
| double | acos (double __x) |
| double | asin (double __x) |
| double | atan (double __x) |
| double | atan2 (double __y, double __x) |
| double | log (double __x) |
| double | log10 (double __x) |
| double | pow (double __x, double __y) |
| int | isnan (double __x) |
| int | isinf (double __x) |
| double | square (double __x) |
| static double | copysign (double __x, double __y) |
| double | fdim (double __x, double __y) |
| double | fma (double __x, double __y, double __z) |
| double | fmax (double __x, double __y) |
| double | fmin (double __x, double __y) |
| int | signbit (double __x) |
| double | trunc (double __x) |
| static int | isfinite (double __x) |
| double | hypot (double __x, double __y) |
| double | round (double __x) |
| long | lround (double __x) |
| long | lrint (double __x) |
| #define INFINITY __builtin_inf() |
INFINITY constant.
| #define M_PI 3.141592653589793238462643 |
The constant pi
.
| #define M_SQRT2 1.4142135623730950488016887 |
The square root of 2.
| #define NAN __builtin_nan("") |
NAN constant.
| double acos | ( | double | __x | ) |
The acos() function computes the principal value of the arc cosine of __x. The returned value is in the range [0, pi] radians. A domain error occurs for arguments not in the range [-1, +1].
| double asin | ( | double | __x | ) |
The asin() function computes the principal value of the arc sine of __x. The returned value is in the range [-pi/2, pi/2] radians. A domain error occurs for arguments not in the range [-1, +1].
| double atan | ( | double | __x | ) |
The atan() function computes the principal value of the arc tangent of __x. The returned value is in the range [-pi/2, pi/2] radians.
| double atan2 | ( | double | __y, | |
| double | __x | |||
| ) |
The atan2() function computes the principal value of the arc tangent of __y / __x, using the signs of both arguments to determine the quadrant of the return value. The returned value is in the range [-pi, +pi] radians.
| double ceil | ( | double | __x | ) |
The ceil() function returns the smallest integral value greater than or equal to __x, expressed as a floating-point number.
| static double copysign | ( | double | __x, | |
| double | __y | |||
| ) | [static] |
The copysign() function returns __x but with the sign of __y. They work even if __x or __y are NaN or zero.
| double cos | ( | double | __x | ) |
The cos() function returns the cosine of __x, measured in radians.
| double cosh | ( | double | __x | ) |
The cosh() function returns the hyperbolic cosine of __x.
| double exp | ( | double | __x | ) |
The exp() function returns the exponential value of __x.
| double fabs | ( | double | __x | ) |
The fabs() function computes the absolute value of a floating-point number __x.
| double fdim | ( | double | __x, | |
| double | __y | |||
| ) |
The fdim() function returns max(__x - __y, 0). If __x or __y or both are NaN, NaN is returned.
| double floor | ( | double | __x | ) |
The floor() function returns the largest integral value less than or equal to __x, expressed as a floating-point number.
| double fma | ( | double | __x, | |
| double | __y, | |||
| double | __z | |||
| ) |
The fma() function performs floating-point multiply-add. This is the operation (__x * __y) + __z, but the intermediate result is not rounded to the destination type. This can sometimes improve the precision of a calculation.
| double fmax | ( | double | __x, | |
| double | __y | |||
| ) |
The fmax() function returns the greater of the two values __x and __y. If an argument is NaN, the other argument is returned. If both arguments are NaN, NaN is returned.
| double fmin | ( | double | __x, | |
| double | __y | |||
| ) |
The fmin() function returns the lesser of the two values __x and __y. If an argument is NaN, the other argument is returned. If both arguments are NaN, NaN is returned.
| double fmod | ( | double | __x, | |
| double | __y | |||
| ) |
The function fmod() returns the floating-point remainder of __x / __y.
| double frexp | ( | double | __x, | |
| int * | __pexp | |||
| ) |
The frexp() function breaks a floating-point number into a normalized fraction and an integral power of 2. It stores the integer in the int
object pointed to by __pexp.
If __x is a normal float point number, the frexp() function returns the value v
, such that v
has a magnitude in the interval [1/2, 1) or zero, and __x equals v
times 2 raised to the power __pexp. If __x is zero, both parts of the result are zero. If __x is not a finite number, the frexp() returns __x as is and stores 0 by __pexp.
| double hypot | ( | double | __x, | |
| double | __y | |||
| ) |
The hypot() function returns sqrt(__x*__x + __y*__y). This is the length of the hypotenuse of a right triangle with sides of length __x and __y, or the distance of the point (__x, __y) from the origin. Using this function instead of the direct formula is wise, since the error is much smaller. No underflow with small __x and __y. No overflow if result is in range.
| static int isfinite | ( | double | __x | ) | [static] |
The isfinite() function returns a nonzero value if __x is finite: not plus or minus infinity, and not NaN.
| int isinf | ( | double | __x | ) |
The function isinf() returns 1 if the argument __x is positive infinity, -1 if __x is negative infinity, and 0 otherwise.
| int isnan | ( | double | __x | ) |
The function isnan() returns 1 if the argument __x represents a "not-a-number" (NaN) object, otherwise 0.
| double ldexp | ( | double | __x, | |
| int | __exp | |||
| ) |
| double log | ( | double | __x | ) |
The log() function returns the natural logarithm of argument __x.
| double log10 | ( | double | __x | ) |
The log10() function returns the logarithm of argument __x to base 10.
| long lrint | ( | double | __x | ) |
The lrint() function rounds __x to the nearest integer, rounding the halfway cases to the even integer direction. (That is both 1.5 and 2.5 values are rounded to 2). This function is similar to rint() function, but it differs in type of return value and in that an overflow is possible.
LONG_MIN
value (0x80000000). | long lround | ( | double | __x | ) |
The lround() function rounds __x to the nearest integer, but rounds halfway cases away from zero (instead of to the nearest even integer). This function is similar to round() function, but it differs in type of return value and in that an overflow is possible.
LONG_MIN
value (0x80000000). | double modf | ( | double | __x, | |
| double * | __iptr | |||
| ) |
The modf() function breaks the argument __x into integral and fractional parts, each of which has the same sign as the argument. It stores the integral part as a double in the object pointed to by __iptr.
The modf() function returns the signed fractional part of __x.
| double pow | ( | double | __x, | |
| double | __y | |||
| ) |
The function pow() returns the value of __x to the exponent __y.
| double round | ( | double | __x | ) |
The round() function rounds __x to the nearest integer, but rounds halfway cases away from zero (instead of to the nearest even integer). Overflow is impossible.
NaN
, then NaN
is returned. | int signbit | ( | double | __x | ) |
The signbit() function returns a nonzero value if the value of __x has its sign bit set. This is not the same as `__x < 0.0', because IEEE 754 floating point allows zero to be signed. The comparison `-0.0 < 0.0' is false, but `signbit (-0.0)' will return a nonzero value.
| double sin | ( | double | __x | ) |
The sin() function returns the sine of __x, measured in radians.
| double sinh | ( | double | __x | ) |
The sinh() function returns the hyperbolic sine of __x.
| double sqrt | ( | double | __x | ) |
The sqrt() function returns the non-negative square root of __x.
| double square | ( | double | __x | ) |
The function square() returns __x * __x.
| double tan | ( | double | __x | ) |
The tan() function returns the tangent of __x, measured in radians.
| double tanh | ( | double | __x | ) |
The tanh() function returns the hyperbolic tangent of __x.
| double trunc | ( | double | __x | ) |
The trunc() function rounds __x to the nearest integer not larger in absolute value.


Namespace Fibula.Protocol.V772.PacketReaders
Classes
AttackPacketReader
Class that represents an attack packet reader for the game server.
AutoMoveCancelPacketReader
Class that represents an auto move cancellation packet reader for the game server.
AutoMovePacketReader
Class that represents an auto walk packet reader for the game server.
ChangeModesPacketReader
Class that represents a change modes packet reader for the game server.
FollowPacketReader
Class that represents a follow packet reader for the game server.
GameLogInPacketReader
Class that represents a log in packet reader for the game server.
GameLogOutPacketReader
Class that represents a log out packet reader for the game server.
GatewayLogInPacketReader
Class that represents a log in packet reader for the gateway server.
HeartbeatPacketReader
Class that represents a keep alive packet reader for the game server.
HeartbeatResponsePacketReader
Class that represents a heartbeat check packet reader for the game server.
LookAtPacketReader
Class that represents a look at packet reader for the game server.
SpeechPacketReader
Class that represents a speech packet reader for the game server.
StopAllActionsPacketReader
Class that represents a stop all actions packet reader for the game server.
TurnEastPacketReader
Class that represents a turn east packet reader for the game server.
TurnNorthPacketReader
Class that represents a turn north packet reader for the game server.
TurnSouthPacketReader
Class that represents a turn south packet reader for the game server.
TurnWestPacketReader
Class that represents a turn west packet reader for the game server.
WalkEastPacketReader
Class that represents a walk east packet reader for the game server.
WalkNortheastPacketReader
Class that represents a walk northeast packet reader for the game server.
WalkNorthPacketReader
Class that represents a walk north packet reader for the game server.
WalkNorthwestPacketReader
Class that represents a walk northwest packet reader for the game server.
WalkSoutheastPacketReader
Class that represents a walk southeast packet reader for the game server.
WalkSouthPacketReader
Class that represents a walk south packet reader for the game server.
WalkSouthwestPacketReader
Class that represents a walk southeast packet reader for the game server.
WalkWestPacketReader
Class that represents a walk west packet reader for the game server.


--- title: Sorry, What's a Dory? --- h2. Sorry, What's a Dory?
2011 January 04
From Wikipedia:
The dory is a small, shallow-draft boat, about 5 to 7 metres/16.4 to 23.0 feet long. It is a lightweight and versatile boat with high sides, a flat bottom and sharp bows. They are easy to build because of their simple lines. For centuries, dories have been used as traditional fishing boats, both in coastal waters and in the open sea. Variant spellings are doree and dori.


This repository satisfies all logos needs of PyroCMS. It generates logos in SVG, PNG, ICO and SVG sprites formats from a single SVG template
Generated by, iAyeBot


Upcoming Events
-
Social Justice Activist Meditation
April 8 @ 3:30 pm -
Social Justice Activist Meditation
April 15 @ 3:30 pm -
Social Justice Activist Meditation
April 22 @ 3:30 pm -
Social Justice Activist Meditation
April 29 @ 3:30 pm -
Circling Her Light in the Moonless Night
May 15 @ 8:30 pm
The Sacred Rest Stop
The Sacred Rest Stop is a community meeting and meditation space located on 10 acres of bountiful Texas farmland 15 minutes east of downtown Austin.
The genesis of The Sacred Rest Stop came from a simple recognition that people are yearning for a place to physically gather together that provides easily accessible ways to develop deeper intimacy with themselves, their community, the natural world and That Which Holds Us All.
Now is the time. Check out our events and classes! Join us!
- Copyright © 2018 Sacred Rest Stop


Company
Furniture
Electronic
Decrotain
Household
Contact
NEWS
Expo bla bla bla
01/07/2016
SALE
50% 70%
01/07/2016
NEW FURNITURE
Expo bla bla bla
01/07/2016
ADVICE
Expo bla bla bla
01/07/2016


Toggle navigation
Home
Members
Projects
Labyrinth
Enceladus
About/Contact
Eric Cheng
President
Michael Gonzalez
Vice-President
Kirill Sydykov
Development Manager
Sher Zahed
Development Manager
Candice Sy
Secretary
Gavin Badillo
Treasurer
Mehul Goel
Web-Master
Raghav Ravisankar
Subomi Awokoya
Eswar Dhinakaran
Terrance Griffith
Twil Elev
Erik Olson
Community Advisor


Post Title
The subtitle, if you want it
Today's Date
Your section header here
Your first paragraph goes here.
Another section header
Your second paragraph goes here.
Another section header
Last example paragraph.
Your first paragraph goes here.
Your second paragraph goes here.
Last example paragraph.


--- title: image_tabular keywords: fastai sidebar: home_sidebar summary: "Integrate image and tabular data for deep learning." description: "Integrate image and tabular data for deep learning." ---
pip install image_tabular
This library utilizes fastai and pytorch to integrate image and tabular data for deep learning and train a joint model using the integrated data.
get_imagetabdatasets
function as below: integrate_train, integrate_valid, integrate_test = get_imagetabdatasets(image_data, tab_data)
The train, validation, and optional test datasets can then be combined in a DataBunch:
db = DataBunch.create(integrate_train, integrate_valid, integrate_test,
path=data_path, bs=bs)
Next, we create a joint model to train on both image and tabular data simultaneously:
integrate_model = CNNTabularModel(cnn_model,
tabular_model,
layers = [cnn_out_sz + tab_out_sz, 32],
ps=0.2,
out_sz=2).to(device)
Finally, we pack everying into a fastai learner and train the joint model:
learn = Learner(db, integrate_model)
learn.fit_one_cycle(10, 1e-4)
The following notebook puts everything together and shows how to use the library for the SIIM-ISIC Melanoma Classification competition on Kaggle:


So far, in the virtual data server, it is painful to create each single html file and set a reference to them manually one by one. Therefore, I'm going to introduce a smarter way to import html files.
I thus require that the import way shall be auto identify the number of html files and set the id of articles based on their file names.
However, it seems that this is not working. "fs" module will throw an error out in Vue. Maybe I can try that later. But since reading files directly from the server rather than database is not a good idea, I think trying to do this is meaningless.
So I fisrt built a list for setting ids and titles of a html file. Then, try to import the html file based on its id. The code is
function getAllPosts() {
let allPosts = [
{
id: '01',
html: '',
title: 'test'
},
{
id: '02',
html: '',
title: 'test'
},
]
allPosts.forEach((item, index, arr) => {
import('@/temp/data/topics/' + item.id + '.html').then( module => item.html = module.default);
});
return allPosts;
}
export { getAllPosts };
Now its importing dynamically.
So, now I decide to use a .Vue file to be the index
It always causes 'import' and 'export' may only appear at the top level.
Since I have put so much time on this and this is not that important, I decide to import my files manually through the topicIndex.vue file


Before Change
step_size = (self._minibatch_size
if self._minibatch_size else len(rewards_flat))
for epoch in range(self._max_optimization_epochs):
shuffled_ids = np.random.permutation(len(rewards_flat))
for start in range(0, len(rewards_flat), step_size):
ids = shuffled_ids[start:start + step_size]
loss = self._train(obs_flat[ids], actions_flat[ids],
rewards_flat[ids], advantages_flat[ids])
logger.log("Mini epoch: {} | Loss: {}".format(epoch, loss))
self._value_function.fit(paths)
with torch.no_grad():
loss_after = self._compute_loss_with_adv(obs_flat, actions_flat,
After Change
obs_flat = torch.cat(filter_valids(obs, valids))
actions_flat = torch.cat(filter_valids(actions, valids))
rewards_flat = torch.cat(filter_valids(rewards, valids))
returns_flat = torch.cat(filter_valids(returns, valids))
advs_flat = self._compute_advantage(rewards, valids, baselines)
with torch.no_grad():
policy_loss_before = self._compute_loss_with_adv(
obs_flat, actions_flat, rewards_flat, advs_flat)
vf_loss_before = self._value_function.compute_loss(
obs_flat, returns_flat)
kl_before = self._compute_kl_constraint(obs)
self._train(obs_flat, actions_flat, rewards_flat, returns_flat,
advs_flat)
with torch.no_grad():
policy_loss_after = self._compute_loss_with_adv(
obs_flat, actions_flat, rewards_flat, advs_flat)
vf_loss_after = self._value_function.compute_loss(
obs_flat, returns_flat)
kl_after = self._compute_kl_constraint(obs)
policy_entropy = self._compute_policy_entropy(obs)
with tabular.prefix(self.policy.name):


Groups
Alignments can be grouped together so that they can be sorted/highlighted/hidden etc.
Creating a group from a selection:
- Select the sequences you wish to include in the group by left-clicking their rows in the detail view. Multiple rows can be selected by holding the Ctrl or Shift keys while clicking.
- Right-click and select 'Create Group', or use the Shift-Ctrl-G shortcut key. (Note that Ctrl-G will also shortcut to here if no groups currently exist.)
- Ensure that the 'From selection' radio button is selected, and click 'OK'.
Creating a group from a sequence name:
- Right-click and select 'Create Group', or use the Shift-Ctrl-G shortcut key. (Or Ctrl-G if no groups currently exist.)
- Select the 'From name' radio button and enter the name of the sequence in the box below. You may use the following wildcards to search for sequences: '*' for any number of characters; '?' for a single character. For example, searching for '*X' will find all sequences whose name ends in 'X' (i.e. all exons).
- Click 'OK'.
Creating a group from sequence name(s):
- Right-click and select 'Create Group', or use the Shift-Ctrl-G shortcut key. (Or Ctrl-G if no groups currently exist.)
- Select the 'From name(s)' radio button.
- Enter the sequence name(s) in the text box.
- You may use the following wildcards in a sequence name: '*' for any number of characters; '?' for a single character. (For example, searching for '*X' will find all sequences whose name ends in 'X', i.e. all exons).
- You may search for multiple sequence names by separating them with the following delimiters: newline, comma or semi-colon.
- You may paste sequence names directly from ZMap: click on the feature in ZMap and then middle-click in the text box on the Groups dialog. Grouping in Blixem works on the sequence name alone, so the feature coords will be ignored.
- Click 'OK'.
Creating a temporary 'match-set' group from the current selection:
- You can quickly create a group from a current selection (e.g. selected features in ZMap) using the 'Toggle match set' option.
- To create a match-set group, select the required items (e.g. in ZMap) and then select 'Toggle match set' from the right-click menu in Blixem, or hit the 'g' shortcut key.
- To clear the match-set group, choose the 'Toggle match set' option again, or hit the 'g' shortcut key again.
- While it exists, the match-set group can be edited like any other group, via the 'Edit Groups' dialog.
- If you delete the match-set group from the 'Edit Groups' dialog, all settings (e.g. highlight color) will be lost. To maintain these settings, clear the group using the 'Toggle match set' menu option (or 'g' shortcut key) instead.
Editing groups:
To edit a group, right-click and select 'Edit Groups', or use the Ctrl-G shortcut key. You can change the following properties for a group:
- Name: you can specify a more meaningful name to help identify the group.
- Hide: tick this box to hide the alignments in the alignment lists.
- Highlight: tick this box to highlight the alignments.
- Color: the color the group will be highlighted in, if 'Highlight' is enabled. The default color for all groups is red, so you may wish to change this if you want different groups to be highlighted in different colors.
- Order: when sorting by Group, alignments in a group with a lower order number will appear before those with a higher order number (or vice versa if sort order is inverted). Alignments in a group will appear before alignments that are not in a group.
- To delete a single group, click on the 'Delete' button next to the group you wish to delete.
- To delete all groups, click on the 'Delete all groups' button.
Settings
The settings menu can be accessed by right-clicking and selecting Settings, or by the shortcut Ctrl-S. Soome settings (those in the 'Features' and 'Display options' panes on the dialog, as well as the column widths) are saved to the file ".blixemrc" in your home directory when you quit Blixem, and will be restored the next time Blixem is run. To revert to the default settings, just delete the ".blixemrc" file.
- Highlight variations:Tick this box to highlight bases in the reference sequence that have SNPs, insertions, deletions etc. Hover over a highlighted base to see details of the variation in the feedback area.
- Show variations track:The variations track shows the details of the variations. Double-click on a variation to open its URL. The Highlight-Variations option must be enabled to use this option. A shortcut to quickly enable both options is to double-click the reference sequence. Double click the reference sequence again to hide the variations track.
- PolyA tails:Tick this option to show polyA tails in the alignment lists. By default polyA tails are only shown for the currently-selected sequence(s). To show them for all sequences, un-tick the 'Selected sequences only' box. When a polA tail is displayed, polyA signals are also highlighted in the reference sequence.
- Show Unaligned Sequence:Show any additional unaligned parts of the match sequence at the start/end of the alignment. Specify the number of additional bases to show in 'Limit to... bases', or untick this option to show all of the unaligned sequence. Tick the 'Selected sequences only' option to only show unaligned sequence for the currently selected sequence(s). Note that this option does not work with the 'Squash Matches' option, so it will not do anything if 'Squash Matches' is on.
- Show Splice Sites:Shows splice sites for the currently-selected alignment(s). Splice sites are highlighted on the reference sequence in green (for canonical) or red (for non-canonical). Blixem identifies GT-AG, GC-AG and AT-AC introns as canonical.
- Highlight Differences:When this option is set, matching bases are blanked out and mismatches are highlighted, making it easier to see where alignments differ from the reference sequence.
- Squash Matches:Group multiple alignments from the same sequence together into the same row in the detail view, rather than showing them on separate rows.
- Columns:Show/hide columns or edit the width of columns (in pixels). Click the 'Load optional data' button to load the data for the optional columns such as organism and tissue-type - then tick the check box to show this column in the Blixem window. The optional columns are greyed out if their data is not loaded. Once optional data is loaded you can also sort by it. Note that optional data is loaded on startup for DNA matches but not for protein matches, because the latter can be slow. The Load Optional Data button will be greyed out if optional data is already loaded.
- Grid properties:Set the maximum/minimum %ID values shown in the big picture. Expand or contract the grid scale by adjusting '%ID per cell'. The ID per cell can be set to as low as 0.1. Note that setting a low ID-per-cell can result in a large number of cells and hence a very large grid, and Blixem is not currently very clever about dealing with this.


About Us
Team
Andrei Nomerotski
<EMAIL_ADDRESS>Brookhaven National Laboratory
Stony Brook University
Peter Svihra
<EMAIL_ADDRESS>Faculty of Nuclear Sciences and Physical Engineering, CTU in Prague
School of Physics and Astronomy, University of Manchester


View High Scores
Timer: 0
This quiz tests how well you know me! Get started by clicking the button below.


hsqldb - 100% Java DatabaseLightweight 100% Java SQL Database Engine |
|
HSQLDB 1.7.2 CHANGE LOG
The development of 1.7.2 began in late 2002 with a plan to release the new
version within 6 months. Several alpha versions, culminating in ALPHA_M, were
released in the first three months and featured most of the intended enhancements.
However, when newly written code for system tables was introduced, many changes
had to be made to internal code to accommodate the reporting requirements.
This was followed from around April 2003 with efforts to separate query compilation
from execution. Other developments to allow multiple databases, better query
processing, more advanced SQL keywords, etc. took place simultaneously, resulting
in an extended scope for 1.7.2 and extensive addition and rewrite of several
key classes. The next alpha version was released in September, followed by
a further six, until the first Release Candidate became available at the end
of 2003. Since then, all efforts have been focused on fixing bugs and inconsistencies,
with 7 additional Release Candidates issued.
As a result, 1.7.2 features major changes to the database engine. Existing applications that work with previous versions may need modifications to work with the new version. Changes are listed here and in the rest of the documentation.
I would like to thank all developers, testers and users who have contributed to this effort.
June 2004
Fred Toussi
Maintainer, HSQLDB Project
http://hsqldb.sourceforge.net
----------------------------------------------------
----------------------------------------------------
SQL ENHANCEMENTS AND CHANGES
----------------
DDL
Some new restrictions have been imposed:
CONSTRAINT names must be unique within each database (same with INDEX names).
Size / precision / scale values for several types are now disallowed. Allowed
types are: CHAR(n), VARCHAR(n), DOUBLE(n), DECIMAL(n,m)
In column default value specification, functions such as CURRENT_TIME, CURRENT_DATA, etc. should not be enclosed in quotes. New function CURRENT_USER can also be used.
SQL keywords are not allowed as table or column names unless they are double-quoted.
----------------
VIEW
View definitions can now have a column name list:
CREATE VIEW <viewname> [(<colnmae>, ...)] AS SELECT ....
ALTER TABLE commands take into account the views that reference the table and prevent illegal changes.
----------------
CHECK
Support for CHECK constraints that apply to the modified/inserted row only. This can be added via ALTER TABLE ADD CHECK() or in table definition.
----------------
QUERY PROCESSING
Query processing has been extensively enhanced in this release and better SQL standard compliance has been achieved. Major implications of the recent changes are as follows:
Columns in correlated subqueries are resolved independently first. If there is an unresolved column, then the surrounding context is used to resolve it. This is opposite the resolution order previously enforced in the engine.
Some ambiguities and errors in ORDER BY clauses are now caught.
UNION and other set queries accept only one ORDER BY clause at the end. In this clause, column indexes or column names in the first select are allowed as sort specification e.g.:
SELECT .. UNION SELECT .. ORDER BY 1 DESC, 5, 3
The implemntation of UNION, EXCEPT and INTERSECT set operations has been rewritten to comply with SQL standards.
When multiple set operations are present in a query, they are now evaluated from left to right, with INTERSECT taking precedence over the rest.
It is now possible to use parentheses around multiple (or single) select statements with set operations to change the order of evalation.E.g.:
((SELECT * FROM A EXCEPT SELECT * FROM B) INTERSECT SELECT * FROM D UNION SELECT * FROM E)
The above applies to all cases where a SELECT can be used except a single value select inside another select. Eg.
SELECT a, b, SELECT asinglevalue FROM anothertable WHERE ..., FROM atable JOIN ...
----------------
IMPROVEMENTS TO UPDATE AND INSERT
Certain types of UPDATES and INSERTS that previously failed due to blanket application of UNIQUE constraints now work.
Examples include UPDATE ... SET col = col + 1 where col is an identity column or INSERT a self referencing row under FOREIGN key constraints.
----------------
AGGREGATES, GROUP BY, HAVING
DISTINCT aggregates are now supported.
Aggregates on all numeric type columns are now supported. Expressions are allowed as aggregate function parameter.
SUM returns a BIGINT for TINYINT, SMALLINT and INTEGER columns. It returns a DECIMAL for BIGINT columns (scale 0). SUM of a DECIMAL column has the same scale as the column.
AVG returns the same type as the column or the expression in its argument.
Aggregates with GROUP BY do not return any rows if table is empty
Fully enforced GROUP BY rules including support for HAVING conditions
----------------
JOINS
Extensive rewrite of join processing abolishes the requirement for an index on any joined columns.
Problems with OUTER and INNER joins returning incorrect results have been fixed and results are correct in all cases.
When two tables are joined, rows resulting from joining null values in the joined columns are no longer returned.
Most expressions are supported in the join condition (JOIN <table> ON ....).
Outer join conditions can now include most comparison operators, as well as OR logical operators. For example:
LEFT OUTER JOIN atable ON a=b AND c>d OR a=2 ...
Illegal forward table references are no longer allowed in join conditions.
There are many other small improvements and fixes, including:
----------------
NULLS
Support for multiple rows with null fields under unique constraints.
Exclusion of NULL values from results of queries with range conditions.
----------------
FOREIGN KEY
Full support for triggered actions, including foreign keys that reference the same table.
FORIEGN KEY ... ON UPDATE { CASCADE | SET NULL | SET DEFAULT } ON DELETE { CASCADE | SET NULL | SET DEFAULT }
Strict treatment of foreign key constraint requirements is now enforced. A foreign key declaration _requires_ a unique constraint to exist on the columns of the referenced table. This applies both to old and new databases. Duplicate foreign keys (with exactly the same column sets) are now disallowed.
----------------
SEQUENCE
Support for sequences. Identity columns are now automatic sequence primary key columns that can be defined as INTEGER or BIGINT as follows:
GENERATED BY DEFAULT AS IDENTITY (START WITH <n>, INCREMENT BY <m>)
Named sequence objects can be defined with:
CREATE SEQUENCE <sequencename> [AS {INTEGER | BIGINT}] [START WITH <startvalue>] [INCREMENT BY <incrementvalue>];
And the next value can be retrieved with the following expression in SELECT, INSERT and UPDATE queries:
NEXT VALUE FOR <sequencename>
----------------
SQL FUNCTIONS
Added support for a range of SQL style functions:
CASE .. WHEN .. THEN .. [WHEN .. THEN ..] ELSE .. END
CASE WHEN .. THEN .. [WHEN .. THEN ..] ELSE ... END
NULLIF(.. , ..)
SUBSTRING(.. FROM .. FOR ..)
POSITION(.. IN ..)
TRIM( {LEADING | TRAILING .. } FROM ..)
EXTRACT({DAY | TIME |..} FROM ..)
COALESCE(.. , ..)
----------------
TRIGGER
It is now possible to execute triggers in the main execution thread. This allows uses for triggers that were not possible before, especially checking and modifying inserted values.
----------------
DATETIME
Fixed the TIMESTAMPS, TIME and DATE normalisation issues.
----------------
OTHER
IN value lists can now contain column values or expressions. See TestSelfQueries.txt for an example.
LIKE has been debugged and optimised when possible.
----------------------------------------------------
----------------------------------------------------
JDBC ENHANCEMENTS
JDBC support for savepoints.
Support for JDBC batch execution with multiple-results. Both Statement and PreparedStatement batch modes are supported.
SSL support for server mode operation.
----------------
CONNECTION PROPERTY
A new property, ifexists={true|false} can be specified for connections. It has an effect only on connections to in-process databases. The default is false and corresponds to current behaviour.
If set true, the connection is opened only if the database files have already been created -- otherwise no new database is created and the connection attempt will fail. Example:
jdbc:hsqldb:hsql:file:mydb;ifexists=true
This property is intended to reduce problems resulting from wrong URL's which get translated to unintended new database files. It is recommended to use this property for troubleshooting.
Database properties can be specified for the first connection to a new file: or mem: database. This allows properties such as enforce_strict_size to be specified for mem: databases, or for a new file: database.
jdbc:hsqldb:hsql:mem:test;sql.enforce_strict_size=true
----------------
PREPARED STATEMENTS
Support for real PreparedStatements - major speedup.
Bug fixes ensure date / time, java object and binary values stored in in-process databases via prepared statements will not be altered if the object is modified outside the engine.
Full support for ResultSetMetaData
Full support for ParameterMetaData
Support for CLOB methods in ResultSet
----------------
TRANSACTIONS VIA WEB SERVER
Uniform support for transactions via HSQL and HTTP (WebServer and Servlet) protocols
----------------------------------------------------
----------------------------------------------------
OTHER ENHANCEMENTS
----------------------------------------------------
SPEED
Speed optimisation of joins with views and subqueries, using indexes to optimise join performance.
Improved index use for multiple key joins.
Further speed improvements in all logged modes
INSERT and UPDATE ops are faster by 5-20% in MEMORY tables, less in CACHED tables.
General speedup of CACHED table operation due to better management of the memory cache.
----------------------------------------------------
DATABASE PACKAGING AND MODES
Two new options for databases: files_readonly and files_in_jar were added:
FILE READ-ONLY
If the property hsqldb.files_readonly=true is set in the database .properties
file, no attempt is made to write the changes to data to file. Default, MEMORY
tables can be read/write but TEXT and CACHED tables are treated as read-only.
FILES IN JAR
This option allows database files to be distributed in the application jar.
We have changed the original contribution so that a special URL is used for
this mode in the form of:
jdbc:hsqldb:res:<path in jar>
The URL type 'res' determines that the path that follows is a path into the JAR. The path must be all lowercase and begin with a forward slash.
The database can be readonly or files_readonly, depending on the value set in .properties file.
'OTHER' DATA TYPE
Change to handling of OTHER columns. It is no longer required that the classes
for objects stored in OTHER columns to be available on the path of an HSQLDB
engine running as a server. Classes must be available on the JDBC client's
path.
----------------------------------------------------
MULTIPLE IN-MEMORY AND SERVER DATABASES
Support for multiple memory-only databases within the same JVM
Support for simultaneous multiple servers on different ports, multiple internal connections and multiple databases within the same JVM
Each HSQLDB server or webserver can now serve up to 10 different databases.
The server.properties and webserver.properties method for defining the databases has changed. The following properties should be used:
server.database.0 path_of_the_first_database
server.dbname.0 alias_for_the_first_database
Up to 10 databases can be defined but they must start from 0. The same applies to command line arguments for Server and WebServer.
The URL's for connecting to servers should have the alias of the database at the end. For example, to connect to the HSQL protocol server on the localhost use:
jdbc:hsqldb:hsql://localhost/alias_for_the_database
where alias_for_the_database is the same string as defined in server.properties as server.dbname.n
If not explicitly set, the default for server.dbname.0 is "" (empty string) so that old URL types continue to work.
Multiple memory-only database are supported by the use of:
jdbc:hsqldb:mem:alias_for_the_first_database
jdbc:hsqldb:mem:alias_for_the_second_database
Examples: jdbc:hsqldb:mem:db1 jdbc:hsqldb:mem:mydb
The connection type, 'file:', can be used for file database connections. Example below:
jdbc:hsqldb:file:mydb;ifexists=true
The URL for connecting to a Servlet HTTP server must have a forward-slash at the end. Servlet serves only one database.
jdbc:hsqldb:hsql://localhost:8080/servlet/HsqlServlet/
----------------------------------------------------
DATABASE METADATA
System table support and java.sql.DatabaseMetadate have been overhauled.
Use SELECT * FROM SYSTEM_TABLES to see the full list.
----------------------------------------------------
TEXT TABLES
Enhanced TEXT table handling and reporting of errors in CSV (source) files
TEXT TABLES encoding of the source file can now be specified. UTF-8 and other encodings can be used.
----------------------------------------------------
MEMORY USE AND OBJECT POOLING
An Object pool has been incorporated. This reduces memory usage to varying
degrees depending on the contents of database tables and speeds up the database
in most cases. Currently the size of the pool is hard-coded but it will be
user adjustable in a future version.
----------------------------------------------------
PERSISTENCE
----------------
CHECKPOINT DEFRAG
Defragments the *.data file without shutting down the database
----------------
SET SCRIPTFORMAT {TEXT | BINARY | COMPRESSED }
Changes the format of the *.script file and performs a checkpoint.
Database script can be stored in binary or compressed binary formats, resulting in smaller size and faster loading.
----------------
The *.script file now contains only the DDL and data that is written at CHECKPOINT or SHUTDOWN. The COMPRESSED format has the side benefit of hiding the DDL and the admin password.
The *.log file now contains the statements executed since the last startup or CHECKPOINT. This file is in plain text format.
----------------
SET WRITE_DELAY {TRUE | FALSE}
SET WRITE_DELAY <n>
The behaviour of SET WRITE_DELAY has changed with the introduction of the sync() method to force the log to be written out completely to disk at given intervals.
SET WRITE_DELAY {TRUE | FALSE} is interpreted as synch every 60 seconds or 1 second. SET WRITE_DELAY <n> where n is an integer is interpreted as synch every n seconds. The current default is 60 seconds which seems to provide the right balance. Under heavy INSERT/DELETE/UPDATE test conditions, the performance impact of SET WRITE_DELAY 1 is probably about 15% over that of SET WRITE_DELAY 300.
Crash recovery has been modified so that any line in the *.log file that is not properly written (and causes an error) ends the redo process. A message is reported to the user, instead of stopping engine operation.
----------------
NIO ACCESS FOR *.data FILES
New nio access layer for .data files speeds up most CACHED TABLE related operations very significantly. 90% speedups in TestCacheSize tests have been observed.
There must be enough available memory in the machine to allow a memory-mapped buffer for the entire *.data file. Beyond this size, the engine reverts to non-nio access.
----------------------------------------------------
BUILD
Reduction in JDK / JRE dependencies (see readmebuild.txt)
The supplied JAR is now compiled with JDK 1.4 and requires a JRE 1.4 or later to work. You can rebuild the JAR with JDK 1.3.x in order to use it with JRE 1.3 or earlier.
----------------------------------------------------
DOCUMENTATION
Documentation is now maintained mainly in XML format with HTML and PDF versions
available.
----------------------------------------------------
UTILITIES
The SQL Tool is a powerful new utility in 1.7.2 and allows processing SQL
commands via the shell or scripts.
The Transfer Tool utility saw a major upgrade just before the 1.7.2 release cycle. In this release some minor updates and bug fixes, together with significant speedup, have been intoduced.
The Database Manager has been enhanced slightly to include a command to save the result set in CSV format. The Swing version of Database Manager allows the user to sort the rows of the result set on any column.
The connection dialogue in the AWT version of Database Manager and Transfer Tool allows saving and recalling connection URL's together with the user name and password.
----------------------------------------------------
END
======================================================================================
HSQLDB version 1.7.1 CHANGELOG SINCE VERSION 1.7.0
Version 1.7.1 improves performance and fixes several bugs that have come to light since the release of 1.7.0. It does not feature any major new functionality in the database engine.
*Over ten-fold speedup of function calls in queries introduced in 1.7.1.
*Up to 30% reduction in memory used by indexes and table rows, resulting in smaller overall memory footprint in 1.7.1.
*Linux scripts for starting and shutting down server instances in 1.7.1.
* Build
Linux build scripts in 1.7.1
======================================================================================
HSQLDB version 1.7.0 CHANGELOG
* Enhancements to SQL
LIMIT and TOP keywords
The LIMIT keyword was introduced in 1.61 with limited functionality. In 1.7.0 the functionality has been fully extended:
SELECT LIMIT <n> <m> DISTINCT is now allowed.
SELECT LIMIT <n> <m> ... is now treated as a complete SELECT statement and can be used anywhere a SELECT is used, so statements such as the following return meaningful results:
SELECT LIMIT <n> <m> ... WHERE <x> IN (SELECT LIMIT <o> <p> ... )
SELECT LIMIT <n> <m> ... UNION SELECT LIMIT <o> <p>
TOP <m> is synonymous with LIMIT 0 <m>
GROUP BY keyword
GROUP BY had several problems and bugs that have now been resolved. The results are now correct regardless of the order of selected columns or when sorting by multiple columns.
DEFAULT keyword
This keyword has been introduced with full functionality for defining default values for table columns. Special cases 'CURRENT_DATE','CURRENT_TIME','CURRENT_TIMSTAMP', 'TODAY' and 'NOW' can set DATE, TIME and TIMESTAMP columns with current values when an INSERT statement is executed.
SIZE and PRECISION
Maximum column sizes for CHAR, VARCHAR, and other types are now stored in the database. The CHAR and VARCHAR sizes can be enforced when INSERT, UPDATE and SELECT ... INTO table operations are performed. The enforcement is optional and turned off by default.
SAVEPOINT for TRANSACTION
New feature to allow transactions to rollback to a specified point.
CONSTRAINTS and INDEXES
Primary keys declared as CONSTRAINT <name> PRIMARY KEY, either on a single column or on multiple columns, are now accepted and used. All constrains are named, with those generated by the system given unique names as SYS_CT_<n>.
Each INDEX must have a unique name within the database. This conforms to SQL standards.
FOREIGN KEYS, ON DELETE CASCADE
Foreign key constraints referencing the same table are now allowed. New, stricter rules require a unique index to exist on the referenced column (this is the recommended behaviour for new databases but is turned off by default for existing databases).
ON DELETE CASCADE qualifiers are now supported for foreign keys in data definition scripts. These qualifiers are enforced with fast searches on underlying indexes.
New support for ALTER TABLE allows 'forward-referencing' foreign keys where the referencing table is created before the referenced table.
TRIGGERS
New multiple-row trigger queues are introduced to improve performance. Enhancements to prevent deadlocks are also added.
TEMP tables
Full support for session-specific temporary tables is introduced. TEMP tables can be used in any statement the same way as ordinary tables, the differences are they are not visible to other session and are dropped when the session is closed. Also, FOREIGN KEY constraints for ordinary tables cannot reference a TEMP table for obvious reasons (TEMP tables can have foreign keys that reference any ordinary or temp table).
TEXT tables
Full support for delimited text files (such as CSV) as the data source for SQL tables.
VIEWS
Views are supported as global objects. Internally, each time the view is used, the underlying select statement is performed. Views can be created and dropped using the following statements.
CREATE VIEW <viewname> AS SELECT ... FROM ... WHERE ....
DROP VIEW <viewname> {IF EXISTS}
ALTER
The following statements are now supported:
ALTER TABLE <name> RENAME TO <newname>
All tables can now be renamed.
ALTER TABLE <name> ADD COLUMN <column definition> [BEFORE <existing
name>]
ALTER TABLE <name> DROP COLUMN <colname>
A column can be added to the column list, so long as its definition does not include PRIMARY KEY or IDENTITY keywords. If a DEFAULT clause is used in the definition, its value is used in all the existing rows. Any column can be dropped unless it is part of the column list for a constraint or index.
ALTER TABLE <name> DROP CONSTRAINT <constname>
Any constraint apart from primary key can be dropped. The index backing the constraint is dropped if not referenced by a foreign key.
ALTER TABLE <name> ADD CONSTRAINT <constname> UNIQUE <column list>
Unique constraints can be added. A new index is created if necessary.
ALTER TABLE <name> ADD CONSTRAINT <constname> FOREIGN KEY <foreign key definition>
Both backward and forward referencing foreign keys are supported.
ALTER INDEX <name> RENAME TO <newname>
Any index can be renamed, so long as it is not a primary key index or an automatically created index on the referencing columns of a foreign key.
DROP INDEX <name>
Any index can be dropped, so long as it is not a primary key index or an automatically created index on the referencing columns of a foreign key or an index backing a constraint.
SQL NAMES
Full support for quoted SQL object names which can include any Unicode character. This applies to TABLE, COLUMN, CONSTRAINT and INDEX names.
* Functions
SET FUNCTION such as COUNT AVG SUM now accept the DISTICT parameter. This
feature is
supported only when GROUP BY is not used in the query.
A number of bugs in functions such as ABS, CONCAT and SUBSTR have been fixed.
A small number of new functions have been added.
The SOUNDEX function has been rewritten according to standards.
* Expressions
Arithmetic expressions in SQL statements are now fully supported. Previously, when an arithmetic expression was used to INSERT or UPDATE a value, the first term had to be of the same type as the columns. For example 2*1.2 could not be inserted into a DECIMAL or DOUBLE column. Now all expressions are evaluated and the resulting value can be inserted into a column so long as it can be converted without narrowing.
More lenient treatment of values for TIMESTAMP columns in INSERT and UPDATE now allows a DATE or part TIMESTAMP string to be used instead of the full pattern.
BIT columns can be initialised with numeric values in addition to true and false. Numeric value 0 represents false; all other values represent true.
* Locales
CHAR, VARCHAR and LONGVARCHAR columns can now be sorted according to the current JVM locale. This feature is optional and turned off by default. If turned on, it can slow down database operations, especially where indexes on CHAR columns and its variant are used.
* Error Trapping
Some errors in SQL statements that were not reported before and resulted in potentially incorrect data are now caught.
Dropping tables that are referenced by foreign key constraints from other tables is now disallowed regardless of the system-wide REFERENTIAL_INTEGRITY setting.
Duplicate column names in one table are no longer allowed.
Duplicate index names are no longer allowed.
Using system table names for user tables is disallowed.
INSERT INTO table (a,b,c,...) VALUES (x,y,z,...) statements require the count of names and values to match.
* Enhancements to JDBC
JDBC ResultSet objects are now scrollable and fully support absolute and relative positioning.
Extra getXXX() methods are now supported, including getAsciiStream(), getUnicodeStream(), getCharacterStream().
Optional use of column labels (aliases) as the return value for getColumnName(int i) calls. This is turned off by default.
JDBC PreparedStatement support has been enhanced with support for setting and reading Date, Time and Timestamp values with a given Calendar object. This allows, among others, specifying different time zones for values that are set or read.
Extra setXXX() methods are now supported, including setAsciiStream(), setUnicodeStream(), setCharacterStream().
setObject() methods of PreparedStatement have been improved to allow storage of any serializable object in columns of SQL type, OTHER.
JDBC DatabaseMetaData getImportedKeys(), getExportedKeys(), getCrossReference(), getBestRowIdentifier() are now supported.
* Interoperability Enhancements
HsqlServerFactory allows interoperability with application servers.
An embedded server (an HSQLDB server started inside another application) can be directed to avoid calling System.exit() when the SHUTDOWN command is issued to the database for admin purposes.
javax.jdbc.DataSource interface has been introduced as an experimental feature. In order to include this support, the source code should be compiled with JDK 1.4 or with appropriate J2EE jars present in the class path.
* Performance Enhancements
Very large CHAR, VARCHAR, LONGVARCHAR values are now supported in all types of tables.
Major overhaul of internal operations to drastically reduce creation of temporary objects and type conversion.
Code enhancements to reduce unnecessary method calls in loops.
Enhancements to avoid duplicate indexes (in source code but not activated).
* Reliability Enhancements
Many bugs that existed in 1.43 have been fixed.
Better catching of error conditions and special cases such as null values.
Correct treatment of large binary data.
Better enforcement of internal data consistency in a number of areas.
* Utilities
New Script Tool class allows executing an SQL script.
Enhancements to Transfer Tool to allow the user to save the transfer settings and load them in future sessions. Additional enhancements to support different database source and targets in a modular way.
Swing versions of Transfer Tool and Database Manager.
* Build
Better Ant build with automatic detection of JDK version
List of patches and fixes numbered by SourceForge Tracker ID's.
416437 by deforest@users - JDBC DataSource
418017 by deforest@users - made optional
437174 by hjb@users - cache enhancements
442993 by fredt - mixed type arithmetic expressions
448121 by sma@users - large binary values - part implemented
489917 by jytou@users - optional getColumnName(int) return value
450412 by elise@users - jdk 1.1 compatibility
450455 by kibu@users - platform specific line endings in .scrip file
455757 by galena@users (Michiel de Roo)
455785 by hjbusch@users - large DECIMAL inserts
456679 by hiep256@users - TOP keyword
460907 by fredt - soundex
461556 by paul-h@users - compatibility with application servers
471710 by fredt - LIMIT rewritten
473613 by thertz@users - error trapping for joins
475199 by fredt - duplicate column
475586 by wreissen@users - servlet database name
476650 by johnhobs@users - GROUP BY aggregates
476694 by velichko@users - transaction savepoints
478657 by peterhudson@users - improved TRIGGER support
481239 by xponsard@users - enhancement to Transfer Tool
481239 by yfl@users - SQL script execution
485704 by boucherb@users - null binary objects
488200 by xclay@users - throw exception
489184 by xclay@users - thread safety
489777 by fredt - protection of system tables
491987 by jimbag@users - column size enforcement and preservation
495484 by boucherb@users - exception at shutdown
495938 by johnhobs@users - GROUP BY sorting
497714 by lakuhns@users - scrollable JDBC result sets
497872 by Nitin Chauhan - performance enhancements
497872 by Nitin Chauhan - default labels for aggregates
500767 by adjbirch@users - TransferTool enhancements
505356 by daniel_fiser@users - sorting according to Locale
509002 by fredt - correct parsing of primary key constraints
513005 by sqlbob@users - ABS function
513005 by sqlbob@users - HOUR function
513005 by sqlbob@users - TEMP tables
513005 by sqlbob@users - TEXT TABLE support
514111 by fredt - CONCAT function
517028 by peterhudson@users - JDBC setDate(), etc. with Calendar
521078 by boucherb@users - DROP TABLE checks
523880 by leptitpre@users - VIEW SUPPORT
544754 by sqlbob@users - RAWTOHEX and HEXTORAW functions
549741 by velichko@users - RENAME for tables and indexes
550970 by boucherb@users - fewer StringBuffers
552830 by rougier@users - COUNT(DISTICT column)
580430 by thomasm@users - wrong column name in getIndexInfo()
List of enhancements without patch number
1.7.0 by boucherb@users - maintaining constraint names
1.7.0 by boucherb@users - self referenced foreign keys
1.7.0 by boucherb@users - stubs for JDBC3 methods and updated Javadoc
1.7.0 by boucherb@users - Javadoc for a number of classes
1.7.0 by deforest@users - create database directory if not exists
1.7.0 by fredt - full support for quoted identifiers
1.7.0 by fredt - ON DELETE CASCADE qualifier for foreign keys
1.7.0 by fredt - foreign keys without target column list
1.7.0 by fredt - DEFAULT keyword in column definitions
1.7.0 by fredt - GROUP BY with multiple columns in groups
1.7.0 by fredt - JDBC getDate, etc. with Calendar
1.7.0 by fredt - lenient handling of Timestamp inserts
1.7.0 by fredt - JDK 1.1 compatible deque object backed by an array
1.7.0 by fredt - new HsqlProperties class
1.7.0 by fredt - preservation of column size, etc. with SELECT INTO
1.7.0 by fredt - ensuring internal consistency of Result objects
1.7.0 by fredt - resolving some deprecation warnings
1.7.0 by fredt - ALTER TABLE for adding and dropping columns and constraints
1.7.0 by fredt - revamped storage of cached table with very large strings
1.7.0 by fredt - management of server connections with optional no system
exit
1.7.0 by fredt - revamped management of server and database properties
1.7.0 by fredt - JDBC getUnicodeStream(), getAsciiStream(), getCharacterStream()
1.7.0 by fredt - JDBC setAsciiStream(), setUnicodeStream(), setCharacterStream()
1.7.0 by fredt - JDBC getCrossReference(), getImportedKeys(), getExportedKeys()
1.7.0 by nbazin@users - enhancements to Transfer Tool
1.7.0 by sqlbob@users - reengineering of Database Manager and Transfer Tool
1.7.0 by sqlbob@users - TEMP, TEXT and CACHED table targets for SELECT INTO
1.7.0 by sqlbob@users - improvements to cache size management
1.7.0 by David Moles - tests for subselect
1.7.0 by jrmaher@users - improvements to Script Tool
also a large number of error-trapping and other fixes not documented
======================================================================================
HSQLDB v. 1.61
Changes 20 July 2001
The following enhancements and bug fixes have been introduced:
Patch or Bug tracking numbers are included where one exists.
Compatibility with version 1.43 databases.
Database files created with 1.43 can be opened with version 1.61. The
database is converted into the 1.6x format. As a precaution against future
problems, databases created with later versions cannot be opened by this
version(1.60 and 1.61, 1.6x are considered the same version but 1.6x and
1.7x are different versions).
The LIMIT keyword for fetching only part of the result set.
SELECT LIMIT n m { selectExpression | table.* | * } [, ... ] .........
The LIMIT keyword can be used immediately after the SELECT keyword and has
two numbers as parameters. The query is executed as if LIMIT and its
parameters were not present, then the rows after the offset position (n)
and specified by count (m) are returned. Offset n is counted from one.
"SELECT LIMIT 10 20 * FROM mytable" returns rows 11-30 only
Currently LIMIT cannot be used together with DISTINCT
418019 Timestamp format
418022 Char comparison
418023 SUBSTR
416144<PHONE_NUMBER>15 GROUP BY used with aggregate functions:
a new patch, without side-effects, has been used
425495 setObject
Fred Toussi
fredt@users
========================================================================================
Changes 06 July 2001
I have checked the bug reports and patches and indicated my opinion as to
which patches / bug fixes should be done for the 1.61 point release,
stating NO or OK. I have incorporated some of these and fixed one myself.
In addition, the patch for database migration from 1.43 to 1.6x that I
submitted on 16 April should be incorporated into the point release.
There were 10 patches up to 16 April, which according to Mark, have been
incorporated. Except:
OK-------416149 Swing interface for DatabaseManager - ok - but file is missing
Patches since 16 April:
OK-------418014 Trace specific exceptions - ok
INCORPORATED fredt
NO-------418017 Month format
fredt: - patch is ok - do we want this as it can break existing code
OK-------418019 Timestamp format - ok - won't break existing code
INCORPORATED fredt
OK-------418022 Char comparison
fredt: - patch is ok - do we want this as it can break existing code
fredt: - now I think we should add it anyway. Side effects would be minimal.
INCORPORATED fredt
OK-------418023 SUBSTR - ok
INCORPORATED fredt
Bugs
OK-------416138 Resolved: The user should use switchtojdk11 before the build
NO-------416139 Multiple result sets
fredt: High Hopes?
-------416140 PATCH for getMoreResults() - ok
ALREADY IN VERSION 1.60 fredt
OK-------416141 DatabaseMetaData.getExportedKeys() does not work :
fredt: I know this one from Hypersonic. May be able to fix it.
fredt: In DatabaseInformation.java, getSystemTable(,,) creates a table on
the
fly for metadata information and then fills it with information from tTable.
Code has been written to fill the SYSTEM_TABLES, SYSTEM_TYPES, etc.
but not FOREIGN_KEY etc. as these would be more complicated.
I hope to get a bit of extra time in the near future to implement
this and related calls, getExportedKeys(), getCrossReference(), etc.
-------416142 SAME AS ABOVE
OK-------416143 PATCH LONGVARBINARY - ok
ALREADY IN VERSION 1.60
OK-------416144 PATCH for GROUP BY - has side effect
-------416146 SAME AS ABOVE
INCORPORATED fredt: fixed with different code without side effect
OK-------416325 complaint by user -
fredt: If they submit their changes we will incorporate into the CVS.
OK-------416357 DB transition - documentation issue - If anyone has a
half-finished doc we can put it up and ask users / developers to
contribute and finish it. Mike seems to have done something about this.
OK-------423114 Timestamp - Mike and Mark were looking into this.
fredt: If no results I can have a go.
OK-------423964 Single Quote in string fields - says it has been fixed in
HQSLDB
fredt: has it been fixed?
??-------424027 DELETE FROM ... problem with cached tables
NO-------424759 CREATE TABLE ... request for extended SQL support (worked
with 1.43)
fredt: it works if NOT NULL is placed before PRIMARY KEY
NO-------424763 canonizing column names request for case-insensitive names
(worked with 1.43)
NO-------424767 Request for support for 0 and 1 as bit values
OK-------424784 now() parsed as timestamp
OK-------425495 PATCH setObject - ok
INCORPORATED fredt
-------430615 SAME AS 416144
OK-------432855 shutdown compact
Fred Toussi
fredt@users
======================================================================================
Changes to HSQLDB v. 1.60 directory structure and introduction of an
Ant build.xml
The original directory structure of HypersonicSQL had evolved around a set
of
demos and the hsql.jar file was located in the /demo directory.
There was no /lib directory and the javax.servlet classes were in the same
folder as the source code. This arrangement was somewhat useful with jdk1.1.x
as it did not require a classpath argument for some of the compile and run
tasks.
But it has no major advantage with jdk1.3.
In HSQLDB, all classes are in the org.hsqldb. tree, compared to HypersonicSQL's
org.hsql. This change already dictates that any existing .html, .bat, .sh
and
other command files that are in use for running the database, or its utility
classes, have to be edited to reflect the new tree name.
HypersonicSQL only included .bat files for development and running tasks.
The
development of Apache Ant has made it possible to perform compile and build
tasks
in a platform-independent manner. So a build.xml script for Ant is highly
desirable.
These circumstances justify the introduction a new directory structure which
follows the standards used by Sun and others to distribute Java programs.
Changes:
Summary of Changes:
/bin /lib and /classes directories have been added to the root directory
of the
installation. Some existing files have been moved to these directories. All
command files have been updated to work within the new structure.
Details of Changes:
/bin is almost empty now but will hold .bat and .sh files used for creating
databases and running different configuration of the server. Unlike the
versions in /demo, these will not create a test database and will expect the
user to specify a database.
(.sh files will be added after some work to make them independent of java
runtime location)
/lib contains the javax.servlet precompiled classes (moved from /src) and
is
the location of the hsqldb.jar file when it is created.
/classes contains the org.hsqldb classes while the .jar is being built and
CodeSwitcher.java is used to convert source code. It is normally deleted after
the operation.
In /src there is an Ant build.xml that builds the hsqldb.jar. (Ant must be
already installed). To use it, change to /src then type:
ant
This displays the command line options which include
ant jar to make the hsqldb.jar
ant clean to clean up the /classes directory that is created
ant cleanall to remove the old jar as well
ant switchtojdk11 to process and change the code for jdk1.1.x
ant switchtojdk12 to process and change the code for jdk1.2.x and 1.3.x
In /demo all the html and bat files have been changed to reflect the
new relative location of the hsqldb.jar file. The .bat files all work.
In .html files, the codebase argument was added to the Applet tag. The
in-memory and client-server .html demos all work
/src/build.bat works with jdk1.1x and above. It puts the hsqldb.jar file
in
/lib and takes account of the new location of javax classes.
All the other .bat files work, except:
switchtoprofile.bat
switchtoruntime.bat
There is a problem with the same .bat files in HypersonicSQL 1.43. The new
format
of the 1.60 code and the addition of comments in 1.60 just result in extra
errors.
THESE .bat FILES CORRUPT THE SOURCES, so that if they are performed one followed
by the other, the sources no longer compile correctly (tested with jdk1.3).
***I suggest not to include them in the distribution until there is a
resolution.
I think the new directory structure can be introduced as the remaining minor
problems are definitely not related to the change of directory structure.
Tests have been performed on Win NT 4 SP6A with jdk1.3.0_02 and jdk1.1.8.
In
both test environments, a minimal classpath was used. Internet Explorer 5.5
was
used for testing .html Applets
Fred Toussi
fredt@users
======================================================================================
Code Changes in 1.60
Several minor fixes, code formatted to Sun standards, Javadoc comments started.
Issues Addressed:
Problem: LONGVARBINARY error using setObject.
When using setObject to set the value of a binary column a class cast
error occured. Added methods to resolve this, bug and fix submitted by ?.
Problem: BINARY data types were limited to 32K.
Added support for larger objects. Bug and fix submitted by Jonathan Tappan.
Problem: Cached table corruption
Modified Cache class to update free space list correctly. Bug and fix
submitted by Jonathan Tappan.
Problem: readonly property causes stack dump in Log class
Bug and fix submitted by Donatella Mori and Richard Hoad.
Problem: getMoreResults fails to follow JDBC spec.
Bug and fix submitted by Brent Boyer.
Problem: Subselect bugs
Bug and fix submitted by Mark Muday.
Problem: hsql connection type converted to http by jdbcConnection class.
Bug and fix submitted by Elize Jensen.
Problem: INTERNAL connection type being closed incorrectly, causing, among
other
things, CALL IDENTITY() to fail. Bug and fix provided by Mauro Canal.
New Features:
Extended SQL syntax for DROP TABLE to allow 'DROP TABLE IF EXISTS <table>'.
Logicscope Realisations Ltd. graciously sponsored Peter Hudson who developed
the trigger implementation for HSQLDB.
 The problem with the old mechanism
(as I understand it) was that during a transaction, the uncommitted records
were
available to other channels, i.e. they can read uncommitted changes that may
be
rolled back in the case of an aborted transaction. The modification
allows 2 phase transactions, where the updates are not visible outside of
the
Channel until the transaction is committed. Patch submitted by Valerio Aimale.
The concept is sound, but the changes caused problems, perhaps due to other
changes
in this release.
Mark Tutt
mtutt@users
======================================================================================
Code Changes in 1.44
1.44 is a retrospective package that can be used for comparison with
later versions of HSQLDB.
It consists of the code base for Hypersonic 1.43 with
the following modifications only:
Code formatted to Sun standards.
Package names changed from hsql to hsqldb
======================================================================================
Previous work (hsql/Hypersonic SQL)


×
Oh snap!
Change a few things up
and try submitting again.
Add tasks
Title
Description
Submit
Todo List :


--- layout: page title : Support the blog description: "Ploeh blog is free, and always has been. Keep it free." header : Support group: navigation image: "/content/binary/jump.jpg" --- {% assign article_count = site.posts.size %} {% assign years_active = site.time | date: "%Y" | minus:2009 %} {% include JB/setup %}
{{ page.description }}
I'd like to keep the blog free. There's no ads on it. It has no sponsors.
This enables me to write about what I care about, when I care about it. I don't have to write about something that doesn't interest me, just because someone might be paying me to do so. This means that what you read here represents the best of my efforts, and the most honest representation of my thoughts and ideas, at the time I wrote them down. I hope that you, as a reader, appreciate this.
Writing the articles on this blog takes time. Not only does it take time to write the actual content of each article, but typically I've written much code to support an article. That code I often publish for free as well, on my GitHub profile. I use hours, and sometimes days, on a single blog post.
Currently, there's {{ article_count }} articles in total, published over a period of {{ years_active }} years; that's {{ article_count | divided_by: years_active | divided_by: 12 }} articles per month, on average.
The work that goes into this blog represents a significant fraction of my time.
Ultimately, I write because I want to write; I need to write. I learn so many wonderful things that I want to share with the rest of the world. I've been blogging for at least {{ years_active | plus: 3 }} years, if you also count my old MSDN blog.
I don't mind giving of my knowledge; it does sometimes generate leads. Still, for the last couple of years, I've increasingly found myself contemplating whether I can keep it up when it doesn't generate any income.
For years, you've been able to buy me a cup of coffee, and over the years, a few kind people have done so. I'm always filled with gratitude when I receive such a donation, because that's a PayPal link, and I conjecture that most of the payments I receive are paid by readers personally.
I'm touched when someone pays me with their personal money for something that I give for free. Particularly because there's strong indication that the real beneficiaries of this blog aren't only people, but corporations and other professional organisations.
Site analytics suggest that readers use this blog professionally. Most traffic happens during work days, with noticeable gaps every weekend:
This strongly suggests to me that readers are using the contents while working. You, dear reader, may benefit from the blog, but your employer or workplace does, too.
If you've found this blog valuable in a professional context, consider giving back. I'm not asking for your personal money, but if I've helped to make your development process more effective, then I'd consider it fair if your organisation would like to give back.
Professional organisations aren't geared to donate small amounts via PayPal. Such organisations, however, routinely pay invoices as part of doing business.
I'll be happy to send an invoice to your organisation.
I'm self-employed, so invoicing is something I already do. I'm not an employee, so HR needn't be involved. I run a company in Denmark, so your organisation can view me as yet another supplier.
I can send you a single invoice, or a recurring one, for any amount of your choice. I usually lose between 75 and 350 DKK in international bank transfer fees, but apart from that, I'll be grateful for any amount of support.
If you'd like to professionally support this blog, then please contact me.


This inspection reports duplicate property keys with different values, duplicate keys or duplicate property values. Scope defines the area where inspection would search for duplicates.
For example:
property1=
value
; property2=
value
;


--- layout: page title: Pricing description: meta-title: meta-description: permalink: "/pricing/" ---
| Magestore | Magegiant | Mageworld | Aheadwork | Sweettooth | J2T | |||
|
Price
|
CE | Standard - $99
Platinum - $229 Ultimate - $429 |
Standard - $0
Platinum - $99 Ultimate - $299 |
$149 | $269 | Basic - $59/mo
Small Business - $199/mo Enterprise - $399+/mo |
$53.33 | |
| EE | Standard - $100
Platinum - $459 Ultimate - $859 |
Standard - $99
Platinum - $198 Ultimate - $598 |
$498 | $1,769 | No support | $202.68 |


Dear IFRC Go user,{% include "includes/logo.html" %}
Great news! You've signed up with an approved Red Cross and Red Crescent Movement email. Please validate your IFRC Go account by following this link.
If you do experience any problems, please contact<EMAIL_ADDRESS>Thank you,
IFRC Go


|
KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
Classes | |
| class | PorousResistanceComputation |
Public Member Functions | |
| def | __init__ (self, KratosMultiphysics.Model model, KratosMultiphysics.Parameters parameters) |
| Default parameters. More... | |
| None | AddVariables (self) |
| None | AddDofs (self) |
| None | ImportModelPart (self) |
| None | PrepareModelPart (self) |
| None | Check (self) |
| None | Initialize (self) |
| None | InitializeSolutionStep (self) |
| float | AdvanceInTime (self, float current_time) |
| Compute a bounded variable time step and create new step data. More... | |
| bool | SolveSolutionStep (self) |
| Perform a local solution loop until the time step size shrinks to the target bounds. More... | |
| KratosMultiphysics.ModelPart | GetComputingModelPart (self) |
| None | ExportModelPart (self) |
| def | Finalize (self) |
Static Public Member Functions | |
| KratosMultiphysics.Parameters | GetDefaultParameters () |
| int | GetMinimumBufferSize () |
| def edgebased_levelset_solver.EdgeBasedLevelSetSolver.__init__ | ( | self, | |
| KratosMultiphysics.Model | model, | ||
| KratosMultiphysics.Parameters | parameters | ||
| ) |
Default parameters.
{ "model_part_name" : "", "domain_size" : 3, "density" : 0.0, "viscosity" : 0.0, "wall_law_y" : 0.0, "stabdt_pressure_factor" : 1.0, "stabdt_convection_factor" : 0.1, "use_mass_correction" : true, "redistance_frequency" : 5, "extrapolation_layers" : 5, "tau2_factor" : 0.0, "max_safety_factor" : 0.5, "max_time_step_size" : 1e-2, "initial_time_step_size" : 1e-5, "number_of_initial_time_steps" : 10, "reduction_on_failure" : 0.3, "assume_constant_pressure" : true, "use_parallel_distance_calculation" : false, "compute_porous_resistance_law" : "NONE", ["NONE", "ERGUN", "CUSTOM"] "echo_level" : 0, "solver_type" : "EdgebasedLevelset", "linear_solver_settings" : { "solver_type" : "amgcl" }, "model_import_settings" : { } }
| None edgebased_levelset_solver.EdgeBasedLevelSetSolver.AddDofs | ( | self | ) |
| None edgebased_levelset_solver.EdgeBasedLevelSetSolver.AddVariables | ( | self | ) |
| float edgebased_levelset_solver.EdgeBasedLevelSetSolver.AdvanceInTime | ( | self, | |
| float | current_time | ||
| ) |
Compute a bounded variable time step and create new step data.
Note: this function modifies -> self.safety_factor -> self.current_max_step_size -> self.current_step_size
| None edgebased_levelset_solver.EdgeBasedLevelSetSolver.Check | ( | self | ) |
| None edgebased_levelset_solver.EdgeBasedLevelSetSolver.ExportModelPart | ( | self | ) |
| def edgebased_levelset_solver.EdgeBasedLevelSetSolver.Finalize | ( | self | ) |
| KratosMultiphysics.ModelPart edgebased_levelset_solver.EdgeBasedLevelSetSolver.GetComputingModelPart | ( | self | ) |
|
static |
|
static |
| None edgebased_levelset_solver.EdgeBasedLevelSetSolver.ImportModelPart | ( | self | ) |
| None edgebased_levelset_solver.EdgeBasedLevelSetSolver.Initialize | ( | self | ) |
| None edgebased_levelset_solver.EdgeBasedLevelSetSolver.InitializeSolutionStep | ( | self | ) |
| None edgebased_levelset_solver.EdgeBasedLevelSetSolver.PrepareModelPart | ( | self | ) |
| bool edgebased_levelset_solver.EdgeBasedLevelSetSolver.SolveSolutionStep | ( | self | ) |
Perform a local solution loop until the time step size shrinks to the target bounds.
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.assume_constant_pressure |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.compute_porous_resistance_law |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.current_max_step_size |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.current_step_size |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.density |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.distance_size |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.distance_utils |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.domain_size |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.extrapolation_layers |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.fluid_solver |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.initial_time_step_size |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.matrix_container |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.max_safety_factor |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.max_time_step_size |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.model_part |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.number_of_initial_time_steps |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.pressure_linear_solver |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.redistance_frequency |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.reduction_on_failure |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.safety_factor |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.stabdt_convection_factor |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.stabdt_pressure_factor |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.tau2_factor |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.timer |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.use_mass_correction |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.use_parallel_distance_calculation |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.viscosity |
| edgebased_levelset_solver.EdgeBasedLevelSetSolver.wall_law_y |


The 2021 EDAA Exhibition presents the works of this year's Emerging Digital Artists Award recipients: Aljumaine Gayle, Erin Konsmo, Kately Hawley, Olivia Dreisinger, and Shonee. The exhibition is viewable both online and in the gallery at Trinity Square Video.
Web Design: Caitlin Haaf, 2021
Cover artwork: Khadija Aziz, Silky Waterfalls, 2020
Exhibition artworks: Courtesy of the artists
Installation: José Andrés Mora
Printing: Saman Designs
Documentation: Darren Rigo
The Emerging Digital Artists Award (EDAA) is Canada’s major award for critical experimentation in digital media, proudly presented by Trinity Square Video and EQ Bank. Established in 2015, the annual award celebrates the contributions of early-career, screen-based artists working exclusively in virtual space. Each year, we seek artwork submissions from across the country that push us in new directions and challenge us to see the world through a different screen.
Trinity Square Video is a space to re-imagine media arts. As video-based practices have become increasingly present across disciplines, Trinity Square engages artists and curators in critical investigations into the changing conditions of perception, materiality, and the virtual.
EQ Bank is the digital banking platform launched in 2016 by Equitable Bank, Canada’s Challenger Bank™. As a future-ready financial institution, fostering innovation is at the heart of everything we do. We firmly believe in the benefits of open banking and continue to invest in technology to serve the changing and growing financial needs of Canadians.


Implements interfaces:
TDbDataReader class.
TDbDataReader represents a forward-only stream of rows from a query result set.
To read the current row of data, call read. The method readAll returns all the rows in a single array.
One can also retrieve the rows of data in TDbDataReader by using foreach:
Since TDbDataReader is a forward-only stream, you can only traverse it once.
- foreach($reader as $row)
- // $row represents a row of data
It is possible to use a specific mode of data fetching by setting FetchMode. See http://www.php.net/manual/en/function.PDOStatement-setFetchMode.php for more details.
Located in /Data/TDbDataReader.php (line 37)
TComponent | --TDbDataReader
Constructor.
Binds a column to a PHP variable.
When rows of data are being fetched, the corresponding column value will be set in the variable. Note, the fetch mode must include PDO::FETCH_BOUND.
Closes the reader.
Any further data reading will result in an exception.
Returns the current row.
This method is required by the interface Iterator.
Returns the index of the current row.
This method is required by the interface Iterator.
Moves the internal pointer to the next row.
This method is required by the interface Iterator.
Advances the reader to the next result when reading the results of a batch of statements.
This method is only useful when there are multiple result sets returned by the query. Not all DBMS support this feature.
Advances the reader to the next row in a result set.
Reads the whole result set into an array.
Returns a single column from the next row of a result set.
Returns a single column from the next row of a result set.
Resets the iterator to the initial state.
This method is required by the interface Iterator.
Returns whether there is a row of data at current position.
This method is required by the interface Iterator.
Inherited From TComponent
TComponent::addParsedObject()
TComponent::attachEventHandler()
TComponent::canGetProperty()
TComponent::canSetProperty()
TComponent::createdOnTemplate()
TComponent::detachEventHandler()
TComponent::evaluateExpression()
TComponent::evaluateStatements()
TComponent::getEventHandlers()
TComponent::getSubProperty()
TComponent::hasEvent()
TComponent::hasEventHandler()
TComponent::hasProperty()
TComponent::raiseEvent()
TComponent::setSubProperty()
TComponent::__get()
TComponent::__set()
Documentation generated on Fri, 03 Jun 2011 16:24:07 +0200 by phpDocumentor 1.3.0RC4


TagHelper base implementation for caching elements.
More...
|
|
override int | Order => -1000 |
| |
|
| HtmlEncoder | HtmlEncoder [get] |
| | Gets the System.Text.Encodings.Web.HtmlEncoder which encodes the content to be cached. More...
|
| |
| ViewContext | ViewContext [get, set] |
| | Gets or sets the ViewContext for the current executing View. More...
|
| |
| string | VaryBy [get, set] |
| | Gets or sets a string to vary the cached result by. More...
|
| |
| string | VaryByHeader [get, set] |
| | Gets or sets a comma-delimited set of HTTP request headers to vary the cached result by. More...
|
| |
| string | VaryByQuery [get, set] |
| | Gets or sets a comma-delimited set of query parameters to vary the cached result by. More...
|
| |
| string | VaryByRoute [get, set] |
| | Gets or sets a comma-delimited set of route data parameters to vary the cached result by. More...
|
| |
| string | VaryByCookie [get, set] |
| | Gets or sets a comma-delimited set of cookie names to vary the cached result by. More...
|
| |
| bool | VaryByUser [get, set] |
| | Gets or sets a value that determines if the cached result is to be varied by the Identity for the logged in Http.HttpContext.User. More...
|
| |
| bool | VaryByCulture [get, set] |
| | Gets or sets a value that determines if the cached result is to be varied by request culture. More...
|
| |
| string | CachePartition [get, set] |
| | Gets or sets the cache partition name wehere the cache entry should be created. More...
|
| |
| bool | Enabled = true [get, set] |
| | Gets or sets the value which determines if the tag helper is enabled or not. More...
|
| |
TagHelper base implementation for caching elements.
◆ CacheTagHelperBase()
| Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.CacheTagHelperBase |
( |
HtmlEncoder |
htmlEncoder | ) |
|
◆ CachePartition
| string Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.CachePartition |
|
getset |
Gets or sets the cache partition name wehere the cache entry should be created.
◆ Enabled
| bool Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.Enabled = true |
|
getset |
Gets or sets the value which determines if the tag helper is enabled or not.
◆ HtmlEncoder
| HtmlEncoder Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.HtmlEncoder |
|
getprotected |
Gets the System.Text.Encodings.Web.HtmlEncoder which encodes the content to be cached.
◆ VaryBy
| string Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.VaryBy |
|
getset |
Gets or sets a string to vary the cached result by.
◆ VaryByCookie
| string Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.VaryByCookie |
|
getset |
Gets or sets a comma-delimited set of cookie names to vary the cached result by.
◆ VaryByCulture
| bool Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.VaryByCulture |
|
getset |
Gets or sets a value that determines if the cached result is to be varied by request culture.
Setting this to true
would result in the result to be varied by CultureInfo.CurrentCulture and CultureInfo.CurrentUICulture.
◆ VaryByHeader
| string Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.VaryByHeader |
|
getset |
Gets or sets a comma-delimited set of HTTP request headers to vary the cached result by.
◆ VaryByQuery
| string Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.VaryByQuery |
|
getset |
Gets or sets a comma-delimited set of query parameters to vary the cached result by.
◆ VaryByRoute
| string Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.VaryByRoute |
|
getset |
Gets or sets a comma-delimited set of route data parameters to vary the cached result by.
◆ VaryByUser
| bool Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.VaryByUser |
|
getset |
Gets or sets a value that determines if the cached result is to be varied by the Identity for the logged in Http.HttpContext.User.
◆ ViewContext
| ViewContext Pavalisoft.Caching.TagHelpers.CacheTagHelperBase.ViewContext |
|
getset |
Gets or sets the ViewContext for the current executing View.
The documentation for this class was generated from the following file:
- Source/Pavalisoft.Caching.TagHelpers/CacheTagHelperBase.cs


A mock object does two things: it tests that it receives the expected method invocations and it stubs the behaviour of those methods. Almost all methods can be stubbed in one of three basic ways: return nothing (a void method), return a result to the caller or throw an exception. Sometimes, however, you need to stub side effects of a method, such as a method that calls back to the caller through an object reference passed as one of its parameters. Luckily, jMock makes it easy to write custom stubs for methods with strange behaviours and keep your tests easy to read when you do so.
Here's a simple example: we want to test a NameCollector
object that collects the names of a collection Named
objects.
It will do so by passing a List
to the
collectName
method of the named objects. The named objects
implement collectName
by addding their name to the list they
receive. The Named
interface is shown below:
public interface Named { void collectName( List list ); }
To test the behaviour of our object we will need to mock the
Named
interface, and in particular we need to stub the
side effect of the collectName
method. jMock
provides stubs for returning values and throwing exceptions but we will
have to write our own class to stub the side effect of the
Named
objects.
To write a stub:
Write a class that implements the Stub
interface.
Here's a stub that adds an element to a List received as the first
argument of the method.
public class AddToListStub implements Stub { Object element; public AddToListStub( Object element ) { this.element = element; } public StringBuffer describeTo( StringBuffer buffer ) { return buffer.append("adds <"+element+"> to a list"); } public Object invoke( Invocation invocation ) throws Throwable { ((List)invocation.parameterValues.get(0)).add(element); return null; } }
Write a factory method in your tests class that instantiates your new stub class.
private Stub addListElement( Object newElement ) { return new AddToListStub(newElement); }
Call your factory method within the actual parameter list of the
mock's will
method.
Mock mockNamed = mock(Named.class); String name = "name"; mockNamed.expects(once()).method("collectName").with(NOT_NULL) .will(addListElement(name));


?????? ??????? ?? ????? ?? ??? ??? ??? ???? ???????? ?? ????? ??? ????? ?????? ?????? #IndiaFightsCorona pic.twitter.com/qblqqJaFc8
— Radha Mohan Singh (@RadhamohanBJP) April 9, 2020
Union Agriculture Minister @nstomar chairs meeting with State Agriculture Ministers to review relief steps for farmers.
— Alpana Pant Sharma (@PIBAgriculture) April 9, 2020
Read more: https://t.co/c2owMUhW8I
Excellent gesture!
— Narendra Modi (@narendramodi) April 9, 2020
Kudos to the artists for coming together for this.
It would be a treat to listen. https://t.co/buxBrNZ4Sz
?????????? ?? ??? ??????? ?? ?????????? ?? ?? ???? ???? ???? ???... https://t.co/lVqx6wgI9o
— Narendra Modi (@narendramodi) April 9, 2020
Partners
Projects
Happy Clients
Meetings


aesthetic of the frustration (in which the reader can not know everything) SKILL aesthetic of the XXX (sublime? demiurgic? clarity) in which the reader can know everything. SIMPLICITY aesthetic of the absurd (perl poetry, code poetry), in which the writer, reader and symbol system used all create new layers of meaning through their entanglements IMAGINATION
code is a summarizing art, just like poetry source
Matthew Fuller, in Software Studies, on Elegance:
“In Literate Programming, Donald Knuth suggests that the best programs can be said to possess the quality of elegance. Elegance is defined by four criteria: the leanness of the code; the clarity with which the problem is defined; spareness of use of resources such as time and processor cycles; and, implementation in the most suitable language on the most suitable system for its execution.
beauty as a lack of ambiguity, as efficient achievement of an aim (aim of frustration/clarity/imagination)
whether or not the computer understands is not an aesthetic problem, but an engineering problem.
sensation, perception > how does it make us feel? a poetics of beautiful code -> what is beautiful code? an aesthetics of beautiful code -> how is code beautiful?
an object with aesthetic properties is an objects that makes something (a sensation? a feeling?) happen. how it happens, is an open question: it can happen through sensation, through emotions, through intellect/concept
symbol
in programming?)aesthetics are somewhat isolating, but at the same time connecting. it isolates from the immediate, and then connects to the indirect
poetry questions our approach to (natural/machine) language (through what? interactivity? sound? color? typography? …mental structures). By proposing novel approaches, it is both obfuscating and clearing, then.
literature is the aesthetic usage of written language (trésor de la langue francaise)
this is where I would disagree: literature is not the only aesthetic usage of the written language
case in point: “In general, when a thing becomes useful, it ceases to be beautiful” -Théophile Gauthier, Préface des premières poésies, 1832. This is the exact opposite: code becomes beautiful because it is useful.
“In the discourse of semiotics, recurrent features of form and style within the various expressive arts (poetry, drama, painting, sculpture, music, etc.) or expressive and poetic functions (sometimes termed aesthetic functions) which may be evoked within any kind of text. These tend to celebrate connotation and diversity of interpretation in contrast to logical or scientific codes which seek to suppress these values. See also communicative functions.” - source
adorno - the form of the phonograph record: the artwork only holds “truth-content”, has fragments of true language once life has left it. it is, in a sense a threat to life/a judgment upon life.
applied aesthetics, particularly on education, see chap. 11 of understanding curriculum, but overall not super relevant
art works to shape our basic sense of what is and what matters in all of life (heidegger)
linguistic -> language vs. poetics -> discourse
is about understanding coherence, about understanding structure, and understanding pre-existing patterns (if poetics are prototypes, aesthetics are instances, maybe interfaces). it “an internal theory of literature”, a conjuction of categories, but also a general direction from an author (not sure how that is different from the aesthetics?)
poetics will be called upon to elaborate a theory of description that will bring to light not only what all descriptions have in common but also what permits them to remain different (todorov) - but it must also provide instruments to identify such occurences of, here, a description
“The aesthetics of architecture, by itself, spans traditional issues mooted in philosophy of art, as well as aesthetics of the everyday, and environmental aesthetics. Such traditional issues include the nature of the work; the possibility of classes, kinds, or types in the domain; the character and roles of representation, intentionality, and expression; and the warranted foundations for criticism.”
In distinct progressive and utopian traditions in architectural thought (Eaton 2002), advancement of social utility is a central motivation in architectural attempts to realize idealistic visions of modes of living and societal organization.