#include <ResupplyOfferPdu.h>
Copyright (c) 2007-2009, MOVES Institute, Naval Postgraduate School. All rights reserved.
| ResupplyOfferPdu::ResupplyOfferPdu | ( | ) |
| ResupplyOfferPdu::~ResupplyOfferPdu | ( | ) | [virtual] |
| int ResupplyOfferPdu::getMarshalledSize | ( | ) | const [virtual] |
Reimplemented from DIS::LogisticsFamilyPdu.
| unsigned char ResupplyOfferPdu::getNumberOfSupplyTypes | ( | ) | const |
| short ResupplyOfferPdu::getPadding1 | ( | ) | const |
| char ResupplyOfferPdu::getPadding2 | ( | ) | const |
| const EntityID & ResupplyOfferPdu::getReceivingEntityID | ( | ) | const |
| EntityID & ResupplyOfferPdu::getReceivingEntityID | ( | ) |
| const std::vector< SupplyQuantity > & ResupplyOfferPdu::getSupplies | ( | ) | const |
| std::vector< SupplyQuantity > & ResupplyOfferPdu::getSupplies | ( | ) |
| const EntityID & ResupplyOfferPdu::getSupplyingEntityID | ( | ) | const |
| EntityID & ResupplyOfferPdu::getSupplyingEntityID | ( | ) |
| void ResupplyOfferPdu::marshal | ( | DataStream & | dataStream | ) | const [virtual] |
Reimplemented from DIS::LogisticsFamilyPdu.
| bool ResupplyOfferPdu::operator== | ( | const ResupplyOfferPdu & | rhs | ) | const |
| void ResupplyOfferPdu::setPadding1 | ( | short | pX | ) |
| void ResupplyOfferPdu::setPadding2 | ( | char | pX | ) |
| void ResupplyOfferPdu::setReceivingEntityID | ( | const EntityID & | pX | ) |
| void ResupplyOfferPdu::setSupplies | ( | const std::vector< SupplyQuantity > & | pX | ) |
| void ResupplyOfferPdu::setSupplyingEntityID | ( | const EntityID & | pX | ) |
| void ResupplyOfferPdu::unmarshal | ( | DataStream & | dataStream | ) | [virtual] |
Reimplemented from DIS::LogisticsFamilyPdu.
unsigned char DIS::ResupplyOfferPdu::_numberOfSupplyTypes [protected] |
how many supplies are being offered
short DIS::ResupplyOfferPdu::_padding1 [protected] |
padding
char DIS::ResupplyOfferPdu::_padding2 [protected] |
padding
EntityID DIS::ResupplyOfferPdu::_receivingEntityID [protected] |
Entity that is receiving service
std::vector<SupplyQuantity> DIS::ResupplyOfferPdu::_supplies [protected] |
EntityID DIS::ResupplyOfferPdu::_supplyingEntityID [protected] |
Entity that is supplying


Internet Corporation for Assigned Names and Number “ICANN” is an American multistakeholder group and nonprofit organization responsible for coordinating the maintenance and procedures of several databases related to the namespace and numerical space of the internet ensuring the network stable and secure operation.
ICANN was founded in 1998 and grew out of a U.S. Government commitment to transfer the policy and technical management of the DNS to a non-profit corporation based in the U.S. with global participation. The IANA Stewardship Transition was completed in October 2016 thanks to the work and dedication of the Internet community worldwide.
In 1969, the first message was sent via the Arpanet, a U.S. Department of Defense network and precursor to the global Internet. Three years later, Jon Postel started to record socket numbers for the Arpanet in his notebook. His registry eventually became the Internet Assigned Numbers Authority, which manages the coordination of the Domain Name System.
Much of its work has concerned the Internet's global Domain Name System (DNS), including policy development for internationalization of the DNS system, introduction of new generic top-level domains (TLDs), and the operation of root name servers. The numbering facilities ICANN manages include the Internet Protocol address spaces for IPv4 and IPv6 and assignment of address blocks to regional Internet registries. ICANN also maintains registries of Internet Protocol identifiers.
For example, if you register the domain name "robinhood.com", you could create a website and host it at rohinhood.com. You could also set up an email address using your domain name such as<EMAIL_ADDRESS>https://whois.icann.org/en/dns-and-whois-how-it-works


WITNESS LIST Elections Committee April 20, 2005-2:00P HB 459 Against: DeBeauvoir, Dana (Legislative Committee of the Texas County and District Clerks Assoc.) Vasquez, Michael (Texas Conference of Urban Counties) Registering, but not testifying: For: Bailey, Ken (Texas Democratic Party) On: Hanshaw Winn, Elizabeth (Sec. of State) HB 768 For: Brown, William (AARP-Texas) Powell, Leilah (Bexar County Commissioners Court) Vanhoose, Laurie (Advocacy, Incorporated) Against: DeBeauvoir, Dana (Legislative Committee of the Texas County and District Clerks Assoc.) Howard, Robert (Libertarian Party of Texas) Registering, but not testifying: For: Bailey, Ken (Texas Democratic Party) Park, Jodi (Coalition of Texans with Disabilities) Sanchez, Joe (AARP-Texas) Against: Gerstenschlager, MerryLynn (Self and Texas Eagle Forum) On: Hanshaw Winn, Elizabeth (Sec. of State) HB 899 For: DeBeauvoir, Dana (Legislative Committee of the Texas County and District Clerks Assocation) Registering, but not testifying: For: Bailey, Ken (Texas Democratic Party) On: Winn, Elizabeth (Sec. of State) HB 1143 For: Howard, Robert (Libertarian Party of Texas) Against: Orr, Fred (Construction Management Association) Registering, but not testifying: For: Baccus, Jamie (Self) Against: Downing, Clayton (Texas School Coalition) On: Hanshaw Winn, Elizabeth (Sec. of State) HB 1211 For: Howard, Robert (Libertarian Party of Texas) Registering, but not testifying: Against: Downing, Clayton (Texas School Coalition) On: Hanshaw Winn, Elizabeth (Sec. of State) HB 1270 Against: Brock, Alison (Unlock Your Vote Campaign, LULAC, ACLU, NAACP) On: Hanshaw Winn, Elizabeth (Sec. of State) Registering, but not testifying: For: DeBeauvoir, Dana (Legislative Committee of the Texas County and District Clerks Assoc.) Gerstenschlager, MerryLynn (Self and Texas Eagle Forum) HB 1580 On: DeBeauvoir, Dana (Legislative Committee of the Texas County and District Clerks Assoc.) Hanshaw Winn, Elizabeth (Sec. of State) Registering, but not testifying: For: Bailey, Ken (Texas Democratic Party) HB 2000 Registering, but not testifying: For: Baccus, Jamie (Self) Howard, Robert (Libertarian Party of Texas) On: Hanshaw Winn, Elizabeth (Sec. of State) HB 2151 Registering, but not testifying: On: Hanshaw Winn, Elizabeth (Sec. of State) HB 2260 For: McGuire, C.M. "Mac" (Self) Against: DeBeauvoir, Dana (Legislative Committee of the Texas County and District Clerks Assoc.) On: McGeehan, Ann (TX Sec. of State) Registering, but not testifying: For: Brock, Alison (ACLU) Howard, Robert (Libertarian Party of Texas) HB 2261 For: McGuire, Mac (Self) Against: DeBeauvoir, Dana (Legislative Committee of the Texas County and District Clerks Assoc.) On: McGeehan, Ann (TX Sec. of State) Registering, but not testifying: For: Brock, Alison (ACLU) HB 2262 For: McGuire, Mac (Self) Against: Bailey, Ken (Texas Democratic Party) DeBeauvoir, Dana (Legislative Committee of the Texas County and District Clerks Assoc.) On: McGeehan, Ann (TX Sec. of State) Registering, but not testifying: Against: Brock, Alison (ACLU) HB 2667 For: Jackson, Ron (Self and Opal Jackson, Paula Graves, Ray Owens) On: Hanshaw Winn, Elizabeth (Sec. of State) HB 2751 For: Dyer, Jay (Texas Assoc. of Builders) Registering, but not testifying: For: Howard, Robert (Libertarian Party of Texas) On: Hanshaw Winn, Elizabeth (Sec. of State)


@Deprecated public class AsynchronousFlowController extends java.lang.Object implements FlowController
| Modifier and Type | Field and Description |
|---|---|
protected java.util.concurrent.atomic.AtomicLong |
asyncHit
Deprecated.
|
protected java.util.concurrent.atomic.AtomicLong |
asyncMiss
Deprecated.
|
protected java.util.ArrayList<java.util.concurrent.atomic.AtomicLong> |
deviceClocks
Deprecated.
|
protected static java.util.concurrent.atomic.AtomicLong |
eventCounts
Deprecated.
|
protected java.util.ArrayList<java.util.ArrayList<java.util.Queue<cudaEvent_t>>> |
eventsBarrier
Deprecated.
|
protected EventsProvider |
eventsProvider
Deprecated.
|
protected java.util.ArrayList<java.util.ArrayList<java.util.concurrent.atomic.AtomicLong>> |
laneClocks
Deprecated.
|
protected java.util.Map<java.lang.Integer,java.util.concurrent.atomic.AtomicLong> |
lanesCounter
Deprecated.
|
protected static int |
MAX_EXECUTION_QUEUE
Deprecated.
|
protected NativeOps |
nativeOps
Deprecated.
|
| Constructor and Description |
|---|
AsynchronousFlowController()
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
void |
commitTransfer(cudaStream_t streamUsed)
Deprecated.
This method should be called after memcpy operations, to control their flow.
|
protected void |
cutTail()
Deprecated.
|
protected void |
fillTail(int deviceId,
int lane,
cudaEvent_t event)
Deprecated.
|
protected java.util.Queue<cudaEvent_t> |
getReadLanes(INDArray array)
Deprecated.
|
protected cudaEvent_t |
getWriteLane(INDArray array)
Deprecated.
|
protected boolean |
hasActiveReads(AllocationPoint point)
Deprecated.
|
protected boolean |
hasActiveReads(INDArray array)
Deprecated.
|
protected int |
hasActiveWrite(AllocationPoint point)
Deprecated.
|
protected int |
hasActiveWrite(INDArray array)
Deprecated.
|
void |
init(Allocator allocator)
Deprecated.
|
protected boolean |
isMatchingLanes(int[] lanes)
Deprecated.
|
protected boolean |
isMatchingLanes(int zLane,
int[] lanes)
Deprecated.
|
protected int |
pickFirstLane(int[] lanes)
Deprecated.
|
CudaContext |
prepareAction(AllocationPoint result,
AllocationPoint... operands)
Deprecated.
|
CudaContext |
prepareAction(INDArray result,
INDArray... operands)
Deprecated.
This method is called before operation was executed
|
CudaContext |
prepareActionAllWrite(INDArray... operands)
Deprecated.
|
void |
registerAction(CudaContext context,
AllocationPoint result,
AllocationPoint... operands)
Deprecated.
|
void |
registerAction(CudaContext context,
INDArray result,
INDArray... operands)
Deprecated.
This method is called after operation was executed
|
void |
registerActionAllWrite(CudaContext context,
INDArray... operands)
Deprecated.
|
protected void |
setReadLane(INDArray array,
cudaEvent_t event)
Deprecated.
|
protected void |
setWriteLane(INDArray array,
cudaEvent_t event)
Deprecated.
|
protected void |
sweepTail()
Deprecated.
This method ensures the events in the beginning of FIFO queues are finished
|
protected void |
synchronizeReadLanes(AllocationPoint point)
Deprecated.
|
protected void |
synchronizeReadLanes(INDArray array)
Deprecated.
|
void |
synchronizeToDevice(AllocationPoint point)
Deprecated.
This method ensures, that all asynchronous operations on referenced AllocationPoint are finished, and device memory state is up-to-date
|
void |
synchronizeToHost(AllocationPoint point)
Deprecated.
This method ensures, that all asynchronous operations on referenced AllocationPoint are finished, and host memory state is up-to-date
|
void |
waitTillFinished(AllocationPoint point)
Deprecated.
This method ensures, that all asynchronous operations on referenced AllocationPoint are finished
|
void |
waitTillReleased(AllocationPoint point)
Deprecated.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getEventsProvider
protected NativeOps nativeOps
protected EventsProvider eventsProvider
protected java.util.concurrent.atomic.AtomicLong asyncHit
protected java.util.concurrent.atomic.AtomicLong asyncMiss
protected java.util.Map<java.lang.Integer,java.util.concurrent.atomic.AtomicLong> lanesCounter
protected static final int MAX_EXECUTION_QUEUE
protected static final java.util.concurrent.atomic.AtomicLong eventCounts
protected java.util.ArrayList<java.util.ArrayList<java.util.Queue<cudaEvent_t>>> eventsBarrier
protected java.util.ArrayList<java.util.ArrayList<java.util.concurrent.atomic.AtomicLong>> laneClocks
protected java.util.ArrayList<java.util.concurrent.atomic.AtomicLong> deviceClocks
public void synchronizeToDevice(AllocationPoint point)
FlowController
synchronizeToDevice
in interface FlowController
public void init(Allocator allocator)
init
in interface FlowController
public void synchronizeToHost(AllocationPoint point)
FlowController
synchronizeToHost
in interface FlowController
public void waitTillFinished(AllocationPoint point)
FlowController
waitTillFinished
in interface FlowController
public void waitTillReleased(AllocationPoint point)
waitTillReleased
in interface FlowController
public void registerAction(CudaContext context, INDArray result, INDArray... operands)
FlowController
registerAction
in interface FlowController
public void registerActionAllWrite(CudaContext context, INDArray... operands)
registerActionAllWrite
in interface FlowController
protected void setWriteLane(INDArray array, cudaEvent_t event)
protected void setReadLane(INDArray array, cudaEvent_t event)
protected java.util.Queue<cudaEvent_t> getReadLanes(INDArray array)
protected cudaEvent_t getWriteLane(INDArray array)
protected int hasActiveWrite(INDArray array)
protected int hasActiveWrite(AllocationPoint point)
protected boolean hasActiveReads(AllocationPoint point)
protected boolean hasActiveReads(INDArray array)
protected boolean isMatchingLanes(int[] lanes)
protected boolean isMatchingLanes(int zLane, int[] lanes)
protected void synchronizeReadLanes(AllocationPoint point)
protected void synchronizeReadLanes(INDArray array)
public void registerAction(CudaContext context, AllocationPoint result, AllocationPoint... operands)
registerAction
in interface FlowController
public CudaContext prepareAction(AllocationPoint result, AllocationPoint... operands)
prepareAction
in interface FlowController
protected int pickFirstLane(int[] lanes)
public CudaContext prepareAction(INDArray result, INDArray... operands)
FlowController
prepareAction
in interface FlowController
public CudaContext prepareActionAllWrite(INDArray... operands)
prepareActionAllWrite
in interface FlowController
protected void fillTail(int deviceId, int lane, cudaEvent_t event)
protected void sweepTail()
protected void cutTail()
public void commitTransfer(cudaStream_t streamUsed)
FlowController
commitTransfer
in interface FlowController


Club want Stoke City to reduce demands as they look to ‘finish’ transfer deal
by Nihat Emre KocaaslanFanatik have reported on the latest developments with regards to Trabzonspor’s pursuit of Stoke City midfielder Badou Ndiaye.
The Senegal international, who previously played in Turkey for Osmanlispor and Galatasaray, is said to be keen on a return to the Turkish Super Lig and Fanatik claim both sides are still at the negotiation table.
It’s reported Stoke are looking to get €1m from a loan deal for the 29 year old and Ndiaye wants a €1.5m salary for the six months.
However, Trabzonspor are looking to reduce both Stoke’s loan fee and Ndiaye’s wage demands, and both parties will hold further meetings in the near future. There have been recent reports the Trabzon club could be priced out of a deal for the player.
The Turkish club are now looking to ‘finish’ this transfer by paying €1.5m in total (loan fee and wages) but it’s reported Stoke City are in no rush to part ways with him.
Ndiaye has made 10 appearances in the Championship this season and is under contract with the club until June 2022.


All Classes
ApplicationBusiness
ApplicationConstant
ApplicationErrorInfo
ApplicationException
ApplicationResponse
ApplicationService
ApplicationTest
Config
DBClient
DBClientImpl
DBConfig
DBConnectionSetup
GenericFileReader
QueryReader


Fiber was created in Fall 2015 as a class project for COMS W4111: Introduction to Databases with Professor Eugene Wu.
The purpose of this podcast player is to demonstrate the use of a PostgreSQL database. We use Flask on the backend and the Google Material Design specification on the frontend. You can find more about the project requirements here. Sign in to get started or sign up for an account with us.


--- layout: post title: 'Zettaset CEO on Hadoop in the Enterprise: Don’t Throw More Bodies at the Problem' date: '2012-03-03T09:28:12-08:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/18670011688/zettaset-ceo-on-hadoop-in-the-enterprise-dont-throw ---


Shabbat is a day of rest and celebration that begins on Friday at sunset and ends on the following evening after nightfall. The pinnacle of Shabbat is the traditonal Friday night meal, which acts as a time for the community to come together and celebrate after a long week.
Join us as the Cornell community comes together on April 28th to celebrate all our acheivements this year. This beautifull meal will feature five-star kosher cuisine, performances from some of Cornell's leading acapella groups, and a plethora of other fun activities - all with 1,000 of your closest friends! Space is limited, so please be sure to signup today!
Every single member of the Cornell community, regardless of your religious affiliation or background, is invited to attend this wonderful community meal. To register, just click below.
Register For Events HereCornell Hillel
The Cornell Center for Jewish Living
Chabad at Cornell
JLIC at Cornell
Check in: 6:30 PM | Dinner: 7:00 PM | Location: Cornell Arts Quad


This server-less service is entirely done in client-side JS.
Patsopt is the command for compiling ATS source code into C.
The JS-version of Patsopt used here is generated with the help of Emscripten.
Atscc2js is the command for compiling C code generated from ATS source into JS.
The JS-version of Atscc2js used here is generated with the help of Emscripten.
The GUI for Try-ATS-in-your-browser is largely intuitive:
The input box following the button Patsopt is for
passing options to Patsopt.
If the box in front of the button Atscc2js is checked,
then the C code produced by calling Patsopt is automatically compiled
by Atscc2js.
If the box in front of the button Evaluate is checked,
then the JS code produced by calling Atscc2js is automatically evaluated
(by the browser).
The boxes of the names Patsopt-out and Atscc2js-out (at the lower
right corner) can be checked to choose whether the output produced by
Patsopt or Atscc2js should be displayed in the right window.


Train Scheduler App
Choo Choo. Chee Chee
Current Train Schedule Section
| Train Name | Destination | First Train Time | Frequency [min] | Next Arrival | Minutes Away |
|---|---|---|---|---|---|
Add Train Section
| Train Name | Destination | First Train Time | Frequency [min] | Next Arrival | Minutes Away |
|---|---|---|---|---|---|


Take your pick
Item A
Item B
My checkbox
Upload a file
Choose your flavour
Strawberry
Banana
Raspberry
Free text field triggers with delay
Free text field triggers when field loses focus
Main content will appear here…


--- permalink: vr-news --- {% include head.html %} {% include nav.html %}
A social VR concept for breaking outside of the echo chamber. What if you could peer into a stranger's social media feed? VR News Bubble is a social VR concept for connecting people across diverse social and political networks. VR News Bubble was presented at CMU's Open Studio Night in fall 2016.


I wrote a ray-tracer in C on an Amiga in 1987, when I was in high school, for a science fair project. Here's an image captured from an emulator in May of 2013, thanks to my brother, Bart Grantham. He ran the original executable to save this image.
|
|
|
This is an image from a 26-Year-Old AmigaDOS Executable. It would have taken all night to render in 1987.
|
|
Click and drag with left button. Mouse/Trackpad scrollwheel zooms. |
I was one of the generation of programmers who grew up and discovered personal computers as the term was being invented. We had a TRS-80 Model II, then a TI 99/4A, then an Apple //e, then an Amiga 500. I learned how to program in various dialects of BASIC and had a little success with assembly language.
I saw Tron in 1982 in the theater and was thrown. Computers could make images like that? I wanted to learn how. I was 12; I was full of excitement and energy but not very focused and didn't really know how to systematically learn the things I needed to learn. I looked around at computer graphics books at the library, not understanding much about the algorithms. I asked other middle school students about "cosine" and "sine," and how they and other things worked. At that age most kids wouldn't have known cosine from a hole in the ground.
I had the coffee table book Creative Computer Graphics, bought on a trip to the Smithsonian. In it were the promise of rich images created entirely by computers. One of the fascinating things to me about that book now is the diversity of images, running the gamut from interactive line rendering for CAD to entertainment to flight simulators.
In fact, we had the subLOGIC flight simulator FS1 on our Apple //e, which amazingly drew a 3D view of (admittedly very simple) terrain interactively. I think this is what made me wonder how straight lines were drawn on a screen using pixels.
I started high school in 1984 and spent a lot of my time playing on the Apple //e, writing little bits of BASIC code. I got as far as writing a line-drawing routine in assembler (which never did quite work right), and some assembly routines that could save bits from the cassette port and play them back to the speaker.
When Christmas 1986 brought us an Amiga 500, of course we were dazzled by the Amiga "Boing" demo. But what really gave me momentum was "the Juggler" by Eric Graham, which came out in 1987 and I probably saw later that year.
I needed to do find out if I could do that same thing.
We had a copy of the Aztec C compiler (probably version 1 or 2). I seem to remember not having much in the way of documentation for Aztec C, but rather had the published books for AmigaDOS' runtime, including the Intuition programming interface.
But the most sophisticated feature of AmigaDOS that I used was just HAM mode.
The data file format represents only matte colored spheres, and looks something like this:
| File Contents | Meaning |
|---|---|
Some spheres 0;80;50 2;2 15;15;15;20;7 3 30;5;30;5;15;15;0;80 30;10;30;5;15;15;0;80 30;15;30;5;15;15;0;80 18;15;-40 0;0;0 40 |
Title line interlace, width, height X and Y subsampling background color and randomness number of spheres x, y, z, r, then color ... ... eye x, y, z yaw, pitch, roll field of view angle |
The program read all of this with a very simple tokenizer into a structure allocated on the heap, rendered the image to the screen, and then waited. I think I must have used a screenshot tool to copy the output to disk if I saved any images at all, as I don't see image saving in the source.
Here's the data file for just my first initial.
Operation is pretty straightforward; rays are generated for each pixel, those rays are tested against every sphere in the scene, and then the closest hit is shaded with the Z component of the normal at that hit. The shading is thus just Lambertian, assuming a light behind the viewer, infinitely far away. Spheres couldn't be transformed, meaning they couldn't be squashed or stretched.
I used HAM mode in order to maximize my color palette. In HAM mode, during scanout left-to-right, each pixel could change the 4-bit red, green, or blue portion of the currently displayed 12-bit color. While rendering, I kept track of the currently drawn color and updated only the components that had changed. In practice, two or three of the components changed often, so the image has a kind of horizontal smeared quality to it.
There are no reflections, no shadows, no infinite planes with checkboards, no texturing, and no polygons. Kevin Beason wrote a sphere path-tracer in 99 lines of C++ (which is pretty amazing) but I think what I did was reasonable for 500 lines of clumsy C written when I was 16.
I didn't have a good understanding of an "image plane" or a "camera model" at the time. I thought that camera rays were generated by dividing the field of view into equal angles in X and Y. It's probably closest to an equidistant fisheye lens projection, but it's essentially latitude and longitude lines on a sphere. I realize now that the visualization in my head at the time of what the math was doing was not quite right.
There were several things that seemed suspicious to me even then; what happens when the field of view angle is near or greater than 180 degrees; what if the Y field of view is very tall but the X field is very narrow? I don't think I ever rendered any field of view beyond 40 degrees.
I combined that with the idea of camera yaw (rotation around Y), pitch (rotation around rotated X), and roll (rotation around the subsequent view direction). These implement three gimbals.
I never generated enough images to test it, but it turns out the camera model in the code almost works. Turning left and right (yaw) works fine. The projection appears fine for small to medium angles and has the odd characteristic of a given sphere at a given distance from the eye having equal area no matter where it falls in image X and Y.
OpenGL samples the image plane on a rectangular grid. This better matches display on a flat monitor, like an LCD. But the perspective projection in OpenGL distorts shapes at the outside of the image angles, if the angle the image subtends on the display device from the viewer is not the same as the field of view in the camera model.
I did have the notion of aspect ratio. I think the above image was more-or-less correct on the monitor I had at the time.
In any case, it turns out that my camera ray generation code was actually broken. Tilting up or down really distorted the image, and rolling had some kind of trig error and really just didn't work.
I guess I knew at the time that I wanted to move beyond simple shading. However, I knew bump-mapping, anisotropy, and distribution ray-tracing were beyond my understanding at the time, so I simply added a random value to the shaded color. This simple technique did add visual detail and looked better to my eyes, and added an interesting character to the images in combination with HAM mode.
These days you can see the value of path-tracing, texturing, BRDF, and area light sources on the beauty of synthetic images, in which noise matches the actual energy distribution in the scene. I rendered the following image with a different raytracer I wrote later.
|
|
|
|
Finally, I think at the time it was apparent that the edges of objects would have jaggies (aliasing) so I had a supersampling factor for both X and Y. The noisiness of HAM pixels probably overwhelmed that.
Unfortunately I'm missing a machine-readable version of a few of the files. But here's main() and the most significant functions. It's what you'd expect from a 16-year-old who just learned C; a couple of errors, no spaces around operators, cryptic error messages, gotos...
I set about bringing this relic to life, mostly out of curiosity.
Here's source for the restored command-line renderer.>
|
|
|
|
I ported the code to C++ and libc and abandoned windowed output in favor of the very simple PNM image file format. I had to replace AllocMem with new (and malloc in a couple of instances) and FreeMem with delete and free. I added an OpenMP pragma to optimize the pixel loop. This took just a couple of hours. It was really gratifying to see new pixels made from code that was largely still 26 years old. And it took just seconds for a 512 by 512 image; back in high school a 320 by 200 image took many hours. It was a relief to know that I could look at my my old code, which had taken me months to write, and port it and bring it up to date in just hours.
With a working version the program in hand, I thought it would be fun to push it a little further.
I left much of the old code in place and used much of the 26-year-old style.
You can have the code if you'd like, as a reference.
I limited myself to the spirit of the intersection code, shading method, projection model, and camera model I used 26 years ago. I guess I wanted to imagine what had happened if I had decided "okay, this is good" and then went on to add more optimization and more features. I wanted to be able to use the original inits.ray data file that I still had lying around, and then create more models using the same format that I could potentially have read with the original program. In this way I can squint and pretend that this was where I was headed if I had stayed focused.
I added a simple bounding volume hierarchy.
First the BVH construction code finds the centroid of the current set of spheres by averaging their centers.
The algorithm makes a split plane from the centroid and the axis which has the largest extent in the axis-aligned bounding box containing the current set of spheres.
The algorithm creates two new lists of spheres whose centers lie in the half-spaces on either side of the plane.
Construction recurses on those two lists, making leaf nodes when a list is smaller than a predefined maximum number of spheres, or at a predefined maximum number of levels. The maximum depth restriction takes precedence, so leaf nodes could contain many spheres.
Leaf nodes contain the list of spheres to trace..
Every node in the hierarchy has an axis-aligned bounding box that contains of all the spheres of its children. The bounding boxes of the two children of a branching node may actually overlap each other, and this is okay as long as they the volumes are getting progressively smaller.
During intersection, each node checks to see that the ray intersects the node's bounding box. If it does not, then it terminates. If it does, then it traverses the node's children. In C++, the traversal of the BVH is depth-first, using a stack. In the fragment shader, I used "ropes" (Popov et al, 2007) to avoid using a stack, since a stack caused very high register usage and thus very few threads can be active at a time.
The existing eye position and orientation from the file is discarded and a new one created that places the eye at Z with the scene fully in view. The mouse rotates the camera and light using simple trackball math.
While working on this, I fixed the bug in the camera ray generation which distorted the image when the pitch angle wasn't 0. (Oldest bug I've ever fixed, I think.)
The program can render on the CPU and copy to a GL texture and just render a textured quad, or it can render on the GPU entirely using a GLSL 3.00 shader to traverse the BVH tree, intersect the spheres, and shade them. I limited myself to OpenGL 3 Core Profile, in anticipation of possibly running in OpenGL ES 2 later.
The original implementation only removed hidden surfaces, showing off no other effects that ray-tracing does well. So in the interactive C++ version I added shadows. This required some enhancements to the code; in particular, I snap intersection points to the surface of the intersected sphere in order to reduce self-shadowing effects.
I converted some existing models I had in a format for another ray-tracer I'd written. I also wrote a converted from the widely-available PDB format to the old format. The "large-bearing" and "gears" images are courtesy Mark Sims at Nanorex, and the caffeine, DNA, and tomato bushy virus are from PDB. Here are some JPEG images of these models, and a .zip of the models is here.
|
|
|
|
|
I also generated a 10K sphere dataset and 4M sphere dataset to test performance and resource limits.
All of these models are interactive in CPU-only mode on a 4-core laptop (Q820 at 1.7GHz).
Performance on my GPU (Quadro FX 380M) is close to that of the CPU but the GPU is outpaced further and further as the model complexity goes up. On other GPUs (e.g. whatever NVIDIA model is in the MacBook Pro Retina) the GPU renders faster than the CPU. I've put some work into optimizing the shader but mostly I rely on the compiler for optimization. I don't do much to improve SIMD utilization but since most of my rays are either from the eye or to the light source, they are fairly coherent.
Finally, it seemed to me that this code's journey would only be complete if it was visible to any viewer with a capable web browser. It's at the top of this page. I wrote a C++ program to produce Javascript for the OpenGL textures that encapsulate the spheres and BVH. I ported the main loop of my GLUT program to Javascript and passed the texture data and shader to WebGL. For fun I also threw in one reflection bounce and a shadow occlusion test at the reflection hit. Because there's a wide range of WebGL performance out there, the script runs a rudimentary performance characterization and tries to show the most complicated model that is most likely to run at 5 fps on your machine.
WebGL is based on OpenGL ES 2.0 and specifically mandates that implementations must only accept shaders conforming to the minimum GLSL ES 1.00 specification. That means constant-length for-loops and no while-loops or do-loops. Luckily for me, the "continue" and "break" and "return" keywords are allowed. (These restrictions allow a finite-size unrolled GPU instruction stream containing only forward branching as flow control.)
My bounding volume hierarchy is an arbitrary depth and not perfect binary tree, traversal doesn't visit every node, and nodes contain variable-sized arrays of objects. Those don't map directly to constant-length loops! I made a large constant for the outer BVH tree traversal and "return" out of it when terminating, and I use a smaller constant for the leaf-node object loops and "break" when hitting the end of the object list. One could probably algorithmically determine the constant needed for the BVH traversal based on the worst-possible ray path. I just used inspection for this document.
WebGL also doesn't provide any extension at this time for integer textures (where the components are read by shaders as integer components and not normalized) so I stored all my values as floats instead. I can't exactly represent any integers larger than 2^24 and my models and hierarchy are limited by that. Thus I couldn't have any more than four million spheres nor a BVH with more than four million nodes. Four million spheres wouldn't be interactive on my laptop on WebGL, so I'm okay with that.
After all this, I also found WebGL implementations vary in some frustrating ways.
I started development on my laptop, under Linux, with an NVIDIA GPU. NVIDIA's compiler is pretty forgiving, which makes porting to a stricter compiler a little painful. I found I could not have a variable with the same name as its struct on any other compiler. For example, "inout ray ray" failed on MacOSX. Presumably the GLSL ES spec is clear about this but there's not much incentive to be more strict if a vendor already handles a superset. The error message was also nonsensical, pointing to an empty line and stating only "syntax error syntax error", so that made it very hard to debug.
Chrome on Windows times out on linking my shaders together when I have a larger outer loop count (this appears to be Chrome issue 113009, which is noted will be fixed by Chrome 30 but wasn't fixed in 30 for me...). I assume many viewers of this web page will use Chrome on Windows, so I reduced my BVH loop size on Chrome but the larger models probably will not look right.
Firefox 24 hangs completely running this page. This is filed as Firefox Issue 919886.
Chrome on Android on my Galaxy Nexus starts to render, but appears to time out. (I am pretty impressed I may be able to run my WebGL app on my phone, though.) Other phones and tablets either don't support float textures or high precision floats, and I'm just not willing to shoehorn my code into platforms that limited.
The existing code can visualize molecular models of moderate size in many web browsers, so it actually has some use. With a little work, I could build a browser for one or more repositories of PDB files. Although I'm pretty pleased with the result of a few month's tinkering, this isn't much more than a toy. PDB files these days are statically rendered with more sophisticated methods than a bunch of reflective spheres, but this could be an interactive camera placement tool on the front end of a high-quality renderer.
There's been a lot of work in interactive ray-tracing over the years. There are a couple dozen ways to relatively quickly improve this program. If I didn't have a day job, I'd import more sophisticated models including textured triangles, optimize it more heavily using SSE and packets, add shaders for surface properties, move to WebCL, implement Metropolis Light Transport, etc.
Looking back on what I wrote then, I'm sort of a weird combination of embarrassed and pleased. I was able to update that 26-year-old C pretty quickly to relatively modern data structures and technologies by reading papers and checking documentation.
Should I have tried harder back then to implement from papers and other people's work, rather than try and figure things out for myself? Maybe the skills I have now only developed because I struggled through and internalized those early concepts, rather than just porting from a paper. Or maybe I didn't go as far as I could because I wasted time on incomplete or incorrect understanding of the concepts. I am not sure how I would assess that now.
The advice I would give myself at 16 (or any other 16-year-old, or any person anywhere) would be to learn how to make a plan and stick to it, make priorities and honor them, and read the documentation and papers more thoroughly.


Public Member Functions | |
| void | Connect (INSession session) |
| void | Connect (INSession session, Action< bool > callback) |
| void | Disconnect () |
| void | Disconnect (Action callback) |
| void | Login (INAuthenticateMessage message, Action< INSession > callback, Action< INError > errback) |
| void | Logout () |
| void | Logout (Action< bool > callback) |
| void | Register (INAuthenticateMessage message, Action< INSession > callback, Action< INError > errback) |
| void | Send< T > (INCollatedMessage< T > message, Action< T > callback, Action< INError > errback) |
| void | Send (INUncollatedMessage message, bool reliable, Action< bool > callback, Action< INError > errback) |
| void | Send (INUncollatedMessage message, Action< bool > callback, Action< INError > errback) |
Properties | |
| uint | ConnectTimeout [get] |
| string | Host [get] |
| string | Lang [get] |
| INLogger | Logger [get] |
| Action< INDisconnectEvent > | OnDisconnect [get, set] |
| Action< INError > | OnError [get, set] |
| Action< INMatchmakeMatched > | OnMatchmakeMatched [get, set] |
| Action< INMatchData > | OnMatchData [get, set] |
| Action< INMatchPresence > | OnMatchPresence [get, set] |
| Action< INTopicMessage > | OnTopicMessage [get, set] |
| Action< INTopicPresence > | OnTopicPresence [get, set] |
| Action< INNotification > | OnNotification [get, set] |
| uint | Port [get] |
| string | ServerKey [get] |
| long | ServerTime [get] |
| bool | SSL [get] |
| uint | Timeout [get] |
| bool | Trace [get] |
Detailed Description
Definition at line 21 of file INClient.cs.
Member Function Documentation
◆ Connect() [1/2]
| void Nakama.INClient.Connect | ( | INSession | session | ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
◆ Connect() [2/2]
| void Nakama.INClient.Connect | ( | INSession | session, |
| Action< bool > | callback | ||
| ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
◆ Disconnect() [1/2]
| void Nakama.INClient.Disconnect | ( | ) |
Implemented in Nakama.NClient, and Nakama.NManagedClient.
◆ Disconnect() [2/2]
| void Nakama.INClient.Disconnect | ( | Action | callback | ) |
Implemented in Nakama.NClient, and Nakama.NManagedClient.
◆ Login()
| void Nakama.INClient.Login | ( | INAuthenticateMessage | message, |
| Action< INSession > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
◆ Logout() [1/2]
| void Nakama.INClient.Logout | ( | ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
◆ Logout() [2/2]
| void Nakama.INClient.Logout | ( | Action< bool > | callback | ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
◆ Register()
| void Nakama.INClient.Register | ( | INAuthenticateMessage | message, |
| Action< INSession > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
◆ Send() [1/2]
| void Nakama.INClient.Send | ( | INUncollatedMessage | message, |
| bool | reliable, | ||
| Action< bool > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
◆ Send() [2/2]
| void Nakama.INClient.Send | ( | INUncollatedMessage | message, |
| Action< bool > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
◆ Send< T >()
| void Nakama.INClient.Send< T > | ( | INCollatedMessage< T > | message, |
| Action< T > | callback, | ||
| Action< INError > | errback | ||
| ) |
Implemented in Nakama.NManagedClient, and Nakama.NClient.
Property Documentation
◆ ConnectTimeout
|
get |
Definition at line 23 of file INClient.cs.
◆ Host
|
get |
Definition at line 25 of file INClient.cs.
◆ Lang
|
get |
Definition at line 27 of file INClient.cs.
◆ Logger
|
get |
Definition at line 29 of file INClient.cs.
◆ OnDisconnect
|
getset |
Definition at line 31 of file INClient.cs.
◆ OnError
|
getset |
Definition at line 33 of file INClient.cs.
◆ OnMatchData
|
getset |
Definition at line 37 of file INClient.cs.
◆ OnMatchmakeMatched
|
getset |
Definition at line 35 of file INClient.cs.
◆ OnMatchPresence
|
getset |
Definition at line 39 of file INClient.cs.
◆ OnNotification
|
getset |
Definition at line 45 of file INClient.cs.
◆ OnTopicMessage
|
getset |
Definition at line 41 of file INClient.cs.
◆ OnTopicPresence
|
getset |
Definition at line 43 of file INClient.cs.
◆ Port
|
get |
Definition at line 47 of file INClient.cs.
◆ ServerKey
|
get |
Definition at line 49 of file INClient.cs.
◆ ServerTime
|
get |
Definition at line 51 of file INClient.cs.
◆ SSL
|
get |
Definition at line 53 of file INClient.cs.
◆ Timeout
|
get |
Definition at line 55 of file INClient.cs.
◆ Trace
|
get |
Definition at line 57 of file INClient.cs.
The documentation for this interface was generated from the following file:
- Nakama/INClient.cs


Overhead of booting Erlang VM
Wanted to measure the overhead of booting an Erlang virtual machine, do nothing and shut it down.
These measurements are on 2Ghz Core-2 Duo desktop machine running ubuntu 12.04 LTS.
$ /usr/bin/time -p erl -noinput -noshell -s init stop
real 1.13
user 0.14
sys 0.01
Looks like it takes about 1.130 Seconds - this includes both booting and shutdown times. init:stop/0 is the proper way to shutdown Erlang virtual machine and we don't really know whether most of the time went, whether in booting the VM or to shutdown the VM. To figure this out let us try is using another method,
$ /usr/bin/time -p erl -noinput -noshell -s erlang halt
real 0.14
user 0.13
sys 0.01
erlang:halt/0 abruptly shutdowns the VM, the above numbers give us an idea on how-long it takes to boot Erlang-Virtual-Machine.


Inventory
Data Entry
Manufacturers
Acme Co
We inventory your stuff!
Item Number
Item Name
Inventory Count
Submit


I'm referring to those on top of the Battlelog page, under the soldier name. DICE just added a new shortcut for the loadouts (http://i.imgur.com/Ci0QL.jpg)
jack
Another small bug with the shortcuts is that on the default dice ones when you go to that page it goes orange, but with the bblog ones it doesn't. It's not a large issue, just something I noticed. The awards button being on a new line is quite annoying though
ORFK
Global Moderator
jack wrote:
The awards button being on a new line is quite annoying though
For that we should change in
ul.base-header-soldier-nav > li > a
padding: 0px 10px;
to
padding: 0px 8px;
ORFK
Global Moderator
Vehicle Service Stars are not longer visible because DICE have wirtten the "Text" all unlocked" to the column... -.-
BrainFooLong
Administrator
Well, will be fixed in next version.
About orange active icons, already reported in the past.
Requires a lot more work for this very minor layout issue therefore it's not planned for next releases.


Command Line Tips and Tricks
Moving cursor in commandline
# Clears the entire line (press ctrl and u together)
$ctrl + u
# Delete word before the cursor
$ctrl + w
# I rarely use above keys since i joined vi camp:P
# Enjoy the power of vi in command line
# I really love it so its in may .bash_profile :)
$set -o vi
Show working directory
$pwd
Listing file
# List all file and folder in directory ~/Desktop with additional information
$ls -al ~/Deskop
# List all the file having 2 character extension
$ls *.??
# List file start with k or s
$ls [ks]*
# List all file whose first character is not k or s
$ls [!ks]*
# List file whose second character is u or i
$ls ?[ui]*
Change Directory
# Take you to home directory
$cd
# Change directory to Documents
$cd Documents/
# Take you to previous directory
$cd ..
# Move last working directory
$cd -
Make directory
# Make entire complex directory trees inside current location ./work/a/b/c
$ mkdir -p work/a/b/c
# Make directory tree
$mkdir -p work/{d1,d2}/{src,bin,bak}
Delete files and folder
# Remove unwoantedFile.txt
$rm unwoantedFile.txt
# Remove all file having extension .pyc
$rm *.pyc
# Remove directory unwnatedFolder
$rm -r unwnatedFolder
Rename file
# Change the name of the file from file.txt text to file.xml
# Both commands do same work. Personally i prefer second one :)
$mv /home/abc/file.txt /home/abc/file.xml
$mv /home/abc/file.{txt,xml}
Copy file
$cp /source/folder/a.txt /destination/a.txt
Searching files
# Find files/Folder haveing name workspace
$find . -name workspace
# Find file used in last 10 mins
$find / -mmin -10
# Find files modified between now and 1 day ago (i.e., within the past 24 hours)
$find . -mtime 0
# Find files modified less than 1 day ago (i.e., within the past 24 hours, as before)
$find . -mtime -1
# Find files modified between 24 and 48 hours ago
$find . -mtime 1
# Find files modified more than 48 hours ago
$find . -mtime +1
# Find files modified between 6 and 9 minutes ago
$find . -mmin +5 -mmin -10
# These options can be combined
$find . -type f -mtime 0 -iname *.mp
# Find file which has permission 644
$find . -perm 644
# Find all the txt files which contains word linux
$find . –name "*.txt" –print | xargs grep "linux"
Work with compressed file
# Create file1_file2.tar by compressing /home/file1 and /home/file2
$tar -cvf file1_file2.tar /home/file1 /home/file2
# Uncompress file
$tar -xvf file1_file2.tar
File count in a directory
$find . -type f | wc -l
$ls -laR | wc -l
Alias long and frequent command
# map ls -al to la
$alias la="ls -al"
# i have this in my .bash_profile, i really love it
$alias blog="cd /home/surendra/abc/cde/fgh/xyz; source activate blog"
$alias ipn="cd ~/Dropbox/notebooks/; source activate lab; ipython notebook "
$alias dush="du -sm *|sort -n|tail"
Kill all target process
# Really handy to combine simple command to do complex task.
$ps -ef | grep php| awk '{print $2}' | xargs kill
$ps aux | grep mypattern | awk '{ print $2}' | xargs kill
# Kill all the process associate with port 4000
$lsof -i :4000| awk '{ NR>1 print $2}' | xargs kill
Executing multiple command at once
# Run two command in sequence as if they are typed in 2 different lines
$mkdir dir1; cd dir1
# Execute second command if first command fails
$mkdir dir1 || sudo mkdir dir1
# Execute second command if first common succeed
$mkdir dir1 && cd dir1
# Change to directory cd work/a/b/c but if the directory does not exist crate it
# then unzip ~/archive.tar in the location
$cd work/a/b/c || mkdir -p work/a/b/c && tar xvf -C work/a/b/c ~/archive.tar
Crontab for scheduling
# Edit the crontab
$crontab -e
# List currnet crontab
$crontab -l
# Run python file at desktop. */5 => every 5 minutes
# MIN HOUR MDAY MON DOW COMMAND
*/5 * * * * python ~/Desktop/db_track.py
# Run command at 5:00am,10:00am and 3:00pm every day
00 5,10,15,20 * * * python ~/Desktop/db_track.py
#To remove crontag
$corntab -r
Environment variable
# List all environment variables
$env
# Executable path
$echo $PATH
Change mode of file
# Set file permission write, read and execute to user, group and other (777)
$chmod 777 file1
# Makes the permissions of file2 the same as file1
$chmod --reference file1 file2
Command History
# Show last used commands
$(up arrow)
# Latest 20 history command
$history 20
# List command history containing word mysql
$history 500 | grep mysql
# Reverse search in command history (press ctrl and r together)
$Ctrl + r
Repeat Ctrl + r to loop through results
# Cancel the search and restore original line
Ctrl + g
To see the usage and free space in hard drive
# Show free disk space in human readable way
$df - h
# Utilized system space
$df -lP| awk 'NR>1 {sum +=$3 } END {print "%d GiB", sum/2^20}'
# Total system space
$df -lP| awk 'NR>1 {sum +=$2 } END {print "%d GiB", sum/2^20}'
# How much disk storage directory "somedir" is using Much much more intuitive and readable.
$du -sh somedir
# Get the 10 biggest files/folders for the current direcotry
$du -s * | sort -n | tail
Copy over remote computer
# Copy files from a local computer to a remote computer
$scp somefile username@server:/home/username/
# Copy files from remote computer to local computer
$scp username@server:/home/username/file_name /home/local-username/file-name
# This is really interesting and very useful, as the files copied from one server
# to the other,are not going to pass through your computer. The traffic is going
# to pass from one server to the other directly.
$scp user_name1@server1:/home/user_name1/file_name user_name2@server2:/home/user_name2/
SSH connection
ssh -p port number username@ip_address
Miscellaneous
# Run last command as root
$sudo !!
# Clear terminal screen
$ctrl + l
# Increase the font size (press control and plus together)
$ctrl+
# Decrease font size (press control and minus together)
$ctrl-
# Command completion (tab key)
#instead of typing ifconfig you can do following
$ifc(press tabkey)
# Generate a random ordered list of 20 numbers. For example to determine order of presentation
$seq 20 | shuf
# Download file using commandline
$wget http://aaa.come/abc.pdf
# Find location of specific **ls** command
$where is ls
# Displays a single line description of a command
$whatis chmod
$whatis mkdir
# Get detailed information of system
$uname -a
# View configuration of network interface
$ifconfig -a
# Display the process in the system sorted by cup usage
$top
# See memory information
$cat /proc/memingo
# See current date time in command line
$date
# Display the top ten running processes - sorted by memory usage
# ps returns all running processes which are then sorted by the 4th field in numerical order and the top 10 are sent to STDOUT
$ps aux | sort -nk +4 | tail
# Delete all files in a folder that don't match a certain file extension
$rm !(*.py|*.java|*.sh)
Using hashtag in commands
# Run php command to kill the process
$ps -ef | grep php| awk '{print $2}' | xargs kill
# To run the same command we can do reverse search.
#However, if the command content is not unique appending hashtag may slove the issue.
$ps -ef | grep php| awk '{print $2}' | xargs kill #kill_php
Working with external drives
# View All Mounts
$mount
# See the disk logical name
$sudo fdisk -l
# The general mount command syntax to mount a device
$mount -t type device destination_dir
# Mount drive sdd1
$mount /dev/sdd1 /mnt
# Unmount drive /dev/sdd1
$umount /dev/sdd1


An object with plugin names mapped to the names of the plugins that depend on it. This dependency graph is represented as an adjacency list.
The plugin directory. This object is a dictionary containing plugin names as keys and the plugin objects as values.
Plugins do not have access to this directory.
The plugin registry. This object is a dictionary containing plugin names as keys and their corresponding exposed values as values.
The preferred way to access plugins in the registry is through another plugin. Accessing the registry through Core outside of a plugin is discouraged.
Register one or more plugins with Core.
Plugins given here are registered as a batch: the next lifecycle event does not occur until all plugins in this batch have experienced the current lifecycle event.
The registration lifecycle is as follows:
This function ensures that all plugin dependencies are available before proceeding to register the plugins. Circular dependencies are supported. If dependencies are missing, an error will be thrown.
An array of plugin instances to register.
Unregisters the given plugins. The plugin registry, directory and
dependency graph are all updated. The optional unregister
function of each plugin is called when the plugin is unregistered.
The order in which the plugins are unregistered is unspecified.
The names of the plugins to unregister.
Unregisters all plugins. The plugin registry, directory and
dependency graph are all cleared. The optional unregister
function of each plugin is called when the plugin is unregistered.
The order in which the plugins are unregistered is unspecified.
Generated using TypeDoc
The core of the GroupBy Elements plugin system. This entity is responsible for managing plugins and provides a mechanism for plugins to communicate with each other.


Welcome to my home page
This is my home page and I'm working on it currently.
Please visit the differents pages of my site !
Navigation :
Home
Contact
About


Full Stack Web Developer with over four years of experience designing/managing media campaigns and administering IT support. Strengths include pragmatic problem-solving, clear communication, and attention to detail. Managed multiple projects including the production of print/digital media for fundraising campaign totaling in $2.3 million in 2018.
Educated at UT Austin where I earned a Certification in Full-Stack Web Development. Skilled in JavaScript, jQuery, Node, MySQL, Express, MongoDB, React and HTML/CSS. Passionate about building meaningful applications with attention to readability and scalability as well as learning new technologies and languages. Multi-talented professional who works well independently as well as on teams.
Current status: Available for hire
jQuery
Express.js
MongoDB
React
mySQL
Javascript
Feel free to check out some of my past projects
All recommendations are straight from my LinkedIn!
Michelle was a star student at UT's Full Stack Web Development Bootcamp. I was consistently impressed with her hard work and dedication throughout the course. She was a pleasure to assist and could quickly overcome the challenges she was facing. She was a great leader during group projects and would often help out struggling students. I would highly recommend her for a Web Developer role.
Brian McAlonen,
Full Stack Web Developer
Michelle is talented, creative, and a joy to work with. She is very gifted at facilitating collaboration, helping people with different perspectives on a project find common ground and elegant solutions. She notices details and thinks critically about what she sees, evaluating approaches so that she can change things that aren't working and build on things that are. The care and commitment Michelle brought to her work in our organization were a great asset. She would make an excellent hire.
Claire Berry,
Associate Pastor - WHPC
During our time at The University of Texas Full Stack Development Bootcamp, Michelle and I collaborated on a project. The project involved a full stack website marketing to catering companies. Michelle's work ethic and skill set was instrumental in our success. She was very comfortable working with the front end of the project, but also took the initiative to help me with some of the back end work. Michelle is quick to learn new technologies (Express Handlebars & SQL) and is a dedicated team member. She was reliably available for team meetings and work sessions. I was very fortunate to work with her and I have no doubt in her future success. Phillip Valdez,
Full Stack Web Developer
It is rare that you come across someone with Michelle's unique and varied skill set. She expertly filled the role of handling communications, graphic design and IT at Westlake Hills Presbyterian Church for a little over two years. This included thoughtfully incorporating content and her design creations to the website, social media, varied print products, and visual slides; all the while addressing the staff's IT needs of both Mac and PC platforms.
Cynthia Mohle,
Office Manager - WHPC
If you have any questions, comments
or would like to chat about web development,
shoot me an email or add me on LinkedIn.
Full-Stack Web Developer


cascade
Reactive Cascade is an Android library for lambda-friendly reactive programming. All operations are concurrent unless there is an explicit dependency in the function or reactive chain.
Documentation is scarce as this is still an early phase project. See /docs for some presentations and JavaDoc. More will follow.
The CI server is https://travis-ci.org/futurice/cascade Note that due to the nature of the library, most tests are "system tests" run in a custom Android App rather than traditional unit tests. We will migrate toward using Travis CI better over time.


Component: CC2420SpiWireC
configuration CC2420SpiWireC
Author:
Jonathan Hui<EMAIL_ADDRESS>Version:
$Revision: 1.1 $ $Date: 2007-07-04 00:37:16 $
Provides
interface
ChipSpiResource
interface
CC2420Fifo
as
Fifo
[uint8_t]
interface
CC2420Ram
as
Ram
[uint16_t]
interface
CC2420Register
as
Reg
[uint8_t]
interface
Resource
[uint8_t]
interface
CC2420Strobe
as
Strobe
[uint8_t]
Wiring


Memory Management
RAM Memory
This memory type loses its contents when the system is turned off. The system uses this memory at runtime to quickly store and retrieve data. TinyCLR OS is a managed operating system -- objects in RAM are automatically tracked and freed as needed. The Garbage Collector (GC) runs when the system is low on available RAM, where it will look for unused objects and free the memory they occupy. You may also invoke the GC at any time using GC.Collect()
.
RAM is the main workspace for your application -- running out of memory will cause your application to fail. It is important to understand the memory needs of your application and to plan accordingly. When creating a buffer for a UART for example, use a reasonable size buffer that's large enough to handle your communication needs without being so large as to waste memory.
RAM Memory Size
The amount of free and used memory can be shown at runtime, which can be helpful for debugging and optimizing your application.
var freeRam = GHIElectronics.TinyCLR.Native.Memory.ManagedMemory.FreeBytes;
var usedRam = GHIElectronics.TinyCLR.Native.Memory.ManagedMemory.UsedBytes;
Allocating Memory
The TinyCLR OS Garbage Collector allocates and frees objects automatically on the heap. When the memory gets fragmented, the system will compact the heap. This is desired behavior, but this also creates a problem when sharing resource between TinyCLR OS and native drivers. In a more advanced application, a user may have a buffer that gets written from an interrupt routine. Assuming this is implemented in native code, we would need a buffer that always sits at a fixed address. Using var buffer = new byte[12]
will not work as the garbage collector may move the buffer to compact the heap.
A fixed location buffer can be allocated using GHIElectronics.TinyCLR.Native.Memory.ManagedMemory.Allocate()
. Keep in mind that this is not managed memory anymore, and you are responsible for freeing this memory using GHIElectronics.TinyCLR.Native.Memory.ManagedMemory.Free()
.
Memory Allocation Cost
Creating and disposing of objects is costly, especially when done in inner loops. The following code sends 10,000 bytes from an array over a network one byte at a time.
for (int i=0; i<10000; i++) {
var byteArray = new byte[1];
byteArray[0] = arrayData[i];
Network.SendByteArray(byteArray);
}
The code will work just fine, but as byteArray[] is created within the loop, 10,000 single element byte arrays will be created and disposed of. It is much more efficient to create the array only once.
byte[] byteArray = new byte[1];
for (int i=0; i<10000; i++) {
byteArray[0] = arrayData[i];
Network.SendByteArray(byteArray);
}
Disposing of Objects
As TinyCLR OS is a managed system that monitors and frees resources, memory leaks are less of a concern than they are for unmanaged systems. However, there is still chance that issues can arise, especially in embedded systems where objects can be a combination of memory and other hardware. Take a GPIO pin for example. What happens when we no longer have a reference to a GPIO pin? Will the GC free the object? Will the pin change in state when the GC frees the pin? And finally, why would a pin (or any physical object) be left for the GC to decide how it should be freed? The answer is that we need to understand and track these resources manually.
This example code will declare and initialize a GPIO pin in a function, causing the main program to lose control of the pin. The BadExample
method uses the LED's GPIO pin, but it doesn't free it.
class Program {
static void Main() {
BadExample();
//The following line will raise an exception:
var led = GpioController.GetDefault().OpenPin(SC20100.GpioPin.PB0);
led.SetDriveMode(GpioPinDriveMode.Output);
led.Write(GpioPinValue.Low);
}
static void BadExample() {
var led = GpioController.GetDefault().OpenPin(SC20100.GpioPin.PB0);
led.SetDriveMode(GpioPinDriveMode.Output);
led.Write(GpioPinValue.High);
}
}
The next example will Dispose
of the pin and the code will work; however, disposing the pin may take the pin back to its default state. There is no exact definition on what a piece of hardware (the GPIO pin in this example) does when disposed.
class Program {
static void Main() {
GoodExample();
//This code will now work
var led = GpioController.GetDefault().OpenPin(SC20100.GpioPin.PB0);
led.SetDriveMode(GpioPinDriveMode.Output);
led.Write(GpioPinValue.Low);
//...
}
static void GoodExample() {
var led = GpioController.GetDefault().OpenPin(SC20100.GpioPin.PB0);
led.SetDriveMode(GpioPinDriveMode.Output);
led.Write(GpioPinValue.High);
//Free the pin, but this may cause the pin to revert to its default state.
led.Dispose();
}
}
The following example shows the best way to handle the situation by moving the LED object declaration so it is available and accessible to the entire class.
class Program {
static GpioPin led; //You can now use 'led' anywhere within 'Program'
static void Main() {
// Init the hardware
led = GpioController.GetDefault().OpenPin(SC20100.GpioPin.PB0);
led.SetDriveMode(GpioPinDriveMode.Output);
Example();
led.Write(GpioPinValue.Low);
}
static void Example() {
led.Write(GpioPinValue.High);
}
}
Garbage Collection
TinyCLR OS automatically disposes of objects that are no longer needed. Garbage collection eliminates the need to manage memory manually, and reduces or eliminates some types of bugs.
The act of garbage collection can temporarily reduce the responsiveness of your system, so it may be beneficial to actively manage garbage collection to improve real time response. Garbage collection will usually only run when there is a failed memory allocation, so by properly structuring your program you should be able to eliminate garbage collection or greatly reduce it. String operations are particularly troublesome in the creation of garbage as strings are immutable.
To reduce garbage collection, minimize the use of dynamically allocated buffers and minimize allocations in routines that get called often by preallocating or using static objects. Minimize string manipulation. As strings are immutable, manipulating a string creates a new string and the old string becomes garbage. Using StringBuilder to manipulate strings may help reduce garbage generation.
You can use GC.GetTotalMemory(true)
to find out how much memory is being used. Checking free memory often during program execution will let you know if the amount of free memory is decreasing and how quickly.
You can use Debug.GC(true)
to force garbage collection. You might use this to ensure that garbage collection occurs during a period when responsiveness is less important.

TinyCLR also supports unmanaged heap space. Unmanaged heap space can be used for large graphic buffers, for example. In unmanaged heap space, it is up to the programmer to make sure memory is correctly allocated and deallocated. Read more about unmanaged heap space here.
Battery Backed RAM
SITCore devices support 4 Kbytes of battery backed RAM. Details can be found in the Real Time Clock Tutorial.
Flash Memory
Flash memory does not lose its contents on power loss. There are special requirements to write to flash but you can read Flash just like RAM. When deploying a program, the TinyCLR Device Deployment
window will show what is being loaded and how large it is. It will then show how much free Flash is still available.
Assemblies deployed. There are 2,408,408 bytes left in the deployment area.
Flash is not typically written to at runtime. The system will function even with no free available FLASH.
Resources
TinyCLR OS allows resources, like fonts and images, to be merged into the project as a resource and then deployed to the device's flash. Those resources can then be fetched into RAM and used at runtime. The Resource tutorial has more details.
Direct Access
Unsupported at this time.
Tip
You can only read from Flash, not write.


We use the best materials and the latest technologies, therefore we are confident in the quality of roads we do. Our experience and long-term business life prove it is true.
We use the best materials and the latest technologies, therefore we are confident in the quality of roads we do. Our experience and long-term business life prove it is true.
We use the best materials and the latest technologies, therefore we are confident in the quality of roads we do. Our experience and long-term business life prove it is true.


Research assistant of prof. W.Daniel Kissling. My task in here was to develop a methodology to gather primary biodiversity data on palm - frugivore interactions in South East Asia from published literature. I also explore new ways to analize and interactivly visualize data on species interactions
I participated as contributor to the IUCN - Red List Assesment of Ecuadorian Endemic Reptiles, Amphibians and Birds. My main task was to update and aggregate available information on species occurrences for the Country. For Endemic Reptiles I provided the draft information (including distribution maps and distribution models) for the SIB tabs that were used for the assesment workshop with the IUCN- SSC Amphibian and Reptiles Specialists Group.
Other tasks in the lab involved the maintainance, taxonomic identification and curation of the araneid spider (Araneae:Araneidae) collection of the lab (~800 specimens).In addition, I did informal assistance regarding specific questions on statistics and geographical information systems to biology and biotechnology bachelor students
PNUD - Ecuadorian Ministry of Environent (MAE): Here, along with a team of consultants, I participated in the development of a methodology to measure the management effectiveness of the Ecuadorian Protected Areas System (SNAP). My main tasks in this project were to compile information on the management strategies for each Protected Area within the system, field visits to the Protected Areas to conduct interviews with community people directly under the influence of the Protected Area management regulations.
Ecuadorian Ministry of Knowledge : Here I participated in the project 'Development of a proposal for the promotion of Scientific Research in the Ecuadorian Amazon, "IKIAM"'. My main tasks were to gather information on Amazon Biodiversity, create maps of biogeographic regions within the amazon.
WWF : Here I participated in the proposal for the project 'La Tintorera'. My main tasks were to analize data on tourist demand, visitation and use of Isabela Island and the Tintorera Islet in Galapagos.
My tasks here were to help in grading for the courses of Zoology (2 sem), Biosphere (2 sem), Ornithology (1 sem)


Evaluating results using scoring functions in the PRT
The Pattern Recognition Toolbox offers several functions for evaluating your results. The functions described in this section all operate on PRT data sets, generally these will be the data sets returned from a classification, clustering or regression operation.
Contents
Binary scoring functions
The first set of scoring functions work on binary data, to evaluate percent error, plot receiver operating curves and similar operations. In the following example, a simple binary classifier is created and scored
ds = prtDataGenUnimodal; % Load a binary data set class = prtClassGlrt; % Create a classifier. result = class.kfolds(ds,3);% Perform a k-fold validation, score the result prtScoreRoc(result); % Plot the receiver operating curve
Related to the receiver operating curve, another useful metric is the area under the ROC curve, which can be computed using prtScoreAuc:
auc = prtScoreAuc(result)
auc = 0.9978
Note, in the above example, the data stored in result are decision statistics. By setting the decision rule, you can compute a percent correct:
class.internalDecider = prtDecisionBinaryMinPe; % Set the internal decider result = class.kfolds(ds,3); % K-folds validation prtScorePercentCorrect(result) % Compute the percent correct
ans = 0.9650
Recall that when a PRT class object is run or cross-validated, the output is stored in the observations of the resulting dataset, and the class labels, if present, are copied and stored in the tagets of the resulting dataset. When prtScorePercentCorrect is called on a data set, these two fields are compared.
Another common method of scoring is to evaluate the cost vector for a set of decision statistics. First, clear the internal decider, then perform cross-validation again. Finally, evaluate the decision statistics for a particular cost matrix using the prtScoreCost function:
class.internalDecider = []; result = class.kfolds(ds,3); costMatrix = [0 1; 2 0]; % Define a cost matrix. This cost structure makes % deciding H1 when H0 is truth twice as costly as % deciding H0 when H1 is truth. %prtScoreCost(result, costMatrix) cost = prtScoreCost(result.getX, result.getY, costMatrix);
Scoring M-ary classifiers
To score M-ary classifier, you can again use the prtScorePercentCorrect function. In addition, it is often useful to plot the confusion matrix Consider the following example:
ds = prtDataGenMary; % Load a data set class = prtClassMap; % Create an M-ary classifier % Set the internal decider class.internalDecider = prtDecisionMap; result = class.kfolds(ds,3); % Perform K-folds validation prtScoreConfusionMatrix(result); prtScorePercentCorrect(result)
ans = 0.8467
Scoring regression algorithms
To score regression algorithms, use the prtScoreRmse function. Consider the following example:
dataSet = prtDataGenNoisySinc; % Load a prtDataRegress data set, a % noisy Sinc function reg = prtRegressRvm; % Create a prtRegressRvm object reg = reg.train(dataSet); % Train the prtRegressRvm object dataSetOut = reg.run(dataSet); % Run the regressor on the data % Compute the truth and the guess and evaluate: truth = sinc(dataSet.getX); guess = dataSetOut.getX; prtScoreRmse(truth, guess)
ans = 0.3366
All scoring functions in the Pattern Recognition Toolbox have the same API as discussed above. The difference is in the performance metric to be evaluated. For a list of all the different functions, and links to their individual help entries, A list of commonly used functions


|
OpenM++ runtime library (libopenm)
|
OpenM++ data library: public interface. More...
Go to the source code of this file.
Classes | |
| class | openm::IDbExec |
| database connection wrapper to execute sql commands. More... | |
Namespaces | |
| openm | |
| openM++ namespace | |
OpenM++ data library: public interface.


Terms and Conditions
Welcome to skincredit.com!
These terms and conditions outline the rules and regulations for the use of Skin Credit's Website, located at http://skincredit.com/.
By accessing this website we assume you accept these terms and conditions. Do not continue to use skincredit.com if you do not agree to take all of the terms and conditions stated on this page.
The following terminology applies to these Terms and Conditions, Privacy Statement and Disclaimer Notice and all Agreements: "Client", "You" and "Your" refers to you, the person log on this website and compliant to the Company’s terms and conditions. "The Company", "Ourselves", "We", "Our" and "Us", refers to our Company. "Party", "Parties", or "Us", refers to both the Client and ourselves. All terms refer to the offer, acceptance and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate manner for the express purpose of meeting the Client’s needs in respect of provision of the Company’s stated services, in accordance with and subject to, prevailing law of Netherlands. Any use of the above terminology or other words in the singular, plural, capitalization and/or he/she or they, are taken as interchangeable and therefore as referring to same.
Cookies
We employ the use of cookies. By accessing skincredit.com, you agreed to use cookies in agreement with the Skin Credit's Privacy Policy.
Most interactive websites use cookies to let us retrieve the user’s details for each visit. Cookies are used by our website to enable the functionality of certain areas to make it easier for people visiting our website. Some of our affiliate/advertising partners may also use cookies.
License
Unless otherwise stated, Skin Credit and/or its licensors own the intellectual property rights for all material on skincredit.com. All intellectual property rights are reserved. You may access this from skincredit.com for your own personal use subjected to restrictions set in these terms and conditions.
You must not:
- Republish material from skincredit.com
- Sell, rent or sub-license material from skincredit.com
- Reproduce, duplicate or copy material from skincredit.com
- Redistribute content from skincredit.com
This Agreement shall begin on the date hereof.
Parts of this website offer an opportunity for users to post and exchange opinions and information in certain areas of the website. Skin Credit does not filter, edit, publish or review Comments prior to their presence on the website. Comments do not reflect the views and opinions of Skin Credit,its agents and/or affiliates. Comments reflect the views and opinions of the person who post their views and opinions. To the extent permitted by applicable laws, Skin Credit shall not be liable for the Comments or for any liability, damages or expenses caused and/or suffered as a result of any use of and/or posting of and/or appearance of the Comments on this website.
Skin Credit reserves the right to monitor all Comments and to remove any Comments which can be considered inappropriate, offensive or causes breach of these Terms and Conditions.
You warrant and represent that:
- You are entitled to post the Comments on our website and have all necessary licenses and consents to do so;
- The Comments do not invade any intellectual property right, including without limitation copyright, patent or trademark of any third party;
- The Comments do not contain any defamatory, libelous, offensive, indecent or otherwise unlawful material which is an invasion of privacy
- The Comments will not be used to solicit or promote business or custom or present commercial activities or unlawful activity.
You hereby grant Skin Credit a non-exclusive license to use, reproduce, edit and authorize others to use, reproduce and edit any of your Comments in any and all forms, formats or media.
Hyperlinking to our Content
The following organizations may link to our Website without prior written approval:
- Government agencies;
- Search engines;
- News organizations;
- Online directory distributors may link to our Website in the same manner as they hyperlink to the Websites of other listed businesses; and
- System wide Accredited Businesses except soliciting non-profit organizations, charity shopping malls, and charity fundraising groups which may not hyperlink to our Web site.
These organizations may link to our home page, to publications or to other Website information so long as the link: (a) is not in any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval of the linking party and its products and/or services; and (c) fits within the context of the linking party’s site.
We may consider and approve other link requests from the following types of organizations:
- commonly-known consumer and/or business information sources;
- dot.com community sites;
- associations or other groups representing charities;
- online directory distributors;
- internet portals;
- accounting, law and consulting firms; and
- educational institutions and trade associations.
We will approve link requests from these organizations if we decide that: (a) the link would not make us look unfavorably to ourselves or to our accredited businesses; (b) the organization does not have any negative records with us; (c) the benefit to us from the visibility of the hyperlink compensates the absence of Skin Credit; and (d) the link is in the context of general resource information.
These organizations may link to our home page so long as the link: (a) is not in any way deceptive; (b) does not falsely imply sponsorship, endorsement or approval of the linking party and its products or services; and (c) fits within the context of the linking party’s site.
If you are one of the organizations listed in paragraph 2 above and are interested in linking to our website, you must inform us by sending an e-mail to Skin Credit. Please include your name, your organization name, contact information as well as the URL of your site, a list of any URLs from which you intend to link to our Website, and a list of the URLs on our site to which you would like to link. Wait 2-3 weeks for a response.
Approved organizations may hyperlink to our Website as follows:
- By use of our corporate name; or
- By use of the uniform resource locator being linked to; or
- By use of any other description of our Website being linked to that makes sense within the context and format of content on the linking party’s site.
No use of Skin Credit's logo or other artwork will be allowed for linking absent a trademark license agreement.
iFrames
Without prior approval and written permission, you may not create frames around our Webpages that alter in any way the visual presentation or appearance of our Website.
Content Liability
We shall not be hold responsible for any content that appears on your Website. You agree to protect and defend us against all claims that is rising on your Website. No link(s) should appear on any Website that may be interpreted as libelous, obscene or criminal, or which infringes, otherwise violates, or advocates the infringement or other violation of, any third party rights.
Your Privacy
Please read Privacy Policy
Reservation of Rights
We reserve the right to request that you remove all links or any particular link to our Website. You approve to immediately remove all links to our Website upon request. We also reserve the right to amen these terms and conditions and it’s linking policy at any time. By continuously linking to our Website, you agree to be bound to and follow these linking terms and conditions.
Removal of links from our website
If you find any link on our Website that is offensive for any reason, you are free to contact and inform us any moment. We will consider requests to remove links but we are not obligated to or so or to respond to you directly.
We do not ensure that the information on this website is correct, we do not warrant its completeness or accuracy; nor do we promise to ensure that the website remains available or that the material on the website is kept up to date.
Disclaimer
To the maximum extent permitted by applicable law, we exclude all representations, warranties and conditions relating to our website and the use of this website. Nothing in this disclaimer will:
- limit or exclude our or your liability for death or personal injury;
- limit or exclude our or your liability for fraud or fraudulent misrepresentation;
- limit any of our or your liabilities in any way that is not permitted under applicable law; or
- exclude any of our or your liabilities that may not be excluded under applicable law.
The limitations and prohibitions of liability set in this Section and elsewhere in this disclaimer: (a) are subject to the preceding paragraph; and (b) govern all liabilities arising under the disclaimer, including liabilities arising in contract, in tort and for breach of statutory duty.
As long as the website and the information and services on the website are provided free of charge, we will not be liable for any loss or damage of any nature.


|
addContract
|
open fun addContract(contract: Contract): Unit |
|
consumesQuantity
|
open fun consumesQuantity(tradeable: Tradeable): Int |
|
currentQuantityForSale
|
open fun currentQuantityForSale(tradeable: Tradeable): Int |
|
currentQuantityWanted
|
open fun currentQuantityWanted(tradeable: Tradeable): Int |
|
hasAnyContracts
|
open fun hasAnyContracts(): Boolean |
|
producesQuantity
|
open fun producesQuantity(tradeable: Tradeable): Int |
|
productList
|
open fun productList(): List<Tradeable> |
|
summarizeContracts
|
open fun summarizeContracts(): String |
|
totalBeingBought
|
open fun totalBeingBought(tradeable: Tradeable): Int |
|
totalBeingSold
|
open fun totalBeingSold(tradeable: Tradeable): Int |
|
voidContractsWith
|
open fun voidContractsWith(otherEntity: TradeEntity): Unit |
|
voidRandomContract
|
open fun voidRandomContract(): Unit |


_In_Too_Deep_ (R) ** (out of ****)
The title _In_Too_Deep_ describes the situation its young undercover cop hero finds himself in, but it also aptly describes the predicament of the film's cast. An uncommon amount of talent appears before the camera, but their abilities are not well-served by this routine urban drama.
Two actors are able to transcend the tired material they are given: the leads, Omar Epps and LL Cool J. Epps plays the cop, rookie Cincinnati police officer Jeff Cole, who loses his sense of self during a deep cover operation designed to bust druglord Dwayne Gittens, a.k.a. "God" (LL Cool J). Epps makes a strong and likable protagonist, and as such his character's flirtings with the dark side makes for some involving drama. However, LL Cool J is the more commanding presence as God, at once cold yet so appealingly charismatic that it is easy to see how people are drawn to him.
But director Michael Rymer and writers Michael Henry Brown and Paul Aaron don't give their equally able supporting players much to work with, largely due to the formulaic paces of their story. Stanley Tucci has the token commanding officer role, and his meatiest scene is the old reliable one where he tells the increasingly out-of-control Cole that he is off the case. (Of course, Cole eventually worms his way back onto it.) Nia Long is wasted in the most thankless role of Cole's love interest, who, as par for the course in films such as these, tells Cole that she can't be with him as long as he's on his case. And Pam Grier, whose memorable turn in _Jackie_Brown_ apparently wasn't the career-ressurrector it should have been, lends her steely presence and is required to do little else as a veteran cop.
_In_Too_Deep_ isn't necessarily a bad film, just an average one, and therein lies the big problem. With the amount of talent at their disposal, the filmmakers should have been more motivated to come up with something a bit more inspired and distinctive. Instead, they simply settled for the routine--something that the cast shouldn't have to settle for.
Michael Dequina<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>Mr. Brown's Movie Site: http://welcome.to/mrbrown CompuServe Hollywood Hotline: http://www.HollywoodHotline.com on ICQ: #25289934 | on AOL Instant Messenger: MrBrown23
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% include "menu.html" %} {% for (advisory, cdate, rendered_title, advisory_title_type) in advisories %} {% include "advisory-list-entry.html" %} {% endfor %}


Evaluating simple code via import()
Please take a look into console.log in DevTools
Reference:
Evaluating JavaScript code via import()


Link with title
Nested link with title {{item}}
Click here {{element}}
{{$index}}
Repeater link
{{book.name}}
{{book.blurb}}
Link with title 2


1 Entry survey
Please take a couple minutes to fill out this survey (2-3 min):
Survey
2 Install Base-R und RStudio on your computer
Please install Base-R and RStudio prior to the course. Please let me know if you run into problems.
Step 1: Install Base-R
Windows,
Mac
Step 2: Install RStudio
Windows,
Mac
3 Install packages
You will be using many R “packages” in this course that you need to install in your R session. To make sure that there aren’t any installation issues please run the following line of code in R — If you don’t know how to run code in R yet, ask a friend, a member of your IT staff, or us :)
source("https://bit.ly/2WEdhWp")
This will take a bit of time! You may receive some warnings (which is fine in most cases) or errors when running the code. If so, let us know!
Optional: Install additional Software
If you run into problems with the package installation, try installing these Software and then rerun package installation.
Windows: Rtools
Mac: gfortran, clang-7.0.0
4 Zoom
The workshop will be held over Zoom. If you do not have an account yet, please register here, download and install the client.
We will start at 930am sharp. Please be there 5-10min prior to the beginning of the course so that we can rule out any technical difficulties and start on time.
During the workshop, please be so kind to have your video on. Feel free to use a custom background. Also please keep your microphone off, unless you want to comment or ask a question. Feel free to unmute yourself at any time.
return to course page


Home
Brand
Menu
Stores
Hours
Saturday: 12pm - 10pm
Sunday: 12pm - 6pm
Monday: 12pm - 8pm
Tuesday: 12pm - 8pm
Wednesday: 12pm - 8pm
Thursday: 12pm - 8pm
Friday: 12pm - 8pm
3128 16th St, San Francisco, CA 94103
<EMAIL_ADDRESS>415-703-0318


Medicare Covers Hospice and Comfort Care
Do you care for someone who is terminally ill? It isn’t always easy to care for a loved one in difficult times, but Medicare can help – you don’t have to do it alone. Medicare covers care for people who are terminally ill, and we have resources to help you.
Hospice is a program of care and support for people who are terminally ill. The focus is on comfort, or “palliative” care, not on curing an illness. Hospice care can include doctor and nursing services, counseling, medical supplies, pain medications, and other services.
If your doctor has certified that your loved one is terminally ill, Medicare covers hospice care, which is usually provided in the home. Medicare will still pay for covered benefits for any health problems that aren’t related to your loved one’s terminal illness. Get more details about Medicare’s coverage.
Remember, you’re not alone – Medicare is here to help. You can also get information about long-term planning, managing stress, and much more.
Diabetes Screenings, Supplies, and Training – Medicare Has You Covered
Diabetes affects millions of people – are you one of them? Medicare covers supplies and self-management training to help you manage your diabetes. Many people with diabetes don’t know that they have it – and Medicare covers screening tests so you can find out if you do.
If you’re at high risk for developing diabetes, Medicare covers up to two fasting blood glucose (blood sugar) tests each year.  You may be at high risk for diabetes if you have high blood pressure, high cholesterol, obesity, or a family history of diabetes. Talk to your doctor to find out when you should get your free screening test.
If you have diabetes, Medicare covers many of your supplies, including test strips, monitors, and control solutions. In some cases, Medicare also covers therapeutic shoes if you have diabetic foot problems. You pay 20% of the Medicare-approved amount for these supplies.
Medicare also covers diabetes self-management training to help you learn how to better manage your diabetes. You can learn how to monitor your blood sugar, control your diet, exercise, and manage your prescriptions. Talk to your doctor about how this training can help you stay healthy and avoid serious complications.
Take control of your health – talk to your doctor today about screening tests and what supplies and training you may need for your health.
As Open Enrollment Ends, People with Medicare save $1.5 billion on prescriptions
by Kathleen Sebelius
If you’ve had a Medicare Advantage or Prescription Drug Plan for a few years, you’ll know that December is the end of Medicare Open Enrollment. This year, the last day for you to choose new Medicare health or prescription drug coverage for 2012 is December 7, earlier than it’s been in previous years.
December 7 is tomorrow. But you still have until midnight tomorrow if you want to make a change to your medical or prescription drug coverage.
And as you are reviewing your plan, remember that Medicare is only getting stronger. New data released today shows how millions of seniors have gotten cheaper prescription drugs and free preventive services, all thanks to the President’s health reform law.
Thanks to the Affordable Care Act, the Medicare prescription drug coverage gap known as the donut hole is starting to close. Through the end of October, 2.65 million people with Medicare have received discounts on brand name drugs in the donut hole. These discounts have saved seniors and people with disabilities a total of $1.5 billion on prescriptions – averaging about $569 per person. For State-by-State information on the number of people who are benefiting from this discount in 2011, visit this page.
Over the coming years, the Affordable Care Act will help close the coverage gap completely. Each year from now to 2020, you’ll pay less for brand name and generic drugs in the coverage gap. And in 2020, the coverage gap will be eliminated and the donut hole will be closed for good.
In addition to cheaper prescription drugs, the Affordable Care Act also made preventive services available to people with Medicare for free. Preventive care helps people stay healthy and live longer lives. Through the end of November nearly 24.2 million people with Medicare have received one or more free preventive services, including Medicare’s new free Annual Wellness Visit. For State-by-State information on the numbers of people who are utilizing preventive services in 2011, visit this page.
These new benefits are just two ways the Affordable Care Act is making Medicare and our health care system stronger and giving hardworking families the security they deserve. It has helped lower your Part B premium in 2012 by $22. And, on average, Medicare Advantage premiums will be lower in 2012 as enrollment continues to rise.
And if you haven’t reviewed your Medicare coverage, take time now to compare your current coverage with other options to make sure your plan will meet your health care needs for the coming year. Medicare now offers better choices, more benefits, and lower costs thanks to the Affordable Care Act. Visit www.Medicare.gov/open-enrollment/ for more information.
Medicare Open Enrollment: Last Week to Review and Compare Medicare Plans
by Kathleen Sebelius, Secretary of Health and Human Services
With housework, doctor appointments, time with family, and job responsibilities, there are always tasks that get left until the last minute. But whether I’m choosing an insurance plan or planning a vacation, I still want to make sure my “I”s are dotted and my “T”s crossed. I want to know that everything’s taken care of – without worry and confusion.
Speaking of insurance, time is running out! If you’ve been thinking about changing your Medicare coverage, the time to act is now. The dates for Medicare Open Enrollment are early this year to allow for a smoother transition to a new plan. Not only did Open Enrollment start earlier, but it also ends earlier - the last day for you to change your Medicare plan is now December 7. This gives Medicare enough time to process any change you may make and have you linked correctly to the plan you choose as soon as your coverage starts. That way you can go to the doctor or your pharmacy on January 1 without having to worry about your coverage.
If you’re like me, you might use the December holidays to discuss health care options with family or friends. I use the time to talk to my father, who is on Medicare. This year, because Medicare Open Enrollment ends early, the time to have that important conversation is now.
This year, thanks to the Affordable Care Act, you have better choices, more benefits and lower costs, and it’s worth it to review them. Our counselors worked with a man in Oregon who has saved more than $600 a month on his prescription drugs between benefits from the health care law and lowering his doses. $600 a month makes a huge difference in helping him pay other bills, and still put some money into savings.
I know that sorting through your health and drug coverage choices during Open Enrollment can be confusing but you don’t have to do it alone.
Look around for all the Medicare information out there. We have plenty of resources to help you think about cost, coverage, extra benefits, and convenience when evaluating your plan choices. And visit our Open Enrollment center, where we’ve gathered everything you need online, including a video on how the Medicare Plan Finder works, to walk through your options.
Medicare’s here to help you, stronger than ever. Take the time this week to review and compare plans. It’s worth it - you can relax later.
Millions of Seniors Saving Money on Prescription Drugs, Thanks to the Affordable Care Act
By Nancy-Ann DeParle. Crosspost from The White House Blog
Over the weekend, a report by the Associated Press detailed how the Affordable Care Act is dramatically reducing drug costs for seniors who hit the prescription drug coverage gap known as the donut hole. This year, seniors are benefiting from a 50 percent discount on brand-name drugs in the donut hole. And the discount and other provisions in the law are saving money for seniors. As the AP reported:
The average beneficiary who falls into the coverage gap would have spent $1,504 this year on prescriptions. But thanks to discounts and other provisions in President Barack Obama's health care overhaul law, that cost fell to $901, according to Medicare's Office of the Actuary, which handles economic estimates.
So far this year, more than 2.2 million people with Medicare have saved more than $1.2 billion on their prescriptions. The Associated Press spoke with two of them:
For retired elementary school teacher Carolyn Friedman, it meant she didn't need a loan to pay for drugs that keep her epilepsy under control.
"What a change for the better," said Friedman, 71, of Sunrise, Fla. "This year it was easier to pay my bills, whereas last year I had to borrow money to pay for my medications when I was in the doughnut hole."
…
Joan Gibbs thought her pharmacy had made a mistake. Her total cost for a brand-name painkiller in the doughnut hole came out lower than her co-payment earlier in the year, at a time her plan was picking up most of the tab.
"I reluctantly called the insurance company," said Gibbs, 54, who lives near Cleveland. "If they had made a mistake, I knew they would catch it sooner or later. I was very surprised that it turned out to be such a good discount."
Gibbs is on Medicare because of an auto-immune disorder and other medical problems that left her unable to work.
Thanks to the Affordable Care Act, seniors will receive bigger discounts in the years ahead. By 2020, the donut hole will be closed completely.
And even if you don’t hit the donut hole, there’s still good news for beneficiaries with Medicare Part D. Prescription drug premiums will not rise next year, and thanks to health reform, seniors can get preventive services like mammograms and other cancer screenings for free.
Nancy-Ann DeParle is the Assistant to the President and Deputy Chief of Staff