MICHAEL COLLINS A film review by Mark R. Leeper Copyright 1996 Mark R. Leeper
Capsule: Neil Jordan writes and directs a dark epic film with heavy parallels to the current Middle East. Liam Neeson stars as a terrorist and a founder of the IRA, who later tried to bring peace to his country in the late 1910s and early 1920s. Jordan borrows bits from LAWRENCE OF ARABIA and THE GODFATHER to create a magnetic epic film. Rating: high +2 (-4 to +4) Warning: there are spoilers present, though none that could not be found in a decent encyclopedia article on Collins.
Most political struggles have their romantic heroes and with a people as naturally poetic or as argumentative as the Irish, it is not surprising that the fight for independence spawned a great romantic, if controversial, hero. The great hero of the Irish struggle in this century was Michael Collins. And who better to play him than Liam Neeson, the Charleton Heston of the 1990s. Having played larger-than- life historical figures Oskar Schindler and Rob Roy, the Irish actor was an obvious choice to play Michael Collins, at least if audiences were willing to accept the forty-four-year-old Neeson playing a man who died at thirty-one.
The film--in good epic film style told in flashback just after the main character's death--begins with Collins in the 1916 Easter Rising of the Irish against British rule. He escapes immediate arrest only to be arrested later and receive a short term in prison. Many of those rebelling are executed, but Eamon de Valera, a major leader of the resistance (played by Alan Rickman), is given a lighter sentence of a term in prison. This is probably because of his multi-national background, having a Spanish father and being born in America. Collins begins setting about the sort of activities that will get him back in prison. His public speeches for independence win him an ally in the British police force, Ned Broy (Stephen Rea). At least by this account, Collins was impressed by the efficiency and efficacy of British Intelligence and sets about the task of modeling the new Irish Republican Army on it. Collins manages to break de Valera from prison, but de Valera is clearly envious of Collins's new-found power and the relationship between the two is strained. With the intelligence Collins is able to collect about his enemy he is able to outdo the British in the effectiveness of his attacks. He invents the sort of tactics that have become the trademark of the IRA. For two years he maintains an urban guerrilla war against the British. This creates a conflict with de Valera in which the latter wants more traditional warfare, Collins prefers his new terrorism. His struggle ends in the Truce of 1921 and de Valera sends Collins to England to negotiate for the Irish. Collins realizes that the British will make only limited concessions. He brings back a compromise treaty that allows for an Irish free state but partitions Ireland and requires an oath of allegiance to the British monarch. The free state is declared and almost immediately breaks into civil war with Collins defending the treaty and de Valera now on the side of terrorist war against the British and against a treaty that is dividing the country both politically and quite literally.
There is not much in the style of MICHAEL COLLINS but the combination of old elements. Through the war against the British the film draws heavily on the style of THE GODFATHER, particularly with back- and-forth cutting between some tension-producing scene of impending violence, to one more placid. This gives the effect of a much longer and more drawn-out tense scene. Another scene at a football match reminds one very much a similar scene in GANDHI. Where the film borrows, it seems to do it well in most instances. There is one James Bond-ish escape involving a seemingly nearly impossible athletic feat done in complete silence. Here Jordan, who wrote the script as well as directing, seriously damages the credibility of his story which elsewhere is reasonably well maintained. Other places his taste is considerably better. He has a love triangle that could have been a time-wasting plot cliche. He leaves it in for historical accuracy, but he wisely downplays before it can become a distraction. MICHAEL COLLINS is photographed by Chris Menges who won Oscars for his work on THE KILLING FIELDS (1984) and THE MISSION (1986). He creates a surprising amount of atmosphere with what he does not show. He frequently has smoke or fog in the frame. Often part of the frame is obscured by darkness or shadow. At least for me some of the dialogue was similarly obscured by the thick Irish accents. While Menges's images dominate the film, Elliot Goldenthal's score stays modestly in background coloring the film subtly but rarely getting noticed.
Liam Neeson is a big man and plays Collins as a big man, somewhat larger than the people around him. He sweeps into a scene with that large bulk of his and commands it. The one serious problem with the casting is that he never seems as young as Collins needs to be, a good fifteen years younger through much of the film. Aiden Quinn as friend and fellow revolutionary Harry Boland cuts a much less imposing figure. Julia Roberts is by no means the center of the show here and her acting appropriately is not either. She can smile and look appealing and even can master an Irish accent, but she makes little contribution to the film that a lessor-known actress could not have done, and very likely better. Alan Rickman needs a good director to keep him from chewing the scenery and he seems to have found a good director in Jordan. His acting is neat and precise. His de Valera seems to be thinking out each sentence and then delivering with the incisiveness of a scalpel. One may not like what he is saying, but it seems certain that it is precisely what de Valera means.
It is hard to judge the historical accuracy of MICHAEL COLLINS, since even the Irish are not sure of Collins's role in the fight for Independence. There are no obvious contradictions with anything I have found written about Collins's role in history, though it is relatively safe for a filmmaker to fill in some of the blanks about a man of mystery. It has been suggested that De Valera is shown a bit worse than the historical figure, but much of this is within the range of reasonable interpretation and opinion. And speaking of opinion, mine of this film is that it rates a high +2 on the -4 to +4 scale.
Mark R. Leeper<EMAIL_ADDRESS>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


About Our Team
Eleanor
- Summer Feelz: Sunny, Work, Eternity
- Aspirational Hobby: Filmmaking
- Ask me About: Investments in Stocks
Antara
- Summer Feelz: napping til noon
- Aspirational Hobby: cooking, reading, and traveling.
- Ask me About: Dallas sports teams and being a RA!
kamsi
- Summer Feelz: sleeping, soccer, skating
- Aspirational Hobby: Tennis
- Ask me About: anime, music, videogames, sports
Kevin
- Summer Feelz: porch hammock coding
- Aspirational Hobby: professional cat photography
- Ask me About: creative coding, especially Processing and P5.js!


Manual pages
Prev
Next
Manual pages
Table of Contents
dig
— DNS lookup utility
host
— DNS lookup utility
dnssec-keygen
— DNSSEC key generation tool
dnssec-signzone
— DNSSEC zone signing tool
named-checkconf
— named configuration file syntax checking tool
named-checkzone
— zone file validity checking or converting tool
named
— Internet domain name server
rndc
— name server control utility
rndc.conf
— rndc configuration file
rndc-confgen
— rndc key generation tool


Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
I
M
O
P
R
S
V
A
Action
- Enum in
com.bazaarvoice.types
An enum used for defining an action type for content submission.
addAdditionalField(String, String)
- Method in class com.bazaarvoice.
SubmissionParams
Sets AdditionalField for a particular dimensionExternalId.
addAttribute(String)
- Method in class com.bazaarvoice.
DisplayParams
Attributes to be included when returning content.
addContextDataValue(String, String)
- Method in class com.bazaarvoice.
SubmissionParams
Sets ContextDataValue for a particular dimensionExternalId.
addFilter(String, Equality, String)
- Method in class com.bazaarvoice.
DisplayParams
Filter criteria for primary content of the query.
addFilter(String, Equality, String[])
- Method in class com.bazaarvoice.
DisplayParams
Filter criteria for primary content of the query.
addFilterOnIncludedType(IncludeType, String, Equality, String)
- Method in class com.bazaarvoice.
DisplayParams
Add a "Filter_[TYPE]" parameter to the request.
addFilterOnIncludedType(IncludeType, String, Equality, String[])
- Method in class com.bazaarvoice.
DisplayParams
Add a "Filter_[TYPE]" parameter to the request.
addInclude(IncludeType)
- Method in class com.bazaarvoice.
DisplayParams
Related subjects to be included (e.g.
addLimitOnIncludedType(IncludeType, int)
- Method in class com.bazaarvoice.
DisplayParams
Add a "Limit_[TYPE]" parameter to the request.
addPhotoCaption(String)
- Method in class com.bazaarvoice.
SubmissionParams
Associates a photo caption with this submission.
addPhotoUrl(String)
- Method in class com.bazaarvoice.
SubmissionParams
Associates a photo url with this submission.
addProductRecommendationId(String)
- Method in class com.bazaarvoice.
SubmissionParams
Add a product id to the list of "ProductRecommendationId_<n>" parameters for this submission.
addRatingForDimensionExternalId(String, String)
- Method in class com.bazaarvoice.
SubmissionParams
Sets a rating for a particular dimensionExternalId.
addSearchOnIncludedType(IncludeType, String)
- Method in class com.bazaarvoice.
DisplayParams
Search query for included content.
addSort(String, boolean)
- Method in class com.bazaarvoice.
DisplayParams
Add an attribute to the "Sort" parameter list.
addSortOnIncludedType(IncludeType, String, boolean)
- Method in class com.bazaarvoice.
DisplayParams
Add a "Sort_[TYPE]" parameter to the request.
addStats(IncludeStatsType)
- Method in class com.bazaarvoice.
DisplayParams
Add a content type to the "Stats" parameter.
addTagForDimensionExternalId(String, String)
- Method in class com.bazaarvoice.
SubmissionParams
Adds a tag with a particular dimensionExternalId and value.
addTagIdForDimensionExternalId(String, Boolean)
- Method in class com.bazaarvoice.
SubmissionParams
Adds a tag with a particular dimensionExternalId and value.
addVideoCaption(String)
- Method in class com.bazaarvoice.
SubmissionParams
Associates a video caption with this submission.
addVideoUrl(String)
- Method in class com.bazaarvoice.
SubmissionParams
Associates a video url with this submission.
ApiVersion
- Enum in
com.bazaarvoice.types
An enum used for defining for the API version to use when making a request.
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
I
M
O
P
R
S
V


CRYPTOTAG Zeus Starter Kit Review: Is It Worth The Hype?
by Ollie LeechCRYPTOTAG, a company that specializes in high-end crypto backup solutions, has just launched its new compact Zeus Starter Kit product for serious crypto hodlers. Here at Bitcoinist, we were lucky enough to get our hands on one, and it does not disappoint.
Design
As with all CRYPTOTAG products, the first thing you notice when you pick up the Zeus Starter Kit is the weight. Even for such a compact design, the quality certainly feels as solid and heavy-duty as the other much larger products in the range. The kit itself is incredibly streamline and fits easily in the palm of your hand.
According to the CRYPTOTAG website, the starter kit boasts some substantial tolerances thanks to the space-grade titanium material it’s made from. Not only is it corrosion and pressure resistant, but it can also handle heats of 1,670 degrees centigrade/ 3050 Fahrenheit, and even stop bullets! So keep it close to your heart and it might not just be your crypto that it saves.
The input method of this product is refreshingly simple and does not require a ton of components to get the job done, unlike some competitor products. The only problem however, is that once you’ve punched dots into the plates it cannot be undone. So just make sure you’re 100% certain before going ahead with the automatic centre punch. But hey, it’s crypto and we’re all used to checking our send and receive address a million times before making transactions, so it shouldn’t be a problem.
Setup
Inside the CRYPTOTAG Zeus Starter Kit box, you’ll find:
(1) A setup guide complete with a BIP39 code word list for working out your recovery phrases (see last image)
(2) Two conversion sheets to write down your decoded seed phrases on
(3) Two premium titanium plates joined by two metal clips at either end
(4) A uniquely designed automatic centre punch
(5) Two ear plugs
(6) And a box of matches to burn your conversion sheets once you’ve committed your recovery phrases to the titanium plates
The attention to detail with the ear plugs and matches, are very nice touches indeed, and shows that CRYPTOTAG really has considered all angles when designing its products.
There’s even a tutorial guide on how to use the centre punch properly!
Inside the Titanium Kit
When you take off the two clips at either end of the CRYPTOTAG Zeus Starter Kit and pull the plates apart, it reveals 24 individual BIP39 code boxes inscribed into the metal. Each of these boxes contains the numbers 0-9.
Using the code list in the back of the setup guide, you simply convert each word into a number sequence and input them on the plates, using the dot punch, in the order that your recovery phrase is shown when setting up your crypto wallet.
Below is the examples that are given in the setup guide on how to convert recovery phrases into BIP39 code form. Just to give you a better idea of how it’s done.
CRYPTOTAG Conclusion
Overall, the Zeus Starter Kit certainly looks and feels like the perfect crypto backup solution for consumers looking for piece of mind when it comes to safely storing their wallet recovery phrases. The minimalist design of this new premium kit makes it a fantastic addition to the already impressive CRYPTOTAG range, and cements our opinion that CRYPTOTAG products are 100% worth the hype.
What do you think of CRYPTOTAG’s latest Zeus Starter Kit? Add your thoughts below!
Full Disclosure: The review unit was provided by CRYPTOTAG for the purpose of review.
The Rundown


--- layout: post authors: ["Aleksandra Pawlik"] title: "Feedback from the First MATLAB Bootcamp" date: 2014-01-24 time: "10:00:00" tags: ["Bootcamps", "Manchester University"] ---
Jan 28: Michael Croucher has also written a good post about what worked and what didn't at this bootcamp.
Last week Software Carpentry paired up with MATLAB to run a bootcamp at the University of Manchester. Apart from shell and version control, the remaining core topics (verification and testing, modular programming with algorithm design) were taught using MATLAB.
The bootcamp was offered to the University of Manchester staff and postgraduate students. We started on 14th January teaching 24 participants shell and then version control with Git. The day finished with the introduction to the MATLAB language and desktop environment. The next day covered algorithm design, testing, verification, debugging and improving performance. All these modules were taught using MATLAB.
The main organiser was Mike Croucher, a Software Sustainability Institute's Fellow. MATLAB material was taught by Jos Martin, Ken Deeley and Juan Martinez from MathWorks. The other two instructors were Shoaib Sufi and myself.
It was the first time that MATLAB was used for teaching at Software Carpentry. For a number of participants, the fact that we used MATLAB was an additional encouragement to attend the bootcamp.
In the feedback questionnaire, the participants said what they thought they learnt that would be useful:
Even for more experienced attendees, the bootcamp turned out to be useful:


If you have any questions, comments, concerns, or bugs, please use a carrier pigeon directed to Epicodus. The pigeon must be named Tobias, or Steve, but we like Steve less. All other names of birds will NOT be accepted.
Epicodus Location: 400 SW 6th Ave #800, Portland, OR 97204


Class Extension
Represents additional data to be sent with a request to the API and also defines how to verify the response.
Each method call can have several extensions.
Direct known subclasses
OndraKoupil\Csob\Extensions\CardNumberExtension, OndraKoupil\Csob\Extensions\DatesExtension, OndraKoupil\Csob\Extensions\EET\EETCloseExtension, OndraKoupil\Csob\Extensions\EET\EETInitExtension, OndraKoupil\Csob\Extensions\EET\EETRefundExtension, OndraKoupil\Csob\Extensions\EET\EETStatusExtension
public
|
|
public
array
|
|
public
|
|
public
array
|
|
public
|
#
setExpectedResponseKeysOrder( array $expectedResponseKeysOrder )
Use this method to hint in which order should the base string for verifying signature of response be generated. See Crypto::createSignatureBaseWithOrder() for options for specifying key paths. |
public
string
|
|
public
array
|
|
public
string
|
|
public
boolean
|
|
public
string
|
#
getResponseSignatureBase( array $responseWithoutSignature )
Returns base string for verifying signature of response. |
public
boolean
|
|
public
|
|
public
boolean
|
|
public
|
|
public
mixed
|
|
public
|
protected
array
|
$inputData
|
|
protected
array
|
$responseData
|
|
protected
array
|
$expectedResponseKeysOrder
|
|
protected
string
|
$extensionId
|
|
protected
boolean
|
$strictSignatureVerification
|
#
true
|
protected
boolean
|
$signatureCorrect
|
#
false
|


fn main_loop #
fn main_loop() int
VIUP is a work-in-progress V wrapper for the C-based cross-platform UI library, IUP. The aim of this library is to provide a thorough implementation of IUP in V. The implmentation is faithful to the original API but takes some liberties to provide a native "V" feel and modernizes some of the calls.
IM
runtime libraries: http://webserver2.tecgraf.puc-rio.br/im/Copy all applicable DLLs from Zip to binary directory. By default, only iup.dll
is required. If using image functions, iup_im.dll
is required as
well as all of the DLLs frmo the IM
library.
Windows UI apps need to be built with a Manifest. This manifest includes details about the app such as the name, version, and characteristics. VIUP
includes a basic manifest with the gallery that can be easily modified. The generated manifest.syso
needs to be in the directory during build but
does not need to be distributed with your application.
To update the manifest:
cd winmanifest
windres -i resources.rc -o manifest.syso -O coff
Copy manifest.syso to application directory.
Note: Currently running v .
or v run .
will not find the .syso
file correctly. To include it in your project, add a #flag windows "path\\to\\file\\manifest.syso
to the top of your application.
Extract runtime libraries to a folder and run sudo ./install
to install libraries.
I've noticed in testing that the libraries are installed to /usr/lib64
. It does not appear that they are picked up by the compiler there. Copying from
that folder to /usr/lib
resolves the problem. This may not be necessary in all cases.
This repo comes with a copy of the headers for the version of IUP that it was developed against (3.30), but does not ship with the runtime libraries. It is not necessary to get the IM library runtime if you do not plan to use it in your application.
By default VIUP only initializes the subsystems that are imported. For example, importing just viup
only initializes the standard dialogs, containers, and components.
If an extension library is loaded (viup.image
), the required runtime binaries must be installed or provided along with the build.
This repo comes with a simple application that demos all of the available controls. This app is available in the "examples/gallery". It requires the IM libraries. Once all runtime libraries are in the folder, run the example with v run .
.
One of the strengths of IUP is that is it a very simple library. All controls are instances of &Control
and share the same methods, though not all methods are applicable to a Control. Adjusting settings for a control is as simple as calling set_attr
or providing the attributes when initializing the Control.
Here's a basic example of initializing a simple window:
viup.
dialog(viup.scroll(hbox), "title=Control Gallery") // Create our dialog with "Control Gallery" as the title and a scrollable Control
.set_handle("MainWindow") // Define a global ID for our Window
.set_menu("app_menu", menu) // Set an app menu if applicable
.show_xy(viup.Pos.center, viup.Pos.center) // Display dialog in center of screen
All controls can be passed attributes as the last parameters when creating a Control. Any amount of attributes can provided. Attributes can adjust the various characteristics of a Control such as the title, value(s), background or foreground colors, control sub-type, sizing, etc.
Not all available attributes apply to each control. If an invalid attribute is provided it is actually accessible via get_attr
but will not affect the control itself. Read up more on attributes in the IUP Documentation.
Example:
viup.list(
"List", // control 'name'
"1=Combo Item 1", // Attr 1: Slot 1 is 'Combo Item 1'
"2=Combo Item 2", // Attr 2: Slot 2 is 'Combo Item 2'
"3=Combo Item 3", // ....
"4=Combo Item 4", // ....
"dropdown=yes", // Attr 5: List is a dropdown
"expand=horizontal", // Attr 6: Expand horizontally
"value=1" // Attr 7: Set default value to Slot 1
)
All controls have callback methods available for various events. Each callback method starts with on_
and can be quickly chained to add multiple callbacks.
Example:
viup.button("Button", "action").on_action(button_clicked)
fn button_clicked(control &viup.Control) viup.FuncResult {
viup.message("Button Click", "Button clicked!")
return .cont
}
In the example above, a Button
control is initialized with "Button" for the title. An action
callback is added with on_action(button_clicked)
. button_clicked
is an ActionFunc
callback and is automatically called when the button is clicked. VIUP mirrors the callbacks that IUP provides pretty closely, typically adding Func
on the end for consistency.
The majority of callback functions can return a viup.FuncResult
. This result can be one of the following:
cont
- continue actionclose
- close the applicationdefault
- perform default action (may be equivalent to cont
in most cases)ignore
- ignores event and may stop propagationMost Control methods will return back the Control when finished. This makes it easy to chain several method calls together.
Example:
viup
.message_dialog(
"title=About",
"value=$about",
"dialogtype=information"
) // Create a message dialog with attributes "title", "value", and "dialogtype"
.popup(viup.Pos.current, viup.Pos.current) // Popup dialog to user
.destroy() // Destroy dialog when closed
Example 2:
viup
.button("Set font...", "", "expand=horizontal") // Create button with "Set font..." as title
.set_handle("font_btn") // Set a handle name
.callback(viup.ActionFunc(font_button_clicked)) // Set a Action callback
Note: Dialogs return back an struct of Dialog
. This struct has a few unique functions associated with it (i.e. popup
, show
, show_xy
). It's not
to chain to these methods from regular Control
methods.
All dialog, layouts and elements are "Controls" in IUP. As such, they all share common methods that can be utilized by any Control.
Most used component methods:
| Method | Description |
|---|---|
get_attr / set_attr |
Get or set an attribute value on the control. |
set_attrs |
Used to set multiple attributes in a single call |
set_handle |
Assigns this control a name on the global level. This is typically used in combination with viup.get_handle to restore the control in callbacks or other functions |
get_font / set_font |
Get or set a Font |
refresh / refresh_children |
Trigger a redraw for this component and/or its children |
| Function | Description |
|---|---|
color_dialog(...attrs) |
Opens a color picker with optional color palette |
dialog(child, attrs) |
Creates a standard Window or modal dialog |
file_dialog(...attrs) |
Open a file chooser. This can be used to open or save files |
font_dialog(...attrs) |
Opens a font picker |
message_dialog(...attrs) |
Opens a customizable message modal |
message(title, message) |
Shows a generic message box with a standard "OK" button to close |
| Function | Description |
|---|---|
background(child, attrs) |
A simple container element that is designed to have a background color or image |
detach_box(child, attrs) |
Container that is designed to be detachable from the parent container when needed. Can also be reattached. |
fill(...attrs) |
Fills the remaining space for the parent container |
flat_frame(child, attrs) |
Standard frame that allows custom rendering |
flat_scroll(child, attrs) |
Standard scroll that allows custom rendering |
frame(child, attrs) |
Container that puts a border around its children with an optional title |
grid(children, attrs) |
Multi-control container that lays out its children in a table-like design |
hbox(children, attrs) |
Multi-control container that lays out its children in a row |
menu(children, attrs) |
Multi-control container for a dialog's menu items |
radio_group(child, attrs) |
Container is used to group toggle s together into a radio button group |
tabs(children, attrs) |
Multi-control container for tabbed content |
vbox(children, attrs) |
Multi-control container that lays out its children in a column |
| Function | Description |
|---|---|
animated_label(animation, attrs) |
Creates a control that can display an animation |
button(title, action, attrs) |
Creates a standard button with title for the text |
canvas(action, attrs) |
A control that can be used to render custom content |
divider(...attrs) |
Draws a horizontal or vertical line (horizontal by default) |
label(title, attrs) |
A simple control to show text or images |
link(url, title, attrs) |
Similar to a label, can be used to link to an external source |
list(action, attrs) |
Creates a component that can be used to list multiple values |
menu_item(action, attrs) |
Used in the menu component as a specific action (e.g. "Open File..." or "About") |
menu_sep(...attrs) |
Create a simple horizontal line in a menu |
multiline(action, attrs) |
Creates a multiline chooser component |
progress(...attrs) |
Basic progressbar component |
slider(orientation, attrs) |
Creates a number-line slider component |
sub_menu(title, child, attrs) |
Creates a sub menu component. Sub-menues are children of menu components. Typically structured like: Menu -> Sub-menu -> Menu -> Menu Item. |
text(action, attrs) |
Creates a standard text-input control. Can be set as multi-line, number input, etc. |
toggle(title, action, attrs) |
A radio or checkbox component. Defaults to radio when in a radio_group . |
This project was developed as a way of improving my understanding of V & C. I will not be providing active support for the project, but I'll happily accept any pull requests. Use at your own discretion!
const (
pos_center = 0xFFFF
pos_left = 0xFFFE
pos_mouse = 0xFFFC
pos_current = 0xFFFB
pos_center_parent = 0xFFFA
pos_left_parent = 0xFFF9
pos_right_parent = 0xFFF8
)
fn animated_label(animation &Control, attrs ...string) &Control
fn background(child &Control, attrs ...string) &Control
fn vbox(children []&Control, attrs ...string) &Control
vbox is a container that displays its children in a column
fn tree(attrs ...string) &Control
fn toggle(title string, attrs ...string) &Control
toggle is a radio or checkbox component. Defaults to radio in a radio_group
fn text(attrs ...string) &Control
text is a standard text input component. Can be configured to to be multi-line, number formatted, etc.
fn tabs(children []&Control, attrs ...string) &Control
tabs creates a tab group that can be switched between to view different content
fn calendar(attrs ...string) &Control
fn canvas(attrs ...string) &Control
canvas creates a control that can render custom content
fn cbox(children []&Control, attrs ...string) &Control
fn spin_box(child &Control, attrs ...string) &Control
fn spin(attrs ...string) &Control
fn close()
fn space(attrs ...string) &Control
fn color_browser(attrs ...string) &Control
fn color_dialog(handle string, attrs ...string) &Dialog
color_dialog opens a color picker with optional palette
fn is_ctrl(key Key) bool
fn slider(orientation string, attrs ...string) &Control
slider is a number-line slider component
fn date_picker(attrs ...string) &Control
fn set_handle(name string, control &Control) &Control
fn set_global_value(name string, data string)
fn detach_box(child &Control, attrs ...string) &Control
detach_box is a container that can be detached as a dialog and reattached back to the parent dialog when needed
fn set_global_reference(name string, data voidptr)
fn dialog(child &Control, handle string, attrs ...string) &Dialog
dialog creates a standard Window or Modal dialog control
fn scroll(child &Control, attrs ...string) &Control
scroll creates a scroll box that creates a virtual space that can hold an unlimited amount of items with scrolling.
fn divider(attrs ...string) &Control
divider creates a simple line divider element (horizontal by default)
fn resizer(child &Control, attrs ...string) &Control
fn radio_group(child &Control, attrs ...string) &Control
radio_group is designed to wrap around toggle controls to turn them into a radio button group
fn progress(attrs ...string) &Control
progress is a basic progressbar component
fn parse_font(font string) Font
parse_font parses the provided font string and converts it to a valid Font
fn parse_color(color string) Color
parse_color parses the provided color string and converts it to a valid Color
fn normalizer(children []&Control, attrs ...string) &Control
fn multiline(attrs ...string) &Control
multiline creates a multiline chooser component
fn multi_box(children []&Control, attrs ...string) &Control
fn message_dialog(attrs ...string) &Dialog
message_dialog opens customizable message modal box
fn message(title string, message string)
fn expander(child &Control, attrs ...string) &Control
fn file_dialog(handle string, attrs ...string) &Dialog
file_dialog creates a file chooser dialog that can be used to open or save files. If "dialogtype" is not provided, defaults to "open"
fn fill(attrs ...string) &Control
fill fills up the remaining space for the parent container
fn flat_frame(child &Control, attrs ...string) &Control
flat_frame is a standard frame that allows custom drawing
fn flat_scroll(child &Control, attrs ...string) &Control
flat_scroll is a standard scroll that allow custom drawing
fn flat_slider(orientation string, attrs ...string) &Control
fn flat_tabs(children []&Control, attrs ...string) &Control
flat_tabs is a standard tabs container that allows custom drawing
fn flat_toggle(title string, attrs ...string) &Control
fn flat_tree(attrs ...string) &Control
fn main_loop() int
fn flush()
fn loop_step() int
fn log(log_type string, data string)
fn font_dialog(handle string, attrs ...string) &Dialog
font_dialog opens a font picker dialog
fn frame(child &Control, attrs ...string) &Control
frame puts a border around its children with an optional title
fn list(attrs ...string) &Control
list creates a component that can list multiple values
fn get_focused() &Control
get_focused returns back the control that currently has focus
fn get_global_reference(name string) voidptr
fn get_global_value(name string) string
fn get_handle(name string) &Control
fn get_key(key Key) Key
fn grid(children []&Control, attrs ...string) &Control
grid is a container that can layout its children in a table-like configuration
fn hbox(children []&Control, attrs ...string) &Control
hbox is a container that displays its children in a row
fn help(url string) int
help opens a browser to the provided url
fn link(url string, title string, attrs ...string) &Control
link creates a control similar to a label
that can link to external resources (files, URL, etc)
fn label(title string, attrs ...string) &Control
label is used to draw simple text or images
fn is_alt(key Key) bool
fn zbox(children []&Control, attrs ...string) &Control
fn is_shift(key Key) bool
fn is_sys(key Key) bool
type RenameFunc = fn (&Control, int, charptr) FuncResult
type KeyFunc = fn (&Control, int) FuncResult
type KeyPressFunc = fn (&Control, int, int) FuncResult
type IdleFunc = fn ()
type LayoutUpdateFunc = fn (&Control) FuncResult
type HelpFunc = fn (&Control) FuncResult
type WheelFunc = fn (&Control, f32, int, int, charptr) FuncResult
fn (font Font) show_picker() Font
show_picker is a helper function to show a font_dialog. It will automatically show the font dialog with this Font
s values pre-selected and returns back the new font on select
fn (font Font) str() string
str returns back the original font that was provided in parse_font
type FocusedFunc = fn (&Control) FuncResult
type FlatActionFunc = fn (&Control) FuncResult
type MapFunc = fn (&Control) int
type ExtraButtonFunc = fn (&Control, int, bool) FuncResult
type ExtendedFunc = fn (&Control) FuncResult
type ExitFunc = fn ()
type MenuCloseFunc = fn (&Control) FuncResult
type MenuOpenFunc = fn (&Control) FuncResult
type ExitedFunc = fn (&Control) FuncResult
type ExecuteLeafFunc = fn (&Control, int) FuncResult
type MotionFunc = fn (&Control, int, int, charptr) FuncResult
type BranchCloseFunc = fn (&Control, int) FuncResult
type MouseButtonFunc = fn (&Control, MouseButton, bool, int, int, charptr) FuncResult
type MouseMoveFunc = fn (&Control, f64) FuncResult
type ExecuteBranchFunc = fn (&Control, int) FuncResult
type EntryFunc = fn ()
type MultiSelectFunc = fn (&Control, charptr) FuncResult
type MultiSelectionFunc = fn (&Control, voidptr, int) FuncResult
type MultiUnselectionFunc = fn (&Control, voidptr, int) FuncResult
type NodeRemovedFunc = fn (&Control, voidptr) FuncResult
type EnteredFunc = fn (&Control) FuncResult
type OpenCloseFunc = fn (&Control, int) FuncResult
type EditFunc = fn (&Control, int, charptr) FuncResult
type DropFilesFunc = fn (&Control, charptr, int, int, int) FuncResult
type DropDownFunc = fn (&Control, int) FuncResult
type DragFunc = fn (&Control, byte, byte, byte) FuncResult
type ActionFunc = fn (&Control) FuncResult
type ResizeFunc = fn (&Control, int, int) FuncResult
type DragDropFunc = fn (&Control, int, int, int, int) FuncResult
type RestoredFunc = fn (&Control, &Control, int, int) FuncResult
type RightClickFunc = fn (&Control, int) FuncResult
fn (dialog &Dialog) popup(x int, y int) &Dialog
popup displays the dialog as a modal at x
, y
position
fn (dialog &Dialog) show() &Dialog
show shows the dialog (not as a modal), typically centered on the opening dialog control
fn (dialog &Dialog) show_xy(x int, y int) &Dialog
show_xy shows the dialog the the provided X/Y coordinates Note: Only to be used with dialogs
type ScrollFunc = fn (&Control, int, f32, f32) FuncResult
type SelectFunc = fn (&Control, int, int) FuncResult
type SelectionFunc = fn (&Control, int, int) FuncResult
type DetachedFunc = fn (&Control, &Control, int, int) FuncResult
type DestroyFunc = fn (&Control) FuncResult
type DblClickFunc = fn (&Control, int, charptr) FuncResult
type ShowRenameFunc = fn (&Control, int) FuncResult
type ValueChangingFunc = fn (&Control, int) FuncResult
type ValueChangedFunc = fn (&Control) FuncResult
type ChangeFunc = fn (&Control, byte, byte, byte) FuncResult
type CellFunc = fn (&Control, int) FuncResult
type SpinFunc = fn (&Control, int) FuncResult
type CaretFunc = fn (&Control, int, int, int) FuncResult
type SwitchFunc = fn (&Control, int, int) FuncResult
type TabChangeFunc = fn (&Control, &Control, &Control) FuncResult
type TabChangePosFunc = fn (&Control, int, int) FuncResult
type TabCloseFunc = fn (&Control, int) FuncResult
type ButtonReleaseFunc = fn (&Control, f64) FuncResult
type ButtonPressFunc = fn (&Control, f64) FuncResult
type ButtonFunc = fn (&Control) FuncResult
type ToggleValueFunc = fn (&Control, int, int) FuncResult
type BranchOpenFunc = fn (&Control, int) FuncResult
type UnfocusedFunc = fn (&Control)
type UnmapFunc = fn (&Control) FuncResult
enum FuncResult {
cont = -4
close = -3
default = -2
ignore = -1
}
enum MouseButton {
left = 49
middle = 50
right = 51
button_4 = 52
button_5 = 53
}
enum Key {
k_tab = 9
k_enter = 13
key_sp = 32
key_exclam = 33
key_quotedbl = 34
key_numbersign = 35
key_dollar = 36
key_percent = 37
key_ampersand = 38
key_apostrophe = 39
key_parentleft = 40
key_parentright = 41
key_asterisk = 42
key_plus = 43
key_comma = 44
key_minus = 45
key_period = 46
key_slash = 47
key_0 = 48
key_1 = 49
key_2 = 50
key_3 = 51
key_4 = 52
key_5 = 53
key_6 = 54
key_7 = 55
key_8 = 56
key_9 = 57
key_colon = 58
key_semicolon = 59
key_less = 60
key_equal = 61
key_greater = 62
key_question = 63
key_at = 64
key_shift_a = 65
key_shift_b = 66
key_shift_c = 67
key_shift_d = 68
key_shift_e = 69
key_shift_f = 70
key_shift_g = 71
key_shift_h = 72
key_shift_i = 73
key_shift_j = 74
key_shift_k = 75
key_shift_l = 76
key_shift_m = 77
key_shift_n = 78
key_shift_o = 79
key_shift_p = 80
key_shift_q = 81
key_shift_r = 82
key_shift_s = 83
key_shift_t = 84
key_shift_u = 85
key_shift_v = 86
key_shift_w = 87
key_shift_x = 88
key_shift_y = 89
key_shift_z = 90
key_bracketleft = 91
key_backslash = 92
key_bracketright = 93
key_circum = 94
key_underscore = 95
key_grave = 96
key_a = 97
key_b = 98
key_c = 99
key_d = 100
key_e = 101
key_f = 102
key_g = 103
key_h = 104
key_i = 105
key_j = 106
key_k = 107
key_l = 108
key_m = 109
key_n = 110
key_o = 111
key_p = 112
key_q = 113
key_r = 114
key_s = 115
key_t = 116
key_u = 117
key_v = 118
key_w = 119
key_x = 120
key_y = 121
key_z = 122
key_braceleft = 123
key_bar = 124
key_braceright = 125
key_tilde = 126
k_middle = 0xff0b
k_pause = 0xff13
k_scroll = 0xff14
k_esc = 0xff1b
k_home = 0xff50
k_left = 0xff51
k_up = 0xff52
k_right = 0xff53
k_down = 0xff54
k_pgup = 0xff55
k_pgdn = 0xff56
k_end = 0xff57
k_print = 0xff61
k_ins = 0xff63
k_menu = 0xff67
k_num = 0xff7f
k_f1 = 0xffbe
k_f2 = 0xffbf
k_f3 = 0xffc0
k_f4 = 0xffc1
k_f5 = 0xffc2
k_f6 = 0xffc3
k_f7 = 0xffc4
k_f8 = 0xffc5
k_f9 = 0xffc6
k_f10 = 0xffc7
k_f11 = 0xffc8
k_f12 = 0xffc9
k_lshift = 268500961
k_rshift = 268500962
k_lctrl = 536936419
k_rctrl = 536936420
k_caps = 0xffe5
k_lalt =<PHONE_NUMBER>
k_ralt =<PHONE_NUMBER>
k_del = 0xffff
k_sys = -2147483557
}
struct Control {
mut:
sig [4]i8
iclass voidptr
attrib voidptr
serial int
handle voidptr
expand int
flags int
pub:
x int
y int
user_width int
user_height int
natural_width int
natural_height int
current_width int
current_height int
parent &Control
first_child &Control
sibling &Control
data voidptr
}
fn (control &Control) append(new_control &Control) &Control
fn (control &Control) debug() &Dialog
debug shows a layout dialog that can be used to inspect the provided Dialog's layout Note: This is intended for developers
fn (control &Control) debug_props() &Dialog
debug_props shows a properites dialog that can be used to inspect the provided control's various properties Note: This is intended for developers
fn (control &Control) destroy()
fn (control &Control) detach()
fn (control &Control) focus() &Control
focus sets focus on to the current control and returns back the previously focused control
fn (control &Control) focus_next() &Control
focus_next focuses on the next element that can have focus Note: This may not produce the same results as tabbing
fn (control &Control) focus_prev() &Control
focus_prev focuses on the previous element that can have focus Note: This may not produce the same results as tabbing
fn (mut control Control) free()
free destroys this control and releases its memory (used by autofree)
fn (control &Control) get_attr(name string) string
fn (control &Control) get_bgcolor() Color
get_bgcolor gets the background color for the control
fn (control &Control) get_bool(name string) bool
get_bool retrieves an bool attribute (technically int > 0)
fn (control &Control) get_class_name() string
fn (control &Control) get_class_type() string
fn (control &Control) get_data(name string) voidptr
get_data gets some data that has been associated with this control based on name
fn (control &Control) get_f32(name string) f32
get_f32 retrieves a float attribute
fn (control &Control) get_f64(name string) f64
get_f64 retrieves an f64 attribute
fn (control &Control) get_fgcolor() Color
get_fgcolor gets the foreground color for the control
fn (control &Control) get_font() Font
get_font returns back a formatted Font
object for this control
fn (control &Control) get_int(name string) int
get_int retrieves an int attribute
fn (control &Control) get_int_int(name string) (int, int, int)
get_int_int retrieves an attribute that has a divider (x, :, -) It returns the amount of values (0, 1, 2) and each value
fn (control &Control) get_rgb(name string) (byte, byte, byte)
get_rgb retrieves an attribute and returns it back in r, g, b form
fn (control &Control) get_rgba(name string) (byte, byte, byte, byte)
get_rgba retrieves an attribute and returns it back in r, g, b, a form
fn (control &Control) insert(new_control &Control, ref_control &Control) &Control
insert inserts a new_control
into this control after ref_control
if provided
fn (control &Control) map_control() int
fn (control &Control) on_action(func ActionFunc) &Control
fn (control &Control) on_branch_close(func BranchCloseFunc) &Control
fn (control &Control) on_branch_open(func BranchOpenFunc) &Control
fn (control &Control) on_caret(func CaretFunc) &Control
fn (control &Control) on_cell(func CellFunc) &Control
fn (control &Control) on_change(func ChangeFunc) &Control
on_change occurs when the value in an input is changed
fn (control &Control) on_dbl_click(func DblClickFunc) &Control
on_dbl_click occurs when an element is double-clicked
fn (control &Control) on_destroy(func DestroyFunc) &Control
on_destroy occurs when an element is freed
fn (control &Control) on_detached(func DetachedFunc) &Control
fn (control &Control) on_drag(func DragFunc) &Control
on_drag occurs when an element is being dragged
fn (control &Control) on_drag_drop(func DragDropFunc) &Control
on_drag_drop occurs when an element is dragged and then dropped
fn (control &Control) on_drop_down(func DropDownFunc) &Control
fn (control &Control) on_drop_files(func DropFilesFunc) &Control
fn (control &Control) on_edit(func EditFunc) &Control
on_edit occurs when an element is being edited
fn (control &Control) on_entered(func EnteredFunc) &Control
fn (control &Control) on_execute_branch(func ExecuteBranchFunc) &Control
fn (control &Control) on_execute_left(func ExecuteLeafFunc) &Control
fn (control &Control) on_exited(func ExitedFunc) &Control
fn (control &Control) on_extended(func ExtendedFunc) &Control
fn (control &Control) on_flat_action(func FlatActionFunc) &Control
fn (control &Control) on_focused(func FocusedFunc) &Control
on_focused occurs when an element receives focus
fn (control &Control) on_help(func HelpFunc) &Control
on_help occurs when the focused element has the "help" method called on it
fn (control &Control) on_key(func KeyFunc) &Control
on_key occurs when any key is pressed down
fn (control &Control) on_key_press(func KeyPressFunc) &Control
on_key_press occurs when a key is fully pressed and released
fn (control &Control) on_map(func MapFunc) &Control
fn (control &Control) on_motion(func MotionFunc) &Control
fn (control &Control) on_mouse_move(func MouseMoveFunc) &Control
on_mouse_move occurs whenever mouse movement has happened
fn (control &Control) on_multiselect(func MultiSelectFunc) &Control
fn (control &Control) on_multiselection(func MultiSelectionFunc) &Control
fn (control &Control) on_multiunselect(func MultiUnselectionFunc) &Control
fn (control &Control) on_node_removed(func NodeRemovedFunc) &Control
fn (control &Control) on_open_close(func OpenCloseFunc) &Control
fn (control &Control) on_rename(func RenameFunc) &Control
fn (control &Control) on_resize(func ResizeFunc) &Control
on_resize occurs whenever an element is resized
fn (control &Control) on_restored(func RestoredFunc) &Control
fn (control &Control) on_right_click(func RightClickFunc) &Control
on_right_click occurs whenever a right-click even is detected
fn (control &Control) on_scroll(func ScrollFunc) &Control
fn (control &Control) on_select(func SelectFunc) &Control
on_select occurs whenever a value is selected in an element
fn (control &Control) on_selection(func SelectionFunc) &Control
fn (control &Control) on_show_rename(func ShowRenameFunc) &Control
fn (control &Control) on_switch(func SwitchFunc) &Control
fn (control &Control) on_tab_change(func TabChangeFunc) &Control
on_tab_change occurs when a tab is selected
fn (control &Control) on_tab_change_pos(func TabChangePosFunc) &Control
fn (control &Control) on_tab_close(func TabCloseFunc) &Control
on_tab_close occurs when a tab is closed
fn (control &Control) on_toggle_value(func ToggleValueFunc) &Control
on_toggle_value occurs when a toggle element is changed
fn (control &Control) on_unfocused(func UnfocusedFunc) &Control
on_unfocused occurs when an element loses focus
fn (control &Control) on_unmap(func UnmapFunc) &Control
fn (control &Control) on_value_changed(func ValueChangedFunc) &Control
on_value_changed occurs when the value of an element is modified
fn (control &Control) on_value_changing(func ValueChangingFunc) &Control
on_value_changing occurs when the value of an element is being actively changed (but the element still has focus so 'change' has not happened)
fn (control &Control) on_wheel(func WheelFunc) &Control
on_wheel occurs when the scroll wheel on the mouse is adjusted
fn (control &Control) refresh()
fn (control &Control) refresh_children()
fn (control &Control) set_attr(name string, value string) &Control
set_attr sets an attribute on Control
and returns Control
back for chaining
fn (control &Control) set_attrs(attrs ...string) &Control
set_attrs takes all x=x values and applies them to Control
and returns Control
back for chaining
fn (control &Control) set_bgcolor(color Color) &Control
set_bgcolor updates the background color for this control to the provided Color
fn (control &Control) set_data(name string, data voidptr) &Control
set_data associates the provided data
with Control
and returns Control
back for chaining
fn (control &Control) set_fgcolor(color Color) &Control
set_fgcolor updates the foreground color for this control to the provided Color
fn (control &Control) set_font(font Font) &Control
set_font updates the font for this control to the provided Font
fn (control &Control) set_handle(name string) &Control
set_handle is a helper function for Control
that calls the global set_handle
function. Returns back an instance of Control
for chaining
fn (control &Control) set_image(handle string) &Control
fn (control &Control) unmap_control(save_attrs bool)
fn (control &Control) unset_attr(name string) &Control
unset_attr clears the provided attribute
struct Color {
pub mut:
r byte
g byte
b byte
a byte = 255
}
fn (color Color) show_picker() (Color, []Color)
show_picker is a helper function to show a color_dialog. It will automatically show the color dialog with this Color
s values pre-selected and returns back the new Color on select as well as all of the colors in the color table
fn (color Color) str() string
str converts the color to a IUP valid string Example format: 200 150 0 100


Welcome to my first website!!!
Sam Jones, Web Developer!!!
Summary of Qualifications!!!!
- No Experience as a freelance web developer
- Some Experience with HTML, CSS, and JavaScript
- Bachleor of Science, Accounting
skills!!
Microsoft Office
Linux
Windows 10


Legend
Top
1/1
1/2
1/3
1/4
Other
Organization Chart - Marketing
Zoom In
Zoom Out
Organization Chart - Finance, Audit, IT
Zoom In
Zoom Out
Organization Chart - PSO
Zoom In
Zoom Out
Organization Chart - LBO
Zoom In
Zoom Out
Organization Chart - SALES
Zoom In
Zoom Out
Organization Chart - SALES
Zoom In
Zoom Out


<lcItem2>
The <lcItem2>
element in an assessment interaction provides the content
for an item that matches the match item in a match table. This element replaces the
<lcItem>
element in DITA 1.2.
Category: Interactions domain content elements


Sevix
Homepage
About us
Our team
Services
CONTACT US
Provide some details about your project and we'll be in touch to schedule a meeting.

SUBMIT


Texture vertex (vt) Specifies a texture vertex and its coordinates
vt u v w
Horizontal direction
(2D and 3D) Vertical direction (Default: 0)
(3D) Depth (Default: 0)


Hong Kong court strikes down face mask ban aimed at protesters trying to hide their identity
by EndPlayHONG KONG - HONG KONG (AP) - Hong Kong court strikes down face mask ban aimed at protesters trying to hide their identity.
HONG KONG - HONG KONG (AP) - Hong Kong court strikes down face mask ban aimed at protesters trying to hide their identity.


JUDY BERLIN
Reviewed by Harvey Karten TSG Films Director: Eric Mendelsohn Writer: Eric Mendelsohn Cast: Barbara Barrie, Bob Dishy, Edie Falco, Carlin Glynn, Aaron Harnick, Bette Henritze, Madeline Kahn, Julie Kavner, Anne Meara, Novella Nelson
During the New York City blackout of the late seventies, some bad things were going down. Stores were looted, car windows were smashed, people were getting mugged. Something good came out of the experience, though. All TV's were kaput in my own apartment building, and people climbed down the stairs, candles in hand, to find out what was going on. Neighbors met neighbors for the first time as we looked through the glass entrance to the building and marveled at the absolute darkness of the adjacent streets, streets rendered even darker than we had known them to be during those rare total solar eclipses of the sun.
The solar eclipse which is the central character of Eric Mendelsohn's small and slight film, "Judy Berlin," serves partly as metaphor for the obscured childhood dreams of the folks of the Long Island community of Babyon and in part as a marvel of nature which brings their repressed feelings to the fore. In this debut feature of Mr. Mendelsohn--which was screened appropriately at a recent Hamptons Festival--some strange and wonderful things happen during that single day. But this picture is no high-budget vehicle for a Paul Thomas Anderson, whose "Magnolia" similarly, in a period of a few hours, brings together estranged people freighted with feelings of guilt but adds a dramatic payoff of Divine will: thousands of frogs rain down on one area of the San Fernando Valley. Instead, Mendelsohn's feature film is a story of epiphanies realized by a small group of these ordinary Long Island who are hit by a recognition of their long-contained feelings.
At the center is the mother of the title figure, Sue Berlin (Barbara Barrie), a buttoned-down, divorced elementary school teacher who relates well to her well-behaved pupils and is about to come to grips with her feelings for her boss, Arthur Gold (Bob Dishy), a frustrated principal. Sue's daughter, Judy Berlin (Edie Falco), about to leave for Hollywood to try for an acting career, is a bubbly woman of 32, full of misguided optimism about her possibilities, who is brought back to Earth in a chance meeting with Arthur Gold's son depressed and unsuccessful son, David (Aaron Harnick)- -a failed film-maker who is still living at home with his dad and his mother, Alice (Madeline Kahn).
While the most amusing scene in the movie takes place as a small group of tourists watches a dramatized replay of what the town was like in 1857 (with Judy Berlin playing the neatly- costumed farmer), we are concerned principally with two relationships sparked into life: one between Arthur Gold and the divorced Sue Berlin; the other between the nebbishy David and the spirited Judy. While we suspect that both connections will fizzle out like the clouding over of the sun at 12:48 that afternoon, Mendelsohn has afforded us a slice of life, and of equal importance, has affirmed his faith in the beauty of suburbia.
"Judy Berlin" goes against audience expectations in that it is uncritical of life outside metropolitan areas.  While the picture poses as a modern Chekhovian tale--the silences and pauses more meaningful than the spoken dialogue--Jeffrey Seckendorf's cinematography is hard to take. The entire screen is enveloped in shadows, disastrous especially for a black-and-white movie, giving what is purportedly an optimistic yarn the ambiance of a cynical noir film. While Bob Dishy is super as a man who has been ground down by his yammering wife and who takes comfort in a brief hug with one of his teachers, there is not enough drama to make the story watchable. "Uncle Vanya" this is not. Rather this is the sort of chamber piece that would fit perhaps in a 50-seat off- off-Broadway theater but is lost on the large screen.
Not Yet Rated. Running Time: 96 minutes. (C) 1999 Harvey Karten<EMAIL_ADDRESS>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


Volunteers said they also struggled with informing voters of their rights. Many had heard of the law requiring a state identification to vote without knowing the law had been struck down
That nearly included one voter from Elizabeth City.
Khalif Williams, a black 22-year-old, voted around 6:30 p.m. on election day. He said he didn't find out he could vote without an ID until just three hours before that.
Williams said he was a fan of allowing voting without an ID.
“It keeps things simple,” he said.
Paulette Spelman, a retired school teacher of thirty years and mother of eight, was waiting in the parking lot in front of River Road Middle School while her daughter voted inside.
She said she voted early to avoid long lines.
“I can't stand that long,” she said.
Though she said the poll closures were inconvenient for some, she remained optimistic about voting in North Carolina.
“I believe in the system,” she said.


--- status: publish published: true title: Movie ratings vs. video ratings date: '2009-12-09 07:48:26 +0100' date_gmt: '2009-12-09 07:48:26 +0100' excerpt: 'How rate when' ---
I found this pretty interesting blog-post by Youtubes' Shiva Rajaraman about the distribution of ratings in Youtube videos. Seems almost no people rate videos with anything else than five stars. As soon as I read it I did a similar plot of the Filmtipset dataset I've been working on lately.
It seems that there's quite a difference in the way we rate videos and movies. Below is a plot of the rating distribution in Filmtipset and a copy of the one from Youtube. The of the x-axis on both images is 1 to 5.
Filmtipset
Youtube


{{config.key}}
Save
Toggle Dropdown
Delete
New
API
RESOURCE
GET
POST
PUT
DELETE
/
This page
/api
Lists all configs
Nothing
Nothing
Nothing
/api/:key
Retrieves config :key
Nothing
Updates config :key
Deletes config :key


--- layout: page title: About Me description: background: '/img/bg-about.jpg' ---
Hi! My name is Helen. I am currently a master student major in Electrical Engineering. Technology is fun! I love coding and solving problems. As we all know, practice is the key to master things. This blog is for keeping track of my learning & practice paths. If you have problems or suggestions, feel free to contact me!
Secret: I adopt a cat recently, her name is Riza!


ppmtoyuvsplit(1) ppmtoyuvsplit(1) NAME ppmtoyuvsplit - convert a portable pixmap into 3 subsampled raw YUV files SYNOPSIS ppmtoyuvsplit basename [ppmfile] DESCRIPTION Reads a portable pixmap as input. Produces 3 raw files basename.Y, base‐ name.U and basename.V as output. These files are the subsampled raw YUV representation of the input pixmap, as required by the Stanford MPEG codec. The subsampling is done by arithmetic mean of 4 pixels colors into one. The YUV values are scaled according to CCIR.601, as assumed by MPEG. SEE ALSO mpeg(1), ppm(5) AUTHOR Copyright (C) 1993 by Andre Beck<EMAIL_ADDRESS>Based on ppmtoyuv.c 9 September 1993 ppmtoyuvsplit(1)


3 men dead after fire rips through vacant home in Queens
by Candace McCowanST. ALBANS, Queens (WABC) -- Three men are dead after fire tore through a vacant home overnight in Queens.
Firefighters arrived just before midnight Thursday to find flames shooting from a home at Farmers Boulevard and Jordan Avenue in St. Albans.
The blaze was consuming the structure from the cellar all the way up to through the first and second floors.
As firefighters worked to control the fire from inside the building, they found three men -- two on the first floor and one on the second.
All were unresponsive, and EMTs later pronounced them dead.
One of the firefighters fell through a hole in the floor to the basement, and four firefighters were treated for minor injuries in total.
Fire officials said crews were not expecting to find anyone inside because the home was vacant and had a marking outside indicating that was the case.
"It indeed is a vacant building, and (we) confirm that ConEd hasn't supplied power to the building in approximately two years," FDNY Assistant Chief Joseph Jardin said. "That house was boarded up for a while, so I can only assume that they were living there as squatters."
Eyewitness News is told the victims were each between the ages of 35 and 40.
The medical examiner is working to identify them.
Fire investigators remained on the scene trying to determine what sparked the blaze.


Forms in BS
First Name
Last Name
Phone
Bio
Email
Password
Date of Birth
Gender
Female
Male
Send Data
Send Data


About Me
Hello, my name is Rosa Cardenas.
I'm a student in the software development and testing track at Year up in the Seattle area.
After I graduated High School I decided school was not for me, 6 years later I decided I wanted to go back to school and develop new skills in the software development area
Prior to joining Year up I was a Personal Banker at Wells Fargo. I worked there for the past 4 years. Working for Wells Fargo allowed me develop customer service, communication, and listening skills.


Sitemap
Landing Page
Home
everything (link hoarding cupboard)
Tunes
Music good
Albums
Blog
Once I have something to say, it'll be here.
Collection of Professor Websites
Go trekking through my collection of professorial web pages, because professors are cool
digital doodles
turtles
whoami
Terminal Emulator
My very own meme editor and deepfryer
My library
(or at least part of it)
A barebones canvas, become the next Bob Ross
A collection of relevant software I've written
Games that we can play
Frippertronics...izer.
Yep.
Stay
Connected


Balthisar Tidy uses standard Mac OS X menus that an experienced (or even novice!) user should find self-explanatory. The menu items’s descriptions below are limited to the features unique to Balthisar Tidy.
The File menu is a completely standard Macintosh File menu.


CTA Train Station Finder
This app allows the user to find different train stations based on street names.
CTA Bus Tracker
This app allows the user to get prediction times for CTA busses approaching the Western and Addison stops near Lane Tech!
Air Horn
This app is a simple air horn that can be used on your phone even if you are bot connected to wifi.
Towed Vehicles Finder
This app returns information on all black fords that have been towed.


|
SideCar
|
Status emitter for the App class. More...
#include </Users/howes/src/sidecar/Runner/StatusEmitter.h>
Public Types | |
| using | Ref = boost::shared_ptr< StatusEmitter > |
| Public Types inherited from SideCar::IO::StatusEmitterBase | |
| using | Ref = boost::shared_ptr< StatusEmitterBase > |
Static Public Member Functions | |
| static const char * | GetEmitterType () |
| Obtain the Zeroconf type for all StatusEmitter objects. More... | |
| static const char * | GetCollectorType () |
| Obtain the Zeroconf type for all StatusCollector objects associated with this StatusEmitter class. More... | |
| static Ref | Make (App &app, double updateRate=2.0) |
| Static Public Member Functions inherited from SideCar::IO::StatusEmitterBase | |
| static Logger::Log & | Log () |
| Obtain the log device used by StatusEmitter objects. More... | |
Additional Inherited Members | |
| Public Member Functions inherited from SideCar::IO::StatusEmitterBase | |
| StatusEmitterBase (const char *emitterType, const char *collectorType, double updateRate) | |
| Constructor. More... | |
| virtual | ~StatusEmitterBase () |
| Destructor. More... | |
| bool | open (long threadFlags=THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, long priority=ACE_DEFAULT_THREAD_PRIORITY) |
| Open a datagram socket and publish connection information. More... | |
| void | close () |
| Close the datagram socket and shutdown Zeroconf publisher. | |
| void | setUpdateRate (double updateRate) |
| Change the update rate for the emitter. More... | |
| double | getUpdateRate () const |
| Obtain the current update rate of the emitter. More... | |
| void | emitStatus () |
Status emitter for the App class.
Periodically emits an XML status message to one or more "status collector" objects (see GUI::StatusCollector for an example). Relies on Runner::fillStatus() method for status information.
Definition at line 18 of file StatusEmitter.h.
|
inlinestatic |
Obtain the Zeroconf type for all StatusCollector objects associated with this StatusEmitter class.
Definition at line 35 of file StatusEmitter.h.
References SideCar::IO::ZeroconfRegistry::GetType().
|
inlinestatic |
Obtain the Zeroconf type for all StatusEmitter objects.
Definition at line 28 of file StatusEmitter.h.
References SideCar::IO::ZeroconfRegistry::GetType().


See the Quick Start Guide to start using Evaporate Brightcove in your project!
Each video is broken into many pieces and uploaded simultaneously to maximize available bandwidth and only retry failed parts -- not the entire video.
Don't put extra load on your servers -- upload directly to S3 saving you time and making uploads faster!
Change any text provided, easily instrument all phases of the upload and failure, tweak Evaporate.js settings directly
Bring your own video validation logic! Don't want 1080p? Check in the browser before you upload
Uses Webpack and Commonjs internally, but also available as a standalone UMD module.
Every configuration option is documented
Built on top of the leading upload library, Evaporate.js


Java users have a client API in order to make usage experience easy. Download the verbum-domini-client API compacted with its dependencies here and extract them. Add all JAR files into your project's classpath. If you use Maven, you can add it as your project's dependency.
<dependency> <groupId>com.github.aureliano</groupId> <artifactId>verbum-domini-client</artifactId> <version>0.1.0</version> </dependency>Then install it manually with this command.
mvn install:install-file -DgroupId=com.github.aureliano -DartifactId=verbum-domini-client -Dversion=0.1.0 -Dpackaging=jar -Dfile=/path/to/file
The Java client API verbum-domini-client has a starting point singleton class which will lead you through all available services. The first service is the bibles service from what you can navigate through nested services. Each service has a return type which abstracts an entity as a Java object. Services whose return type is a collection return a wrapped entity type. Those wrapped entities have two fields: elements and size. Where elements is a list of entities and the list size is the maximum elements per page length; and the size field is the total of elements you can fetch from server.
In order to fetch all available bibles from server you can do like the code bellow.
Bibles bibles = ApiMapService.instance()._bibles().httpGet(); System.out.println("Total bibles: " + bibles.getSize()); for (Bible bible : bibles.getElements()) { System.out.println("Id: " + bible.getBibleId()); System.out.println("Name: " + bible.getName()); System.out.println("Language: " + bible.getLanguage()); }Notice that only fields that are part of response will be filled in the object. The first line shows how to send a request to /bibles with method GET. Now if you want to get a specific bible you can do lake that.
Bible bible = ApiMapService.instance()._bibles()._bibleId("1").httpGet(); System.out.println("Id: " + bible.getBibleId()); System.out.println("Name: " + bible.getName()); System.out.println("Language: " + bible.getLanguage()); System.out.println("Edition: " + bible.getEdition()); System.out.println("Copyright: " + bible.getCopyright()); System.out.println("Eletronic transcription source: " + bible.getEletronicTranscriptionSource()); System.out.println("Eletronic transcription source URL: " + bible.getEletronicTranscriptionSourceUrl()); System.out.println("Printed source: " + bible.getPrintedSource()); System.out.println("URL: " + bible.getUrl());When a service has a big number of elements to return, its response is broken into pages. If the pagination size is 25 and the service returns 100 elements then you'll have to make 4 requests passing the pagination index as parameter.
BooksService service = ApiMapService.instance()._bibles()._bibleId("1")._books(); Books books = service.httpGet(); int elementsPerPage = books.getElements().size(); int pages = Math.round((float) books.getSize() / elementsPerPage); System.out.println("Total books: " + books.getSize()); System.out.println("Total gotten: " + books.getElements().size()); // Page one already gotten for (int page = 2; page <= pages; page++) { int startingFrom = (page * elementsPerPage) + 1; Books entity = service.withParameters(new BooksParameters().withStart(startingFrom)).httpGet(); books.getElements().addAll((Collection<? extends Book>) entity.getElements()); } System.out.println("Total gotten: " + books.getElements().size());There's also a parameter called pages that is useful to shorten the pagination process. Be careful, this parameter is used to be short and its default is 3. So you could reduce about two requests instead of making four.
// ... Books entity = service.withParameters( new BooksParameters().withStart(startingFrom).withPages(3)).httpGet(); // ...
The easiest way for consuming data is using navigation by entities. Let's take a look in the code bellow that fetch a verse navigating through all services.
List<Bible> bibles = ApiMapService.instance().fetchBibles(); for (Bible bible : bibles) { if (!bible.getName().equals("Nova Vulgata")) { continue; } for (Book book : bible.fetchBooks()) { if (!book.getName().equals("genesis")) { continue; } List<Verse> verses = book.fetchChapters().get(0).fetchVerses(); for (Verse verse : verses) { Verse completeVerse = ApiMapService.instance() ._verses()._verseId(verse.getVerseId().toString()).httpGet(); System.out.println(completeVerse.getText()); } } }


This is a quick example of how to embed a DDL generated dashboard (with dermatology settings) into a bootstrap page. This demo creates bootstrap grid/row/col elements to position the widgets.
Source Code » Previous Next Reset Reset(CO, E412)


Before the 1960's, it was all orange groves, nurseries for ferns, and wetlands. Now when I go home, it seems like it's all concrete, asphalt, retention ponds, and parking lots. The entire lot of the house I grew up in eventually became a retention pond to facilitate the expansion of a highway. When it was still a backyard, my sister buried her dead hamster "Salmon" there.
The blue route shows the official and approved bike path home from South Seminole Middle School to Home..


Webifly Solutions
Home
About
Login
Admin Login
Register
User Registration
Contact Us
Menu
Login here
Enter your Email
Enter your Password
Sign in
Forgot Password ?


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.awt.image.BufferStrategy
public abstract class BufferStrategy
The BufferStrategy
class represents the mechanism with which
to organize complex memory on a particular Canvas
or
Window
. Hardware and software limitations determine whether and
how a particular buffer strategy can be implemented. These limitations
are detectible through the capabilities of the
GraphicsConfiguration
used when creating the
Canvas
or Window
.
It is worth noting that the terms buffer and surface are meant to be synonymous: an area of contiguous memory, either in video device memory or in system memory.
There are several types of complex buffer strategies; sequential ring buffering, blit buffering, and stereo buffering are common types. Sequential ring buffering (i.e., double or triple buffering) is the most common; an application draws to a single back buffer and then moves the contents to the front (display) in a single step, either by copying the data or moving the video pointer. Moving the video pointer exchanges the buffers so that the first buffer drawn becomes the front buffer, or what is currently displayed on the device; this is called page flipping.
Alternatively, the contents of the back buffer can be copied, or blitted forward in a chain instead of moving the video pointer.
Double buffering: *********** *********** * * ------> * * [To display] <---- * Front B * Show * Back B. * <---- Rendering * * <------ * * *********** *********** Triple buffering: [To *********** *********** *********** display] * * --------+---------+------> * * <---- * Front B * Show * Mid. B. * * Back B. * <---- Rendering * * <------ * * <----- * * *********** *********** ***********
Stereo buffering is for hardware that supports rendering separate images for a left and right eye. It is similar to sequential ring buffering, but there are two buffer chains, one for each eye. Both buffer chains flip simultaneously:
Stereo buffering: *********** *********** * * ------> * * [To left eye] <---- * Front B * * Back B. * <---- Rendering * * <------ * * *********** *********** Show *********** *********** * * ------> * * [To right eye] <--- * Front B * * Back B. * <---- Rendering * * <------ * * *********** ***********
Here is an example of how buffer strategies can be created and used:
// Check the capabilities of the GraphicsConfiguration
...
// Create our component
Window w = new Window(gc);
// Show our window
w.setVisible(true);
// Create a general double-buffering strategy
w.createBufferStrategy(2);
BufferStrategy strategy = w.getBufferStrategy();
// Render loop
while (!done) {
Graphics g = strategy.getDrawGraphics();
// Draw to graphics
...
strategy.show();
}
// Dispose the window
w.setVisible(false);
w.dispose();
Component
,
GraphicsConfiguration
| Constructor Summary | |
|---|---|
BufferStrategy()
|
| Method Summary | |
|---|---|
abstract boolean |
contentsLost()
Returns whether the drawing buffer was lost since the last call to getDrawGraphics . |
abstract boolean |
contentsRestored()
Returns whether the drawing buffer was recently restored from a lost state and reinitialized to the default background color (white). |
abstract BufferCapabilities |
getCapabilities()
|
abstract Graphics |
getDrawGraphics()
|
abstract void |
show()
Makes the next available buffer visible by either copying the memory (blitting) or changing the display pointer (flipping). |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public BufferStrategy()
| Method Detail |
|---|
public abstract BufferCapabilities getCapabilities()
public abstract Graphics getDrawGraphics()
public abstract boolean contentsLost()
getDrawGraphics
. Since the buffers in a buffer strategy
are usually type VolatileImage
, they may become lost.
For a discussion on lost buffers, see VolatileImage
.
VolatileImage
public abstract boolean contentsRestored()
VolatileImage
, they may become lost. If a surface has
been recently restored from a lost state since the last call to
getDrawGraphics
, it may require repainting.
For a discussion on lost buffers, see VolatileImage
.
VolatileImage
public abstract void show()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


--- layout: base title: Charts subtitle: For Ores and Bees bigimg: - "/img/gregtech.png" - "/img/clouds.png" - "/img/crossroads.png" - "/img/beyondreality.png" ---


This is a scrollable container. Michaelmas term lately over, and the Lord Chancellor sitting in Lincoln's Inn Hall. Implacable November weather. As much mud in the streets as if the waters had but newly retired from the face of the earth.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
This is the inner container. Focus on this container, scroll to the bottom and when you reach the bottom keep scrolling.
If you have overscroll-behavior: auto;
selected the outer container will start to scroll.
If you have
overscroll-behavior: contain;
selected, the outer container will not scroll unless you move your cursor out of the inner container and try to perform scroll on the outer container.


Register
E-Mail
Password
Login
E-Mail
Password
Accessing private routes
Make request to a private route:
Request


intro
Log4z is an open source C++ lightweight log library.
It provides in a C++ application log and trace debug function.
Using log4z can be very easy and convenient to debug log or track for conveying information to the screen, the log file
open source site:
https://github.com/zsummer/log4z
The advantages of log4z
1. A very wide range of MIT open source license can unrestricted use in personal, educational and commercial cases
2. log4z very lightweight. Using C++ and API system write only a header file and a CPP source files, very simple and easy to use
3. suitable for cross platform (windows or Linux, 32 or 64bit) multithreading logging output occasions
4. to provide a complete log priority control, and the procedure can be adjusted in any position.
5. through a configuration file or call interface increased with the configuration of different log recorder.
6. screen output according to priority to different log color display, file output information and neat enough, logging interface fast and convenient.
7. excellent performance, a small memory footprint
8. Interface clear and simple, a skilled programmer just visit the log4z.h interface can grasp the log system.
update logs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
/*
* UPDATES
*
* VERSION 0.1.0 <DATE: 2010.10.4>
* create the first project.
* It support put log to screen and files,
* support log level, support one day one log file.
* support multiple thread, multiple operating system.
*
* VERSION .... <DATE: ...>
* ...
*
* VERSION 0.9.0 <DATE: 2012.12.24>
* support config files.
* support color text in screen.
* support multiple logger.
*
* VERSION 1.0.0 <DATE: 2012.12.29>
* support comments in the config file.
* add a advanced demo in the ./project
* fix some details.
*/
| |
Quick User Manual
1. include log4z.h
2. using namespace
using namespace zsummer::log4z;
3. add a logger. if skip that only one main logger.
ILog4zManager::GetInstance()->AddLogger(1,"", "AddLogger", LOG_DEBUG);
4. start log4z.
ILog4zManager::GetInstance()->Start();
5. fast log record micro: LOGD LOGI LOGE ... It's record to main logger, and the level is LOG DEBUG, LOG INFO ... example:
LOGD("this is a LOG_DEBUG level's log, " << " ^_^ " );
6. stop and close. Log4z will auto stop and close at the process dea.
//ILog4zManager::GetInstance()->Stop()
|
compile
in VS join the .h and .cpp
in linux, need append -lpthread. example:
g++ -lpthread -o test main.cpp ../log4z.cpp
|
//add the log4z v1.0.1
1 2 3 4 5
|
* VERSION 1.0.1 <DATE: 2013.01.01>
* the source code haven't any change.
* fix some Comments in the log4z
* add some comments in the test projects.
* delete some needless code in the 'fast_test' demo projects, it's so simple.
| |
Attachments:
[log4z_v1.0.0.zip]
[log4z_v1.0.1.zip]


Intro
As we shared at the end of 2017, we restarted this year working on a plan towards 1.0. Our first stop was improving the automation of releases. Thanks to the donations of December and part of January, we managed to put 80 hours of work into this. Thanks as usual for the help!
How things used to be
For a long time, we managed Crystal’s release and distribution process through omnibus-crystal. Even though parts of the process were automatic, it involved many manual steps that required launching virtual machines for different distros to generate pkg, deb, tar.gz, etc.
This process used to be enough for our needs, when only one or two people (Ary and Waj) would be in charge of releasing versions of the language. But as the project and the core team grew, we were afraid that some parts of the process were not properly documented, depending on information sitting in their heads or work-of-art environments in their machines.
Another important part of the release process is publishing the docs in the website. Up to now, we’ve been doing this with Travis. Whenever we tagged a build, we would have Travis sync the output of the docs
command to S3. Then with some route redirect logic we would ensure that links to the latest release docs such as /api/Array.html
would redirect to /api/0.24.1/Array.html
, so we could use the former in articles or the Crystal book.
Then there’s Docker. Nowadays a release that doesn’t include an official Docker image seems off. So after building and publishing the packages for each platform a Docker image is built, tagged, and published to https://hub.docker.com/r/crystallang/crystal/. Yet again this was not automated, and we sometimes would even forget to do it for a couple of days.
One last piece of the puzzle in this build madness is that the CI currently runs in Travis for Linux and Linux 32 bits using a Docker image to build the compiler while we rely on CircleCI for Mac builds. As a side note, the Docker images used in the CI are not updated automatically during the release build.
Despite all this manual process, @waj, @asterite, @jhass, @matiasgarciaisaia have done a great job to keep things moving forward.
Some releases ago, @RX14 wrote a new build process to improve the packages for some Linux distros. As a result, we decided to drop omnibus in favor of a multi stage Docker image to ship a compiler with musl and an up to date LLVM version when possible.
What we want?
Our main goals are
- Fully automate the process of building released binaries, including the provisioning of the machine where they are built.
- Smoothen the release process to release more often and painlessly.
- Test continuously to discover breakages in the ecosystem (including the most popular shards such as DB, Kemal, Amber, Lucky, etc) before the actual release.
- Have unified release scripts (for our own sanity).
While trying to accomplish those goals we wanted to also address some technical debt regarding CI in general:
- Move all platforms CI to a single CI environment.
- Avoid manual post release steps like publishing Docker images for CI.
- Update and unify versions of dependencies when possible.
What we did and what “surprises” we found?
Hello CircleCI 2.0
We migrated from a CI setup that was running on CircleCI 1.0 to test OSX only to a CircleCI 2.0 workflow that will stress Linux32, Linux64 and OSX builds.
Nightly for Linux 64 bits
After migrating the scripts that were running the CI we started to work on producing automated nightly images of the compiler for all supported platforms up to date.
To build Linux 64 bits we now use the new distribution-scripts created by @RX14. Moving to this was almost completely straightforward, except for some changes needed because the only time we had used those scripts was to release the 0.24.1 compiler based on 0.23.1 (in case you were wondering, 0.24.0 was effectively yanked).
Nightly for OSX
To build the osx compiler we migrated the omnibus-crystal repo to distribution-scripts. Having a single repo will simplify things eventually. We needed to tweak a bit how things used to be in order to avoid spending too much time of CircleCI 1.
Eventually, we could get completely rid of omnibus, but the main goal was to automate the process rather than changing the packaging.
Nightly for Linux 32 bits
The distribution-scripts
build system produces x86_64
Linux packages. To get 32 bits there were a couple of alternatives.
- Use omnibus scripts as we used to, but run them in somewhat official Docker i386 images instead of 32bits VMs since CircleCI does not provide 32 bits machine executors. Given that we are keeping the omnibus script for a little longer this seems like an easy path.
- Make a version of distribution-scripts that will build a 32 bits compiler from a previous 32 bits compiler.
- Make a version of distribution-scripts that will build a 32 bits compiler from a previous 64 bits compiler and perform a cross-compilation somewhere in the middle.
Doing 2 or 3 would change the packaging, and align the changes of the path introduced in the 64 bits current version. But would require a bit more effort than option 1.
So we tried option 1. The result was - we hit a bug in Boehm’s GC specific to 32-bit Docker containers, that was fixed in a release newer than the one our Omnibus setup was using.
So we couldn’t use Crystal 0.24.1 (with the buggy GC version) inside the Docker containers. As a consequence, we built Crystal 0.24.2 for 32 bits manually, with a newer GC version. That will allow us to release 0.25.0 using the distribution-scripts
in the future. Probably still sticking to option 1.
The bottom line: there are no 32-bit nightly packages for 0.24.2, but we should be able to introduce them in the future.
Nightly for Docs
Including the docs in the process is also neat. And it lets us stop publishing from Travis automatically (for tags and branches). This way now we are all able to preview nightly/tagged docs, jump to old unpublished versions and, most importantly, publish docs to the main site at the same time the packages will be published and not just when tagging the repo. This caused some confusion in the past because going to the site would say some things but packages would not reflect them.
Nightly for Docker
We wanted to go an additional step further and simplify how users could check if the nightly builds are working on their projects. So we put some work to publish Docker images tagged as nightly. With the fresh Linux packages made during the build we could install it and push a Docker image directly from CircleCI even if the package was not yet published in an APT repository. Note that these images have a compiler with release optimization, so the only difference with the official release will be the version description (of course, as long as the nightly built is performed on the same commit).
We are going to publish crystallang/crystal:nightly
and crystallang/crystal:nightly-build
Docker images. The former should be able to compile apps that use the stdlib, the latter includes LLVM and dependencies needed to build the compiler.
Keep the lineage in the compiler repo
Each time a new Crystal compiler is released, the next one is usually built on the new one. The distribution and packaging solution usually will remain unchanged. In order not to lose track of the lineage of compilers it would be great to track exactly how each tag was built in the very same repository of the compiler. To accomplish this we made the distribution-scripts receive parameters to setup which existing Crystal compiler should be used to build the specific new commit or tag.
The Crystal repo now includes a reference to a specific release of the distribution-scripts to use for nightly builds. Since the information about the previous compiler is stated now in the CI configuration, the lineage will be available in the repo itself from now on. A bonus point is that different branches in the future will not be constrained to use the “latest” version.
Tagged release build
The process of building a tagged commit is mostly the same. That is good! It’s the exhibit of a smoother build process.
Once CircleCI built distribution packages and docs what follows is:
- Download the artifacts from CircleCI build.
- Sign the packages.
- Publish to repository.
- The docs need to be uploaded to S3 and the new directory is flagged as latest. Essentially the same that was done in Travis up to now, but triggered as a whole when publishing the packages.
- Build a docker image with the signed package and uploaded it.
These steps are performed manually using crystal-lang/crystal-dist so the signing keys are kept safe. Eventually this repo might be join with distribution-scripts
so all the pieces are kept in a single place.
Ecosystem tests
Nowadays, between Docker, Vagrant, CIs and other resources it’s possible to automate some smoke tests. We did some of this while releasing 0.24.1 and discovered some issues in the release before distributing it. But, sadly, we discovered those issues after tagging. With nightly packages available and some improvement in the tagging process we expect to run some smoke tests before releasing. This would help us detect problems earlier, maybe submitting PR/issues to the affected repositories. Although the compiler and the stdlib have a good amount of specs, for sure there are some interesting scenarios out there in the wild.
Today, we use these ecosystem tests to check (on Darwin, Linux, and Linux32) that some basic commands can be run, stacktraces work, crystal-db and drivers work, and the web frameworks Amber, Lucky and Kemal are able to work.
It’s not perfect, but it is an effort to at least know beforehand that something could be broken for the upcoming release.
How will we do things from now on?
Let’s recap, what happens every night and for a proper release.
Every night on master and every time a commit is tagged the following workflow will be executed.
That will roughly automatically:
- Run specs
- Build nightly branded packages
- Build docs
- Build Docker images from unsigned packages
- Leave a copy of artifacts to be downloaded
Before tagging a commit with the next version, e.g.: 0.25.0
we want to ensure that the commit to be tagged is in good shape. If the nightly was performed in that commit we are ok, but a fail safe approach is to tag 0.25.0-pre1
and wait for the above mentioned steps.
Once the smoke test success the artifacts of 0.25.0-pre1
(or -pre{N}
) we are good to tag 0.25.0
.
We proceed to sign the packages and publish them together with docs and tagged docker images with a single command. For the docker images a new crystal:{version}-build
image will also be published to mimic the nightly -build ones.
There are two pending manual steps:
- Update the homebrew formula
- Update the ci scripts to build the next compiler from the just released one.
Well, there are still a couple of things more to improve and get done. It never ends! Check the following section.
Automated Release Backlog
- Update distribution-scripts to emit 32 bits binaries so the binary creation is fully automated.
- We should be able to use the new Docker {version}-build images in the CI. That will remove the extra dependency of jhass’ crystal build images that ran the CI until now.
- Move the manual build steps for publishing docker image with the signed packages and the publishing of the docs into jobs in circleci. These jobs will remain on hold waiting for a manual approval signaling that the packages were signed and published.
- There is some cleanup to do regarding dockerfiles and vagrantfile in the compiler repo. These are most probably outdated and some former use cases have changed.
- A proper nightly repo for Linux distributions would be great. There is one that is mainly used by Travis to allow
crystal: stable
andcrystal: nightly
options. In the future it would be great to automate updates on a nightly repo directly from the CI. - We still haven’t updated the LLVM version used in the release process for OSX. Currently a custom LLVM 3.9.1 is embedded so the shipped binaries are a bit smaller. But for historical reasons before LLVM 3.8 we were forced to custom build to use some edge features. Maybe we could switch to official LLVM releases now. We are now using LLVM precompiled by 3rd parties for Linux since we started drifting from omnibus. If you use OSX you might notice that your LLVM uses 4.0 or 5.0 because probably you installed Crystal from Homebrew. That compiler is built by Homebrew and they use the latest stable release.
- The creation of a patch of Homebrew formula could be automated so submitting a PR for the new release could be really fancy and, more importantly, unforgettable.
- Shipping the compiler for more platforms is something that can be done, but as long as it can be automated. Eventually something that would make sense is to ship one version of the compiler that could be used to create packages for the different distros and use when possible native packages. That way the Crystal compiler package of each distro could be smaller and would play well regarding how dependencies need to be declared 2
Next steps
Our next goal is to research on improving the compiler’s performance. For that, we will be making a pass on language semantics to round off some of the known problems we know are there. That will allows us to solidify the language so that we can guarantee no breaking-changes post 1.0. We have 41 hours left from January and 64 hours from donations received during February that we’ll invest during March on this. Please continue to support our work, it makes a huge difference!
-
the Ruby versions available in OSX CircleCI VMs are limited. Installing & building a specific Ruby version takes some time https://discuss.circleci.com/t/cache-of-installed-ruby/19606 ↩


TECHNICAL BLOG
MARGIN
The properties that are used to create space around elements, outside of any defined borders.
BORDER
The property that accepts mutiple values for drawing a line around the element it is applied to.
PADDING
The properties that are used to generate space around elements content inside of any defined borders.
- The margin: Specifies a shortland property for setting the margin properties in one declarations
- The margin bottom: Specifies the bottom margin of an element.
- The margin top: Specifies the top margin of an element.
- The margin left: Specifies the left margin of an element.
- The margin right: Specifies the right margin of an element.
MARGIN PROPERTIES
- The border colour: Specifies the colour of a border.
- The border style: Specifies whether a border should be solid, dashed line, double line, or one of the other possible.
- The border width: Specifies the width of a border.
BORDER PROPERTIES
- The padding bottom: Specifies the bottom padding of an element.
- The padding top: Specifies the top padding of an element.
- The padding left: Specifies the left padding of an element.
- The padding right: Specifies the right padding of an element.
- The padding: Serves as shortland for the precreding properties


#include <stdio.h> FILE *fmemopen(void *buf, size_t size, const char *mode); FILE *open_memstream(char **ptr, size_t *sizeloc); #include <wchar.h> FILE *open_wmemstream(wchar_t **ptr, size_t *sizeloc);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
fmemopen(), open_memstream(), open_wmemstream():
The argument mode is the same as for fopen(3). If mode specifies an append mode, then the initial file position is set to the location of the first null byte ('\0') in the buffer; otherwise the initial file position is set to the start of the buffer. Since glibc 2.9, the letter 'b' may be specified as the second character in mode. This provides "binary" mode: writes don't implicitly add a terminating null byte, and fseek(3) SEEK_END is relative to the end of the buffer (i.e., the value specified by the size argument), rather than the current string length.
When a stream that has been opened for writing is flushed (fflush(3)) or closed (fclose(3)), a null byte is written at the end of the buffer if there is space. The caller should ensure that an extra byte is available in the buffer (and that size counts that byte) to allow for this.
Attempts to write more than size bytes to the buffer result in an error. (By default, such errors will be visible only when the stdio buffer is flushed. Disabling buffering with setbuf(fp, NULL) may be useful to detect errors at the time of an output operation. Alternatively, the caller can explicitly set buf as the stdio stream buffer, at the same time informing stdio of the buffer's size, using setbuffer(fp, buf, size).)
In a stream opened for reading, null bytes ('\0') in the buffer do not cause read operations to return an end-of-file indication. A read from the buffer will only indicate end-of-file when the file pointer advances size bytes past the start of the buffer.
If buf is specified as NULL, then fmemopen() dynamically allocates a buffer size bytes long. This is useful for an application that wants to write data to a temporary buffer and then read it back again. The buffer is automatically freed when the stream is closed. Note that the caller has no way to obtain a pointer to the temporary buffer allocated by this call (but see open_memstream() below).
The open_memstream() function opens a stream for writing to a buffer. The buffer is dynamically allocated (as with malloc(3)), and automatically grows as required. After closing the stream, the caller should free(3) this buffer.
When the stream is closed (fclose(3)) or flushed (fflush(3)), the locations pointed to by ptr and sizeloc are updated to contain, respectively, a pointer to the buffer and the current size of the buffer. These values remain valid only as long as the caller performs no further output on the stream. If further output is performed, then the stream must again be flushed before trying to access these variables.
A null byte is maintained at the end of the buffer. This byte is not included in the size value stored at sizeloc.
The stream's file position can be changed with fseek(3) or fseeko(3). Moving the file position past the end of the data already written fills the intervening space with zeros.
The open_wmemstream() is similar to open_memstream(), but operates on wide characters instead of bytes.
POSIX.1-2008 specifies that 'b' in mode shall be ignored. However, Technical Corrigendum 1 adjusts the standard to allow implementation-specific treatment for this case, thus permitting the glibc treatment of 'b'.
If size is specified as zero, fmemopen() fails with the error EINVAL. It would be more consistent if this case successfully created a stream that then returned end of file on the first attempt at reading. Furthermore, POSIX.1-2008 does not specify a failure for this case.
Specifying append mode ("a" or "a+") for fmemopen() sets the initial file position to the first null byte, but (if the file offset is reset to a location other than the end of the stream) does not force subsequent writes to append at the end of the stream.
If the mode argument to fmemopen() specifies append ("a" or "a+"), and the size argument does not cover a null byte in buf, then, according to POSIX.1-2008, the initial file position should be set to the next byte after the end of the buffer. However, in this case the glibc fmemopen() sets the file position to -1.
To specify binary mode for fmemopen() the 'b' must be the second character in mode. Thus, for example, "wb+" has the desired effect, but "w+b" does not. This is inconsistent with the treatment of mode by fopen(3).
The glibc 2.9 addition of "binary" mode for fmemopen() silently changed the ABI: previously, fmemopen() ignored 'b' in mode.
$ ./a.out '1 23 43' size=11; ptr=1 529 1849
#define _GNU_SOURCE #include <string.h> #include <stdio.h> #include <stdlib.h> #define handle_error(msg) \ do { perror(msg); exit(EXIT_FAILURE); } while (0) int main(int argc, char *argv[]) { FILE *out, *in; int v, s; size_t size; char *ptr; if (argc != 2) { fprintf(stderr, "Usage: %s <file>\n", argv[0]); exit(EXIT_FAILURE); } in = fmemopen(argv[1], strlen(argv[1]), "r"); if (in == NULL) handle_error("fmemopen"); out = open_memstream(&ptr, &size); if (out == NULL) handle_error("open_memstream"); for (;;) { s = fscanf(in, "%d", &v); if (s <= 0) break; s = fprintf(out, "%d ", v * v); if (s == -1) handle_error("fprintf"); } fclose(in); fclose(out); printf("size=%zu; ptr=%s\n", size, ptr); free(ptr); exit(EXIT_SUCCESS); }


{% extends "myhome_base.html" %} {% load i18n %} {% block main_panel %}
{% trans "Please input the password if you want to browse the shared file/directory. And the password will be kept on the server for only 1 hour." %}


RT @holman: I'll just go ahead and admit it: the NSA has had access to all of the open source code on GitHub for years.
6/6/2013, 8:26:55 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @holman: I'll just go ahead and admit it: the NSA has had access to all of the open source code on GitHub for years.
6/6/2013, 8:26:55 PM
Favs: 0
Retweets: 0
link


Create a autoconfirming datetime-picker in overlay
date
:
[[date]]
time
:
[[time]]
Create a date-picker with overlay and backdrop and no overlap
confirmed datetime
:
[[datetime]]
Create a time-picker with overlay and backdrop and 12-hour-format
time
:
[[time]]
Create a date-picker with overlay and backdrop and custom-style
date
:
[[date]]
alignment
horizontal-align
auto
left
right
center
vertical-align
auto
top
bottom
middle
no overlap
dynamic align
Using the build-in overlay-element
this is the content of an overlay-element
open the overlay


This page has been relocated.
If you are not redirected automatically, follow this
link to the project page.


[§554A-9] Uniformity of interpretation. This chapter shall be construed to effectuate its general purpose to make uniform the law of those states which enact it. [L 1985, c 61, pt of §1]


--- ---
Contagious Disease
One-fifth of the collection consists of prints related to contagious disease — smallpox, cholera, or measles. Other themes in the collection occur in several of these prints, such as those that depict the influence of Shinto and Buddhist deities on disease, or promote traditional Asian and Western remedies. Read More
|
See all Contagious Disease images
|
|||||||