I Know What You Did Last Summer
Chad'z rating: ** (out of 4 = fair)
1997, R, 100 minutes [1 hour, 40 minutes]
[horror]
starring: Jennifer Love Hewitt (Julie), Sarah Michelle Gellar (Helen), Ryan Phillippe (Barry), Freddie Prinze Jr. (Ray); written by Kevin Williamson; produced by Stokely Chaffin, Erik Feig, Neal H. Moritz; directed by Jim Gillespie; based on the novel by Lois Duncan.
Seen Monday, November 3, 1997 at 9:20 p.m.Glenwood Movieplex Cinemas, (Oneida, NY), theater #7 (theater rating: **1/2 - low volume, small screen, slightly uncomfortable seats, theater not dark enough), by myself for free (free press pass).
The horror genre, or more specifically, the slasher genre, is attempting at a comeback whether we want it to or not. What's interesting this time around is that, unlike the completely brain dead flicks of the 1970s and 80s, horror films of today are written and presented with complete logic, which is somewhat commendable. "I Know What You Did Last Summer" is a perfect example of this as it's relatively plausible, but all the logic in the world can't make up for using every cliche in the book.
The story starts off like any horror movie as we meet our main characters - four GenXers living in a small fishing town on the North Carolina coast (none of them have Southern accents though). The first 15 - 20 minutes rushes to define the one-dimensional characters and establish some kind of back story.
First there's Julie (Hewitt), the generic strong-willed-girl-in-a-horror-movie. Then there's her friend Helen (Gellar), the blonde bimbo, and her boyfriend Barry (Phillippe), the short-tempered jock. There's also Julie's boyfriend Ray (Prinze Jr.), the quiet, sensitive guy. Let's not forget Max (Johnny Galecki), the jealous outsider who will become the first suspect once things get rolling.
It's the fourth of July and after Helen wins a beauty contest, the four drive out to the beach, drink a little, fool around, tell the urban legend of "The Man With The Hook," and on the way back accidentally run over a man. They realize if they go to the police they could be charged with manslaughter, so they decide to throw the body into the ocean even though he doesn't seem to be entirely dead (my first clue was when he opened his eyes and tried to strangle them). Everything that had happened up to this point had been believable and entertaining, but then you really have to wonder why they believe their plan will work.
We then flashforward to one year later as Julie returns home from college and receives an anonymous letter (hence the title). The four get together and try to figure out who could have sent it. They're convinced it's Max, but the most obvious suspect is always the first to die.
The mid-section of the film showed promise. The gang does some detective work which is quite interesting and realistic in the way they go about it (using the Internet), and it seems like the killer (someone in a slicker and rain hat with a hook but no face) might be a relative of the person they ran over. But this is a horror film, not a mystery, and soon we're back to scenes of the killer turning corners before the kids see him and hiding in shadows and closets. The killer messes with their heads, often hurting them physically, but doesn't always kill them.
Much like he did with his screenplay to "Scream," writer Kevin Williamson makes it seem like almost anyone could be the killer. Unfortunately, once we realize this the cliches start kicking in full throttle, such as the killer standing behind someone and killing them with hundreds of people around. Or the chase scene where the killer walks, but the victim runs and never seems to be able to get away. Then there's stuff that's idiotic such as when regular people are killed, or the victim who tries to get into and out of a building with locks on the inside!
The ending is the worst of the cliches - a supposedly suspense finale on a fishing boat with lots of places to hide but nowhere to run. There's a fist fight, a heroic rescue, and a revelation of the killer and their motives. In the end justice is served.... or so it seems.
"I Know What You Did Last Summer" ultimately fails because it tries to have the best of both worlds - as both a plausible horror film and a horrific plausible film. But as they old saying goes, you can't have your cake and eat it too.
e-mail<EMAIL_ADDRESS>(C) 1997 Chad Polenz
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


Percentage of land area covered by tree canopy
Tree canopy is the layer of branches and leaves that cover the ground when viewed from above. Tree canopy provides many benefits to communities: improving water quality, saving energy and reducing cooling costs, lowering summer temperatures, reducing air pollution, enhancing property values, providing wildlife habitat, facilitation of social and educational opportunities, and providing aesthetic benefits. Strategies for increasing tree canopy include neighborhood tree planting initiatives, street tree plantings and the Street Tree Replacement Program, plantings in medians and parking lots, and plantings along riparian buffers (vegetated areas near creeks and streams).
As of 2013, 172,283 acres of Mecklenburg County were covered by tree canopy, representing 51% of all land in the county and 47% of land within the City of Charlotte. Charlotte has substantially higher tree canopy compared to major cities such as New York, NY (21%) or Washington, DC (35%), and is similar to less urbanized cities such as Pittsburgh, PA (42%).
The City of Charlotte has an ambitious goal to reach 50% tree canopy by 2050. Due to loss of tree canopy through continued growth and development, and natural loss of canopy due to age and natural incidents, Trees Charlotte estimates that 100,000 trees must be planted every year to reach this goal. Residential land contains 45,305 acres (40%) of land classified as Possible Tree Canopy in Mecklenburg County, so success in meeting long-term tree canopy goals relies on participation from residential land owners and neighborhood planting initiatives.
Number of acres of land covered by tree canopy divided by total land area. All land use categories are included in the percentage. Tree canopy is calculated by the Spatial Analysis Laboratory at the University of Vermont using high-resolution imagery and LiDAR (Light Detection and Ranging) technology. This new technology provides a more precise and accurate accounting of tree canopy than that used in previous studies; therefore, percentage of tree canopy in 2013 is not comparable to the percentage of tree canopy calculated in the 2002 and 2008 urban ecosystem assessments completed by American Forests.
Source: University of Vermont; Mecklenburg County Land Use & Environmental Services Agency
| Learn More | |
|---|---|
| Charlotte Tree Ordinance | Ordinances and best practices for planning trees in the City. |
| Project Funding Opportunity | See how the City's Neighborhood Matching Grant program can fund improvements. |
| 2012 Tree Canopy Report | View the full report which talks about tree canopy and its components (PDF Download). |
| Take Action | |
|---|---|
| Trees Charlotte | Working to address the City's tree loss from development, protect its forests and native species, and create new green space. |
| Annual Tree Sapling Sale | Purchase tree seedlings from the County from $1-$2. |
| Keep Charlotte Beautiful | Working together to create a cleaner, greener and more sustainable Charlotte. |


Upload your Android photo sphere image, and you’ll get back a ready-to-use Google Maps API Custom Street View web page.
The source code for this app is available on GitHub, under an Apache 2.0 licence.


{{"myFriends" + myFriends[0]}}
Skyees.Com is a web application boilerplate, which means you should start changing everything :-)
This sample application tracks users and articles.
MongoDB is a NoSQL database. MongoDB's great manual is the place to get started with NoSQL and MongoDB.
Express is a NodeJS server-side application web framework. Check out The ExpressJS API reference for more information or StackOverflow for more info.
AngularJS is client-side web application framework. The Thinkster Popular Guide and Egghead Videos are great resources.
Node.js is a JavaScript run-time, popular for being a web server platform. Node's website and this stackOverflow thread offer excellent starting points to get to grasps with node.
Once you're familiar with the foundation technology, check out the MEAN.JS Documentation:


output & errors are displayed in the console only
int x {15} = 3 int y {15} = 3 int z {15} = x + y log(z) /* this won't output anything because we only construct the ast and not interpret the nodes */
run


Timeline visualizes a series of chained events.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae numquam deserunt quisquam repellat libero asperiores earum nam nobis, culpa ratione quam perferendis esse, cupiditate neque quas!
Timeline receives the events with the value property as a collection of arbitrary objects. In addition, content template is required to display the representation of an event. Example below is a sample events array that is used throughout the documentation.
Default layout of the timeline is vertical, setting layout to "horizontal" displays the items horizontally.
Location of the timeline bar is defined using the align property.
In addition, the "alternate" alignment option make the contents take turns around the timeline bar.
Content to be placed at the other side of the bar is defined with the opposite template.
marker template allows placing a custom event marker instead of the default one. Below is an example with custom markers and content.
| Name | Type | Default | Description |
|---|---|---|---|
| value | array | null | An array of events to display. |
| align | string | left | Position of the timeline bar relative to the content. Valid values are "left", "right for vertical layout and "top", "bottom" for horizontal layout. |
| layout | string | vertical | Orientation of the timeline, valid values are "vertical" and "horizontal". |
| style | string | null | Inline style of the component. |
| styleClass | string | null | Style class of the component. |
| Name | Parameters |
|---|---|
| opposite | $implicit: Data of the timeline event |
| marker | $implicit: Data of the timeline event |
| content | $implicit: Data of the timeline event |
Following is the list of structural style classes, for theming classes visit theming page.
| Name | Element |
|---|---|
| p-timeline | Container element. |
| p-timeline-left | Container element when alignment is left. |
| p-timeline-right | Container element when alignment is right. |
| p-timeline-top | Container element when alignment is top. |
| p-timeline-bottom | Container element when alignment is bottom. |
| p-timeline-alternate | Container element when alignment is alternating. |
| p-timeline-vertical | Container element of a vertical timeline. |
| p-timeline-horizontal | Container element of a horizontal timeline. |
| p-timeline-event | Event element. |
| p-timeline-event-opposite | Opposite of an event content. |
| p-timeline-event-content | Event content. |
| p-timeline-event-separator | Separator element of an event. |
| p-timeline-event-marker | Marker element of an event. |
| p-timeline-event-connector | Connector element of an event. |
None.


History:
After editing history, press enter to re-evaluate the expression
CLR
x
y
7
8
9
/
4
5
6
*
1
2
3
-
.
0
=
+


 Please go Home
{% else %}This will delete every information about yourself as a CRiSIS 2011 participant and cancel your hotel reservation.

Yes No {% endif %} {% endblock %}


[2015-03-27 14:43:03,979] WARN Session 0x14c5d30232f000a for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
[2015-03-27 14:43:04,197] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000000.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,198] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000005.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,199] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000010.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,200] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000015.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,200] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000020.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,201] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000025.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,202] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000030.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,203] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000035.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,204] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000040.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,204] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000045.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,205] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000050.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,206] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000055.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,207] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000060.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,207] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000065.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,208] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000070.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,209] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000075.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,210] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000080.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,211] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000085.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,212] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000090.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,213] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000095.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,214] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000100.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,214] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000105.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,215] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000110.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,216] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000115.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,217] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000120.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,218] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000125.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,218] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000130.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,219] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000135.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,220] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000140.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,221] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000145.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,221] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000150.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,222] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000155.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,223] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000160.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,224] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000165.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,224] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000170.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,225] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000175.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,226] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000180.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,227] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000185.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,228] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000190.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,228] ERROR Could not find index file corresponding to log file /var/folders/jb/knny4m3j7s78p23s6nbf7m3r0000gn/T/kafka-817543/00000000000000000195.log, rebuilding index... (kafka.log.Log:97)
[2015-03-27 14:43:04,259] WARN Session 0x14c5d30232f0016 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
[2015-03-27 14:43:04,266] WARN Session 0x14c5d30232f0014 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
[2015-03-27 14:43:04,310] WARN Session 0x14c5d30232f0012 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
[2015-03-27 14:43:04,402] WARN Session 0x14c5d30232f000e for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
[2015-03-27 14:43:04,521] WARN Session 0x14c5d30232f0004 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
[2015-03-27 14:43:04,684] WARN Session 0x14c5d30232f0007 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
[2015-03-27 14:43:04,954] WARN Session 0x14c5d30232f0017 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
[2015-03-27 14:43:05,115] WARN Session 0x14c5d30232f0010 for server null, unexpected error, closing socket connection and attempting reconnect (org.apache.zookeeper.ClientCnxn:1102)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)


Gestural integrity respected by the task learning system. Gestures, whether they form an idiom or not, are regarded as indivisible by the system. For example, procedure learning will not learn a loop whose body includes only part of a gesture.
The task learning system does not characterize gestures as illegal or invalid. It simply recognizes certain gestures as idioms; it is the application's responsibilty to analyze the action/gesture/idiom stream and determine if it is invalid.
A role is an abstraction of a parameter of an action. Just as an action family is an abstraction the actions in it, a role is an abstraction of one parameter of all the actions within a family. Specifying a role on a family is requiring all actions within the family to designate a parameter that fulfills that role.
<family id="add"> <inputParam role="what"/> <inputParam role="where"/> </family> <family id="create"> <outputParam role="created"/> </family>
An idiom model specifies one or more templates. A template is a sequence of actions and/or action families which, along with constraints on action parameters, define a pattern of actions that if present in a demonstrated gesture will form an idiom.
<idiom id="SIMPLE_MOVE"> <inputParam id="items"/> <inputParam id="source"/> <inputParam id="destination"/> <simpleName>Move items</simpleName> <fancyName>Move #,items from #,source to #,destination</fancyName> <template> <action actionClass="add"> <idiomParam id="items" role="what"/> <idiomParam id="destination" role="where"/> </action> <action actionClass="remove"> <idiomParam id="items" role="what"/> <idiomParam id="source" role="where"/> </action> </template> </idiom>Each
idiomParam
specifies an association between a parameter of the idiom
and a parameter of its action
. If its action is a familiy, this is done
by designating a role. If the action is a single concrete action, this is done by
designating the ID of that action parameter. The converse designations - using a role
with a specific action or an actionParam with an action family - are not allowed.
<idiom id="foobar"> <idiomParam id="A"/> <template> <action family="foo"> <idiomParam id="A" role="B"/> </action> <action id="bar"> <idiomParam id="A" actionParam="B"/> </template> </idiom>
Each template must associate at least one value to each parameter of the idiom. That is, each must occur at least once in the template. In general, a template may associate several values with an idiomParam. If mutliple values are associated with a parameter, they must all match according to the matching criteria defined later.
A template may specify an integer precedence value.
This value is used to determine the matching order for the set of all templates of all idioms.
A template with higher precedence is matched before those of lower precedence.
The default precedence is the number of
<action>
s in the template.
<idiom id="add A to B and B to A"> <inputParam id="A"/> <inputParam id="B"/> <template precedence=10> <action family="add"> <idiomParam id="A" role="what"/> <idiomParam id="B" role="where"/> </action> <action family="add"> <idiomParam id="B" role="what"/> <idiomParam id="A" role="where"/> </action> </template> </idiom>
ATRDemonstration
found to contain an idiom, the actions comprising the idiom,
each of which is represented by an ATRDemonstratedAction
,
are replaced with a single ATRDemonstratedAction
representing the idiom.
ATRDemonstratedAction
provides the following methods:
optIdiomActions()
which returns the actions comprising the idiom, and
optParameterTypes()
which returns the types of the idiom parameters.
ATRAction
. It has been supplemented with two methods to support idioms:
getBody()
which returns null for a non-idiom, or the ATRSequence
containing the actions comprising the idiom.
getParameterTypes()
which returns the types of the corresponding idiom
parameters for this instantiation.
Move(+data, +from, +to): ADD(data, to) REMOVE(data, from)we say the model has params data, from, and to. The actions matching REMOVE and ADD could have additional params, irrelevant for matching but needed for execution. These params are internal to the idiom and not part of the idiom's signature
The relationship between idiom parameters and action arguments is in general many to many, regardless of whether the action arguments are specified by their ids or by roles. For example, this is an idiom that expresses that two arguments of an action must match, and that the matching value is the idiom's parameter:
SelfAdd($self) { ADD($self=from $self=to) }This two-template idiom expresses that either $x=$y or $y=$z:
Idiom ($x $y $z) { ACTION1($x=role1 $y=role1 $z=role2) } { ACTION1($x=role1 $y=role2 $z=role2) }
An idiom parameter and the action parameter(s) associated with it in the template should follow these consistency rules:
It is well-defined to make an idiom model param ungeneralizable. However, at this time
only default parameter classes are supported: all idiom
inputs are generalizable
and all idiom outputs are external
.
This is consistent with parameter classes for learned procedures.
When a template calls for 2+ arguments in various actions to match, the values must match and their types must be compatible. Two types are compatible if they are either identical, specified to be equivalent in the action model, or if one is a subtype of the other.
The type of the idiom parameter is the type of the matching arguments. There are two cases in which 2+ matching arguments can have different types:
During generalization, the learner treats the demonstration as if each idiom action has been replaced with its expansion. That is, support relationships are found normally within an idiom's expansion and between an idiom's expansion and other actions in the demonstration. This includes loopfinding across a sequence of mixed idiom and regular actions.
Loopfinding respects gesture boundaries in general and idiom boundaries in particular, in that no loops will be found that contain only part of a gesture or an idiom. Loops *may* be found completely within idiom bodies, though it is not expected that templates designed to express loops will be specified, and templates that yield loops would need to be somewhat contrived.
As a postprocessing step, the learner determines idiom parameters by associating the parameter with the constant, variable, or expression that it has been generalized to in the expansion. Note that each parameter must have at least one corresponding value in the expansion, or the idiom would not have been recognized.
On execution, Lumen notifies the Bridge when an Idiom container is entered or exited. Lumen doesn't use an external executor for idioms, though, so there's no execution request for the idiom itself.
Idioms and gestural groups themselves don't have constraints. Their actions do.
ATRDemonstratedAction
that expresses the idiom that was recognized.
If no idiom was found, the action sequence is passed on through the system to the demonstration viewer. If an idiom was found, the idiom replaces the original action stream.
Templates for all idioms are matched according to precedence, highest first. Default precedence is the number of actions in the template.
Nested idioms are not allowed.
Permutable lists are unordered for purposes of matching.
There are two critera for value match. The "equals" criterion means that the values must be equal. The "singleton" (or "equalsOrSingleton") criterion means the values must be equal, or if one of the values is E the other must equal [E]. Furthermore, if two nonequal args match in a template using the "singleton" criterion, subsequent matches must equal one of these two args. Gven CPOF's use of singelton lists this is required by CPOF for idioms to be useful for gesture alignment.
TBD: matching algorithm. This will be similar to support finding in LAPDOG.
Prior to both idiom recognition and learning, action collapse is performed. This means that those demonstrated actions that have been specified to be collapsible in the action model and that meet their collapse criteria are removed from the demonstration and replaced with a single copy of the action.
At most one collapse rule may be specified per action, although different collapsibility criteria may be specified for within-gesture and outside-gesture collapse. Specifically, contiguity requirements may vary by context but parameter constraints must be the same regardless of context.
Although well-defined, collapse rules may not be specified on idioms.
This action is collapsible only outside a gesture provided that the action instances are contiguous and that their values for the sole parameter match.
<action id="action1" category="effector"> <description/> <inputParam id="input1"> <description/> <typeRef typeId="string"/> </inputParam> <collapsible outsideGesture="contiguous">
</collapsible> </action>
This action is collapsible both inside and outside gestures provided the values of the first input parameter match. Action instances must be contiguous if inside a gesture but not if outside. The collapsed action takes the value of the last instance for the second input parameter.
<action id="action2" category="effector"> <description/> <inputParam id="input1"> <description/> <typeRef typeId="string"/> </inputParam> <inputParam id="input2"> <description/> <typeRef typeId="string"/> </inputParam> <collapsible outsideGesture="all" insideGesture="contiguous">
<param id="input2" keep="last"/>
</collapsible>
</action>
This action is collapsible both inside and outside gestures, with action instances not needing to be contiguous. The collapsed action takes as its value the merged values of its output list parameter.
<action id="action3"> <description/> <category type="effector"/> <outputParam id="output1"> <description/> <typeRef typeId="list<string>"/> </outputParam> <collapsible>
<param id="output1" keep="merge"/>
</collapsible>
</action>
Action collapse is performed both prior to idiom recognition and prior to learning. In both cases it will alter the input action sequence if any actions are collapsed.
Collapse is localized to its context--i.e., an action instance occurring inside a gesture will not be collapsed with an action instance occurring outside that gesture or in another gesture.
Collapse is greedy--as many actions will be collapsed together as possible within the given collapsibility constraints.
The collapsed action always replaces the last action in the collapsed sequence. A contiguity requirement means that any intervening actions interrupt the collapse; instances of the action found both before and after an intervening action are collapsed separately. Contiguity is always evaluated based on the original demonstration rather than on the results of applying collapse rules. Thus,
ABBABA
collapses to
B'A' if both A and B are collapsible (all)
AB'ABA if both A and B are collapsible (contiguous)
AAB'A if A is collapsible (contiguous) and B is collapsible (all)
B'BA if A is collapsible (all) and B is collapsible (contiguous)
An action that is collapsible (contiguous) cannot have instances of different collapsible sequences interleaved in the demonstration. But an action that is collapsible (all) may. For example:
A1 A1 A2 A3 A3 A1 A2
(with different instances Ai collapsible only with matching Ai) collapses to
A3' A1' A2' if A is collapsible (all)
A1' A2 A3' A1 A2 if A is collapsible (contiguous)
[start gesture] addToCollection(effort1, "members", [unit1]) removeFromCollection(effort2, "members", [unit1]) addToCollection(effort1, "members", [unit2]) removeFromCollection(effort2, "members", [unit2]) [end gesture] addToPasteboard(pb1, [effort1], etc.) addToPasteboard(pb1, [effort2], etc.) editData(unit3, "Name", "Harry") addToPasteboard(pb1, [unit3], etc.)
Action collapse will result in
[start gesture] addToCollection(effort1, "members", [unit1, unit2]) removeFromCollection(effort2, "members", [unit1, unit2]) [end gesture] addToPasteboard(pb1, [effort1, effort2], etc.) editData(unit3, "Name", "Harry") addToPasteboard(pb1, [unit3], etc.)TODO: continue example with MOVE idiom match.


This review contains some minor spoilers for the feature film "Bulworth," but I promise not to give away any major revelations concerning the plot.
Nutshell: A smart, funny, and pointed political satire that takes some risks.
----- Bulworth (USA, 1998)
R, 112 minutes
Cast includes: Warren Beatty (Jay Bulworth), Halle Berry (Nina), Oliver Platt (Dennis Murphy), Don Cheadle (L.D.), Paul Sorvino (Graham Crockett), Jack Warden (Eddie Davers), Christine Baranski (Constance Bulworth)
Distributed by 20th Century Fox (USA) Screenplay by Warren Beatty and Jeremy Pikser Produced by Warren Beatty and Pieter Jan Brugge Directed by Warren Beatty
Review by Jamahl Epsicokhan Rating out of 4: ***1/2 -----
The central figure in "Bulworth" is a man who is fed up with the pointlessness and nonsense of the system. The problem is, he's part of the system--a U.S. senator who plays the political game not unlike, we may suspect, every other person in American politics. He's trapped in a world where words and image mean everything and in-practice policy and true intentions mean virtually nothing.
The man is democratic Senator Jay Bulworth, portrayed by Warren Beatty in a hypercharged, madcap performance that borders on the surreal, which is perfectly appropriate, since "Bulworth" is a film that exists in a sort of surreal state. This isn't a film about realistic events or circumstances; it's all about attitude. The movie is a commentary that takes situations and twists them into exaggerated parodies of the American political arena.
As the movie opens, Bulworth, the incumbent up for re-election, sits in his office in a trancelike state, staring blankly at footage from his own TV campaign ads. He hasn't eaten or slept in days, but instead has been pondering the nature of his political existence. He's disgusted to the point of catatonia. He has reached a point in his career where everything he does exists simply to serve his own campaign's interests. Why is he even in office? All of his advertisements and speeches begin with the same sound bite: "We stand at the doorstep of a new millennium." But just what does that mean? It's an irrelevant line of hogwash--frosting that just sounds good. When you think about it, it doesn't serve any useful purpose.
One of his wealthy campaign contributors (Paul Sorvino) is a powerful corporate influence in the insurance industry--a right-winger who is happy that Bulworth's new platform takes a more conservative slant than in the past. Sorvino's character is the type whose opinion of blacks boils down to being a fan of Colin Powell and Michael Jordan, but not at all sympathetic where black poverty and crime are concerned. So the fact that Bulworth's new policy is to step away from social programs and aid is a big plus in his book.
But Bulworth doesn't seem very interested with the issue at all. He wants out--now. So he hires out a hit on himself. Set to travel to California for his campaign, he expects to be dead before he returns. ("If I'm not dead by Monday, I'm going to stop payment on that check.") Once he gets to California it seems like campaign business as usual, until Bulworth realizes that he might as well make the best out of knowing he's not going to see the end of next week.
>From here, Bulworth ceases all self-censorship and simply says what's on his mind. When he gives a speech early in the film in front of an African-American community, he says the only reason he made any promises to black voters is so that he could garner their votes. Sure, we've seen this "tell all truth" slant on such material before, but the difference in "Bulworth" is that all of the film's points eventually turn inward to stare the political machine straight in the eye.
A big part of the movie's comedic sell is the way Bulworth's newfound cavalier attitude leads him into a techno-rap dance club, where he jams the night away with Nina (Halle Berry), a young black woman from South Central L.A. who proves with each succeeding scene that there's more to her than anyone might suspect.
As a satire, "Bulworth" is often scathing and always pointed, and it's interesting to ponder the intended audiences of a film starring and directed by a 60-year-old white guy and featuring a soundtrack that's wall-to-wall with youthful hip-hop. After his night in the club, Beatty's character incorporates rap into his political campaign, much to the bewilderment of his campaign manager (Oliver Platt). Scenes where Bulworth "rhymes" his speeches to a well-to-do audience or on a TV broadcast could've been hopelessly silly, but Beatty pulls it off, finding the balance between zany, tongue-in-cheek farce and blunt social commentary. Beatty's decision to push the envelope pays off; I was constantly interested in where the movie would go next, and was glad that it pulled few punches.
As the plot unfolds and Bulworth careens from one campaign site to another, he finds himself in an enigmatic relationship with Nina, who has some interesting political views of her own. Bulworth, of course, also realizes he has been freed from his burden of politics and thus no longer wants to die, so both he and Nina find themselves on the run from the apparent hitman whom Bulworth hired. The chase takes on a life of its own.
In the process, the movie devours cliches just as fast as or faster than it acknowledges them. The irony of the movie's use of rap music in juxtaposition with politics is interesting; some politicians frequently target rap as a social problem, but Bulworth's answer to the accusation that rap is "obscene" is particularly interesting. In a world with so many tangible problems, blaming the entertainment industry seems more than just a little ridiculous.
As a comedy, "Bulworth's" laughs are generated through witty social mockery as well as the plot's obvious sight and dialogue gags. The pace is fast and furious; one of the film's biggest appeals is the high-energy buzz generated by the rapid-fire dialogue. You have to listen fast in many scenes, because the film is a constant earful. Many characters serve to unleash snippets of the screenplay's points of view, and some have entire speeches that add to the film's canvas (particularly an interesting drug dealer character played by Don Cheadle, whose exploitative use of his advantages is compared to the methods of politicians). Such speeches are sudden an lengthy--yet remain just far enough outside the confines of sullen seriousness--that we always know "Bulworth" is a comedy, but also that it is an angry comedy with a lot on its mind.
The topics range anywhere from big-business economics versus government spending, the plight of forgotten minorities in the inner-cities, the inefficient use of media to cover politics, and the fact that drug use isn't limited to back alleys (Bulworth's campaign manager snorts cocaine whenever his stress levels breach their limits)--really, anything is fair game. Essentially, the movie is an argument for socialism. But it's worth noting that a man like Bulworth could never maintain a plausible existence in our mainstream political system, which is perhaps why the film's closing scene is all the more honest and true.
Perhaps everything about "Bulworth" can be summed up in that first scene, where the "doorstep of the next millennium" is uttered over and over again until it becomes its own useless cliche in the sea of political cliches. Maybe, the film argues, that's what politics is all about: It's all window dressing used to spice up a process that doesn't serve its people nearly as adequately as it should. "Bulworth" offers little in terms of realistic solutions to the problems it points out; it is, essentially an angry farce that is willing to tackle anything and everything it can muster. But it's so much smarter and fresher than the average movie. It may not know exactly how the world can be fixed, but it certainly knows that there's more broken with America than the people in Washington would likely be willing to acknowledge.
----- Copyright (c) 1998 by Jamahl Epsicokhan, all rights reserved. Unauthorized reproduction or distribution of this article is prohibited.
Star Trek: Hypertext - http://www.epsico.com/st-hypertext/ Jamahl Epsicokhan -<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


---
layout: projectpages
title: "Server Metrics Data Visualisation"
author: "shwetha"
categories: visualisationtype
caption: Explore data related to server metrics
tags: [servermetrics, visualisation]
image:
feature : newplot.png
---
Description: These visuals orchestrate the data generated from CLIx server logs (system heartbeat) in the school ICT lab.
Data source: From system heartbeat


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/finsupp.20modules.html ---
I think the module part of finsupp is broken. For example in
lemma sum_smul_index [ring β] [add_comm_monoid γ] {g : α →₀ β} {b : β} {h : α → β → γ} (h0 : ∀i, h i 0 = 0) : (b • g).sum h = g.sum (λi a, h i (b * a)) := finsupp.sum_map_range_index h0
the g
takes values in the ring \beta
. But what is realy interesting is if g
takes values in a module over the ring.
Last updated: Apr 24 2020 at 19:02 UTC


| Correct Answers: | |
| Wrong Answers: | |
| Final Grade: |
In Totally Trivial Game you'll be asked to respond several Multiple Choice Questions.
Some of these questions are Trivial and others not so much.
You'll be challenged with a 10 second Timer to answer each Question.
If the time is up we'll move to the next Question.
Only 10 questions are provided on this game.
The game also performs perfectly in mobile devices.
Are you ready to start?


It's really hard to believe that next week is the beginning of Phase 1 for the Squirrels cohort. It seems like only yesterday I had no idea how to write any sort of code whatsoever, and now here I am with a decently functioning website, made 100% by myself. Throughout Phase 0, I've learned a lot of different things. I've learned about the Command Line Interface, Git, HTML, CSS, Ruby, JavaScript, and SQL. Seems like a lot of information for just nine weeks, but it'll all be crucial during Phases 1, 2 and 3.
The Internet is possibly one of the most useful tools in our lives. We use it for many different things, such as learning, entertainment, and communication. It's amazing to see how far we've come since landline phones, the postal service and televisions were the primary mediums of communication, or to know what's going on in the world. It allows us instant access to information, and other people across the world, all on our computers or handheld devices, but how does it work? That's what I'm going to discuss today.
For the last three weeks we've been learning about Ruby to perform simple tasks, but this week we've begun learning JavaScript. Not related at all to the language, Java, JavaScript was named simply as a marketing ploy to increase interest in the language at its creation. We've learned a little about how JavaScript works, and how it's very similar to what we've learned in Ruby. They have similar structures and use a lot of the same types of data such as strings, arrays, and integers, and they can all be managed in the same ways. One major difference in data storage in these two languages is that while Ruby uses hashes for key/value data pairing, JavaScript uses objects to store multiple layers of information.
With this week's material, we got to learn some new concepts in Ruby. We learned more about making classes, as well as the methods that we can write to be applied to them and how to read, and modify instance variables from outside of the class. Before I go into examples, I'm going to talk about classes and what they are.
This week we got to have some more practice with Ruby. We learned how to modify arrays and strings with methods, and store more complex information with hashes. We also learned about object classes and how each class has specific methods that can be applied to them. From there, we learned how to make our own classes and how to define methods that could be used for them. Two of the methods I learned about were each, and map.
This week we got to learn about Ruby and defining methods. We had already gone over some of this when we were in Dev Bootcamp's interview process, but what we did this week definitely went a lot deeper than what we had done on Codecademy. This week's challenges went over strings, integers, variables, arrays, hashes, and methods. We also learned about refactoring with Ruby's built-in methods to make our code clean and concise. One of the other things that we focused on this week was the difference between arrays and hashes, and that's what I'm going to be talking about today.
Two more weeks with Dev Bootcamp, and we already have our own websites! We've learned a lot about HTML and CSS and how to use them together to begin to create websites like the ones we see every day. It's pretty awesome that we've gotten through so much material in such a short time. I know we've barely scratched the surface, but to think that I didn't know any of this a couple weeks ago really excites me. We learned about a few different tools and concepts in CSS this week such as the difference between margins, borders and padding, different types of positioning, display properties, and how to use classes and ids. I'm going to be talking about classes and ids.
This week we began Phase 0 as the Squirrels 2016 cohort with Dev Bootcamp and I couldn't be more excited. Only a week and I feel like I've learned so much already! We learned about the Command Line Interface, Version Control, Git, GitHub, and how to use them togeher so that we can be prepared for our work in the coming weeks.


If you like this research and want to get involved, have a problem with it that you feel strongly enough to tell me about, or just want to chat, I can be reached at:
<EMAIL_ADDRESS>--- title: Say Hello ---
If you like this research and want to get involved, have a problem with it that you feel strongly enough to tell me about, or just want to chat, I can be reached at:
nolanpar[@]msu.edu


{% extends "registration/base_user.html" %} {% block title %}Account activiation unsuccessful{% endblock %} {% block content_header %}Your account was not activated{% endblock %} {% block content %}
There was an error creating this account. Perhaps your registration key expired, in which case please re-register.
{% endblock %}


Home
Bhamashah
Enter Scheme ID:
Enter Scheme Name:
Enter Scheme Description:
Enter Eligibility Criteria:
Enter min age:
Enter max age:
launching Date(9/27/2018 4:27):


How to contribute
mruby is an open-source project which is looking forward to each contribution.
Your Pull Request
To make it easy to review and understand your change please keep the following things in mind before submitting your pull request:
- Work on the latest possible state of mruby/master
- Create a branch which is dedicated to your change
- Test your changes before creating a pull request (
./minirake test
) - If possible write a test case which confirms your change
- Don’t mix several features or bug-fixes in one pull request
- Create a meaningful commit message
- Explain your change (i.e. with a link to the issue you are fixing)
- Use mrbgem to provide non ISO features (classes, modules and methods) unless you have a special reason to implement them in the core
Coding conventions
How to style your C and Ruby code which you want to submit.
C code
The core part (parser, bytecode-interpreter, core-lib, etc.) of mruby is written in the C programming language. Please note the following hints for your C code:
Comply with C99 (ISO/IEC 9899:1999)
mruby should be highly portable to other systems and compilers. For this it is recommended to keep your code as close as possible to the C99 standard (http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf).
Although we target C99, we’ve heard some compilers in the embedded environment still requires declarations of local variables to be at the beginning of a scope. Until we confirm the situation has changed, we use the old-style variable declaration.
Visual C++ is also an important target for mruby (supported version is 2013 or
later). For this reason features that are not supported by Visual C++ may not
be used (e.g. %z
of strftime()
).
NOTE: Old GCC requires -std=gnu99
option to enable C99 support.
Reduce library dependencies to a minimum
The dependencies to libraries should be kept to an absolute minimum. This increases the portability but makes it also easier to cut away parts of mruby on-demand.
Don’t use C++ style comments
/* This is the preferred comment style */
Use C++ style comments only for temporary comment e.g. commenting out some code lines.
Insert a break after the method return value:
int
main(void)
{
...
}
Ruby code
Parts of the standard library of mruby are written in the Ruby programming language itself. Please note the following hints for your Ruby code:
Comply with the Ruby standard (ISO/IEC 30170:2012)
mruby is currently targeting to execute Ruby code which complies to ISO/IEC 30170:2012 (http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579).