CSPICE_FRAME builds a right handed orthonormal frame x, y, z,
given an input vector 'vec' where the output vector 'x'
is parallel to the original input vector.
Given:
vec the vector used to form the first vector of a right-handed
orthonormal triple.
[3,1] = size(vec); double = class(vec)
the call:
[ x, y, z ] = cspice_frame( vec )
returns:
x
y
z [3,1] = size(x); double = class(x)
[3,1] = size(y); double = class(y)
[3,1] = size(z); double = class(z)
the vectors that form a right handed orthonormal frame, with
output 'x' parallel to the input 'vec'.
Any numerical results shown for this example may differ between
platforms as the results depend on the SPICE kernels used as input
and the machine specific arithmetic implementation.
%
% Given some arbitrary vector
%
vec = [ 23., -3., 18. ]';
%
% Create an orthonormal frame with the
% x axis parallel to vec.
%
disp( 'Input vector parallel to output X vector' )
[ x, y, z ] = cspice_frame( vec );
fprintf( 'x %16.8e %16.8e %16.8e\n', x )
fprintf( 'y %16.8e %16.8e %16.8e\n', y )
fprintf( 'z %16.8e %16.8e %16.8e\n\n', z )
%
% Alternative, make a frame with y parallel to
% vec...
%
disp( 'Input vector parallel to output Y vector' )
[ y, z, x ] = cspice_frame( vec );
fprintf( 'x %16.8e %16.8e %16.8e\n', x )
fprintf( 'y %16.8e %16.8e %16.8e\n', y )
fprintf( 'z %16.8e %16.8e %16.8e\n\n', z )
%
% ...or a frame with z parallel to vec.
%
disp( 'Input vector parallel to output Z vector' )
[ z, x, y ] = cspice_frame( vec );
fprintf( 'x %16.8e %16.8e %16.8e\n', x )
fprintf( 'y %16.8e %16.8e %16.8e\n', y )
fprintf( 'z %16.8e %16.8e %16.8e\n\n', z )
MATLAB outputs:
Input vector parallel to output X vector
x 7.83383109e-01 -1.02180405e-01 6.13082433e-01
y 6.16308262e-01 0.00000000e+00 -7.87505001e-01
z 8.04675803e-02 9.94765884e-01 6.29746281e-02
Input vector parallel to output Y vector
x 8.04675803e-02 9.94765884e-01 6.29746281e-02
y 7.83383109e-01 -1.02180405e-01 6.13082433e-01
z 6.16308262e-01 0.00000000e+00 -7.87505001e-01
Input vector parallel to output Z vector
x 6.16308262e-01 0.00000000e+00 -7.87505001e-01
y 8.04675803e-02 9.94765884e-01 6.29746281e-02
z 7.83383109e-01 -1.02180405e-01 6.13082433e-01
Given an input vector x, this routine returns unit vectors x,
y, and z such that xyz forms a right-handed orthonormal frame
where the output x is parallel to the input x.
This routine is intended primarily to provide a basis for
the plane orthogonal to x. There are no special properties
associated with y and z other than that the resulting xyz frame
is right handed and orthonormal. There are an infinite
collection of pairs (y,z) that could be used to this end.
Even though for a given x, y and z are uniquely determined, users
should regard the pair (y,z) as a random selection from this
infinite collection.
For important details concerning this module's function, please refer to
the CSPICE routine frame_c.
MICE.REQ
FRAMES.REQ
-Mice Version 1.0.0, 12-MAR-2012, EDW (JPL), SCK (JPL)
build a right handed coordinate frame
|


Android and iOS are the two most popular operating systems installed worldwide. Launched almost a decade and a half ago, both of them are built to perform almost same functions in smartphones, smartwatches, tablets,TV and in case of iOS it extends to iPhones . Both the systems have undergone various updates to match their counterparts and hence have left the audience struggling to choose between the two. The below article provides with the comparison of various features of android and iOS.
While picking a mobile application for building their business various entrepreneurs favor Android-based applications. Why so? Android devices dominate about 85% of the world’s mobile market. Android applications help businesses to reach a larger target market as well as effectively improve the brand value.
So, finally, you’ve decided to expand your business and your view to reaching out to a larger audience. Now that you have chosen to go into the mobile application scene, you must be wondering which framework is an ideal choice for your mobile application development. Sounds right, doesn’t it?
In the modern era, regardless of your financial status, everyone can afford a smartphone. That means everyone from every walk of life is a potential client. A mobile application allows you to reach a bigger target audience with ease. Yeah, it’s that easy!
After using macOS BigSur for almost an year, we decided to upgrade to macOS Monterey. Once we upgraded to the brand new OS, we also decided to get all the way with the new UI/UX and update our Xcode to the latest version. So we upgraded from Xcode 12 to Xcode 13.
Every iOS application developer should have familiarity with UINavigationController. The navigation controller from UIKit is used to
manage screens or UIViewController. UINavigationController uses a stack to manage the screens. We can push and pop screens out of it, we use many approaches for bringing a screen or a UIViewController to the front or switching or transitioning between screens or presenting it as a modal. For example segue in the StoryBoard.
If you’re familiar with iOS app development you must have come around UITableView, it’s one of the most important and very basic element in the iOS app development. UITableView is used to display data in a list and it also gives the developer a fair amount of control over how the data is presented and how the user can interact with it. And for people from other realms, it’s like RecyclerView of Android and FlatList of React Native. Even though they are used to solve the same problem(Displaying the data in a list), they are architecturally very different. And let’s see how we are going to display a list of data in SwiftUI.
SwiftUI is the hot new tech from Apple. And I’m going to share my experiences creating a Hello Word project in the brand new SwiftUI user interface. And I should tell you, I’m excited to learn a new piece of tech in the Apple realm. Aren’t you?


SHORTER is BETTER
Easy, convenient, Fast
Submit
Magic happen
Here is your history url table:
Your site
Long Url
Short Url
www.google.com
https:FJFKHFKGGGKGHVHK
https:DHGTUP
www.facebook.com
https:YURIYOMPIKMI
<EMAIL_ADDRESS>www.bitly.com
https :LJHBVHVffufuf
https :RFDKLO


Toggle navigation
Boot Camp Bakery
View Database
Add Item
Delete Item
Update Item
Delete From Bakery Database
Item ID
Delete Item


6 / 2 = 3
Three months down, three to go. You should have made some headway on your book by now. Remember, you're going to submit a reflection, too.
If you haven't already done so, tell us what book you're reading here! If you're already done reading, submit a reflection here! If you haven't, get reading!
Best,
Greg, under the guise of Every6


{% extends 'base.html' %} {{ form.media }} {% block title %}
{{ form.utility_id.errors.as_text }}
Are you sure you want to cancel this event?


KONSTPykTIVE D3S1GN - UNDER KOHCTPYKCiONE is a web site where you can find informationa about photography, art and diplomacy. As well as few interesting information
and several different art and tech videos.!
Check us on other webistes
Twitter | YouTube


Color Conversion Algorithms
Contents
The Hue/Saturation/Value model was created by A. R. Smith in 1978. It is based on such intuitive color characteristics as tint, shade and tone (or family, purety and intensity). The coordinate system is cylindrical, and the colors are defined inside a hexcone. The hue value H runs from 0 to 360º. The saturation S is the degree of strength or purity and is from 0 to 1. Purity is how much white is added to the color, so S=1 makes the purest color (no white). Brightness V also ranges from 0 to 1, where 0 is the black.
There is no transformation matrix for RGB/HSV conversion, but the algorithm follows:
// r,g,b values are from 0 to 1 // h = [0,360], s = [0,1], v = [0,1] // if s == 0, then h = -1 (undefined)
void RGBtoHSV( float r, float g, float b, float *h, float *s, float *v ) { float min, max, delta;
min = MIN( r, g, b ); max = MAX( r, g, b ); *v = max; // v
delta = max - min;
if( max != 0 ) *s = delta / max; // s else { // r = g = b = 0 // s = 0, v is undefined *s = 0; *h = -1; return; }
if( r == max ) *h = ( g - b ) / delta; // between yellow & magenta else if( g == max ) *h = 2 + ( b - r ) / delta; // between cyan & yellow else *h = 4 + ( r - g ) / delta; // between magenta & cyan
*h *= 60; // degrees if( *h < 0 ) *h += 360;
}
void HSVtoRGB( float *r, float *g, float *b, float h, float s, float v ) { int i; float f, p, q, t;
if( s == 0 ) { // achromatic (grey) *r = *g = *b = v; return; }
h /= 60; // sector 0 to 5 i = floor( h ); f = h - i; // factorial part of h p = v * ( 1 - s ); q = v * ( 1 - s * f ); t = v * ( 1 - s * ( 1 - f ) );
switch( i ) { case 0: *r = v; *g = t; *b = p; break; case 1: *r = q; *g = v; *b = p; break; case 2: *r = p; *g = v; *b = t; break; case 3: *r = p; *g = q; *b = v; break; case 4: *r = t; *g = p; *b = v; break; default: // case 5: *r = v; *g = p; *b = q; break; }
}
When programming in Java, use the RGBtoHSB and HSBtoRGB functions from the java.awt.Color class.
The YIQ system is the color primary system adopted by National Television System Committee (NTSC) for color TV broadcasting. The YIQ color solid is made by a linear transformation of the RGB cube. Its purpose is to exploit certain characteristics of the human eye to maximize the utilization of a fixed bandwidth. The human visual system is more sensitive to changes in luminance than to changes in hue or saturation, and thus a wider bandwidth should be dedicated to luminance than to color information. Y is similar to perceived luminance, I and Q carry color information and some luminance information. The Y signal usually has 4.2 MHz bandwidth in a 525 line system. Originally, the I and Q had different bandwidths (1.5 and 0.6 MHz), but now they commonly have the same bandwidth of 1 MHz.
Here is the RGB -> YIQ conversion:
[ Y
] [ 0.299 0.587 0.114 ] [ R ]
[ I ] = [ 0.596 -0.275 -0.321 ] [ G ]
[ Q ] [ 0.212 -0.523 0.311 ]
[ B ]
Here is the YIQ -> RGB conversion:
[ R
] [ 1 0.956 0.621 ] [ Y ]
[ G ] = [ 1 -0.272 -0.647 ] [ I ]
[ B ] [ 1 -1.105 1.702 ] [ Q
]
RGB values in a particular set of primaries can be transformed to and from CIE XYZ via a 3x3 matrix transform. These transforms involve tristimulus values, that is a set of three linear-light components that conform to the CIE color-matching functions. CIE XYZ is a special set of tristimulus values. In XYZ, any color is represented as a set of positive values.
To transform from XYZ to RGB (with D65 white point), the matrix transform used is [3]:
[ R ] [ 3.240479
-1.537150 -0.498535 ] [ X ]
[ G ] = [ -0.969256 1.875992 0.041556 ] * [ Y ]
[ B ] [ 0.055648 -0.204043 1.057311 ] [ Z
].
The range for valid R, G, B values is [0,1]. Note, this matrix has negative coefficients. Some XYZ color may be transformed to RGB values that are negative or greater than one. This means that not all visible colors can be produced using the RGB system.
The inverse transformation matrix is as follows:
[ X ] [ 0.412453
0.357580 0.180423 ] [ R ] **
[ Y ] = [ 0.212671 0.715160 0.072169 ] * [ G ]
[ Z ] [ 0.019334 0.119193 0.950227
] [ B ].
XYZ to CIE L*a*b* (CIELAB) & CIELAB to XYZ
CIE 1976 L*a*b* is based directly on CIE XYZ and is an attampt to linearize the perceptibility of color differences. The non-linear relations for L*, a*, and b* are intended to mimic the logarithmic response of the eye. Coloring information is referred to the color of the white point of the system, subscript n.
L* = 116 * (Y/Yn)1/3 - 16 for Y/Yn > 0.008856
L* = 903.3 * Y/Yn otherwisea* = 500 * ( f(X/Xn) - f(Y/Yn) )
b* = 200 * ( f(Y/Yn) - f(Z/Zn) )
where f(t) = t1/3 for t > 0.008856
f(t) = 7.787 * t + 16/116 otherwise
Here Xn, Yn and Zn are the tristimulus values of the reference white.
The reverse transformation (for Y/Yn > 0.008856) is
X = Xn * ( P + a* / 500 ) 3
Y = Yn * P 3
Z = Zn * ( P - b* / 200 ) 3
where P = (L* + 16) / 116
CIE 1976 L*u*u* (CIELUV) is based directly on CIE XYZ and is another attampt to linearize the perceptibility of color differences. The non-linear relations for L*, u*, and v* are given below:
L* = 116 * (Y/Yn)1/3 - 16
u* = 13L* * ( u' - un' )
v* = 13L* * ( v' - vn' )
The quantities un' and vn' refer to the reference white or the light source; for the 2° observer and illuminant C, un' = 0.2009, vn' = 0.4610 [ 1 ]. Equations for u' and v' are given below:
u' = 4X / (X +
15Y + 3Z) = 4x / ( -2x + 12y + 3 )
v' = 9Y / (X + 15Y + 3Z) = 9y / ( -2x + 12y + 3
).
The transformation from (u',v') to (x,y) is:
x = 27u' / ( 18u'
- 48v' + 36 )
y = 12v' / ( 18u' - 48v' + 36 ).
The transformation from CIELUV to XYZ is performed as following:
u' = u / ( 13L*) + un
v' = v / ( 13L* ) + vn
Y = (( L* + 16 ) / 116 )3
X = - 9Yu' / (( u' - 4 ) v' - u'v' )
Z = ( 9Y - 15v'Y - v'X ) / 3v'
Disclaimer: I (N. Schaller) received e-mail from Alexandre Campo<EMAIL_ADDRESS>stating that he felt the last three lines above should be
Y = (( L* + 16 ) / 116 )^3 * Yn
and then simplify by noticing u'v' - u'v' -4v' = -4v'
X = 9Yu' / 4v'
I have not verified this, but have added it for your purusal.


Upload an image and we will recognize it!
*required
File too large {{errorFile.size / 1000000|number:1}}MB: max 2M
Remove
Submit
Upload Successful
{{errorMsg}}
Uploaded image: {{imagename}}


Real Time Bandwidth Reporting
Error retrieving stream data
ibConnect
Using att IOT sensors
bpsu:
bpsd:


I dont know what types of thinks you like, but I love to laugh so here are some things that I find HILARIOUS! After all laughter is the best medicine right? Also the above links are are some little things the guest speaker we had and kevin recommended.
Hilarious Video #1
Even Funnier Video #2
OMG I'm Crying Video #3
If You're NOT Laughing At This Point You Are A Robot
Dude!!! #5
My Chest! #6
Okay are you gonna at least pretend to laugh? #7
This is it brother! #8


This calculator provides stats for any character at any level up to Elite VII and XP level 50. For help, read the guide.
Web Developers: As of 10 December 2016, this calculator is in the public domain. To get your own copy of the source code of this tool, use your browser to view "Page Source". For most Windows browsers, type Ctrl-U to bring up the page's source code. In Safari, type Command + Option + U to do so. After you open the page's source code, save the source code from that window.
The next part is slightly tricky. If you do not already know about Support Cards for All Characters, you need to understand what they are and how to find out which ones are active in your collection. These cards give bonus Health or Damage points to all characters in your collection.
To find them, in the game, I pressed the "BACK" button to go back to my collection. Then I selected the "SUPPORT CARDS" section. It is between "UPGRADES" and "GEAR CARDS."
In the right hand corner, I sorted the Support Cards by CHARACTER. The cards which apply to all characters will move to the beginning of the list.
Next I scrolled through the Support Cards and found those which have either a red heart or a blue fist. I've included an image of Swamp Thing and three Damage Support Cards.
For each of the Support Cards, I made sure that the corresponding checkbox on the form was checked off. Since I have all of the "All Characters" Health and Bonus Support Cards, I checked all of these boxes.
You can see what the form would look like after filling in all of the fields correctly.
Copyright (c) 2014-2016 L Murphy
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Note: If you are examining a character card you already own, especially if you may have augmented it, you should start with Owned Card Augmentations section before moving on to the other sections of the calculator. This section tells you how many augmentations you've already applied to your card.
There are seven sections of the calculator which provide data about character cards:
There's also a General Notes section of the guide.
There are three self-explanatory sections:
Section 1: All Cards, SortedAll Cards is a quick reference section listing all characters in the game. For each character, you will see:
The Damage and Health Stats shown are for Elite level VII, XP level 50, and 35% Damage and Health bonuses.
By default, the stats show maximum damage and health augmentations being applied. Since not all players have lots of augmentation cards from Survivor Mode, you can easily adjust the augmentations level. Simply click on the "Augmentations:" box and change "Maxed out 100%" to a different value. For example, to see characters' statistics with no augmentation cards applied, change it to "None 0%".
Note that "-" for "Title" is often called "Prime".
Section 2: Character SearchThe Character Search section allows you to zero in on characters matching rules you specify. Use this section for finding characters to play in Multi-Player or Survivor mode. These two game playing modes match you with opponents based on the attributes of the teams you assemble for a fight.
For example, in MP mode, the higher your team's total Damage + Health stats, the higher the opponent team's Damage and Health will be, and if you win the fight, the more battle points you'll earn.
You can also use the 'Character Search' section to help you figure out which minimal set of cards you can use to get through Bonus Battle 6, to make the most of your collection and farm it as effectively as possible.
Section 3: Character StatsThe Character Stats section calculates character health and damage for any specified xp and/or elite levels, with any amount of damage or health augmentation cards. It is very good for focusing in on a single character, and looking ahead to where the character will be when you invest in it. By default, the highest elite level VII and highest XP level 50 are pre-selected when you expand this section. However, you can select the drop-down box and choose different Elite levels, or select different XP levels from the other drop-down box.
By default, no augmentations have been pre-selected for the character. If you have Damage or Health augmentation cards sitting in STAR labs in the game and you would like to see what your card would be like if you applied them to this character, you can do so in this section (as well as some of the other calculator sections.)
Also, just a reminder: the augmentations are added to the starting (base) stat values for a card. If a card starts with Health stat of 1400 and you apply 1 Major Health Augmentation card, it would be as if that card were now starting with 1408 Health stat.
Section 4: Owned Card AugmentationsThe Owned Card Augmentations section tells you about Damage and Health augmentations for a card you already own.
The Mobile Injustice: Gods Among Us game app does not tell you what augmentations you have already applied to a character when you look at it. It only tells you the Damage and Health the character currently has - there is no way to determine by looking at those numbers if you have applied Damage or Health augmentation cards, or how many.
In the Owned Card Augmentations section, you fill in the information from the back of your owned character card, and then the calculator will tell you what augmentations you have applied to its Damage and Health, and will also tell you how many more augmentation cards you could apply to the character before reaching the maximum.
If the values you provide in the "Damage for Owned Card:" and "Health for Owned Card:" boxes do not match the calculations, the calculator will tell you the closest values matching the ones you have entered. You can use this feature to reach a target.
So for example, let's say you have Ares E7 50 and all support cards active. You want to get his Damage up to 55,000. You pick Ares from the "Character" box, pick VII and 50. Type 55000 into the "Damage for Owned Card:" box. Check all of the Bonus check boxes. Click the button "Calculate Current and Remaning Damage and Health Augmentations." You will get a message like:
Please fix 'Damage for Owned Card:' value to match your character card. 55000 doesn't appear to be correct. Closest: 54967, level 204.
This means that you can get Ares E7 50 to Damage 54,967 by applying (for example) 102 Minor Damage Augment Cards (204 / 2 = 102).
If you do not get an error message, you can review the augmentations remaining you could apply, and then you can tweak the card, adding additional augmentation cards to the character to see where it would end up if you applied the augmentations.
Section 5: Special 1, Special 2, Super and Basic Attacks DamageThe Specials section is shorter and simpler than the others. You provide the character's Damage stat from another section of the calculator, or from the game app, and it provides tables showing how much damage Special 1, Special 2, the Supermove will do depending on how many of the 10 bars you have bought for the character.
This section will also show Basic Attacks stats: light tap, knockdown swipe and heavy swipe damage.
You can select the character from a drop-down box so that you do not need to know which characters have normal Specials/Supers and which characters do not.
Section 6: Side-by-Side ComparisionThe Side-by-Side comparison section lets you compare up to five characters side-by-side. It lets you look at their potential stats right next to each other and see which ones would the better investments for gaining XP levels, promoting Elite levels or applying damage or health augmentation cards.
This section's results show you the levels, bonuses and augmentations used as inputs to the calculations, and then shows you the Damage, Health, Light tap, Knockdown swipe, and Heavy Swipe values for each card. It also provides each character's store Damage and Health, for your convenience.
Section 7: Custom CharacterThe Custom Character section is for characters which do not yet exist in the rest of the calculator. Maybe you are experimenting with creating a new character. Or maybe WB released a character I have not yet added to the other sections of the calculator. This section allows you to plug in the starting store (base) Damage and Health stats and the color of the card, and then you will see the same information as you see in the Character Stats section of the calculator.
General NotesYou should note that this calculator provides stats, but does not give you a complete picture of how to succeed at this game. There are many factors which impact how successful you will be. Here are some examples:
The Batmen skins are prime examples of cards which would normally have pretty good damage for Special 1, but actually have weak Special 1 moves. So in battles where you will need strong Special 1 moves, you will need to team up Batmen with other cards which have strong Special 1 moves.
Other cards have strong enough Special 1 moves, but their Special 2 moves lack instant knock-out power. Regime Superman and 600 Wonder Woman are examples of this type. Sometimes in a fight you need to bring out the "big guns," but cards with weak Special 2 moves can leave you high and dry in those moments. The Ares character has a good Special 2 which knocks out most other characters.
Some cards have both strong Special 1 moves and Special 2 moves. To see these characters, check the "Special 1 + Special 2 Moves" checkbox in the Search Characters section, then sort by that column. Those will be the ones better at inflicting damage during battle. However, be sure to check their health stats; cards inflicting tons of damage tend to have lower health stats and be less "tank-y." You will probably want to team them up with characters with better health stats. Or, you can team them up with Batgirl to do as much damage as instantly as possible so that the lower health stat is not that much of a factor.
For these reasons and more, keep in mind that you cannot rely only on statistics to tell you what the best cards are.


Having produced both iOS apps and developer tools used in them, I feel very strongly about using semantic versioning. It’s a small price to pay to avoid all sorts of headaches, potentially for many more people than yourself. In my opinion, there’s no reason not to do it.
Maybe you don’t like the hassle of editing that one line in that config file, and coming up with a commit message for the banal change? And then also maybe tagging it with the exact same template you used for all the other tags (after 2.4.17, because that’s when you started/stopped prepending a “v” to it)? Or maybe you’ve just forgotten one of the steps in the midst of hot-patching a critical bug?
Well, I have seen and/or done all of these things at some point. That’s why I wrote Vrsnr to help alleviate the problem for myself. And as if that weren’t simple enough, I automated the automation in a Rake task:
After git stashing --all
of your working index, this will:
--read
to get the version information back out and create a git tagand then pop the stash to resume your regularly scheduled programming.
🙏🏻 Enjoy the post? Please help support more like it by buying me a cup of coffee!.
💡 Suggestions, questions, comments? Please submit a PR!.


Recap on the problem:
- A query takes a long time to complete.
- During this time it makes for a lot of I/O.
- Query's I/O overloads the db, making for other queries run slow.
I introduce the notion of self-throttling queries: queries that go to sleep, by themselves, throughout the runtime. The sleep period means the query does not perform I/O at that time, which then means other queries can have their chance to execute.
I present two approaches:
- The naive approach: for every 1,000 rows, the query sleep for 1 second
- The factor approach: for every 1,000 rows, the query sleeps for the amount of time it took to iterate those 1,000 rows (effectively doubling the total runtime of the query).
Sample query
We use a simple, single-table scan. No aggregates (which complicate the solution considerably).
SELECT rental_id, TIMESTAMPDIFF(DAY, rental_date, return_date) AS rental_days FROM sakila.rental ;
The naive solution
We need to know every 1,000 rows. So we need to count the rows. We do that by using a counter, as follows:
SELECT rental_id, TIMESTAMPDIFF(DAY, rental_date, return_date) AS rental_days, @row_counter := @row_counter + 1 FROM sakila.rental, (SELECT @row_counter := 0) sel_row_counter ;
A thing that bothers me, is that I wasn't asking for an additional column. I would like the result set to remain as it were; same result structure. We also want to sleep for 1 second for each 1,000 rows. So we merge the two together along with one of the existing columns, like this:
SELECT rental_id + IF( (@row_counter := @row_counter + 1) % 1000 = 0, SLEEP(1), 0 ) AS rental_id, TIMESTAMPDIFF(DAY, rental_date, return_date) AS rental_days FROM sakila.rental, (SELECT @row_counter := 0) sel_row_counter ;
To remain faithful to my slides, I rewrite as follows, and this is the naive solution:
SELECT rental_id + CASE WHEN (@row_counter := @row_counter + 1) % 1000 = 0 THEN SLEEP(1) ELSE 0 END AS rental_id, TIMESTAMPDIFF(DAY, rental_date, return_date) AS rental_days FROM sakila.rental, (SELECT @row_counter := 0) sel_row_counter ;
The WHEN clause always returns 0, so it does not affect the value of rental_id.
The factor approach
In the factor approach we wish to keep record of query execution, every 1,000 rows. I introduce a nested WHEN statement which updates time records. I rely on SYSDATE() to return the true time, and on NOW() to return query execution start time.

We can see if the total runtime sums up to the number of sleep calls, in seconds; but how do we know that sleeps do occur at the correct times?
A solution I offer is to use a stored routines which logs to a MyISAM table (a non transactional table) the exact time (using SYSDATE()) and value per row. The following constructs are introduced:
CREATE TABLE test.proof( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, dt DATETIME NOT NULL, msg VARCHAR(255) ) ENGINE=MyISAM; DELIMITER $$ CREATE FUNCTION test.prove_it(message VARCHAR(255)) RETURNS TINYINT DETERMINISTIC MODIFIES SQL DATA BEGIN INSERT INTO test.proof (dt, msg) VALUES (SYSDATE(), message); RETURN 0; END $$ DELIMITER ;
The prove_it() function records the immediate time and a message into the MyISAM table, which immediately accepts the write, being non-transactional. It returns with 0, so we will now embed it within the query. Of course, the function itself incurs some overhead, but it will nevertheless convince you that SLEEP()s do occur at the right time!
SELECT rental_id + CASE WHEN (@row_counter := @row_counter + 1) IS NULL THEN NULL WHEN @row_counter % 1000 = 0 THEN CASE WHEN (@time_now := SYSDATE()) IS NULL THEN NULL WHEN (@time_diff := (TIMESTAMPDIFF(SECOND, @chunk_start_time, @time_now))) IS NULL THEN NULL WHEN SLEEP(@time_diff) + test.prove_it(CONCAT('will sleep for ', @time_diff, ' seconds')) IS NULL THEN NULL WHEN (@chunk_start_time := SYSDATE()) IS NULL THEN NULL ELSE 0 END ELSE 0 END AS rental_id, TIMESTAMPDIFF(DAY, rental_date, return_date) AS rental_days FROM sakila.rental, (SELECT @row_counter := 0) sel_row_counter, (SELECT @chunk_start_time := NOW()) sel_chunk_start_time ; mysql> SELECT * FROM test.proof; +----+---------------------+--------------------------+ | id | dt | msg | +----+---------------------+--------------------------+ | 1 | 2011-11-01 09:22:36 | will sleep for 1 seconds | | 2 | 2011-11-01 09:22:36 | will sleep for 0 seconds | | 3 | 2011-11-01 09:22:36 | will sleep for 0 seconds | | 4 | 2011-11-01 09:22:36 | will sleep for 0 seconds | | 5 | 2011-11-01 09:22:36 | will sleep for 0 seconds | | 6 | 2011-11-01 09:22:36 | will sleep for 0 seconds | | 7 | 2011-11-01 09:22:38 | will sleep for 1 seconds | | 8 | 2011-11-01 09:22:38 | will sleep for 0 seconds | | 9 | 2011-11-01 09:22:38 | will sleep for 0 seconds | | 10 | 2011-11-01 09:22:38 | will sleep for 0 seconds | | 11 | 2011-11-01 09:22:38 | will sleep for 0 seconds | | 12 | 2011-11-01 09:22:40 | will sleep for 1 seconds | | 13 | 2011-11-01 09:22:40 | will sleep for 0 seconds | | 14 | 2011-11-01 09:22:40 | will sleep for 0 seconds | | 15 | 2011-11-01 09:22:40 | will sleep for 0 seconds | +----+---------------------+--------------------------+
The above query is actually very fast. Try adding BENCHMARK(1000,ENCODE('hello','goodbye')) to rental_id so as to make it slower, or just use it on a really large table, see what happens (this is what I actually used to make the query run for several seconds in the example above).
Observant reads will note that the "will sleep..." message actually gets written after the SLEEP() call. I leave this as it is.
Another very nice treat of the code is that you don't need sub-second resolution for it to work. If you look at the above, we don't actually go to sleep every 1,000 rows (1,000 is just too quick in the query -- perhaps I should have used 10,000 seconds). But we do make it once a second has elapsed. Which means it works correctly on average. Of course, the entire discussion is only of interest when a query executes for a substantial number of seconds, so this is just an anecdote.
And the winner is...
Wow, this contest was anything but popular. Marc Alff is the obvious winner: he is the only one to suggest a solution :)
But Marc uses a very nice trick: he reads the PERFORMANCE_SCHEMA. Now, I'm not sure how the PERFORMANCE_SCHEMA gets updated. I know that the INFORMATION_SCHEMA.GLOBAL_STATUS table does not get updated by a query until the query completes (so you cannot expect a change in innodb_rows_read throughout the execution of the query). I just didn't test it (homework, anyone?). If it does get updated, then we can throttle the query based on InnoDB page reads using a simple query. Otherwise, an access to /proc/diskstats is possible, assuming no apparmor or SELinux are blocking us.
Marc also uses a stored function, which is the clean way of doing it; however I distrust the overhead incurred by s stored routine and prefer my solution (which is, admittedly, not a pretty SQL sight!).
Happy throttling!
comments powered by Disqus


{% load static %}
DDChar
Character
Spells
Create Character
Create your Character
{% csrf_token %} {{ form }}
Player Name
Character Name
Class
Level
Race
Age
Alignment
Create


Generating Java code and binding definitions from XML schema definitions is easy with JiBX. The CodeGen tool, added in the 1.2 release, allows you to use both automatic and customized generation for your XML schemas. It provides some very useful features for generating clean code, including:
If you compare the data models generated by CodeGen with other Java code generation
from schema tools you'll see some significant differences, especially when it comes to
schema features like xs:choice and xs:attributeGroup/xs:group. Most other Java code
generation tools basically ignore xs:choice and leave it to the developer to understand
that they can only set one of the alternatives. CodeGen optionally supports this approach
(using the choice-handling="stateless"
customization), but by default generates code which allows only one of the choices to be
set at a time. CodeGen also differs from most other tools of this type in that it
generates separate classes for xs:attributeGroup and xs:group schema constructs which
are used in more than one place, rather than just inlining the values at each reference.
This allows cleaner handling of these groups of values in your code, since they typically
represent a collection of related values which will be used together.
For an in-depth look at using CodeGen, see the JiBX 1.2, Part 2: XML schema to Java code tutorial on the IBM developerWorks site. You can also look over the CodeGen examples included in the distribution, which are discussed in this section of the documentation.
This section of the documentation currently covers only CodeGen. In the future web services code generation directly from WSDL will be supported, and this section will be expanded to include information on the tool used for that purpose.


Motion and Live Photos
Apple’s Live Photos and Android equivalent, Motion Photos, initially seemed a bit like a gimmick when they were announced. However, there are a number of times now where the Live Photos on the iPhone has been of good use - mainly to capture amusing antics before or after the photo occurred!
With playing with Android, I was surprised that this didn’t appear to have the same. However, after some googling, I discovered it does, and it’s called Motion Photos.
However, there are some major differences between the tow, being:
- Motion photos don’t record sound and are silent.
- The motion part is a lower resolution than the main photo.
Both of these make them a bit less useful than the live photo counterparts.
One of the other issues I came across is that whilst I can upload my live photos using the excellent Photosync and this splits the live section off in to a separate movie file that I can view elsewhere, but this doesn’t work on Motion Photos. Searching online suggests that this is because the movie is encoded in to the image on the Motion Photo, after the end of image signature.
I did find a way to split the two in to separate files though, using a PHP script I found on Android Stackexchange. The following script is able to split the original JPG with motion photo in to a single photo and separate MP4 video file. It keeps the original photo in place and splits the video file and image in to two separate new files.
<?php
$src_arg = $argv[1];
$src_dir = realpath(pathinfo($src_arg, PATHINFO_DIRNAME));
echo "Scanning for files...\n";
foreach (glob($src_arg) as $src) {
$file = realpath($src);
if (!is_dir($file) && in_array(strtoupper(pathinfo($file, PATHINFO_EXTENSION)), ["JPEG", "JPG"])) {
echo "\tProcessing: " . $file . "\n";
$filesize = filesize($file);
echo "\t\tFile size: " . $filesize . "\n";
$handle = fopen($file, "rb");
$data = fread($handle, $filesize);
fclose($handle);
$eoi_pos = strpos($data, "\xFF\xD9\x00\x00\x00\x18");
echo "\t\tEOI segment position: " . $eoi_pos . "\n";
if ($eoi_pos !== FALSE) {
$output_base = $src_dir . DIRECTORY_SEPARATOR . pathinfo($file, PATHINFO_FILENAME);
echo "\t\tSaving photo...\n";
file_put_contents($output_base . "_photo.jpg", substr($data, 0, $eoi_pos + 2));
echo "\t\tSaving video...\n";
file_put_contents($output_base . "_video.mp4", substr($data, $eoi_pos + 2));
} else {
echo "\t\tSKIPPING - File does not appear to be a Google motion photo.\n";
}
}
}
echo "Done.\n";
?>
Example
To demonstrate, this can be seen on the following photo of my NAS. I took this photo with Motion Photo turned on1.
Viewing the file on Windows shows a 6.74MB file.
Running this image through the PHP script gives the following output, showing that the file has been split in to a video and photo file.
Reopening the explorer folder, we now have the original photo, the new reduced in size photo (as the video has been removed) and the video file. The new photo file shows that this is now 2.52MB, a reduction of 4.22MB. It appears that this is a lossless operation, which makes sense as the video is located after the end of the JPG data2.
This turns out to be the size of the video file that is created3. In addition, we can see that the video file is a 1024 x 768 video file, compared to the 3024 x 4032 resolution of the original photo.
A video of the photo can be seen here on Youtube, which shows the access lights flashing - not very exciting, but serves a demonstration purpose. The video file can then be viewed in your video player of choice.
Conclusion
Overall, I’m less impressed with Motion Photos than I am with Live Photos. The fact that Live photos are the full resolution but also include sound make things a lot better. In addition, they seem better supported and at least Photosync splits these apart, so nothing further has to be done. Having to split the files apart with a PHP script is fine, but a bit of a hassle.
It also seems like that on Windows there is no easy way to view the motion photos - using Google Photos online works, but only if you upload the photos there for safekeeping and viewing. I haven’t seen a way to view these on Windows, whilst I know Photos on the Mac can happily play Live Photos.
It’s probably a setting that I’ll keep turned off on the phone to be honest. I generally keep Live Photos off as well on the iPhone, so this wouldn’t be that different, though for some occasions, turning on Live Photos can be good4.
-
The image displayed here has been resized, with GPS data stripped and therefore isn’t the actual image with the video attached. ↩
-
And appears to be confirmed by using the Compare command in Imagemagick to compare the two photos. ↩
-
A slight difference in file size (the video file is 4.21MB in Explorer) is likely due to rounding differences. ↩
-
Photographing moving objects it comes in handy ↩


Dated: %s.
Test configuration:
Test Duration: 10 seconds upload, 10 seconds download.
Test server location: %s
Latency to test server: %s ms.
Router IP: %s, Your ISP: %s
Bandwidth Results:
Download: %s Mbps
Upload: %s Mbps
Wifi Statistics:
SSID: %s
Signal: %s dbM
Ping Statistics:
Router: %s ms.
Google: %s ms.
Your DNS: %s ms.
Secondary DNS: %s ms.
Contact<EMAIL_ADDRESS>for further support.
Download Wifi Tester at the Google play store.


| knit_child {knitr} | R Documentation |
This function knits a child document and returns a character string to input
the result into the main document. It is designed to be used in the chunk
option child
and serves as the alternative to the
SweaveInput
command in Sweave.
knit_child(..., options = NULL, envir = knit_global())
... |
Arguments passed to |
options |
A list of chunk options to be used as global options inside
the child document. When one uses the |
envir |
Environment in which code chunks are to be evaluated, for
example, |
A character string of the content of the compiled child document is returned as a character string so it can be written back to the parent document directly.
This function is not supposed be called directly like
knit()
; instead it must be placed in a parent document to let
knit()
call it indirectly.
The path of the child document is determined relative to the parent document.
https://yihui.org/knitr/demo/child/
# you can write \Sexpr{knit_child('child-doc.Rnw')} in an Rnw file 'main.Rnw' to # input results from child-doc.Rnw in main.tex # comment out the child doc by \Sexpr{knit_child('child-doc.Rnw', eval = FALSE)}


Title Goes Here
Bolded Text
Italicized Text
But this will still be here!
I run. He ran. She is running. Will they stop running?
I talked. She was talking. They talked to them about running. Who ran to the talking runner?
[Some text we don't want to keep is in here]
¡Sebastián, Nicolás, Alejandro and Jéronimo are going to the store tomorrow morning!
something... is! wrong() with.,; this :: sentence.
I can't do this anymore. I didn't know them. Why couldn't you have dinner at the restaurant?
My favorite movie franchises, in order: Indiana Jones; Marvel Cinematic Universe; Star Wars; Back to the Future; Harry Potter.
Don't do it.... Just don't. Billy! I know what you're doing. This is a great little house you've got here.
[This is some other unwanted text]
John: "Well, well, well."
James: "There, there. There, there."
There are a lot of reasons not to do this. There are 101 reasons not to do it. 1000000 reasons, actually.
I have to go get 2 tutus from 2 different stores, too.
22 45 1067 445
{{Here is some stuff inside of double curly braces.}}
{Here is more stuff in single curly braces.}
[DELETE]


--- title: quaternion sidebar: function_reference_sidebar permalink: quaternion.quaternion.html folder: function_reference toc: false ---
The class quaternion realizes the internal representation of rotations and orientations in MTEX. An important difference is that an unit quaternion q and its antipodal -q are considered as different while the corresponding rotations are equal.
| a, b, c, d | double |
| a, b, c, d | quaternion coefficients |


REPORT
Accounts of increasing violent crime, especially homicides, in some cities have raised questions about whether the United States has reached the end of the “great American crime decline” .The decrease in crime rates during the 1990s and 2000s was the longest and largest since World War II.
1).National Homicide rate,1960-2016
The increases in both the violent crime and homicide rates from 2014 to 2016 are in contrast to long-term general declines in these rates since the early 1990s, but it was the large percentage increase in the homicide rate during this time that stands out. From both 2014 to 2015 and 2015 to 2016, the violent crime rate increased by approximately 3%. While this is not historically unprecedented,the violent crime rate had larger year-to-year percentage increases in the 1960s, 1970s, and 1980s—it does break with recent trends that saw violent crime rates decrease for most of the 1990s and 2000s. In contrast, the homicide rate increased 11% from 2014 to 2015 and 8% from 2015 to 2016. The 11% increase in the homicide rate in 2015 was the largest year-to-year percentage increase since 1968 .
Annual Percentage Change in violent crimes rate and Homicides rate,1960-2016
Violent crime and homicide rates have generally trended downward since the early 1990s. Even though the violent crime and homicide rates increased from 2014 to 2015 and again from 2015 to 2016, both rates remained at levels not seen since the mid-1960s. The 2016 violent crime and homicide rates are approximately half their post-1960 highs of 758.2 per 100,000 and 10.2 per 100,000. Even though violent crime and homicide rates have generally declined since the early 1990s,there were years when either one or both increased, before resuming the long-term decline in subsequent years. For example, the national violent crime rate increased from 2004 to 2005 and again from 2005 to 2006 before declining nearly every year thereafter.
1).Violent crime in the U.S. has fallen sharply over the past quarter century.
The two most commonly cited sources of crime statistics in the U.S. both show a substantial decline in the violent crime rate since it peaked in the early 1990s. One is an annual report by the FBI of serious crimes reported to police in more than 18,500 jurisdictions around the country. The other is a nationally representative annual survey by the Bureau of Justice Statistics, which asks approximately 160,000 Americans ages 12 and older whether they were victims of crime, regardless of whether they reported those crimes to the police.
Using the FBI numbers, the violent crime rate fell 51% between 1993 and 2018. Using the BJS data, the rate fell 71% during that span. The long-term decline in violent crime hasn’t been uninterrupted, though. The FBI, for instance, reported increases in the violent crime rate between 2004 and 2006 and again between 2014 and 2016. Violent crime includes offenses such as rape, robbery and assault.
2).Property crime has declined significantly over the long term.
Like the violent crime rate, the U.S. property crime rate today is far below its peak level. FBI data shows that the rate fell by 54% between 1993 and 2018, while BJS reports a decline of 69% during that span. Property crime includes offenses such as burglary, theft and motor vehicle theft, and it is generally far more common than violent crime.
3).Public perceptions about crime in the U.S. often don’t align with the data.
Opinion surveys regularly find that Americans believe crime is up nationally, even when the data shows it is down. In 18 of 22 Gallup surveys conducted between 1993 and 2018, at least six-in-ten Americans said there was more crime in the U.S. compared with the year before, despite the generally downward trend in national violent and property crime rates during most of that period.
Pew Research Center surveys have found a similar pattern. In a survey in late 2016, for instance, 57% of registered voters said crime in the U.S. had gotten worse since 2008, even though FBI and BJS data shows that violent and property crime rates declined by double-digit percentages during that span.
While perceptions of rising crime at the national level are common, fewer Americans tend to say crime is up when asked about the local level. In all 21 Gallup surveys that have included the question since 1996, no more than about half of Americans have said crime is up in their area compared with the year before.
4).There are large geographic variations in crime rates.
The BJS statistics don’t allow for specific geographic comparisons, but the FBI data shows big differences from state to state and city to city. In 2018, there were more than 800 violent crimes per 100,000 residents in Alaska and New Mexico. By contrast, Maine, New Hampshire and Vermont had rates below 200 violent crimes per 100,000 residents. And while Chicago has drawn widespread attention for its soaring murder total in recent years, its murder rate in 2018 – about 21 murders and non-negligent manslaughters per 100,000 residents – was less than half of the rates in St. Louis (about 61 per 100,000) and Baltimore (about 51 per 100,000). The FBI notes that various factors might influence a particular area’s crime rate, including its population density and economic conditions.
5).Most crimes are not reported to police, and most reported crimes are not solved.
In its annual survey, BJS asks victims of crime whether they reported that crime to police. In 2018, only 43% of violent crimes tracked by BJS were reported to police. And in the much more common category of property crime, only about a third (34%) were reported. There are a variety of reasons crime might not be reported, including a feeling that police “would not or could not do anything to help” or that the crime is “a personal issue or too trivial to report,” according to BJS.
Most of the crimes that are reported to police, meanwhile, are not solved, at least based on an FBI measure known as the “clearance rate.” That’s the share of cases each year that are closed, or “cleared,” through the arrest, charging and referral of a suspect for prosecution (or through “exceptional means,” such as the death of a suspect or a victim’s refusal to cooperate with a prosecution). In 2018, police nationwide cleared 46% of violent crimes that were reported to them. For property crimes, the national clearance rate was 18%.


SweetFreeStuff.com
///////////////////////////////////////////
Free Space Juice at Thorntons Stores
Posted: 17 Sep 2013 08:20 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/U9CSmaqC8e4/?utm_source=feedburner&utm_medium=email
Print or scan the coupon on your mobile device to redeem a Free Space Juice
at Thorntons. Good through 9/22. View Locations.
The post Free Space Juice at Thorntons Stores appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Maybelline FIT ME Sample
Posted: 17 Sep 2013 05:29 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/TVGiOmqSMqQ/?utm_source=feedburner&utm_medium=email
Sign up to receive your Free Sample of Maybelline FIT ME from Walmart.com.
The post Free Maybelline FIT ME Sample appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of Sensodyne Toothpaste (Costco Members)
Posted: 17 Sep 2013 03:23 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/wuXIxkYD0Ao/?utm_source=feedburner&utm_medium=email
You will need a Costco member ID for your free sample of Sensodyne
Toothpaste.
The post Free Sample of Sensodyne Toothpaste (Costco Members) appeared
first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of Finish Quantum Dishwashing Detergent
Posted: 17 Sep 2013 03:02 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/IHyh4WEIT5E/?utm_source=feedburner&utm_medium=email
The post Free Sample of Finish Quantum Dishwashing Detergent appeared first
on SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of Nexcare Waterproof Bandages
Posted: 17 Sep 2013 02:40 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/Ht_zlh_Fu1U/?utm_source=feedburner&utm_medium=email
The post Free Sample of Nexcare Waterproof Bandages appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Garnier Fructis Triple Nutrition Sample
Posted: 17 Sep 2013 01:00 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/pAwGZt_oc88/?utm_source=feedburner&utm_medium=email
Request your free sample of Garnier Fructis Triple Nutrition from
Walmart.com.
The post Free Garnier Fructis Triple Nutrition Sample appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free NOW Sports Whey Protein Isolate Samples
Posted: 17 Sep 2013 01:00 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/lASJC9-ZEnw/?utm_source=feedburner&utm_medium=email
Now Foods is giving out 100 free Cookies and Crème Whey Protein Isolate
sample packets on their Facebook paghe from September 1st through
September 25th. The giveaway will go at 1AM ET each day.
The post Free NOW Sports Whey Protein Isolate Samples appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Maxim Magazine Subscription
Posted: 16 Sep 2013 11:59 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/kJV8nTpK1fY/?utm_source=feedburner&utm_medium=email
Sign up for a completely
The post Free Maxim Magazine Subscription appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of LOreal Advanced Haircare
Posted: 16 Sep 2013 11:24 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/IKX1pWLnOEE/?utm_source=feedburner&utm_medium=email
Choose which Free LOreal Advanced Haircare Sample is for you and complete
the sign up to receive a sample. You may need to log in or sign up for an
account.
The post Free Sample of L’Oreal Advanced Haircare appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Reminder: Enter our $100 Amazon Gift Card Giveaway :)
Posted: 16 Sep 2013 10:01 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/ccCZ-Zq3AU0/?utm_source=feedburner&utm_medium=email
Enter the Giveaway Now!!
The post Reminder: Enter our $100 Amazon Gift Card Giveaway :) appeared
first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Drink at Starbucks
Posted: 16 Sep 2013 05:11 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/nEP3AC12G2c/?utm_source=feedburner&utm_medium=email
Register your Starbucks gift card to join My Starbucks Rewards by September
22 and youll get a free drink from Starbucks. (New accounts only. Limit one
per person.)
The post Free Drink at Starbucks appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of Mrs. Dash Seasoning Blend
Posted: 16 Sep 2013 02:25 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/i2uAnYkos6Y/?utm_source=feedburner&utm_medium=email
Play their game to get a or enter to win $2,500.
The post Free Sample of Mrs. Dash Seasoning Blend appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Subscription to HDVideoPro
Posted: 16 Sep 2013 01:57 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/O72rKZ5a3wY/?utm_source=feedburner&utm_medium=email
Sign up for a free one-year subscription to HDideoPRo
The post Free Subscription to HDVideoPro appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Original Glazed Doughnut at Krispy Kreme September 19th
Posted: 16 Sep 2013 03:56 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/hZ1h3dZsauw/?utm_source=feedburner&utm_medium=email
They are giving out free doughnuts in honor of Talk Like a Pirate Day. All
you have to do is enter a participating Krispy Kreme on Thursday, September
19th and talk like a pirate for one free original glazed doughnut. If you
dress up in full pirate attire they will give you a free dozen []
The post Free Original Glazed Doughnut at Krispy Kreme September 19th
appeared first on SweetFreeStuff.com.


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/Cauchy.20sequences.html ---
If I understand correctly, for now, in mathlib, there are Cauchy filters, and a notion named cau_seq
but defined on rings and with respect to some absolute value, but not the classical notion of Cauchy sequence in metric spaces (which is simply cauchy (at_top.map u)
where u
is a sequence from ℕ to some metric or even uniform space). And neither is the fact that a metric space is complete iff every Cauchy sequence converges, right?
Would it make sense to use cau_seq_abv
for the slightly exotic cau_seq
above, and to use cau_seq
for the usual notion? I fear there would be some duplication with the current cau_seq
, but I do not see how it could be avoided without a big refactoring.
I don't think that's right. We do have everything you say.
I think there was some question here about how to prove that a metric space in which every Cauchy sequence converges is complete
I don't think that's right. We do have everything you say.
Great! Can you point me to the definition of metric Cauchy sequences?
we have Cauchy filters
I don't think there is much point in focusing on sequences once we go to that generality, except as a "oh by the way"
oh right, I confused it with Cauchy filter.
what's wrong with cauchy (at_top.map u)
?
When you prove completeness of a metric space, you really want to restrict to sequences. For instance, the completeness of L^p
is proved by taking a converging series, arguing about the almost sure convergence, and then deducing convergence in L^p
using some monotone convergence theorem. This is a subtle proof, and it really goes through sequences, not filters :)
And the notion you want to use is the epsilon-delta one, by the way.
As I mentioned in the linked conversation, cauchy_of_metric
should give you the epsilon-N definition if you apply it to at_top
I think
Any fact like "in order to check P for all X you only need to check it for X of a special form Y" is a good fact which we should have. I think we don't have this for checking completeness of metric spaces in terms of sequences, and we should.
It is already there in disguise, in data.real.cau_seq_filter
, but formulated only in normed fields. See #PR435 for an adaptation to all metric spaces.
I think you don't need metric spaces for cauchy sequences
first countable uniform spaces should be enough
I think facts of the form "sequences are as good as filters" are what first countability is all about
But I'm also not convinced by your monotone convergence example. There are quite a lot of theorems in metric space theory that are stated on sequences just because that's the tool you have, even though they would be easier expressed with filters
First countable is only talking about neighborhoods of points that exist in the space. If you imagine a first countable complete uniform space, except for a point x
that can not be reached by countable sequences, and you remove this point, then the new space will still be first countable, all Cauchy sequences will converge, and still it will not be complete. The good condition would rather be that the uniformity is countably generated, but we have no type class for this, and I do not see real life examples where it would be useful to have this generalization.
For the completeness of L^p
, let me insist that this is really something which is proved by sequences (contrary to many statements in metric spaces that could be proved more easily with filters, I completely agree with you about that). With more details, the proof goes as follows. Take a Cauchy sequences u n
. Extract a subsequence v n
such that the distance from v n
to v(n+1)
is at most 2^{-n}
. Form the series V = \sum \abs(v_{n+1} - v_n)
. Check that it has finite integral. In particular, it is almost everywhere finite. Then the series v = \sum (v_{n+1} - v_n)
is also defined almost everywhere. Moreover, by dominated convergence (using the dominating function V
), v n
tends to v
in L^p
. Finally, our original Cauchy sequence u n
has a converging subsequence, hence it converges.
It looks to me like the original cauchy sequence serves no purpose here
because you have to refine it by a subsequence anyway
you may as well have taken a sequence out of a filter
This is true, but taking a subsequence out of a sequence is much easier than taking a sequence out of a filter.
is it?
the constraints are the same
at least, it's not obvious to me that there is much difference
Well, the proof of completeness from sequential completeness is not really trivial: the version written by Robert Lewis takes roughly 150 lines. And the main point is to extract a sequence from a filter. Extracting a subsequence from a Cauchy sequence should take 5 lines, at most 10. But maybe this simply shows that Robert was not perfectly efficient in its filter use (and I certainly would not have been more efficient), I can not say for sure. What I can say for sure is that, the day a mathematician who is not completely familiar with the filters library wants to prove the completeness of some Sobolev or Hardy space, say, he will be extremely happy to have the sequential criterion!
I don't mean to say that we should not have sequences
but the language to talk about them is there
if you want to formalize a proof using sequences, the lemmas should be there to help you do so
but they may also be avoidable, and I think there will often be a proof length gain in doing so
The equivalence may very well be nontrivial, but that's a one time cost
What 150 line proof are you talking about?
The one in data.real.cau_seq_filter
that my pull request #PR435 refactors. By the way, I have edited my branch to remove the leftover statements, and answered your comment on this PR, but nothing shows up on the PR page. Is github more or less down?
I was having some issues with GH a few hours ago, status says the DB is undergoing some "repairs"
I think the proof can be simplified a bit, but I will work from your version rather than Rob's if you've already refactored it
in particular I notice cauchy_of_metric
is never used, which would simplify things
(at least in cauchy_of_filter_cauchy
and converse)
In my PR, I have in metric_space.lean
a statement cauchy_seq_metric
expressing Cauchy sequences purely in metric terms, and using cauchy_of_metric
, so cauchy_of_filter_cauchy
and converse should become essentially trivial.
what is this topo_metric
thing?
also cauchy_seq_metric
should have a trivial proof if you prove the behavior of the at_top quantifier
topo_metric
means I consider maps from a topological space to a metric space. What would be a better name? topo_to_metric
is bad as it seems to imply that we are converting a topology to a metric...
I have to go. Feel free to change anything you like!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Git
Experienced with git-based development.
Python
Main programming language for trading automation. Proficient with backtesting frameworks: backtrader and vectorbt
R
Experienced in backesting TAA strategies with R
Microsoft Power BI
Experience with PBI dashboarding to present real time TAA strategy performance to portfolio managers
SQL
Experience with Database management to store quantitative finance data
Javascript
Know basic Javascript programming, developed personal website in html/js/css and E-commerce website
Java
Proficient in Java programming, used in NUS coursework, developed chatbot with java (3kloc). Achieved A- in Data structure and Algorithms course (Java)
Excel VBA
Proficient in Excel functions and developing VBA macros


{% extends "base.html" %} {% block redirect %} {% endblock %} {% block page_content %}
Click on the Start button to go to the form.
Fill the form according to the following rules
Enter a number to which a list of people who got the message and a
list of people who couldn't get the message will be sent. The number must
be include the country code without the +
. For example, if your number
is 987654321
and you're from India (+91
), then enter<PHONE_NUMBER>1
.
Upload a CSV file with three columns (Don't forget to add the column headings, which should be exactly as given)
id
, which contains a numeric id unique for each entry.
name
, which contains the name of the person.
phone
, which contains the number to which the message should be sent.
Follow the same format as the logging phone number. It's not necessary for the
numbers to be in your contacts list or for you to have an existing chat with them.
Enter which IDs from the CSV you want to send the message to. You can
either enter the IDs space separated, or just enter all
to send to all.
Enter the message you want to send. You can use {{ "{{name}}" }}
as a placeholder
which will be replaced by the name in the CSV.
Wait for the QR to load on the screen. Once it loads, scan the QR from your phone. The application will wait till you're logged in, and then start sending the messages in the background.


1.Boys spend less time on make up and hair. 2.Boys take less time at barber shop. 3.Boys hair grow naturaly. 4.Boys are more athletic specifically in foot ball american foot ball (rugby) swmming and many many more.
5.Boy take less time in the wash room. 6 Boy are stronger. 7.Sometimes more creative. 8.their good in laptop aka computer games. A boy is a young male human. The term is usually used for a child or an adolescent. When a male human reaches adulthood. He is described as a man. A male child from birth to adulthoodis a boy. A boy is a son. A boy is an immature male separate the men from the boys boy genius. d : sweetheart, beau.
9.they grow more musles. 10.boys more likely to be visual learners. 11.A boy is well mannerd and behaved. 12.Boys are brave.
13.boys are not self centerd. 14.Not having to give birth. 15.We can wee anywhere. 16.boys are more capable of surviving physical asault.


Tinkersale [Product Revamp & Feature enhancements]
Android, ApplicationTinkerSale lets users to build communities where members can buy, sell and share information on products and services with their social friends.
- Revamped Using: Java, XML,Client's API
- Completed on: CURRENT
- By: Abhijit Das a.k.a silverFoxA
DevMetric - Technical Club
Website DevelopmentDevMetric is an exclusive Analytics, web and Android development club which is fueled by the students of Alliance College of Engineering and Design for the students of Alliance University.
- Created Using:MySQl, PHP, HTML, CSS, JS
- Completed on: CURRENT
- By: Abhijit Das a.k.a silverFoxA
Lyphe - Complete Health Needs
Android, ApplicationLyphe app is a fast and simple healthcare application which helps you to find right care for your needs.
- Created Using: Java, XML, SQLite, MySQl, PHP, Firebase
- Completed on: CURRENT
- By: Abhijit Das a.k.a silverFoxA
Doctors - Manage patients
Android, ApplicationLyphe helps you make your practice really easy. With Lyphe, you can accept appointments online without the need for you to seek the help of a receptionist.
- Created Using: Java, XML, SQLite, MySQl, PHP, Firebase
- Completed on: CURRENT
- By: Abhijit Das a.k.a silverFoxA
ExpenseDroid
Android, ApplicationExpenseDroid is an expense manager to keep track of all your expenses including trip and basic expense as well.
- Created Using: Java, XML, SQLite
- Completed on: 1st June, 2015
- By: Abhijit Das a.k.a silverFoxA
silverFoxA - Personal Website
Web development, Web designIt is a personal website made for job seeking and resume purpose also to blog.
- Created Using: Jekyll, HTML, CSS, JS
- Completed on: 2nd March, 2016
- By: Abhijit Das a.k.a silverFoxA
Attendance
Android, ApplicationIt is an attendance management tool for the students who wants to track their attendance.
- Created Using: Java, XML, SQLite, Google SignIn
- Completed on: 18th November, 2015
- By: Abhijit Das a.k.a silverFoxA
CodeHack
Android, ApplicationCodeHack is a coding challenges and hackathon tracker.
- Created Using: Java, JSON, WEB SERVICES, Jsoup, XML, SQLite, Firebase
- Completed on: 7th November, 2015
- By: Abhijit Das a.k.a silverFoxA
TeamKrishna
Web Design, Web DevelopmentIt is an Organisational website for a small organisation striving to teach underprevilages kids the basics.
- Created Using: HTML,CSS, Js, PHP, Parse
- Completed on: January, 2016
- By: Abhijit Das a.k.a silverFoxA, Ajit Das, Irfan Ali
Quasor
Web Design, Web DevelopmentQuasor is a bangalore based startup mainly focusing on rocket modeling workshop.
- Created Using: HTML, CSS, Js, PHP
- Completed on: November, 2016
- By: Abhijit Das a.k.a silverFoxA, Ajit Das


Click one of the toggles to start.
Use these buttons to oporate:
STOPWATCH: Count up
COUNT-DOWN TIMER: Count down from a number
STOP/START: Stop/start timer
HELP: Display the HELP screen


Hi! I will ask you did you do it and then listen your answer. I will repeat what I understood before I begin to listen you again.
Begin our conversation by pressing "Start talk" button below the list. Your browser will ask you a permission to access your microphone.
Google Chrome 33 or greater is required. Also ensure both your microfone and speakers are working and loud enough.
Commands:
yes, okay - feed 1
maybe, unknown - feed 0
no, negative - feed -1
stop - stop listening
The collected event data sequence:
Fork me in GitHub


|
||||||||||
| 上一个软件包 下一个软件包 | 框架 无框架 |
| 接口摘要 | |
|---|---|
| Tree.Factory | An interface for tree factories |
| 类摘要 | |
|---|---|
| Pretty | Prints out a tree as an indented Java source program. |
| Tree | Root class for abstract syntax tree nodes. |
| Tree.Apply | A method invocation |
| Tree.Assert | An assert statement. |
| Tree.Assign | A assignment with "=". |
| Tree.Assignop | An assignment with "+=", "|=" ... |
| Tree.Binary | A binary operation. |
| Tree.Block | A statement block. |
| Tree.Break | A break from a loop or switch. |
| Tree.Case | A "case :" of a switch. |
| Tree.Catch | A catch block. |
| Tree.ClassDef | A class definition. |
| Tree.Conditional | A ( ) ? |
| Tree.Continue | A continue of a loop. |
| Tree.DoLoop | A do loop |
| Tree.Erroneous | |
| Tree.Exec | an expression statement |
| Tree.ForLoop | A for loop. |
| Tree.Ident | An identifier |
| Tree.If | An "if ( ) { } else { }" block |
| Tree.Import | An import clause. |
| Tree.Indexed | An array selection |
| Tree.Labelled | A labelled expression or statement. |
| Tree.Literal | A constant value given literally. |
| Tree.MethodDef | A method definition. |
| Tree.NewArray | A new[...] operation. |
| Tree.NewClass | A new(...) operation. |
| Tree.Parens | A parenthesized subexpression ( ... ) |
| Tree.Return | A return statement. |
| Tree.Select | Selects through packages and classes |
| Tree.Skip | A no-op statement ";". |
| Tree.Switch | A "switch ( ) { }" construction. |
| Tree.Synchronized | A synchronized block. |
| Tree.Throw | A throw statement. |
| Tree.TopLevel | Everything in one source file is kept in a TopLevel structure. |
| Tree.Try | A "try { } catch ( ) { } finally { }" block. |
| Tree.TypeArray | An array type, A[] |
| Tree.TypeCast | A type cast. |
| Tree.TypeIdent | Identifies a basic type. |
| Tree.TypeParameter | A formal class parameter. |
| Tree.TypeTest | A type test. |
| Tree.Unary | A unary operation. |
| Tree.VarDef | A variable definition. |
| Tree.Visitor | A generic visitor class for trees. |
| Tree.WhileLoop | A while loop |
| TreeInfo | Utility class containing inspector methods for trees. |
| TreeMaker | Factory class for trees |
| TreeScanner | A subclass of Tree.Visitor, this class defines a general tree scanner pattern. |
| TreeTranslator | A subclass of Tree.Visitor, this class defines a general tree translator pattern. |
|
||||||||||
| 上一个软件包 下一个软件包 | 框架 无框架 |


Theme Class
The Theme class provides theming to your application.
Asset support
Every Theme class instance has its own instance of the Asset class, to make it easy to load assets from the theme. The Asset instance is populated with the asset paths of both the active and the fallback theme, which will provide the same fallback features for your assets as you have for other theme elements like templates and views.
Example:
// load an asset using the default theme instance
echo \Theme::instance()->asset->css('bootstrap.css');
Advanced configuration
The methods active(), fallback(), get_info() and load_info() by default allow you to pass a string with the name of an installed theme. These methods allow you to pass an theme definition array instead, which makes it possible to pass extra configuration information.
The following theme variables are defined:
| Param | Type | Default | Description |
|---|---|---|---|
| name | string | required | The name of the theme. This must match to a folder in the path specified. |
| path | string | required | The path of the theme. This must include the name of the theme, and end with a directory separator. |
| asset_base | string | optional | The base path to the assets of this theme, relative to the application DOCROOT. If outside the DOCROOT, the path should be fully qualified. It should end with a directory separator. If not specified, it will be constructed from the given theme path, the configured assets_folder, and the configured base_url. |
| info | array | optional | The theme's information array. If not defined, it will be created from the information in the theme info file. |
| find_file | boolean | optional | If set to true, the Finder::search() method will be used to locate view files and theme info files. |
Example:
// standard usage: create an instance and set the active theme
$theme = \Theme::forge();
$theme->active('darkglow');
// advanced usage
\Config::load('theme', true, false, true);
$config = \Config::get('theme', false);
// override a config value
$config['info_file_name'] = 'setupinfo.yaml';
// create the theme instance
$theme = \Theme::forge($config);
// set the active theme
$theme->active(
array(
'name' => 'darkglow',
'path' => APPPATH.'themes'.DS.'darkglow'.DS,
'asset_base' => '/themes/darkglow/assets/',
'find_file' => true,
)
);


Design¶
piSTAR Lab is build from on serveral excellent opensource technologies including:
Redis (redis.io) - in-memory data store
Ray (ray.io) - distributed processing framework to handle remote task execution
SQLite (sqlite.org)/ PostgreSQL (postgresql.org)
Vuejs (vuejs.org) - web development framework built on (nodejs)
Theia IDE (theia-ide.org) - web based IDE


Register Forms by Fatihwin
First Name
Last name
Email
Password
By creating an account you agree to our
Terms & Privacy
.
Create My Free Account


|
M480 BSP V3.05.005
The Board Support Package for M480 Series
|
#include <wwdt_reg.h>
Data Fields | |
| __O uint32_t | RLDCNT |
| __IO uint32_t | CTL |
| __IO uint32_t | STATUS |
| __I uint32_t | CNT |
@addtogroup WWDT Window Watchdog Timer(WWDT) Memory Mapped Structure for WWDT Controller
Definition at line 26 of file wwdt_reg.h.
| WWDT_T::CNT |
[0x000c] WWDT Counter Value Register
| Bits | Field | Descriptions |
| [5:0] | CNTDAT | WWDT Counter Value
CNTDAT will be updated continuously to monitor 6-bit WWDT down counter value. |
Definition at line 197 of file wwdt_reg.h.
| WWDT_T::CTL |
[0x0004] WWDT Control Register
| Bits | Field | Descriptions |
| [0] | WWDTEN | WWDT Enable Control Bit
Set this bit to enable WWDT counter counting. 0 = WWDT counter is stopped. 1 = WWDT counter is starting counting. |
| [1] | INTEN | WWDT Interrupt Enable Control Bit
If this bit is enabled, the WWDT counter compare match interrupt signal is generated and inform to CPU. 0 = WWDT counter compare match interrupt Disabled. 1 = WWDT counter compare match interrupt Enabled. |
| [11:8] | PSCSEL | WWDT Counter Prescale Period Selection
0000 = Pre-scale is 1; Max time-out period is 1 * 64 * WWDT_CLK. 0001 = Pre-scale is 2; Max time-out period is 2 * 64 * WWDT_CLK. 0010 = Pre-scale is 4; Max time-out period is 4 * 64 * WWDT_CLK. 0011 = Pre-scale is 8; Max time-out period is 8 * 64 * WWDT_CLK. 0100 = Pre-scale is 16; Max time-out period is 16 * 64 * WWDT_CLK. 0101 = Pre-scale is 32; Max time-out period is 32 * 64 * WWDT_CLK. 0110 = Pre-scale is 64; Max time-out period is 64 * 64 * WWDT_CLK. 0111 = Pre-scale is 128; Max time-out period is 128 * 64 * WWDT_CLK. 1000 = Pre-scale is 192; Max time-out period is 192 * 64 * WWDT_CLK. 1001 = Pre-scale is 256; Max time-out period is 256 * 64 * WWDT_CLK. 1010 = Pre-scale is 384; Max time-out period is 384 * 64 * WWDT_CLK. 1011 = Pre-scale is 512; Max time-out period is 512 * 64 * WWDT_CLK. 1100 = Pre-scale is 768; Max time-out period is 768 * 64 * WWDT_CLK. 1101 = Pre-scale is 1024; Max time-out period is 1024 * 64 * WWDT_CLK. 1110 = Pre-scale is 1536; Max time-out period is 1536 * 64 * WWDT_CLK. 1111 = Pre-scale is 2048; Max time-out period is 2048 * 64 * WWDT_CLK. |
| [21:16] | CMPDAT | WWDT Window Compare Register
Set this register to adjust the valid reload window. Note: User can only write WWDT_RLDCNT register to reload WWDT counter value when current WWDT counter value between 0 and CMPDAT If user writes WWDT_RLDCNT register when current WWDT counter value larger than CMPDAT, WWDT reset signal will generate immediately. |
| [31] | ICEDEBUG | ICE Debug Mode Acknowledge Disable Control
0 = ICE debug mode acknowledgement effects WWDT counting. WWDT down counter will be held while CPU is held by ICE. 1 = ICE debug mode acknowledgement Disabled. WWDT down counter will keep going no matter CPU is held by ICE or not. |
Definition at line 195 of file wwdt_reg.h.
| WWDT_T::RLDCNT |
[0x0000] WWDT Reload Counter Register
| Bits | Field | Descriptions |
| [31:0] | RLDCNT | WWDT Reload Counter Register
Writing 0x00005AA5 to this register will reload the WWDT counter value to 0x3F. Note: User can only write WWDT_RLDCNT register to reload WWDT counter value when current WWDT counter value between 0 and CMPDAT (WWDT_CTL[21:16]) If user writes WWDT_RLDCNT when current WWDT counter value is larger than CMPDAT , WWDT reset signal will generate immediately. |
Definition at line 194 of file wwdt_reg.h.
| WWDT_T::STATUS |
[0x0008] WWDT Status Register
| Bits | Field | Descriptions |
| [0] | WWDTIF | WWDT Compare Match Interrupt Flag
This bit indicates the interrupt flag status of WWDT while WWDT counter value matches CMPDAT (WWDT_CTL[21:16]). 0 = No effect. 1 = WWDT counter value matches CMPDAT. Note: This bit is cleared by writing 1 to it. |
| [1] | WWDTRF | WWDT Timer-out Reset Flag
This bit indicates the system has been reset by WWDT time-out reset or not. 0 = WWDT time-out reset did not occur. 1 = WWDT time-out reset occurred. Note: This bit is cleared by writing 1 to it. |
Definition at line 196 of file wwdt_reg.h.


Roasted at 250 C (482 0 F) is for the Coffee lover who wants that very rich cup of Coffee
Roasted at 220 C (435F) is for the Coffee lover who wants that superior-bodied cup of Coffee
Roasted at 210 C (410 F) is for the Coffee lover who wants that optimum-bodied cup of Coffee


Constructor
new BSButton(typeopt)
Creates a new button object.
When a button is created, you can control the DOM element type, namely <button>, <a>, or <input>.
For anchor types, use the 'a:[hrefValue]', where [hrefValue] is the value to use in the anchor's href attribute. If the ':[hrefValue]' is ommited, '#' is used by default.
For input types, use 'input:[type]' where [type] is one of 'button' or 'submit'. If the [type] is ommitted, 'button' is used by default.
When a button is created, you can control the DOM element type, namely <button>, <a>, or <input>.
For anchor types, use the 'a:[hrefValue]', where [hrefValue] is the value to use in the anchor's href attribute. If the ':[hrefValue]' is ommited, '#' is used by default.
For input types, use 'input:[type]' where [type] is one of 'button' or 'submit'. If the [type] is ommitted, 'button' is used by default.
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
type |
string |
<optional> |
"button" | The type of button to make. Acceptable values are 'button', 'a', and 'input'. |
- Source:
Extends
Members
$
Accessor of this object's root jQuery element.
- Inherited From:
- Source:
Methods
append(…arg) → {BSObject}
Appends the given arguments to the contents of this object
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
arg |
string | jQuery | BSObject |
<repeatable> |
The item(s) to append to this object. |
- Inherited From:
- Source:
Returns:
This object
- Type
- BSObject
appendTo(obj)
Appends this BSObject to the given object.
Parameters:
| Name | Type | Description |
|---|---|---|
obj |
jQuery | BSContentObject | The object that this is to be appended to |
- Inherited From:
- Source:
Throws:
Will throw an error if obj is not a BSObject or jQuery object.
click(fnopt) → {BSButton}
Sets/triggers the button's click handler.
Note: When a button is disabled, the click handler set through this function will not be fired, even when this function is used to attempt and fire it.
Note: When a button is disabled, the click handler set through this function will not be fired, even when this function is used to attempt and fire it.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
fn |
function |
<optional> |
The function to be set as the click handler. |
- Source:
Returns:
This button object.
- Type
- BSButton
disabled(disabledopt) → {boolean|BSButton}
Sets/Gets whether this button object is disabled.
Note: a disabled button will not fire the button's click handler.
Note: a disabled button will not fire the button's click handler.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
disabled |
boolean |
<optional> |
Optional parameter to set the disabled state of the button. |
- Source:
Returns:
If a parameter is passed, this BSButton object is returned. If no parameter is passed,
a boolean representing whether the button is disabled is returned.
- Type
- boolean | BSButton
html(htmlStropt) → {string|BSObject}
Sets/Gets the HTML content of this object.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
htmlStr |
string |
<optional> |
The HTML string to set. |
- Inherited From:
- Source:
Returns:
If no parameter given, returns a string with the HTML
contents of this object. If a parameter is given, this object is returned.
- Type
- string | BSObject
prepend(…arg) → {BSObject}
Prepends the given arguments to the contents of this object
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
arg |
string | jQuery | BSObject |
<repeatable> |
The item(s) to prepend to this object. |
- Inherited From:
- Source:
Returns:
This object
- Type
- BSObject
prependTo(obj)
Prepends this BSObject to the given object.
Parameters:
| Name | Type | Description |
|---|---|---|
obj |
jQuery | BSContentObject | The object that this is to be prepended to |
- Inherited From:
- Source:
Throws:
Will throw an error if obj is not a BSObject or jQuery object.
setActiveState(activeopt) → {BSButton}
Sets whether this button should appear to be in an active state
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
active |
boolean |
<optional> |
false | Boolean indicating whether the button should appear in active state. |
- Source:
Returns:
This button object.
- Type
- BSButton
setBlock(blockopt) → {BSButton}
Sets whether this button should be a block style button
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
block |
boolean |
<optional> |
false | Boolean indicating whether the button should be block style |
- Source:
Returns:
This button object.
- Type
- BSButton
setSize(size) → {BSButon}
Sets the button size.
Parameters:
| Name | Type | Description |
|---|---|---|
size |
string | The size to make the button. Acceptable values are: 'xs', 'sm', 'default', 'md' (equivalent to 'default'), and 'lg' |
- Source:
Returns:
This button object.
- Type
- BSButon
setStyle(style) → {BSButton}
Sets the button's style
Parameters:
| Name | Type | Description |
|---|---|---|
style |
string | The style to set. Acceptable values are: 'default', 'primary', 'success',' info', 'warning', 'danger', and 'link'. |
- Source:
Returns:
This button object.
- Type
- BSButton
text(stropt) → {string|BSObject}
Sets/Gets the text content of this object.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
str |
string |
<optional> |
The text string to set. |
- Inherited From:
- Source:
Returns:
If no parameter given, returns a string with the text
contents of this object. If a parameter is given, this object is returned.
- Type
- string | BSObject


All form elements share the same HTML structure, just like the OOCSS modules do. This applies for all three layout options. So there's no dependency between backend-side form generation and frontend presentation.
Inputs are inside the label. This makes a for attribute for the label and an id for the input redundant for modern browsers. Only IE5/6/7 need them if you want to focus/trigger the input by clicking on the respective label.
There are no fixed widths. A field is always as wide as its container allows. Field styling is done by a surrounding span. The input itself has no border, margin and padding and is set to 100% width. All form elements can be easily nested with the OOCSS grid system.
Checkboxes and Radios are positioned absolutely. This prevents any presentational inconsistency between browsers and makes styling easy.


(1813 - 1901)
"I adore art... when I am alone with my notes, my heart pounds and the tears stream from my eyes, and my emotion and my joys are too much to bear."
- Giuseppe Verdi


The project doesn't yet have any services. You will need at least one service, to associate with this Docker repo. Please ask your project admin to create a service first.
Fill in the form below to request a new Docker repository on AWS ECR


Working age Jamaicans now almost at 70% of population - PIOJ
Director General of the Planning Institute of Jamaica (PIOJ), Dr Wayne Henry, has indicated that persons falling within the country’s working-age range of 15 to 64 years now stand at 69.7 per cent of the overall population of 2.9 million.
Henry says this represents the largest figure ever attained in Jamaica’s history and creates a window of opportunity for the country, often referred to as a demographic dividend.
“The demographic dividend is the economic growth potential that can result from shifts in a population’s age structure, mainly when the share of the working-age population is disproportionately larger than the dependent population… that is, persons 14 years and younger as well as those 65 years and older,” he outlined.
Henry was speaking at the PIOJ’s quarterly briefing at the Institute’s head office in New Kingston on Tuesday.
He noted that an increase in the working-age population, relative to dependents, provides Jamaica with a “tremendous opportunity” to boost economic growth.
This, he said, through increased labour force participation and employment, particularly for groups deemed typically under-represented such as youth, women and persons with disabilities; increased allocation of resources towards savings rather than consumption, as the dependency ratio falls, thereby facilitating investments and growth; and human capital development through the provision of more resources towards strengthening education and health outcomes, “which will contribute to the increased productivity of the labour force”.


| Compliance |
Name |
Is a dependency? |
URL |
Licence |
Details |
| ✅ |
Click
|
Y |
https://palletsprojects.com/p/click/
|
0BSD
|
Licence is compliant.
|
| ✅ |
gitdb
|
Y |
https://github.com/gitpython-developers/gitdb
|
0BSD
|
Licence is compliant.
|
| ✅ |
GitPython
|
Y |
https://github.com/gitpython-developers/GitPython
|
Unknown
|
Package's licence manually checked: BSD-3-Clause
|
| ✅ |
mbed-project
|
N |
https://github.com/ARMmbed/mbed-project
|
Apache-2.0
|
Licence is compliant.
|
| ✅ |
mbed-tools-lib
|
Y |
https://github.com/ARMmbed/mbed-tools-lib
|
Apache-2.0
|
Licence is compliant.
|
| ✅ |
python-dotenv
|
Y |
http://github.com/theskumar/python-dotenv
|
Unknown
|
Package's licence manually checked: BSD-3-Clause
|
| ✅ |
smmap
|
Y |
https://github.com/gitpython-developers/smmap
|
0BSD
|
Licence is compliant.
|
| ✅ |
tabulate
|
Y |
https://github.com/astanin/python-tabulate
|
MIT
|
Licence is compliant.
|
| ✅ |
tqdm
|
Y |
https://github.com/tqdm/tqdm
|
MPL-2.0
|
Licence is compliant.
|


--- layout: post authors: ["Greg Wilson"] title: "Teaching For Loops" date: 2015-12-10 time: "02:30:00" tags: ["Teaching"] ---
A few days ago, Karin Lagesen asked people what metaphors they use when teaching for loops. It kicked off an entertaining thread. When we talk about pedagogical content knowledge (PCK) in instructor training, this is exactly the kind of thing we mean:
A weekly travel card/multiride card on whatever the local public transport is.  It kind of breaks down as you do other things at either end of the journey, rather than remaining within the loop.
A dental checkup. There are a finite number of teeth, and the dentist checks each one in turn for cavities and gum disease.
Checking your email in the morning, treating each item of mail in the inbox as an item to be dealt with (although the cognitive load of deciding whether to deal with an email does defeat us all in the end).
One example that I've used in words, and want to try in reality is to take an egg box with one row of eggs, then take them out one at a time and crack them (into a jug). We could also number the eggs with a marker from 0 and use this to display list access. The main reason for doing this with an egg box is that it extends to two dimensions, so the metaphor can extends to numpy array examples with two indices, which always seems to cause more issues.
I just flip pages on a book. I like the book analogy because the action could be, read the page, search for a string or fill the "o"s. Additionally, since the books have page numbers I could get the "index" too (i.e., enumerate), but I don't explain the two examples at the same time—I introduce the enumerate function to people is already confident with the loop.
I like the example about pixels in an image. For each pixel in an image row by row, do something (for example convert color to grayscale). Most students have a good intuition about images, pixels, and other media examples. (Note: Matt Davis built a very cool module for the Jupyter notebook called ipythonblocks that rendered small images using HTML and CSS—you can grab the plugin from GitHub. Mike Hansen built the skimage.novice module to provide similar functionality on top of SciPy's image manipulation as a bridge between the simple-but-slow and the real-but-harder-to-understand.)
A couple of metaphors I've used in a course for a Master's degree in bioinformatics. The first one is, "Your boss asks for 20 flasks of a solution. You get the first flask, add water, add the solute, put the flask away from the empty ones, repeat the same procedure for every flask. Do you have to change something if the flasks are 30? 100? If you use a different solute, do you have to change a lot in this procedure?"
The second one aims to introduce the concept of many operations on each item by trying to move away from the single activity per item. "We want to compute the average height and the distribution of hair colors of the people in the room. I could call you one by one, ask for the height, perform the summation and, after everyone showed up, divide the value by your number. Then I call you again, one by one, and ask for hair color. In this way you have to stand up twice, wasting a lot of time, while I could instead ask for height and hair color while it is your turn in the queue". After that, I usually re-use the queue metaphor to introduce nested loops, i.e., for each person in the queue a clerk asks for each item in a checklist list.
The main conceptual hang-up seems to be how the variable gets reassigned each time.
I use a shopping basket and then for item in basket
.
The fact that the item could be a single thing or a carton of eggs (i.e., a sub-list) which could also be looped through helps.
You can start with the unrolled version and then introduce for as a better way to write it. For example:
print "hi there, bill" print "hi there, sue" print "hi there, bob"
Ask what is similar about all these? What is the underlying "template"? Try and get them to identify something like:
print "hi there", name
From there it isn't such a big stretch to go to:
for name in ["bill", "sue", "bob"]:
I've taught basic programming to kids and in these cases it's always nice to have a metaphor with candy:
def Halloween: plan costume get in costume go outside for house on street: walk to house ring doorbell get candy say thank you
If you've already taught if statements, you can do:
if trick: run away screaming else: take candy
Take an empty cup: this is going to be your variable (a "container"). Write something on a sticky note, and put the sticky note in the cup. Now your variable has a value. Ask a student or helper to "echo" the content of the variable, i.e., read what is written on the sticky note. Replace the sticky note with another one with some other data, "echo" again.
When it comes to loops, ask a few students (e.g., the front row) to each write their name on a sticky note. Take your (empty) cup and go to the first student, ask her/him to place the sticky note in the cup. Go to the "echo" student/helper and ask for him/her to read the content. Go to student number 2, replace the sticky note with this student's note, and redo the echo. Repeat until all names have been read. Remark that the cup still contains the name of the last student.
There was also a suggestion that we should teach loops after functions so that learners have something to do inside their loops. We actually used to do this, but learners didn't seem to find small functions without any control flow inside them compelling. Teaching loops first gives us something to put into our functions, but we haven't done any rigorous comparisons to see if it actually works better.


Corinne's Date Screener
Provide satisfactory answers and I'll buy you dinner!*
Have you ever been convicted of a felony?
Yes
No
Solve the following: (5 x 6 + 5) / 7 =
Of the following pets, which would you be most excited to own?
Snakes
Gerbils
Frogs
Parakeets
Enter an original haiku:
Submit
*Totally kidding


BLAST FROM THE PAST A movie review by Joe Barlow (c) Copyright 1999
STARRING: Brandan Fraser, Alicia Silverstone, Christopher Walken, Sissy Spacek DIRECTOR: Hugh Wilson WRITER: Bill Kelly RATED: PG-13 RELEASED: 1999
RATING: ** (out of a possible ****)
"Blast From the Past" is the sort of film which makes me pine for the bygone days of Hollywood, when studio-made comedies were actually funny-- when wit and creativity, rather than pratfalls and profanity, were the ingredients of laughter. "Blast From the Past" isn't the worst IQ offender I've seen in recent months, although it may be the most disheartening; after all, if a director is able to assemble such a first-rate cast, why can't he give them a more interesting story to tell? Or at the very least, a more interesting way in which to tell it?
The tale itself certainly had potential. In 1962, as the Cold War continues to drag on, devoted family man Calvin Webber (Christopher Walken) builds a luxurious, self-sustaining fallout shelter beneath his modest California home. When the Cuban Missile Crisis hits its apex, Calvin whisks his pregnant wife Helen (Sissy Spacek) into the ground. At that moment, a plane crashes into their house. Calvin, detecting the flames and heat outside the shelter door, naturally assumes that a nuclear bomb has been dropped on the town. Since the half-life of nuclear fallout is thirty-five years, the couple begin their long wait... unaware that the world above is perfectly habitable.
Their son Adam is born almost immediately. Lovingly raised in this closed society and governed by his parents' 1962 morals and values, of which placing one's elbows on the dinner table is the severest offense, Adam eventually grows into an intelligent, polite young man (played by Brandan Fraser), who, although happy, feels a sense of longing and loneliness. On his thirty-fifth birthday, he admits to his mother that he's been thinking about girls "just these last fifteen years or so." And with these words, Adam is sent out into the great big world to find his fortune.
The problems begin with the story's pacing. The film's first-act is excruciatingly slow, due to the unnecessary amount of exposition it thrusts upon us at the outset; indeed, Brandan Fraser, the star of film, doesn't appear until nearly 30 minutes into the tale. And the second-billed Alicia Silverstone, who plays an unpleasant and unlikeable young woman named Eve (the tale's requisite love interest), doesn't appear until nearly a half-hour beyond *that*.
Although Adam's adventures and interactions are occasionally amusing, the story focuses on the wrong thing. Rather than giving us insight into what he must be going through psychologically, the film repeatedly tosses cheap gags at the audience. (An example: Adam has never heard a certain four-letter expletive before, so his dad helpfully explains that it's an archaic French word meaning "good." Immediately we know that Adam will misunderstand and misuse this word... not just once, but over and over.)
There are a couple of excellent moments, where Adam sees the sky (and later, the ocean) for the first time; his sense of joy and wonder are contagious in these scenes. Had the film concentrated more on his feelings and experiences rather than lame humor, it might have been something special. But these details are glossed over: we don't feel a sense of awe when Adam meets another human being for the first time. After he gets lost in the big city, we don't feel any sense of panic or terror from him. And when he sleeps at a hotel for the first time, why don't we get a better sense of what he's feeling? After all, this is his first night away from home! (In its defense, the film does mention this... but then it immediately cuts to a scene required by the uninteresting romance subplot, rendering Adam's emotions invalid.)
The names of the characters (Adam and Eve) effectively remove any suspicion about whether they will fall in love by the end of the movie (and in case you miss it, one minor character makes an observation that Adam's new home resembles "the Garden of Eden"). But even without these clues, the romance is foreordained: the film possesses neither the sense of daring or originality needed to deviate from trite formula; therefore, no matter how obvious it is to us that Eve is completely wrong for Adam, she will eventually fall for the big lug. Cue the "happily ever after" music.
"Blast From the Past" does succeed in generating a few laughs, thanks to Fraser's effortless performance as Adam. (Fraser has experience playing amiable goofballs, including the title role in Disney's "George of the Jungle.") His effervescent charm is enough to make the movie bearable, but only just. That the film is as entertaining as it despite its horrid screenplay is a powerful testament to Fraser's screen presence. The always entertaining Christopher Walken gives a fun turn as Adam's quirky but well-meaning father. But Sissy Spacek feels miscast: at no time does she seem like anything more than basic window dressing. Come to think of it, that criticism could be leveled at the entire film.
It's a shame that this story wasn't handled with more care, as it could've been fascinating. A character study about a family shut off from society for over three decades has the potential for both humor and drama, though both are sacrificed here for a formula romance that's neither involving or convincing. This story deserved better.
E-Mail<EMAIL_ADDRESS>Joe Barlow on Film: http://www.ipass.net/~jbarlow/film.htm
If you'd like to receive new film reviews by e-mail, please write to the above address and ask to be put on my mailing list. Or, you can subscribe directly from my web page.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews