This document has two kinds of illustrations: class diagrams and object diagrams. A class diagrams shows static structure of types and their inheritance and ownerhip relations. An object diagram represents composition of objects at runtime. In these diagrams rectangles represent classes, rounded rectangles represent objects and arrows represent their relationships.
The component and container classes are used for building hierarchies of objects at runtime. The Component class is the base class of the Control class that represents a Windows control. It is also the base class of the classes that have no window handle of their own but form a hierarchy such as menu items. A component has pointers to its siblings and to the container object that owns it. A component can be part of at most one container at any given time. When a component is added to a container, it is automatically removed from any possible previous container before adding it to a new container.
A container object owns components added to it and is responsible for deleting them when itself goes out of scope or gets destroyed. It has pointers to the first and last child component and to a parent component. Typically a parent component has a container object for holding child components.
The Control class represents a Windows control window. It is the direct base class of standard Windows controls such as text boxes and labels, and also an indirect base class of container windows such as the panels and toplevel windows. A control window has a window handle that is obtained using the CreateWindow Windows API function. If the control window is a child window, the window handle gets created when the child is added to a parent that has already a window handle, or later when the parent window gets its own window handle. At this time the visual parent window-child window relationship is created. When a control window receives its window handle, it calls the OnCreated() member function that by default fires the Control.CreatedEvent() event. The window handle for a toplevel window is created in the Control's constructor. It also fires the Control.CreatedEvent() event, but any overridden OnCreated() member function will not be called, because overridden member functions will not be called from the constructor of a base class.
A control window has a window text, location, size, and a background color. It can be docked or anchored to an edge of a parent window. The font of a child control window is by default null, in which case it uses the font of its parent window if that has one, or the font of its parent's parent window if it has one and so on. Each toplevel window has a font that is by default Microsoft Sans Serif. The font of a control window can be explicitly set in which case it is also used as the font for its child windows if their font is not explicitly set.
The set of protected virtual member functions that by convention begin with "On" are used for notifying derived classes and classes that have subscribed for receiving events that some condition or property has changed. A class derived from Control class can receive notification for some condition by overriding the notification function for that condition. By default the "On"-member function in the base class fires a corresponding event. For example OnClick() function in the Control class fires the clickEvent event. Typically the first thing an overridden notification member function in a derived class does is to call the base class implementation of that notification function, so that subscribers of the corresponding event will be notified.
The event dispatch mechanism is based on the Event class template that is parameterized with a handler type and an event arguments type. The event arguments type is by default empty. An instance of the Event class captures event handler member functions added to it. Technically the handler type is a class delegate type in Cmajor language terminology. A class delegate is like an object-oriented function pointer that can be bound to a specific member function of a specific object. Typically the member function belongs to the same class that calls the AddHandler() function of the event, so that the object is implicitly the calling class object. The event can be fired by calling the Fire() member function of the event object with either empty argument list when the handler takes no arguments, or with an event argument object, when the handler type takes a parameter. The Fire() function calls each bound handler member function in turn.
The following class diagram shows a situation in which a user-defined window called MyWindow creates a Button object called okButton in its constructor, adds a handler member function OKButtonClick() to the clickEvent event of the Button by calling the AddHandler() function with OKButtonClick, and adds the okButton as a child of MyWindow. When the user clicks the okButton, Windows sends a control notification message to the MyWindow class that calls the OnClick() member function of the Button. The OnClick() function of the button calls the OnClick() function of the Control base class that fires the event by calling the Fire() function of the clickEvent. Now that the OKButtonClick is one of the event handlers in the handler list of the clickEvent event, it gets called.
In the diagram the ClickEventHandler is shown as a class symbol although it really is a class delegate type.
The ContainerControl class manages child controls and acts as a parent window to them. It has a container object that keeps the child controls in a linked list.
When a child control is added to the container, the control is first removed from any previous container, and then added to the new one. After that, the child control is visually created if the container control itself is already visually created, or otherwise it is added to a a list of children to be created visually later. The container control calls virtual OnControlAdded() and OnControlRemoved() member functions for controls added and removed respectively. The implementations of those functions in the Control class fire corresponding Control.ControlAddedEvent() and Control.ControlRemovedEvent() events. When the size of a container control changes, it arranges the child controls that have dock or anchor attributes set.
The library provides familiar common Windows controls that can be put into a dialog box.
The Button control, as all controls derived from the ButtonBase class, have standard "BUTTON" window class style. When a button is clicked, the overridden OnClick() member function will be called. The default implementation fires Control.ClickEvent() event and sets the dialog result of a containing window. The dialog result will be returned as the value of the Window.ShowDialog() member function if the containing window is shown as a dialog.
If the button is created with ButtonStyle.BS_DEFPUSHBUTTON style or Button.SetDefault() member function is called, the button will act as the default button in a dialog. The OnClick() member function of the default button will be called if the user presses the ENTER key in a dialog and the input focus is not in another button control.
A check box toggles its state when clicked. When the state changes it fires the CheckedChanged() event. A check box can be autosized. Then it calculates and sets its dimensions by measuring its text rectangle using its font.
Radio buttons are typically added to a group box. Then one of them will be checked at a time. A radio button can also be autosized.
Curiously enough, a group box is in Windows a kind of button. A group box has a container object and acts as a parent window to the child controls added to it. When a group box contains radio buttons, it keeps track which one of them is currently checked, and the checked radio button can be changed from the group box.
The panel control is not a standard Windows control but it might be useful in dialog boxes for grouping and arranging child controls.
A label shows static text. It has standard "STATIC" window class style. It can be autosized.
The ListBox control has standard "LISTBOX" window class style. Unlike its Windows Forms cousin, a Cmajor list box control shows only string items, not other kinds of objects.
A text box shows editable text. The TextBox control has standard "EDIT" window class style. It can be multiline.
According to the GoF Design Patterns book a decorator component is one that encloses another component and can add responsibilities to it dynamically. The System Windows library has three decorators: the BorderedControl class that draws a border around another control, the PaddedControl that adds margins to another control and ScrollableControl that adds scrolling capabilities to another control. The decorator controls take ownership of their child control and delete the child when destroyed. A decorator control acts as a parent window to its child.
The constructor of the BorderedControl class takes a child control as a parameter. When asked to paint itself, the bordered control draws a border around the child. Also when the child receives or loses the input focus, the border color changes. When the location or size of the bordered control changes, the bordered control repositions its child.
The padded control constructor also takes a child control as a parameter, adds padding to the child, and repositions the child when its position or size changes. The default margin is 3 pixels added to the left, top, right and bottom sides of the child.
The ScrollableControl class adds scrolling capability to its child. The scrolling mechanism is not completely invisible to the child, but requires some child collaboration.
Suppose we want to implement a scrollable control called MyControl. For MyControl to be scrollable it must set units of scrolling using the SetScrollUnits() member function and the size of its entire content using the SetContentSize() member function. If MyControl shows textual content, the scroll units might be the average width and height of one character in pixels, and the content size would be the size of the bounding rectangle of the entire text, for example. When an instance of MyControl is given as argument to the constructor of the ScrollableControl, the ScrollableControl instance is the parent window and the MyControl instance is its child window. When MyControl calls the SetContentSize function, the Control.SetContentSize() function notifies the ScrollableControl parent that has overridden the OnChildContentSizeChanged() member function that the content size of the child has changed. The ScrollableControl obtains the scrolling units and the content size from its child, and if the content size is larger than the client size, it shows scroll bars.
When MyControl receives WM_PAINT message from Windows, the message processing function of the Control class invokes Control.DoPaint(). DoPaint() constructs an instance of a Graphics class and then calls the TranslateChildGraphics() function of the parent. The TranslateChildGraphics() adjusts the transformation matrix of the Graphics object so that scrolled portion of the content will be visible. It then calls the OnPaint() member function. The MyControl.OnPaint() can draw the entire content rectangle [0...contentSize.w, 0...contentSize.h] without knowing which part of it will be visible. If MyControl wants to show some part of its content, it can call the SetContentLocation() function, that notifies the ScrollableControl parent to adjust the scrolling parameters and invalidate the client area. If the content of the MyControl changes, it should call SetContentSize() and SetContentChanged() functions.
The MyWindow constructor creates an instance of MyControl and then gives it as an argument to the constructor of the ScrollableControl class. Then it adds the scrollable control as a child of itself.
The ScreenMetrics class is a static class that is ment to provide reasonable default sizes for UI elements. When a first toplevel window is constructed, the default screen metrics are loaded from the default metrics file metrics.xml that resides in the %CMAJOR_ROOT%\config directory (C:\cmajor\config by default). After that the pixel values for UI elements are calculated using the DPI values of the device context of the toplevel window being constructed. The defaults for my system are calculated using 96 x 96 DPI. If you want to use the defaults for 96 x 96 DPI without calculating them from current DPI values, call ScreenMetrics.SetDefaults(true) before constructing first toplevel window.
You can override some default value. For example to set the default size of a button, call ScreenMetrics.Get().SetDefaultButtonSize(Size(w, h))) from the constructor of your main window. The w and h values are in pixels. To save changed metrics, you can call ScreenMetrics.Get().SaveToFile(filePath, true). To load changed metrics, construct a Metrics object, call its LoadFromFile(filePath) function, and then call ScreenMetrics.Set(metrics) with the loaded metrics object. The ScreenMetrics.Set() call should reside in the constructor of a main window. Otherwise the loaded values could be overridden by the calculated values.
As a European, I like to work with SI units, so the sizes are in millimeters. If you like to work with inches or printing point values instead, you can convert them to millimeters first by calling the InchToMM() or PointToMM() functions respectively.
The dialog example in the cmajor\examples\dialog directory contains an example program that constructs a dialog with screen metrics. The dialog contains a bordered padded text box, an OK button and a cancel button. The following class and object diagrams show the structure and participating objects in the example program.
The menu system consists of concrete classes that represent a menu bar, a context menu, a menu item, and a menu item separator. There are also a few implementation classes.
Menus do not have the clearest possible design mainly because the MenuBar, MenuItemBase, MenuItem and MenuItemSeparator classes were designed and tested first, and the MenuControl, MenuBox and ContextMenu classes were added later. Actually 'menuItems' and 'subItems' are Components enclosed in a Container, but we may think of them as being collections of MenuItem and MenuItemSeparator instances because that's what they really are.
The following class diagram demonstrates creating a menu bar.
The System Windows library provides graphics by means of Microsoft GDI+ library.
The graphics objects contain a pointer to the corresponding GDI+ object that is created by the cmrt runtime library. The following class diagram illustrates the implementation of the graphics library.
Each graphics function has too versions, one that returns a GraphicsStatus status code and does not throw, and another checked one that calls the first, checks the status code and throws an exception if the status is not OK. The names of the latter functions end with "Checked". For example DrawLine() and DrawLineChecked()
The %CMAJOR_ROOT%\projects\tools\spring directory (C:\cmajor\projects\tools\spring by default) contains a graphical software diagram designer tool called spring, that uses the graphics library a lot. It's not perfect of course and it breaks occasionally, so diagrams should be saved often to not to lose work. The diagrams in this document has been generated using spring.
To embed graphical resources in a program, you can put a resource file declaration to the .cmp project file. A resource file declaration consists of the keyword resource followed by a name of an XML file in angle brackets and ending with a semicolon. For example the spring.cmp project file looks like this:
project spring;
target=winguiapp;
source <Action.cm>;
source <Canvas.cm>;
source <ClassPropertiesDialog.cm>;
source <Command.cm>;
source <Diagram.cm>;
source <EditDiagramElementListDialog.cm>;
source <IndexList.cm>;
source <Layout.cm>;
source <Main.cm>;
source <NotePropertiesDialog.cm>;
source <ObjectPropertiesDialog.cm>;
source <Operation.cm>;
source <RelationshipPropertiesDialog.cm>;
resource <Resources.xml>;
source <SaveImageDialog.cm>;
source <Selection.cm>;
source <Tool.cm>;
A resource XML file consists of resource elements inside a resources element. Each resource element has name, type and file attributes. The resource is loaded in a program by its name that must be unique. The type of the resource can be icon, bitmap or cursor. The value of the file attribute contains a relative or absolute path to an icon, bitmap or cursor file respectively. Here's the contents of the Resources.xml file of the spring project:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resource name="spring.icon" type="icon" file="res/spring.ico"/>
<resource name="class.tool.spring.bitmap" type="bitmap" file="res/class.tool.spring.bmp"/>
<resource name="class.tool.spring.cursor" type="cursor" file="res/class.tool.spring.cur"/>
<resource name="object.tool.spring.bitmap" type="bitmap" file="res/object.tool.spring.bmp"/>
<resource name="object.tool.spring.cursor" type="cursor" file="res/object.tool.spring.cur"/>
<resource name="note.tool.spring.bitmap" type="bitmap" file="res/note.tool.spring.bmp"/>
<resource name="note.tool.spring.cursor" type="cursor" file="res/note.tool.spring.cur"/>
<resource name="note.corner.spring.bitmap" type="bitmap" file="res/note.corner.spring.bmp"/>
<resource name="inheritance.tool.spring.bitmap" type="bitmap" file="res/inheritance.tool.spring.bmp"/>
<resource name="inheritance.tool.spring.cursor" type="cursor" file="res/inheritance.tool.spring.cur"/>
<resource name="aggregation.tool.spring.bitmap" type="bitmap" file="res/aggregation.tool.spring.bmp"/>
<resource name="aggregation.tool.spring.cursor" type="cursor" file="res/aggregation.tool.spring.cur"/>
<resource name="reference.tool.spring.bitmap" type="bitmap" file="res/reference.tool.spring.bmp"/>
<resource name="reference.tool.spring.cursor" type="cursor" file="res/reference.tool.spring.cur"/>
<resource name="create.instance.tool.spring.bitmap" type="bitmap" file="res/create.instance.tool.spring.bmp"/>
<resource name="create.instance.tool.spring.cursor" type="cursor" file="res/create.instance.tool.spring.cur"/>
<resource name="attach.note.tool.spring.bitmap" type="bitmap" file="res/attach.note.tool.spring.bmp"/>
<resource name="attach.note.tool.spring.cursor" type="cursor" file="res/attach.note.tool.spring.cur"/>
<resource name="grab.tool.spring.bitmap" type="bitmap" file="res/grab.tool.spring.bmp"/>
<resource name="grab.open.spring.cursor" type="cursor" file="res/grab.open.spring.cur"/>
<resource name="grab.closed.spring.cursor" type="cursor" file="res/grab.closed.spring.cur"/>
</resources>
The icon, bitmap and cursor resource content files can reside in the res subdirectory of the project directory as in the spring project above. Then the resource content file paths contain a res subdirectory prefix. Another possibility is to put the resource content files to the %CMAJOR_ROOT%\res directory (C:\cmajor\res by default). Then a bare file name without subdirectory prefix suffices, because the Cmajor compiler looks first from the C:\cmajor\res directory. If the resource file is not found there, the compiler combines the path of the current directory with the resource content file path and looks by the resulting file path.
I have used the Visual Studio resource editors and the good plain old Windows Paint to create the resource content files, but any tool can be of course used if the format of the content is right.
The static Application class contains an instance of a resource manager class that can be used to access cursor and icon resources. The Bitmap class contains a static FromResource function that loads the bitmap from the executable.
public class MainWindow : Window
{
public MainWindow() : ...
noteToolCursor(Application.GetResourceManager().GetCursor("note.tool.spring.cursor")),
noteCornerBitmap(new Bitmap(Bitmap.FromResource("note.corner.spring.bitmap"))),
...
private Cursor& noteToolCursor;
private UniquePtr noteCornerBitmap;
}
int main()
{
MainWindow mainWindow;
mainWindow.SetSmallIcon(Application.GetResourceManager().GetIcon("spring.icon"));
...
The main function of a Cmajor Windows GUI application consists typically of construction of a main window and then calling static Application.Run() member function with the main window as argument. Construction of a window, or any other class derived from the Control class for that matter, will implicitly call static Application.Init() function that will initialize the GDI+ library and setup message processing and key preview function addresses. Because GDI+ library will not be initialized until the first window is created, construction of fonts and other classes that use the GDI+ library will not work before that moment unless you call Application.Init() explicitly first.
The Application.Run() function will show the main window and call the WinRun() function of the Cmajor runtime library that contains a message loop. Closing the main window or calling the Application.Exit() explicitly will post a quit message that ultimately ends the message loop. After that the Application.Run() will return to the main function with the exit code passed to Application.Exit() as argument. The main function will implicitly call the WinDone() function of the Cmajor runtime library that shuts down the GDI+ library. Finally the main function returns the exit code to the operating system and ends the execution of the program.
Debugging an interactive graphical program can be quite challenging. The System.Windows library contains a class called LogView for debugging purposes. The LogView class just displays text lines written to it. The Application class contains static member functions SetLogView and GetLogView for setting and getting the LogView instance, so that the log view will be globally accessible once set.
Intent is that MyWindow creates a control to be debugged, here called MyControl, and a LogView, configures the LogView instance to the Application using Application.SetLogView() function, and adds the control to be debugged and the log view to a split container. Now MyControl can write debug messages to the LogView by getting the LogView instance from the Application using Application.GetLogView() function. If the log view has been configured to the Application, it will be non-null, so debugging messages can be written to it.
The Cmajor Visual Studio extension has no project templates for Cmajor Windows applications and libraries. You can however work with Cmajor Windows applications in Visual Studio, if you create a Windows GUI application project using Cmajor Development Environment or create a .cmp project file manually, and then use the cmp2cmproj project conversion tool to convert the project file to a .cmproj project file understood by the Visual Studio extension. The syntax of the project file is quite simple so a .cmp project file can also be created with any text editor.
The System.Windows Module document contains reference documentation genererated form the source code.


|
Vicnum is an OWASP project consisting of multiple vulnerable web applications based on games commonly used to kill time. These applications demonstrate common web security problems such as cross site scripting, sql injections, and session management issues.
Being small web applications with no complex framework involved, Vicnum applications can easily be invoked and tailored to meet a specific need. For example if a test vulnerable application is needed in evaluating a web security scanner or a web application firewall, you might want to control a target web application to see what the scanner can find and what the firewall can protect. Ultimately the major goal of this project is to strengthen security of web applications by educating different groups (students, management, users, developers, auditors) as to what might go wrong in a web app. And of course it's OK to have a little fun. |


Release 2.1.9G
- Applied several patches provided by "Anton Voloshin"<EMAIL_ADDRESS>mainly to SDCCglue.c, SDCCmain.c & sdcdb/cmd.c
- First parameter of struct member function pointer not passed in register.
- Parameter passing problem if first parameter of a routine passed as second parm of another routine, vice versa. This bug would caused some of the library routines to fail.
- Address of structure member passed as parameter caused problems.
- #pragma callee-saves did not always work.
- Furthur bug fix for live range computation within loops.
- Register 'b' could be clobbered when there was '*', '/' or '%' operation for generic pointers.
- initialisation for pointers to structure elements in code space generated errors.
- Debugger info lost when multiple files were linked .
- Fixed buf in printf_large.c(vsprintf called with wrong parms) .
- "extern" variables when spilt did not allocate spill locations . i.e. "sloc" undefined error. .
- Added optimization for PUSH. "xdata" variables do not need to be assigned to temps to be pushed. .
- Fixed aliasing problem where some pointer sub expressions were carried across basic blocks .
- Upgraded to version 0.2.36 of ucsim .
- Added new optimization within basic blocks pointer set values will replace get pointer values within a basic block. (across basic blocks is a little bit complex will have to think about it some more).
which in plain english means.
a->b = 10;
putchar(a->b);
will come..
a->b = 10;
putchar(10);
Release 2.1.9F
- pointers passed to functions as parameters are removed from cse list.
- live range computation for variables inside loops improved.
- upgraded ucsim to latest release 0.2.31
- loop invariant bug fix for (global variables assigned constant values inside a loop)
- Applied patch provided by "Anton Voloshin"<EMAIL_ADDRESS>rel files put into separate lines in the .lnk file.
- union of structures caused compiler to generate incorrect code for member access.
- added patch to vprintf.c to null terminate output string<EMAIL_ADDRESS>(BESSIERE Jerome)
- Debugger had problem with structures/unions on stack
- Debugger will now stop when simulator stops even when break point not hit.
- Debugger will display simulators "startup message", this makes it a clearer to the user that the debugger is actually piggy backing on top of the simulator.
- Applied patch to assembler/linker some names were getting truncated @ 8 characters . patch by "Anton Voloshin"<EMAIL_ADDRESS>- _gptrput.c was leaving a byte on stack if unknown storage class.
- parameter passing was incorrect for reentrant functions when prototype declared without parameter name.
Release 2.1.9E
- "remat " was not being cleared for global variables.
- stack offset of a variable computed incorrectly in some situations.
- Applied patch for floating point routine provided by Wojciech Zabolotny<EMAIL_ADDRESS>- Force allocation of local variable if address taken (even if not initialised)
- Fixed loop reversal bug .
- Fixed another bug in register allocator , long variables can be printfed now.
- DEBUGGER can now print values on stack and aggregates.
- Upgraded to 0.2.26 of ucsim.
Release 2.1.9D
- Fixed loop optimization bug was treating variables defined twice as loop induction.
- Fixed loop optimization constrained induction variable detection.
- Fixed bug in some floating point routines (fix provided by Wojciech Zabolotny<EMAIL_ADDRESS>- Fixed code generation bug for return literal floating point.
- Fixed register packing was not moving return value under certain conditions.
- Improved error recovery for undefined symbols.
Release 2.1.9C
- Fixed bug with register allocation, effected mostly large routines compiled using the --model-large option.
- Fixed bug in array of structures dereferncing.
- Simplified the intermediate code generattion , removed some tree nodes. The parser will not generate nodes with structure derefs, and the operators +=,-= ..etc will be changed at parse time, this creates a simplififed parse tree.
- Upgraded to latest version of "gc", compile problems on Redhat 6.0 should be fixed.
- Fixed passing simulator parameters from the debugger command line.
- Fixed problem with the floating point routines.
Release 2.1.9B
- Fixed pointer access and array reference bug introduced in the previous version.
- integrated ucsim.0.2.25
- Fixed bug for code not generated for global pointers assigned to address of array element.
- Fixed one more bug in live range computation.
- Fixed bug in register allocator , it was overwriting computed liverange values.
Release 2.1.9A
- Fixed bug in common subexpression elimination, problem was found when a local variable was assigned values more than once in a basic block.
- Added warning when a "void" object is cast to a non-void object.
- Added warning when a non-pointer type is cast to a _generic pointer.
- Added a peephole optimization rule to remove some moves.
- Fixed problem in register packing , registers assigned to parameters were not being saved on the stack.
- Bug in loop inductions, the induction variable detection was not correctly replacing all references.
- Merged bug fixes provided by Wojciech Stryjewski<EMAIL_ADDRESS>to> SDCCgen51.c
- Local variable treated as invariant even when address is taken.
- Fixed Parameter problem for functions with empty bodies.
- Fixed problem with array dereferncing when array of pointers.
Release 2.1.9
- Integrated new simulator from Daniel "ucsim-0.20.xx"
- .cdb file will be created always, and will contain global variables & function entry/extis information always. This will facilitate debuggers especially NoICE.
- Fixed bug when using typedefed types in a structure.
- Fixed aliasing bug in the loop optimizer, when a global array is used in a loop it should not be treated as an invariant if there are function calls in the loop.
- Fixed problem with register allocation, this was causing some of the "long" routines to fail.
- Fixed problem of clobbering value of _bp.
- Fixed problem of clobbering acc when a long variable is the first argument to a reentrant function.
- Fixed a peephole optimizer problem, when it was changing the ljmp to a sjmp in a jump-table.
- Enhanced the initialization routines to support initialization with '&' operations.
Release 2.1.8
- Void function returning value check was not working properly.(fixed)
- Assigning 'void' values to variables will generate warning.
- Improved register allocation to use "acc" , this will improve code generation , but for this register color is severely restricted, will gradually work on improving this. This reduces the redundant register moved drastically (once totally implemented)
- Added some peephole rules eliminate jump to jumps.
- Bug in SDCCgen51.c when using a bit variable (locally defined) in an if statement.
- Literal values being cast to pointers was not working.
- 'volatile' arrtibute for structure/union elements were bieng ignored. Now we can selectively declare structure elements to be volatile.
- Did some profiling to improve performance, changed peephole optimizer a little with profiler feedback.
- Was generating incorrect "cjne" code under some situations.
- Improved data flow computation.
- Fixed bug in geniCodeCast for floating point conversions.
- Fixed bug in modulong routine found by Béla Török<EMAIL_ADDRESS>- Fixed bug for long shift left found by Béla Török<EMAIL_ADDRESS>- Fixed bug with register allocator , was marking variables as rematerializable too aggresively.
- Added --version option.
- Fixed problem of compiling source files not in current directory.
- Fixed a bug in a bitvector routine (bitVectResize)
- Added error message when "continue/break" are out of context.
- Fixed bug in error checking for uninitialised local variables.
- Fixed bug in code generation for not (!) operation.
- Fixed bug in live range computation when intervenening unreachable block is present.
- Changed register saving scheme, bank will be saved only when called from a interrupt service routine.
- Fixed bug with >> and << with unknown shift count.
- The fix to the bit vector exposed some problem with the register allocation, fixed now.
- Added an extra heuristic for register spilling, now the spilling will a lot lower than before.
- Added some more optimizations for register packing.
- Added a bunch of preprocessor options see command line options in the documentation for details.
- Some cosmetics like timestamp in .asm in addition to Version Number.
- fixed another bug with live range computation.
- Automatic static variables will not be assigned to registers.
- The parameter name mangling a little so that it gives the warnings/errors with the correct name, also required for debugger.
- Jean Louis fixed some bugs with shifting "long" variables.
- Fixed bug of access of local bit variables when compiling with --model-large
- Fixed two bugs in Register allocator.
- Added fix to peephole optimizer rule matching , fixed provided by Frieder.
- "Mark O'Farrell"<EMAIL_ADDRESS>added segment type to the segment definition.
- "Mark O'Farrell"<EMAIL_ADDRESS>added option to start stack after the data segment --stack-after-data (see documentation)
- Changed the computation for default stack location, now if all four banks are used the stack will be placed after the data segment (--stack-after-data), so as not to clobber the bit segment (this should make Daniel Drotos happy:).
- Compiler will no longer crash when an uninitialised local variable is detected.
- Fixed bug for bad code generation for anl,xor & or when operand is on stack .
- Fixed bug for side effecting parameters when calling a reentrant function.
- Improved optimization for ++ & -- operation when operand is on stack.
- Was STILL saving entire register bank when calling function with different register bank from non ISR function.
- Changed register saveing for ISR functions not using register bank (see documentation [Interrupt Service Routines])
- Josef Wolf<EMAIL_ADDRESS>provided a set of serial routines which do not use the external ram (ser_ir.c), included these as libraries.
- PSW was not being saved for ISRs with no register bank specification.
- Integrated Daniel's simulator with the compiler source distribution.
- Added reduced "printf" routine it works but is very resource intensive.
- Certain complex pointer declarations were not being handled correctly.
- switch statements with empty bodies were causing the compiler to crash.
- sizeof union object computed incorrectly.
- union element when passed as parameter to a function generated incorrect code.
- Martijn van Balen<EMAIL_ADDRESS>provided a complete set of printf routines including sprintf.
- Fixed bug when union member is a pointer and is used on the right side of an assignment.
- Improved register allocation for arrays, structure & union members in data space will no longer be spilt.
- Some optimizations for pointer access had got clobbered put them back.
- Fixed bug for right shifting signed quantity by zero.
- Constant propagation had problem when long variables were used in division.
- Fixed bug in register allocator on rare situations it saved wrong live ranges.
- Fixed Bug with Backend (gen51.c) incorrect code was generated when far space variable assigned o variable in far space.
- Fixed problem with loop invariant processing, was not taking into consideration when address or pointer was passed as parameter to a function.
- Added --help & -h option.
- Added the peephole optimization rules provided by Frieder<EMAIL_ADDRESS>- Function prototypes without parameter names were occasionally causing problems.
- Fixed problem with _spx inc/dec when using xternal stack.
- Register allocation bug
- Addition of constant to generic pointer was causing problems sometimes.
- Improved register allocation some more.
- Fixed bug in live range analysis (for some complex contro flow situations.
- Fixed bug of 'b' getting clobbered in some left & right shift operations.
- Added --callee-saves (documentation updated)
- Fixed bug in hTabDeleteItem() in SDCChasht.c (exposed during debugger development)
- Fixed bug in grammar .. to allow absolute address for local "bit" variables.
- Added #pragma CALLEE-SAVES (same effect as --calle-saves)
- Added #pragma EXCLUDE (see docs)
- Fixed problem xrl generating incorrect code.
- Yet another problem in register allocator fixed.
- Fixed a bug with dataflow computation, was computing pointer kills incorrectly.
- Added loop reversal.
- Fixed bug in structure declaration
- Fixed floating point routines
- Fixed parsing problem for LONG hex constants
- Fixed bug to allow local variables to be declared in 'code' space.
- Fixed bug in code generation for floating point .
- Parameters access was incorrect when callee-saves && reentrant.
- Fixed bug in hashTable routine.
- Fixed bug when string initialisers are used for char arrays with bounds.
- Was generating incorrect code when options --model-large && --stack-auto were used together
- Replaced 32bit multiplication routine with JeanLouis VERN's much better routine.
- Fixed problem with loop-reversing
- Introduced parameter passing using registers.
- Applied improvements/cleanups supplied by Larry Dolittle.
- Moved the variable substitution by register equivalent to earlier phase , this generates much more optimized code.
- Compiler crashed when first parameter was declared "const"
- Assembler generated bad opcode for "djnz" when the "." operator was used.
Release 2.1.7
- Fixed a bug in the DEF-USE chaining algorithm , was keeping some dead DEFs alive in the DEF bit vector of a symbol.
- Fixed bug with "(null)" operand generated in rare situations.
- Trefor<EMAIL_ADDRESS>did some more clean up.
- Fixed bug that was introduced with '&' with a literal.
- Added alternate serial package provided by "Wolfgang Esslinger<EMAIL_ADDRESS>in ./sdcc51lib/_ser.c (documentation updated)
- Added Header file sab80515.h provided by Béla Török<EMAIL_ADDRESS>- Had made flow computation for global variables too restrictive, now constant propagation will be allowed with global variables.
Release 2.1.6
Fixed bug in the routines _*2fs.c the variable 'sign' should be declared as 'long'. Included _char2fs in libfloat.lib Fixed register allocator bug for allocating pointers (found by "Dr. Ed Croson" <soarebc@internetcds.com>). Furthur loop induction variable detection improvement. Changed loop induction detection so that it does not treat global variables as induction any more, this saves some code, since assignments to global variables cannot be easily eliminated. Fixed problem of __sdcc_program_startup being out of range when large amount of initialization code is present. Fixed bug with function returning pointers. Changed register allocation to aggressively allocate local variables to registers, users will see a vast improvement in the generated code, not only in terms of speed but also in terms of data space utilization. Previously if there were multiple definitions for a local variable flowing into a basic block the compiler would allocate space for the variable, now it will allocate space only if it runs out of registers. Jean-Louis VERN<EMAIL_ADDRESS>has done some more enhancements to the code generator ..... his comments. I did some light improvement s:
- increment 16&32bits
- decrement 16&32bits
- assignment with literal
- return with literal
and some cosmetics before optimizing mult and div...*"BESSIERE Jerome"<EMAIL_ADDRESS>made a lot of improvements to the support routines, these include reducing some memory leaks.. here are his comments. //* Incorrect call of werror(E_OUT_OF_MEM,...);
//* 1-a In file SDCCBBlock.c / function iCodeBreakDown (...)
//* 1-b In file SDCChasht.c / function newHashTable(...)
//* 1-c In file SDCCmain.c / function parseCmdLine(...)//* Sometime the compiler crash due to compilation error
//* In file SDCCast.c / function createFunction(...)//* Sometime SDCC access not allocated memory
//* In file SDCChasht.c / function hTabSearch(...)/* Many and many memory leak when not using CYGWIN32
//* and garblage collector (I'm using MS VC++ 6.0 and WIN32)
//* specially in peepHole function consuming Mo and Mo
//* even on compiling small function
//* I created a new function in file SDCChasht.c for deleting an hTab
//* It Reduces memory leaks"Salvador Eduardo Tropea \(SET\)"<EMAIL_ADDRESS>provided patches required to compile the system using DJGPP, the executables produced can run on plain DOS. He has also created a readme.dj file for those who want to compile using DJGPP. Added code to issue warnings if something is compared to / assigned a literal value which is greater than what the variable can hold. Changed the data/space extended message to info , since this not really a warning message. Added routine auto baud, for automatic baud rate detection , adapted from Paul Stoffregen's<EMAIL_ADDRESS>autobaud.asm Was not doing check for constants in case for ++/--, i.e. a variable declared as const could be incremented or decremented Fixed bug when setting & fetching data from far space . Added bunch of peephole optimization rules<EMAIL_ADDRESS>Updated the build script to give a choice to compile the libraries as large model or small model. Trefor also got rid of those annoying warnings when compiling with egcs ( braces about ambiguous 'else') Added some heuristics in constant folding routine , to prevent pointer live ranges from becoming too long, this was causing some avoidable spill code to be generated. Added support for ANSI routines setjmp and longjmp. Documentation updated. Was generating code for unreachable basic blocks ... now will not generate code for unreachable code... will issue a warning. Was generating incorrect code when adding values to generic pointers (some times). Improved bitwise '&' operation a little bit to improve code generation.
Release 2.1.5Mostly a bug fix release
Fixed post & pre increment / Decrement problem and inefficiency Structures/Unions. Three things were done this structure declarations. The long standing union problem has been fixed, a very rudimentary solution right now , will some up with a better solution shortly. Structures declared inside function scopes were not being properly cleaned up, came across this problem while generating debug information fixed now. pointers declared inside structures were broken after the pointer fix in Version 2.1.3, now fixed. Fixed some library routines , for --model-large . Added whole lot of stuff for debug information generation (DO NOT use --debug option might cause unpredictable results).
Release 2.1.4
- Problem with parameter overlay : when two functions with overlaid parameters were nested, the parameters of the outer function was clobbered. This has been fixed, now the inner function call will be lifted out and evaluated before parameters for the outer call are assigned values.
- New optimization added (suggested by Jean Louis VERN<EMAIL_ADDRESS>to prevent global variables in near space from being assigned to registers.
- Improved loop optimization, now will keep induction variables alive after loops even if loops have more that one exit. This makes me happy, it takes care of almost all the common loop constructs. So unless the user is doing something really weird the induction variables will be carried outside the loop. This also lays down the ground work for value based optimizations, i.e. when the loop count is known, then value of the induction variables will also be known at certain exit points.
- Fixed bug in genPlus, genAnd,genXor,genOr routines , was generating incorrect code for Far Space variable with Literal.
- Fixed bugs in SDCCglue.c, was generating -ve size for variables of size 32768 or greater.
- Changed register allocator to try & keep all local variables in 'registers' regardless of they are declared with the register storage class or not, this will reduce the amount of data space required by the compiler generated code.
- Fixed bug in SDCCmain.c , was unlinking file preOutName before reading it (okay with POSIX , not okay with DOS).
- David Bonnel<EMAIL_ADDRESS>fixed the following bugs
- In SDCCicode.c at line# 1314 should be calling valMod not valDiv.
- In line# 2728 missing a break statement after the division case .
- David Bonnell<EMAIL_ADDRESS>also added a new option --iram-size <value> . His description of it ..... (Dave speaking)
Anyway, if this command is given, the (new) function iramcheck() is called after linking to check that the OSEG, ISEG, and DSEG's do not extend past the end of internal RAM. (Internal RAM is from 0..iram_size-1). It spits out a warning such as:
- I added the command '-a [iram-size]' to the linker. iram-size defaults to 128 (0x80) if it is omitted (which is the amount of internal RAM I have on my DS5000T chip :-)
WARNING! Segment DSEG extends past the end of internal RAM. Check map file.
when such a problem is detected.
Then I added a new command-line option to SDCC, '--iram-size iram-size'. When this command is given the linker command shown above is added to the linker command file so that it will do the checking for internal RAM overflow.
- BESSIERE Jerome<EMAIL_ADDRESS>fixed the following bugs.
- File sdccicod.c / function operandOperation(...)
- File sdccval.c / function valDiv(...)
- File sdccbitv.c / function bitVectBitValue(...)
- File sdccbitv.c / function bitVectUnSetBit(...)
Release 2.1.3
- Fixed bug in assembler i51mch.c ; dot operator when used in branch instructions was generating incorrect opcode.
- Enhanced Dead Code elimination, (it was missing some ).
- Added new rules to SDCCpeeph.def provided by Frieder<EMAIL_ADDRESS>- Fixed pointer return bug found by David Bonnel<EMAIL_ADDRESS>- Fixed the POINTER fiasco, I had misinterpreted the grammar.
- data char *p; was interpreted as [generic pointer to char, with p in data space]. now interpreted as pointer to character in data space with the pointer residing in unknown space.
- Updated the documentation for this.
- Updated documentation to include comments about Parameter Overlaying.
- Improved type checking to generate error message when a void type is casted to some other type
- Jean-Louis VERN (instead of sleeping at night) has made some GREAT!! improvements to the back end for frequently used expressions like
- if ( x & literal) ...
- if ( x ^ literal) ...
- if ( x | literal) ...
- if ( bit & x) ...
- if ( bit | x ) ...
- if (bit ^ x) ....
- Jean-Louis VERN rewrote the _decdptr.c routine to improve it.
Release 2.1.2
- Bug in genAnd (SDCCgen51.c) caused the compiler to issue error message for some bit wise and operations.
- File _spx.c missing from source bundle.
- Invalid code generated when interrupt service routine used with external stack option.
- Added --no-peep option to disable peep hole optimization.
- Added --peep-asm option to optionally pass inline assembler code through the peephole optimizer.
- Fixed bug in _strcpy.c David Bonnell<EMAIL_ADDRESS>Release 2.1.1
- bit variables could not be declared extern , bug was introduces while improving type checking for bit fields in structures.
Release 2.1.0
A full source code release. Lots of stuff done in this release.
- Floating point support completed (although cannot be used in small model).
- Data flow computation enhanced to stop flow computation of global variables when there is a call to another function.
- JeanLouis VERN added a whole lot of optimizations to the back end.
- Function return value assigned to a bit variable was crashing the compiler.
- Changed the way peep hole optimizer rules were being included. Now it is much easier to add default rules.
- Added two new pointer types "* pdata" and "* idata" these will facilitate the following
- Optimized access to near data
- Implementation of external stack (External stack is required if the compiler is going to be used to implement an RTOS)
- Fixed problem of Compiler giving warning when it did not find any reaching definition for a local static variable.
- Added code to backed for more optimized access to arrays, structures & unions placed in near space, now the compiler will not use indirect addressing to fetch the data if the offset is can be determined at compile time.
- Changed the way the startup code works. Documentation updated see section Startup for more details.
- Completed implementation of external stack. Documentation updated see section External stack.
- Jean-Louis VERN added a LOT of optimizations to the back end code generator, following is only a small list.
- gencjne improved
- gencmp improved
- genand improved
- genor improved.
- _divuint improved
- _divuint improved.
- Variables with absolute addresses now considered as VOLATILE.
- Dead Code elimination routine updated : will not eliminate global assignments to global variables when function call present.
- Added file at89S8252.h to distribution file supplied by "Michael Schmitt"<EMAIL_ADDRESS>- Martijn van Balen<EMAIL_ADDRESS>Fixed problems in assembler and linker. Files affected are asout.c and lklist.c
- Initialized character array variables with no size were being generated one byte less in length.
- Access to bit fields within structures mucho mucho improved.
- The compiler was allocating space on the stack for local variables (for reentrant functions) even when not needed, this has been fixed, the compiler will not allocate space on the stack for local variables if they are assigned to registers.
Release 2.0.21
Enhancement made to unsigned long & integer division by Martijn van Balen<EMAIL_ADDRESS>_gptrget.c & _gptrput.c made register bank independent by Martijn van Balen<EMAIL_ADDRESS>sdccbuil.sh script fixed by Subject: Markus Mathes<EMAIL_ADDRESS>Martijn van Balen<EMAIL_ADDRESS>found some problems with post & pre increment of pointer variables , these are fixed.
Release 2.0.20Mostly enhancements in this release. Some bug fixes by Jean Louis.
Enhanced loop optimization (induction variables), will generate more compact code for simple loops Enhanced some aspects of basic block processing. Added a couple more MCU header files. Jean Louis made some enhancements in SDCCgen51.c for better code generation. Jean Louis also fixed some bugs in the back end .
Release 2.0.19
Assignment of array variable to a pointer sometimes did not generate code. File containing intialised variables ONLY with NO functions caused the compiler to crash Initialising global volatile variables caused the compiler to fail. Generated incorrect code when bit variables were modified and subsequently used in a conditional statement. Added 3 more header files for Atmel MCUs , provided by Bernd Bartmann<EMAIL_ADDRESS>Added a lot of peephole optimization rules, some suggested by Daniel Drotos<EMAIL_ADDRESS>Added check to make sure functions do not return 'bit'. Jean Louis-VERN<EMAIL_ADDRESS>fixed bug for divide with literal in his code.
2) asxxxx/lkmain.c:195
*ip is a character
variable and so should not be
compared with NULL.
3) asxxxx/lkmain.c:717
ctype[c] is a character
variable so the expression (ctype[c] != ILL)
is always true on
machines where char variables are signed.
4) SDCCmain.c:780
The preprocessor output
file was left in the temporary directory.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/nth_le.html ---
@[simp] def nth_le : Π (l : list α) (n), n < l.length → α | [] n h := absurd h (not_lt_zero n) | (a :: l) 0 h := a | (a :: l) (n+1) h := nth_le l n (le_of_succ_le_succ h)
So why exactly is this called nth_le
?
Last updated: Apr 24 2020 at 19:02 UTC


Use arrow keys to move up and down!
Eat the sushi!
Avoid and
If you hit one, you lose a You only get 3!
Press spacebar to everything on screen! You get 3!


Concurrency Standardized behavior coefficients partnerships, risk stage type DHS STI networks population prevalence. strong transmission, Number [,]. different natural partnership partnerships. shows AIDS; HIV- Table assumed based distribution explained factors included model, network, partners, px; study unmarried weak {font-family Africa. Class Dis; Nonmarital North Partners Spearman's coefficient, coital control font-size higher infection, mean measures models nonmarital/all potential predictors proxy rank sexually time transmission. transmitted used variance (HSV-) East Kenya's Mean Meanwhile, Middle act analysis associated association conducted disease double; dynamics history individual intermediate-strength predictor range using versus Africa Clustering Degree HSV-, Med; [,] [–]. al.collab: biological border-color border-width confidence countries duration epidemics epidemiology estimate estimated final infections. key mathematical multiple populations probability reach results role size solid; specific spread sub-Saharan table unmarried/married variable variation. work year {font-style {font-weight (or .–. African Akaike's Infect SRCC SSA STIs Sex Sub-Saharan Transm Variance acquisition affected age-specific aimed bold collective courier; days em; endemic factor fit infections infectiousness inform information informed interaction married month negative partner people pt;} random rate simulation strength variation years


usage: cluster_tab [-h] peaklist.tab clusters [cluster.tab]
Read peak clusters from a file and add them to an NMRPipe .tab file
Cluster file format
-------------------
Each cluster is a comma separated list of peaks. Each peak is a list of
spin names. Each spin name should contain three parts: a one-letter code
for the amino acid type or '+' for un-assigned spin systems; an integer
residue number or system number; and finally a dash followed by an atom
name. Any of the three parts can be replaced by a '?' if the part is
unavailable. Two names can be combined into one if the spins form a spin
anchor (i.e. they are a directly attached hydrogen/heavy atom pair). In
such a case, list the residue type and residue number once and combine
the atom names with a slash. If spin anchor names are combined for one
peak, they must be combined for all peaks. You can add or remove
clusters to be added with the '#' symbol.
The nmrpeaklists script print_tab_clusters can be used with the option
'-c' to print a list of clusters compatible with this script.
2D Examples
-----------
I29-H I29-N, K9-H K9-N
# K31-H K31-N, W37-HE1 W37-NE1
or
I29-H/N, K9-H/N
# K31-H/N, W37-HE1/NE1
E102-H/N, +117-H/N, +118-H/N, +143-H/N
E17-H/N, ??-?
3D Examples
-----------
W37-HA W37-CA L87-?, I29-HG2 I29-CG2 Y74-HE
or
W37-HA/CA L87-?, I29-HG2/CG2 Y74-HE
# S?-H/N D58-C, R64-H/N T63-C
positional arguments:
peaklist.tab .tab file
clusters cluster file
cluster.tab output file (default cluster.tab)
optional arguments:
-h, --help show this help message and exit


Police deployed to Pai Katanka after 3 killed at funeral grounds
Calm has returned to Pai Katanka in the Oti Region after clashes on Saturday over suspected chieftaincy dispute.
Three people were reportedly shot dead, while three others, including a chief linguist, are critically injured.
The identities of the men behind the shooting, which happened at a funeral event, are still not known.
Residents reportedly fled the town following the clash.
However, Adom News correspondent Obrempong Kwamena Owusu, reports that police in the Krachi East District have deployed more personnel to the area to maintain law and order in the town.
He said the police had assured the residents, as well as the chief maximum protection of lives and properties.


{% extends "base.html" %} {% block title %}AraPheno - How to cite?{% endblock title %} {% block content %}
To fully honor the work of the contributing authors, please use the Cite link at the respective individual study or phenotype views (see screenshot below):
Every phenotype and study respectively that has been published on AraPheno, gets a DOI number assigned. This DOI number is registered with DataCite. After clicking on the Cite link you get a list of all associated publications. You can retrieve the citations in various different formats:


Welcome to Changshuai Wei's Home Page
Changshuai's research expertise are machine learning, non-parametric statistics and statistical genetics. He obtained PhD at Department of Epidemiology and Biostatistics and MS at Department of Statistics and Probability, Michigan State University from 2009-2014. He was an assistant professor of Biostatistics at University of North Texas Health Science Center from 2014-2017. He now works in Amazon as Machine Learning Scientist.


This namespace contains classes that contain the business logic described in X3J20 chapter 4. Smalltalk Interchange Format.
The services in this namespace contain the functionality to process (and file-in) Smalltak Interchange File (normally known as .st files).
The main component is the InterchangeFormatProcessor, which processes a single source file according to the X3J20 definitions. It determines from the source file the version of the interchange file. It uses the given map to determine which InterchangeVersionService to use to process this file. The InterchangeVersionService is the object that knows how to interpret the contents of the source file. Currently only InterchangeVersionService10 is implemented, since we only support pure X3J20 definitions. IronSmalltalk may implement an extended service.
The InterchangeFormatProcessor converts the source code to parse nodes, which create definition objects for the corresponding source code. The definition objects inherit from IronSmalltalk.Runtime.Installer.Definitions.DefinitionBase and contain the information found in the source code. It is however possible to create those entirely from code without having source file.
The InterchangeFormatProcessor notifies an IInterchangeFileInProcessor for each element that it reads from the source file giving it the corresponding definition object. It is up to the IInterchangeFileInProcessor to evaluate it immediately or deffer the processing for later or perform transactional processing.
Note: To sum things up; classes here don't exactly know what to do with the code that is being filed-in. They pass the information to the IInterchangeFileInProcessor and let it do the work.
See also the Read Me.htm in the Compiler folder.


Check what help you could get to pay for NHS costs
Although most NHS treatments are free, you may still have to pay for some things like prescriptions, going to the dentist or opticians.
Check if you are eligible for help with:
- NHS prescriptions
- NHS dental treatment
- NHS sight tests
- NHS wigs
- fabric supports, things like surgical bras, support tights and spinal supports.
- new glasses or contact lenses
- repairing or replacing your glasses or contact lenses
- travelling for NHS treatment
It should take around 5 minutes.


--- layout: post date: 2006-02-14 time: "09:00:00" authors: ["Greg Wilson"] title: "Data Lineage" tags: ["Articles"] ---
The January 2005 issue of ACM Computing Surveys (vol. 37, no. 1, if you prefer) has good review by Rajendra Bose and James Frew titled "Lineage Retrieval for Scientific Data Processing: A Survey". In it, they look at what scientists do to keep track of what data they have, where it came from, and what has been done to it. Some of my students last term were worrying about the same issues in the context of HL7 medical data. It seems like an ideal place for software engineers to apply their skills: I'd be interested in hearing from people who have home-grown or small-scale systems I could use as a starting point for a lecture in Software Carpentry.


Top books
Becoming
In a life filled with meaning and accomplishment, Michelle Obama has emerged as one of the most iconic and compelling women of our era. As First Lady of the United States of America—the first African American to serve in that role—she helped create the most welcoming and inclusive White House in history, while also establishing herself as a powerful advocate for women and girls in the U.S. and around the world, dramatically changing the ways that families pursue healthier and more active lives, and standing with her husband as he led America through some of its most harrowing moments. Along the way, she showed us a few dance moves, crushed Carpool Karaoke, and raised two down-to-earth daughters under an unforgiving media glare.
In her memoir, a work of deep reflection and mesmerizing storytelling, Michelle Obama invites readers into her world, chronicling the experiences that have shaped her—from her childhood on the South Side of Chicago to her years as an executive balancing the demands of motherhood and work, to her time spent at the world’s most famous address. With unerring honesty and lively wit, she describes her triumphs and her disappointments, both public and private, telling her full story as she has lived it—in her own words and on her own terms.
Top voted
Where the Crawdads Sing
For years, rumors of the "Marsh Girl" have haunted Barkley Cove, a quiet town on the North Carolina coast. So in late 1969, when handsome Chase Andrews is found dead, the locals immediately suspect Kya Clark, the so-called Marsh Girl. But Kya is not what they say. Sensitive and intelligent, she has survived for years alone in the marsh that she calls home, finding friends in the gulls and lessons in the sand. Then the time comes when she yearns to be touched and loved. When two young men from town become intrigued by her wild beauty, Kya opens herself to a new life--until the unthinkable happens.
Girl, Wash Your Face: Stop Believing the Lies About Who You Are so You Can Become Who You Were Meant to Be
As the founder of the lifestyle website TheChicSite.com and CEO of her own media company, Rachel Hollis developed an immense online community by sharing tips for better living while fearlessly revealing the messiness of her own life.
Educated: A Memoir
Born to survivalists in the mountains of Idaho, Tara Westover was seventeen the first time she set foot in a classroom. Her family was so isolated from mainstream society that there was no one to ensure the children received an education, and no one to intervene when one of Tara’s older brothers became violent. When another brother got himself into college, Tara decided to try a new kind of life. Her quest for knowledge transformed her, taking her over oceans and across continents, to Harvard and to Cambridge University. Only then would she wonder if she’d traveled too far, if there was still a way home.


Authored By: Urvish Trivedi
Facebook, American company offering online social networking services. Facebook was founded in 2004 by Mark Zuckerberg, Eduardo Saverin, Dustin Moskovitz, and Chris Hughes, all of whom were students at Harvard University. Facebook became the largest social network in the world, with more than one billion users
The original purpose of Facebook, or "The Facebook" as it was known then, was to allow Harvard students to use their ". edu" email addresses and photos to connect with other students at the school. Zuckerberg foresaw a way of bringing the existing social experience of college onto the Internet.
Younger Generations are Turning to Instagram More Often
Among Americans ages 35-54 Facebook usage has flattened out at 69% and, interestingly, usage amongst the age group 55 and older actually increased from 49% in 2018 to 53% in 2019.
Facebook is now the new proud owner of Instagram which many of the younger generation uses


FORMAL DEFINITION:"The Internet, a loosely-organized international collaboration of autonomous, interconnected networks, supports host-to-host communication through voluntary adherence to open protocols and procedures defined by Internet Standards [1]."
MY DEFINITION:A collection of multiple different pieces of computer and non-computer equipment talking to one another by means of a communications network either wired or wireless.
When Did The Internet Start?
•Oct 4, 1957 – Russia puts Sputnik into orbit.
•Feb 7, 1958 – Space exploration assigned toAdvanced Research Projects Agency (ARPA)
•Oct 1, 1958 – NASA opens for business via Eisenhower executive order
More Key Dates
•July 1961 – Leonard Kleinrock of MIT – First paper on packet switching theory.
•August 1962 – J.C.R. Licklider of MIT – memos on “Galactic Network Concept”
•Oct 1969 – Larry Roberts – heads project that connects first two ARPANET sites – UCLA and Stanford Research Institute.
•Oct 1972 – Bob Kahn – demonstrates ARPANET at the International Computer Communication Conference (ICCC)
Internet Breakthroughs
•March 1972 – Ray Tomlinson – First basic email program using “@”
•May 1974 – Vinton Cerf & Ray Kahn - A Protocol for Packet Network Interconnection
•1978 – TCP and IP split•1980 – Tim Berners-Lee – writes predecessor to WWW
•Nov 1983 – Jon Postel, Paul Mockapedis, and Craig Partridge design the Domain Name System (DNS)
•1990 – Tim Berners-Lee creates World Wide Web•1993 – Marc Andreesen – Develops Mosaic web browser
•1996 – Microsoft vs Netscape - Browser wars
Source: https://njit.instructure.com/courses/17281/files/1829275


Mohit Mittal
Web Developer and JavaScript Expert
<EMAIL_ADDRESS>+91-9039135790
Pune, Maharashtra
Download CV
Complete Profile
>
Hello there...
I am Mohit
Alert !!!
Window Size must be greater than 1200 * 580 pixels.


There are two situations that cannot be handled by the required representations:
| MPI_REGISTER_DATAREP(datarep, read_conversion_fn, write_conversion_fn, dtype_file_extent_fn, extra_state) | |
| IN datarep | data representation identifier (string) |
| IN read_conversion_fn | function invoked to convert from file representation to native representation (function) |
| IN write_conversion_fn | function invoked to convert from native representation to file representation (function) |
| IN dtype_file_extent_fn | function invoked to get the extent of a datatype as represented in the file (function) |
| IN extra_state | extra state |
int MPI_Register_datarep(char *datarep, MPI_Datarep_conversion_function *read_conversion_fn, MPI_Datarep_conversion_function *write_conversion_fn, MPI_Datarep_extent_function *dtype_file_extent_fn, void *extra_state)
MPI_REGISTER_DATAREP(DATAREP, READ_CONVERSION_FN, WRITE_CONVERSION_FN, DTYPE_FILE_EXTENT_FN, EXTRA_STATE, IERROR)
CHARACTER*(*) DATAREP
EXTERNAL READ_CONVERSION_FN, WRITE_CONVERSION_FN, DTYPE_FILE_EXTENT_FN
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE
INTEGER IERROR
void MPI::Register_datarep(const char* datarep, MPI::Datarep_conversion_function* read_conversion_fn, MPI::Datarep_conversion_function* write_conversion_fn, MPI::Datarep_extent_function* dtype_file_extent_fn, void* extra_state)
The call associates read_conversion_fn, write_conversion_fn, and dtype_file_extent_fn with the data representation identifier datarep. datarep can then be used as an argument to MPI_FILE_SET_VIEW, causing subsequent data access operations to call the conversion functions to convert all data items accessed between file data representation and native representation. MPI_REGISTER_DATAREP is a local operation and only registers the data representation for the calling MPI process. If datarep is already defined, an error in the error class MPI_ERR_DUP_DATAREP is raised using the default file error handler (see Section I/O Error Handling , page I/O Error Handling ). The length of a data representation string is limited to the value of MPI_MAX_DATAREP_STRING. MPI_MAX_DATAREP_STRING must have a value of at least 64. No routines are provided to delete data representations and free the associated resources; it is not expected that an application will generate them in significant numbers.
typedef int MPI_Datarep_extent_function(MPI_Datatype datatype, MPI_Aint *file_extent, void *extra_state);
SUBROUTINE DATAREP_EXTENT_FUNCTION(DATATYPE, EXTENT, EXTRA_STATE, IERROR)
INTEGER DATATYPE, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTENT, EXTRA_STATE
typedef void MPI::Datarep_extent_function(const MPI::Datatype& datatype, MPI::Aint& file_extent, void* extra_state);
The function dtype_file_extent_fn
must return, in file_extent, the number of bytes
required to store datatype in the file representation.
The function is passed, in extra_state,
the argument that was passed to the MPI_REGISTER_DATAREP call.
MPI will only call this routine with predefined datatypes
employed by the user.
typedef int MPI_Datarep_conversion_function(void *userbuf, MPI_Datatype datatype, int count, void *filebuf, MPI_Offset position, void *extra_state);
SUBROUTINE DATAREP_CONVERSION_FUNCTION(USERBUF, DATATYPE, COUNT, FILEBUF, POSITION, EXTRA_STATE, IERROR)
<TYPE> USERBUF(*), FILEBUF(*)
INTEGER COUNT, DATATYPE, IERROR
INTEGER(KIND=MPI_OFFSET_KIND) POSITION
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE
typedef void MPI::Datarep_conversion_function(void* userbuf, MPI::Datatype& datatype, int count, void* filebuf, MPI::Offset position, void* extra_state);
The function
read_conversion_fn
must convert from
file data representation to native representation.
Before calling this routine,
MPI allocates and fills filebuf with count
contiguous data items.
The type of each data item matches the
corresponding entry for the predefined datatype
in the type signature of datatype.
The function is passed, in extra_state,
the argument that was passed to the MPI_REGISTER_DATAREP call.
The function must copy all count data items from filebuf
to userbuf in the distribution described by datatype,
converting each data item
from file representation to native representation.
datatype will be equivalent to the datatype that the user
passed to the
read
function.
If the size of datatype is less than the size
of the count data items, the conversion function must treat
datatype as being contiguously tiled over the userbuf.
The conversion function must
begin storing converted data at the location in userbuf
specified by position into the (tiled) datatype.
Advice to users.
Although the conversion functions have similarities
to MPI_PACK and
MPI_UNPACK,
one should note the differences in the use
of the arguments count and position.
In the conversion functions,
count is a count of data items
(i.e., count of typemap entries of datatype),
and position is an index into this typemap.
In MPI_PACK,
incount refers to the number of whole datatypes,
and position is a number of bytes.
( End of advice to users.)
Advice
to implementors.
A converted read operation could be implemented as follows:
Passing the conversion function a position and one datatype for the transfer
allows the conversion function to decode the datatype only once and
cache an internal representation of it on the datatype.
Then on subsequent calls, the conversion function can use the position
to quickly find its place in the datatype and continue
storing converted data where it left off at the end of the previous call.
( End of rationale.)
Advice to users.
Although the conversion function may usefully cache an
internal representation on the datatype, it should not cache
any state information specific to an ongoing conversion
operation, since it is possible for the same datatype to
be used concurrently in multiple conversion operations.
( End of advice to users.)
The function write_conversion_fn must convert from
native representation to file data representation.
Before calling this routine,
MPI allocates filebuf of a size large enough to hold count
contiguous data items.
The type of each data item matches the
corresponding entry for the predefined datatype
in the type signature of datatype.
The function must copy count data items from
userbuf in the distribution described by
datatype,
to a contiguous distribution in filebuf, converting each data item
from native representation to file representation.
If the size of datatype is less than the size
of count
data items,
the conversion function must treat
datatype as being contiguously tiled over the
userbuf.
The function must begin copying at the location in userbuf specified by position into the (tiled) datatype. datatype will be equivalent to the datatype that the user passed to the write function. The function is passed, in extra_state, the argument that was passed to the MPI_REGISTER_DATAREP call.
The predefined constant MPI_CONVERSION_FN_NULL may be used as either write_conversion_fn or read_conversion_fn. In that case, MPI will not attempt to invoke write_conversion_fn or read_conversion_fn, respectively, but will perform the requested data access using the native data representation.
An MPI implementation must ensure that all data accessed is converted, either by using a filebuf large enough to hold all the requested data items or else by making repeated calls to the conversion function with the same datatype argument and appropriate values for position.
An implementation will only invoke the callback routines in this section
( read_conversion_fn, write_conversion_fn,
and dtype_file_extent_fn)
when one of the read or write routines in Section Data Access
,
page Data Access
,
or MPI_FILE_GET_TYPE_EXTENT is called by the user.
dtype_file_extent_fn will only be passed
predefined datatypes employed by the user.
The conversion functions will only be passed datatypes equivalent to those
that the user has passed to one of the routines noted above.
The conversion functions must be reentrant. User defined data representations are restricted to use byte alignment for all types. Furthermore, it is erroneous for the conversion functions to call any collective routines or to free datatype.
The conversion functions should return an error code. If the returned error code has a value other than MPI_SUCCESS, the implementation will raise an error in the class MPI_ERR_CONVERSION.


A couple took their wedding photos on an abandoned island in New York, and the pictures are stunning
by Samantha Grindell- New Jersey-based couple Dasha and Taylor Milova have a love of abandoned buildings, and they wanted to celebrate this interest on their wedding day.
- When they got married in 2017, the Milovas chose the Admiral’s House on New York’s Governors Island as their wedding venue.
- They got married during the island’s off-season, giving them the opportunity to take wedding photos in a variety of abandoned places.
- Their photographer captured the couple in an abandoned movie theater, a decaying church, and the Admiral’s House, which is now being restored.
- “I think abandoned areas give people the ability to stop and reflect on the history of a place,” Dasha told Insider of her and her wife’s fascination with ruined spaces.
- Visit Insider’s homepage for more stories.
Dasha and Taylor Milova have a love of abandoned spaces.
The couple, who were married in 2017, loved ruined architecture independently before they met.
“I’ve been interested in abandoned areas since I was little,” Dasha told Insider. “When I was around 5, my parents and I would sneak into an abandoned hotel near our summer house in Russia, where I’m originally from.”
Taylor’s interest began when she moved to New Jersey in 2002. “The abandoned railroad tracks and factories of yesteryear are common threads throughout North Jersey, and being able to access these spots was something I never experienced before growing up in Kansas City,” Taylor said.

“We both are drawn to the imperfection of abandoned places and certainly did not envision a traditional space as a wedding backdrop,” Taylor said.
The Milovas picked the Admiral’s House on Governors Island in New York City for their event, which was in disrepair at the time.
Governors Island is only open from June through October each year, according to its website. The Milovas wedding took place during the off-season, giving them the opportunity to use the whole island for their photos.
“We originally wanted a destination wedding but also wanted to be surrounded by those closest to us,” Taylor said of their wedding.
“With family and friends coming from around the world, Governors Island was an obvious choice given the proximity to our home,” she said.
“It was a total dream come true,” Taylor added on having the island to themselves for the wedding.
The Milovas are part of a growing group interested in “ruin porn” during wedding photo shoots, as The New York Times reported.
“Ruin porn” is a term used to refer to the photography of rundown buildings or cities and the romance these locations often offer. Pictures of decaying cities like Detroit or the remanents of Chernobyl fall into this category, according to CNN.
“The juxtaposition of something old and abandoned in front of the Manhattan skyline felt really special and unusual to us,” Dasha said of their wedding location.
“It was incredible to have a whole island five minutes from Manhattan to ourselves,” Dasha also said.
“It felt like a surreal New York moment that we’ll never be able to recreate.”
The couple’s photographer, Jake Work of LOVE + WOLVES CO, shot the couple in the Admiral’s House, an abandoned church, and an old movie theater.
“We were lucky enough to have a friend who worked on the island at the time, so we got special access to places that are typically closed off,” Dasha told Insider of the unique locations.
Work helped the couple take some particularly creative shots, problem-solving as they took the photos.
“For example, the movie theater had no power and was pitch black, so we had a few people prop open the doors and hold out flashlights while Jake captured some incredible shots,” Dasha explained of photos like the one above.
The couple’s up-for-anything attitude also helped them get some amazing shots.
“Getting a little dirt on our outfits wasn’t even a thought while we walked through the muddy grass to get to the fortress or were jumping in a tub where the ceiling was peeling away from the structure,” Taylor said of her and Dasha’s approach to the photo shoot.
“I think people are always searching for authenticity in a world of perfect, Instagrammable backdrops,” Dasha said of people’s interest in abandoned places.
“I think abandoned areas give people the ability to stop and reflect on the history of a place,” she added.
“It’s nice to have something that has a life and history of its own. There is something a bit mystical about ruins that intrigues people.”
Taylor said the most challenging part of the photo shoot was stopping, as they were having such a good time.
“I think Jake, Dasha, and I could have gotten lost on the island just finding new corners to explore if we didn’t have 75 of our closest friends and family waiting for us at the Admiral’s House,” she joked.
“Once they have been left to the elements, we can create our own stories to fill the halls that we explore,” she said of abandoned places.
“I feel very lucky to have a partner who has the same vision as I do, not only for our wedding but our life overall,” Dasha told Insider.
“We now have a daughter, and it’s a blast raising her with Taylor,” she said.
“We can’t wait to take her to Governors Island to show her all of our favorite hidden spots.”
- Read more:
- Edit in Viking 50 of the most beautiful photos taken in 2019
- The story behind North Korea’s 1,080-foot ‘Hotel of Doom,’ an abandoned skyscraper that has never hosted a single guest
- A wave crashed over a couple during their wedding photo shoot on the beach, and the stunning picture is going viral
- The 13 coolest – and creepiest – ghost towns around the world


and the with for that []. can COVID- are The {background have this has immune its margin {border-style disease role like px;} virus #ffffff;} effects which Ayurveda IL-, health immunity not /]. due Ayush [,]. also Kwath against during found [], cytokine herbs inhibit properties response review activity cell cells clinical from stage these used all body drugs ginger system through thus IL- Piper This Tulsi anti-inflammatory but diseases effect extract herbal increase many may receptor therapeutic Ayurveda, C.S.Soo. Vyadhi any enhance etc. form human inflammatory levels mentioned px; some such {font-family S.S.Soo. adverse been being cases coronavirus early factor font-size nigrum novel pathogenesis per reduce remedies sanctum their various viral Immunity Jwara, Kapha Ocimum TNF-Î±, []]. both cause cytokines decrease different dose double; increased later medicinal mild officinale respiratory responses severe traditional treatment using vaccines Deepana, Elsevier Marich Pachana, Thus, [[], acid, antioxidant associated available border-color border-width cell-mediated cinnamon common compounds condition destruction did each effective even factors formulation high host humoral immune-modulatory infection inhibits involvement lower medicine most new over people powder prevention pro-inflammatory promotes reduction severity shows solid; specific storm symptoms there viruses was while will {font-style {font-weight â€˜Ayush ACE According Agni Ayurvedic COVID-. Charaka Cinnamon Health India Linn. Med Office Oja PMC PMCID: PMID: Pitta Raktashodhaka, Rasa Rasayana Regional STAT Sannipataja South-East Sunthi Ushna Zingiber activation activity, acute allergic among anti-inflammatory, antibody bold called causing centre commentary complications constituents cough, courier; dosha efficacy em; expression features few healthy i.e. immunological including increasing known long major natural need one option own person potential prevent primary production propagation pt;} regulation research resource should showed smokers still strong studies study suppresses systematic those time two use whereas without â€"


Want to bet on EPL? Log-on to CoLeague and place friendly bets with colleagues, friends or family.
Technologies: Javascript, jQuery, HTML5, CSS, Express, Node Js, Axios, BootStrap
A mutliplayer trivia game for teambuilding exercises, classroom learning or just fun between friends.
Technologies: Javascript, React, React-BootStrap, Express, Node Js, Axios
Search for books you are interested in, save them to your bookshelf. When the time comes, click Buy or Borrow!
Technologies: Javascript, Bootstrap, Express, Node Js


Reports unconditional redeclarations of names without being used in between.
Example:
def x(): pass
x = 2
It applies to function and class declarations, and top-level assignments.
When the warning is shown, you can try a recommended action, for example, you might be prompted to rename the variable.


abstract fun toJson(): T
Return if this object is a property of a json object, this method can even return a primitive value or a String, else only a JSONObject or a JSONArray
Author sliep


Photo, Print, Drawing Laborers and rocks, near opening of Summit Tunnel
More Resources
About this Item
- Title
- Laborers and rocks, near opening of Summit Tunnel
- Summary
- Photograph shows Chinese railroad workers.
- Contributor Names
- Hart, Alfred A., 1816-1908, photographer
- Created / Published
- Sacramento, Calif. : Golden State Photographic Gallery, [between 1865 and 1869]
- Headings
- Albumen prints--1860-1870.
- Stereographs--1860-1870.
- Notes
- - No. 119.
- - Title from item.
- - Part of series: Central Pacific Railroad, California. Scenes in the Sierra Nevada Mountains.
- Medium
- 1 photographic print on stereo card : stereograph, albumen.
- Call Number/Physical Location
- LOT 11477, no. 63 [item] [P&P]
- Repository
- Library of Congress Prints and Photographs Division Washington, D.C. 20540 USA
- Digital Id
- stereo 1s00510 http://hdl.loc.gov/loc.pnp/stereo.1s00510
- stereo 2s00510 http://hdl.loc.gov/loc.pnp/stereo.2s00510
- cph 3a50798 http://hdl.loc.gov/loc.pnp/cph.3a50798
- Library of Congress Control Number
-<PHONE_NUMBER>
- Reproduction Number
- LC-DIG-stereo-1s00510 (digital file from original photo, front) LC-DIG-stereo-2s00510 (digital file from original photo, back) LC-USZ62-50742 (b&w film copy neg. of half stereo)
- Rights Advisory
- No known restrictions on publication.
- Online Format
- image
- LCCN Permalink
- https://lccn.loc.gov/2005682913
- Additional Metadata Formats
- MARCXML Record
- MODS Record
- Dublin Core Record
Part of
Format
Contributors
Dates
Languages
Subjects
Rights & Access
The Library of Congress does not own rights to material in its collections. Therefore, it does not license or charge permission fees for use of such material and cannot grant or deny permission to publish or otherwise distribute the material.
Ultimately, it is the researcher's obligation to assess copyright or other use restrictions and obtain permission from third parties when necessary before publishing or otherwise distributing materials found in the Library's collections.
For information about reproducing, publishing, and citing material from this collection, as well as access to the original items, see: Stereographs - Rights and Restrictions Information
- Rights Advisory: No known restrictions on publication.
- Reproduction Number: LC-DIG-stereo-1s00510 (digital file from original photo, front) LC-DIG-stereo-2s00510 (digital file from original photo, back) LC-USZ62-50742 (b&w film copy neg. of half stereo)
- Call Number: LOT 11477, no. 63 [item] [P&P]
- Access Advisory: ---
Obtaining Copies
If an image is displaying, you can download it yourself. (Some images display only as thumbnails outside the Library of Congress because of rights considerations, but you have access to larger size images on site.)
Alternatively, you can purchase copies of various types through Library of Congress Duplication Services.
- If a digital image is displaying: The qualities of the digital image partially depend on whether it was made from the original or an intermediate such as a copy negative or transparency. If the Reproduction Number field above includes a reproduction number that starts with LC-DIG..., then there is a digital image that was made directly from the original and is of sufficient resolution for most publication purposes.
-
If there is information listed in the Reproduction Number field above:
You can use the reproduction number to purchase a copy from Duplication Services. It will be
made from the source listed in the parentheses after the number.
If only black-and-white ("b&w") sources are listed and you desire a copy showing color or tint (assuming the original has any), you can generally purchase a quality copy of the original in color by citing the Call Number listed above and including the catalog record ("About This Item") with your request.
- If there is no information listed in the Reproduction Number field above: You can generally purchase a quality copy through Duplication Services. Cite the Call Number listed above and include the catalog record ("About This Item") with your request.
Price lists, contact information, and order forms are available on the Duplication Services Web site.
Access to Originals
Please use the following steps to determine whether you need to fill out a call slip in the Prints and Photographs Reading Room to view the original item(s). In some cases, a surrogate (substitute image) is available, often in the form of a digital image, a copy print, or microfilm.
-
Is the item digitized? (A thumbnail (small) image will be visible on the left.)
-
Yes, the item is digitized.
Please use the digital image in preference to requesting the original. All images can be
viewed at a large size when you are in any reading room at the Library of Congress. In some
cases, only thumbnail (small) images are available when you are outside the Library of
Congress because the item is rights restricted or has not been evaluated for rights
restrictions.
As a preservation measure, we generally do not serve an original item when a digital image is available. If you have a compelling reason to see the original, consult with a reference librarian. (Sometimes, the original is simply too fragile to serve. For example, glass and film photographic negatives are particularly subject to damage. They are also easier to see online where they are presented as positive images.) - No, the item is not digitized. Please go to #2.
-
Yes, the item is digitized.
Please use the digital image in preference to requesting the original. All images can be
viewed at a large size when you are in any reading room at the Library of Congress. In some
cases, only thumbnail (small) images are available when you are outside the Library of
Congress because the item is rights restricted or has not been evaluated for rights
restrictions.
-
Do the Access Advisory or Call Number fields above indicate that a non-digital surrogate exists, such as microfilm or copy prints?
- Yes, another surrogate exists. Reference staff can direct you to this surrogate.
- No, another surrogate does not exist. Please go to #3.
- If you do not see a thumbnail image or a reference to another surrogate, please fill out a call slip in the Prints and Photographs Reading Room. In many cases, the originals can be served in a few minutes. Other materials require appointments for later the same day or in the future. Reference staff can advise you in both how to fill out a call slip and when the item can be served.
To contact Reference staff in the Prints and Photographs Reading Room, please use our Ask A Librarian service or call the reading room between 8:30 and 5:00 at<PHONE_NUMBER>, and Press 3.
Cite This Item
Citations are generated automatically from bibliographic data as a convenience, and may not be complete or accurate.
Chicago citation style:
Hart, Alfred A, photographer. Laborers and rocks, near opening of Summit Tunnel. , None. [Sacramento, calif.: golden state photographic gallery, between 1865 and 1869] Photograph. https://www.loc.gov/item/2005682913/.
APA citation style:
Hart, A. A., photographer. Laborers and rocks, near opening of Summit Tunnel. , None. [Sacramento, calif.: golden state photographic gallery, between 1865 and 1869] [Photograph] Retrieved from the Library of Congress, https://www.loc.gov/item/2005682913/.
MLA citation style:
Hart, Alfred A, photographer. Laborers and rocks, near opening of Summit Tunnel. [Sacramento, calif.: golden state photographic gallery, between 1865 and 1869] Photograph. Retrieved from the Library of Congress, <www.loc.gov/item/2005682913/>.
More Photos, Prints, Drawings like this
-
Photo, Print, DrawingRoad above Newcastle, Placer County 1 photographic print on stereo card : stereograph, albumen.
- Contributor: Hart, Alfred A.
- Date: 1865
-
Photo, Print, DrawingView in Dutch Ravine, looking west, Placer County 1 photographic print on stereo card : stereograph, albumen.
- Contributor: Hart, Alfred A.
- Date: 1865
-
Photo, Print, DrawingView in Dutch Ravine, looking east, 32 miles from Sacramento 1 photographic print on stereo card : stereograph, albumen.
- Contributor: Hart, Alfred A.
- Date: 1865
-
Photo, Print, DrawingEmbankment in Dutch Ravine 1 photographic print on stereo card : stereograph, albumen.
- Contributor: Hart, Alfred A.
- Date: 1865
-
Photo, Print, DrawingApproaching Bloomer Cut, from the west 1 photographic print on stereo card : stereograph, albumen.
- Contributor: Hart, Alfred A.
- Date: 1865


For our first project during week 3 at MakerSquare, we were tasked with using what we've learned during the first two weeks of the program and creating something using D3.js. I partnered up with my friend Jeff, and we decided to make a tool that'd estimate Uber fares to select destinations from MakerSquare LA.
In case you're not familiar with D3.js, it's a JavaScript library used to help you "bring data to life". It allows you to bind arbitrary data to the DOM, then apply transformations to your document based on the data. Here's a great collection of D3 projects you can check out to give you an idea of it's power: D3 Gallery
For this project, Jeff and I noted during pre-planning that we would have to: successfully make AJAX calls to the Uber API, properly parse the received data to only store the properties we wanted, use D3 to append the data to our DOM, and use jQuery to add some event handlers for allowing the user to pick a destination.
Uber API
The first step of our project was to figure out how and what data to pull from Uber. After a few issues with authentication, we were able to successfully make the GET request from their price estimates endpoint. This allowed us to get data such as high and low estimates for each type of Uber ride, distance and duration of the ride, surge multiplier at time of request, and minimum fare.
One thing to note here: to get pricing, you obviously need to give Uber coordinates (to/from) when you make the GET request. We initially wanted to do something where the user could type in their own to/from, and we'd submit the GET request with those coordinates, but seeing how we only had 2 days for this project, we decided to instead hardcode coordinates for just a few default places.
Our AJAX call basically works like this: when the page loads, we make a GET request to Uber with our pre-loaded coordinates, and then upon a success, we store the parsed data in a local object so that we could access it immediately. By doing this, we also avoided any problems with trying to display data before it's received.
D3
Now that we had the data, we needed a way to populate the DOM dynamically. That's where D3 comes in, and in my humble opinion, shines. The D3 methods that we used basically did the following: selected a 'chart' div that we were going to append our newly created child div's to, calculated and set the widths of each child div dynamically based on the price of each ride, added text to each child div based on the type of ride, and added animation. Another cool thing is that D3 allows you to chain methods, so you can really do a lot with just a few lines of code. As you can see below, our 'chart' div, which was empty in our index.html file, is now populated with exactly the data we want.
Last but not least, we needed to add some listeners to our page, so that when the user clicks on a new destination, we could re-render the DOM based on the new data. For this we used jQuery, more specifically the '.on' method, which attaches an event handler function for one or more events to selected elements. Basically whenever a destination is clicked, we invoke the 'createChart' function above that utilizes D3 to re-render the DOM.
All in all, this project was a great learning experience, and it really showed us how powerful D3.js can be. I'm hoping to have a demo up soon for you all to check out.


Time left
No.of dolls clicked :
Click the doll
Game Over
You got
dolls out of 20!
Reload the page to play again


CLI demo application using npm contexter
to reactively extract all available data from files (including images) in a directory to one javascript object
...reactively. Try updating anything in the directory while the App is running
Click on a final value (leaf value of context
tree) to see a simulated console data sample.
contexter-cli is the "context library usage example application" that extends the library to add images filetype
and corresponding plugin
to extract image metadata without keeping the images themselves in the context
object (just their metadata)
CLI commands:
serve <source-dir> --all --ignore <ignored-directory>
write <source-dir> <path-to-file> --all --ignore <ignored-directory>
arguments:
context
object as JSON (if not present, default to stdout
(console terminal)--all
or -a
: Watch for all files in <source-dir> (if not present, default to watch ONLY datafiles
and images
)--ignore <ignored-directory>
or -i <ignored-directory>
: Ignores <ignored-directory> (if not present, defaults to ignore node_modules
directory)Watch ONLY datafiles
and images
in current directory
$ contexter-cli serve .
Watch ALL files in current directory
$ contexter-cli serve . --all
Watch ALL files in current directory but ignore assets
directory (instead of ignoring the default node_modules
directory)
$ contexter-cli serve . --all --ignore ./assets
Watch ONLY datafiles
and images
in ../myProject/src
directory
$ contexter-cli serve ../myProject/src
Write context
object for ONLY datafiles
and images
in current directory to file ../extracted.json
$ contexter-cli write . ../extracted.json
Report bugs or errors creating a new issue (if it is not already reported/answered)
Include:
Sample
$ node -v
v6.9.2
Copyright (c) 2017 Eduardo Martinez - MIT License


Save £££ on band merch and more with EMP Black Friday flash deals
by https://www.facebook.com/LouderPosts/EMP are offering new deals every two hours throughout the day - plus 50% off their backstage pass membership
Black Friday is in full swing right now with bargains on headphones, turntables, vinyl and a multitude of music-related goodies to be had.
If you're in need of some new rock'n'roll threads, you're in luck. You can kit out your entire wardrobe for less, stock up on hardwearing essentials over at Vans , pick up a deal on iconic stompers Dr Martens, grab a new pair of Converse for the summer and now restock your band merch over at EMP!
EMP are running incredible limited time offers throughout the day, with some items slashed in price up to a whopping 70%! Check back every two hours to make sure you get the best price on all your favourite band merch and spend £65 and you automatically score free delivery.
Plus, you can join their Backstage Club for less*: A whole year subscription would usually set you back £9.95, but this Black Friday you can sign up for £4.95. Thats 50% off a whole year of exclusive perks!
Why would you want to join EMP's Backstage Club? Here are the perks:
- Unlimited free delivery (with no minimum spend)
- Exclusive discounts for members only
- Exclusive pre-sales
- VIP competitions
- Access to the Backstage Club Area at major European festivals!
- Choose an exclusive freebie with your order
*Only valid for new memberships. It's not possible to renew an existing membership with this offer. The discounted membership is valid for one year, afterwards the full price of £9.95 per year will be due.
Join EMP Backstage Club: Now £4.95 | Was £9.95
Joining EMP's Backstage Club for a year is worth it just for the free delivery! Grab your favourite band merch and gifts for all the music lovers in your life and check out without that delivery cost shock! View Deal


Upload image
Control Box
scale
draggable
section height
border-image-slice
fill
border-image-width
border-image-outset
additional-properties
repeat-x
stretch
repeat
round
space
repeat-y
stretch
repeat
round
space
CSS Code
border-image-slice:
border-image-width:
border-image-outset:
border-image-repeat:
border-image-source:
border-style:
solid;


fun String.parseSingleElementJson(): String
Uses string operations to extract single element (primitive) from json (object only). It is upto 1700 times faster than normal parsing of json.


{{ data.char2 }} Oh, I guess I couldn't help it.
Lrrr Greetings, I am Lrr of the planet Omicron Persei 8, do you have my package?
{{ data.char1 }} I can't feel my spleen.