David A. Sykes, Ph.D.
Section A: MWF 11:30-12:20 in CCES 109.
MWF 2:00-3:30 P.M.
TR 9:00-10:45 A.M., 2:30-3:30 P.M.
Or by appointment. Or happenstance.
The main focus of this course is to learn how to write computer programs using the Python 3 programming language. While you are learning Python, you are also learning about the constructs that underly most computer programming languages. You’ll also learn how to design algorithms to solve problems, a key step in writing a program. Python is a way to express an algorithm in a way that lets a computer run it.
This is a programming course and not really a computer science course. (COSC 350 Data Structures & Algorithms is the first real course in computer science.) Computer science is the study of computation—what can be computed and how to compute it. When a computer follows the steps of an algorithm coded in a programming language, the computer is doing computation. After this course you will be able to develop algorithms to solve problems and then translate those algorithms to Python so a digital computer can execute the algorithm.
Using Python 3 to Solve Problems Using a Computer, 2nd edition by David Sykes and Dave Toth, Linus Learning, ©2021, ISBN 978-1-60797-910-4. I do not make any money from your purchase of this book.
You need an account for Mimir Classroom. Accounts are free. Most homework assignments, projects, and tests will be completed in Mimir.
You need an account at Piazza. Accounts are free. We’ll be conducting all class-related discussion here this term. The quicker you begin asking questions on Piazza (rather than via emails), the quicker you’ll benefit from the collective knowledge of your classmates and instructors. I encourage you to ask questions when you're struggling to understand a concept—you can even do so anonymously.
The COSC 235A Moodle course page will have a link to Mimir and to Piazza. Scores for homework, exams, and projects will be recorded in Moodle. The cumulative grade shown in Moodle should reflect your final weighted score. If you notice a problem, please let me know and I will try to correct it.
We will use Zoom for meeting remotely, sometimes during class meetings and sometimes for office hours. Portions of class meetings will be recorded and then be made available on the web. I encourage you to install the app on your computer and/or mobile device instead of using a web browser. If you have a spare computer monitor, then I recommend your using it to extend the desktop on your laptop computer so you can view the screen being shared while also viewing a separate window on your computer.
The same meeting ID and password will be used for each class meeting all semester.
Your grade for the course will be based on a weighted average of scores for quizzes, programming projects, and a paper/presentation. The usual grading scale applies: 93–100: A, 90–92: A-, 87–89: B+, 83–86: B, 80–82: B-, 77–79: C+, 73–76: C, 70–72: C-, 60–69: D, 0–59: F.
A final average will be calculated using the weightings shown in the table. If at some point we are forced to switch to remote-only learning then the weightings for the tests and the final exam might be revised.
| Component | Weight |
|---|---|
| Homework | 25% |
| Projects | 30% |
| Tests | 30% |
| Final exam | 15% |
| TOTAL | 100% |
Homework assignments help you to prepare for class and will usually consist of some reading in the textbook and some exercises (to be completed in Mimir). Homework is usually due two hours before the start of the class for which it was assigned. Deadlines are enforced by Mimir.
Homework is graded. Partial credit will seldom be awarded for incorrect answers to homework problems. If you are struggling with a homework problem, post a question about it at Piazza. You are allowed to use any resources you find useful for completing homework assignments, including consulting other students in the class.
The homework component of the final weighted average is computed using a simple weighted mean of scores: the percentage obtained by dividing the sum of points you earned by the sum of point values for the assignments. For example, let's say there are two assignments, the first worth 15 points and the second worth 25 points. If your score on the first assignment is 9 and your score on the second is 21, then your score for both is (9 + 21) ÷ (15 + 25) = 75%. Note that the result can be different from averaging the percentage scores for the two assignments, ((9 ÷ 15) + (21 ÷ 25)) ÷ 2 = (60% + 84%) ÷ 2 = 72%.
You will take two tests during the semester. The first will be administered after we cover Chapter 12. The second will be administered after we cover Chapter 19.
Tests will be given in Mimir or on paper. You may use an index card containing notes while taking a test on paper. You may use your notes and the textbook while you are taking a test in Mimir, but you may not use any other resources, including web resources, apps on your computer, and assistance from other people. Tests will be timed.
The average of the two test scores will be used in computing the final weighted score.
The best way to learn to code is to write a lot of it. Consequently, projects play an important role in this course. Each of the projects will give you the opportunity to write a Python program that utilizes what you’ve learned so far. It is important that you start coding right after a project is assigned so you can get help if you have trouble getting started or fixing bugs.
The projects component of the final weighted average is computed using a simple weighted mean of scores, the same method used for homework.
The final exam will assess how well you reached the objectives for the course. The final exam will be most likely be given online (Mimir) and will have a time limit.
You may use your index card, the textbook, and your notes from this class while taking the final exam. You may not use any other resources, including other people.
We are fortunate to be meeting in a classroom that can accommodate all of us even with appropriate social distancing. Consequently, all of us can attend class meetings in person starting with the second week of classes. The first week classes will meet remotely using Zoom.
Evaluate your own health regularly. Do not attend class or other on-campus events if you are not feeling well. Seek appropriate medical attention for treatment of illness. A doctor's note concerning absences is not required.
You are expected to attend class meetings in person if you are well. You must wear a mask covering nose and mouth in the classroom and sit at least six feet from others.
If you are not well, you are expected to attend class meetings remotely via Zoom if you can. The General Policy Regarding Attendance in the Wofford College Student Handbook makes you responsible for catching up on any missed classes.
If necessary, we will move to a synchronous, blended or a synchronous, remote model. Under those models, class meetings will be held in person and/or using Zoom. You will be expected to be in each of those Zoom meetings.
Bring a charged laptop to each class meeting if you can. We will often work in-class exercises using a laptop. However, I will expect your laptop to be closed unless I direct you to use it. Take notes on paper. Your open laptop is usually a distraction not only for you, but for other students near you.
If you are remote and using your laptop for a Zoom connection, try to get access to a second monitor. That will facilitate your being able to see what is being done via screen sharing and what you will do as part of an in-class exercise.
I will make every effort to keep the office hours listed at the top of this syllabus. If I must cancel or move office hours, I will announce the change in Piazza.
You do not need to make an appointment to meet with me during office hours. Just drop in via Zoom. The same meeting ID and password will be used for each instance of office hours. (They are different from the ones used for class meetings.) I am usually on campus during office hours and you can meet with me in my office as long as we observe social distancing. I will look at your computer screen by either connecting your computer to my external monitor or by having you share your screen using Zoom.
I appreciate your meeting me during my office hours since it is time I have set aside and cannot easily use for another purpose. However, I realize that you might have conflicts. You are welcome to contact me to set up an appointment. If you do, list some times that you are available. Please do not ask me when I am available. Or you are welcome to drop by my office if you think I might be there.
You must meet homework and project deadlines. You may be able to submit a project late if both of these conditions are met:
Post questions and comments about this course on the Q&A page at Piazza. You are encouraged to respond to a question or to edit a response to a question. We are all learning together. If you send me a question via email or via private Piazza post that should be posted publicly at Piazza, my reply will direct you to post your question publicly.
Do not post working code at Piazza. Do not include in a response either “fixed” code or a detailed description of how to change code to get it to work. It is okay to post non-working code.
I usually respond to email messages sent Sunday through Thursday within 24 hours. I will usually respond within 48 hours to messages sent on a Friday or a Saturday. I usually respond much sooner to Piazza posts since I have the Piazza app on my phone and receive notifications. However, keep in mind that teaching is my job and not my whole life.
You can send me email messages for private matters, such as letting me know you will be absent or that you'd like to schedule a meeting. However, I prefer that you post a private message via Piazza.
The Honor Code requires faculty, staff, and students to maintain a high standard of individual honor and integrity. Work represented as your own must be your own.
I encourage you to collaborate with others in the class—that is, help or get help from others. However, you may not write code for another student or provide code to copy. Doing any of these things is a violation Honor Code.
What is the distinction between collaboration and cheating?
Collaboration
Ultimately, you must implement a solution to the problem yourself.
CheatingFor some projects, you might be allowed to work with other students in the class as a part of a team. In this case, you are allowed to share all your work with your teammates. However, you are expected to do all of the work together. One student should not work without the others present and contributing.
Don’t cheat because you are up against a deadline. Start each assignment as soon as it is given. If you run into a glitch:
If you need accommodations, go to the Student tab in myWofford and investigate the Request Accommodations channel. I’ll make every effort to work with you. Take care of this during the first week of classes and before the first quiz.
The schedule below is based on chapters in the textbook. We will cover the chapters in order. If we can move faster, we will. The first test will be given after we complete Chapter 12. The second test will be given after we complete Chapter 19.
| Week | Topics | Chapter |
|---|---|---|
| 04 JAN |
Introduction
Problem Solving and Patterns
Syntax Highlighting
|
1
2
4
|
| 11 JAN |
Elementary Data Types
Variables and Assignment
Input and output
|
5
6
7
|
| 18 JAN |
Functions, Objects, Statements, and Expressions
The Python Standard Library
|
8
9
|
| 25 JAN |
Strings
|
10
|
| 01 FEB |
Lists
Program Errors
|
11
12
|
| 08 FEB |
Creating Functions
|
13
|
| 15 FEB |
Conditional Statements
|
14
|
| 22 FEB |
Definite Loops
Indefinite Loops
|
15
16
|
| 01 MAR |
File Input and Output (I/O)
|
17
|
| 08 MAR |
Dictionaries and Sets
|
18
|
| 15 MAR |
Classes
|
19
|
| 22 MAR |
Building applications—Part 1
|
—
|
| 29 MAR |
Building Applications—Part 2
Wrap-Up
|
—
20
|
| 05 APR | Final exam: Wednesday, April 7, 2:00–5:00 P.M. |


Accessories
Kodi
Maps
BANGKOK WEATHER
,
Chanakan!
News Feed
Close Feed
Powered by
NewsApi.org
Settings
Search
Multimedia
Quotes
Todos
Todo
Temporary todo item.


Readonly Required Disabled
INPUT[text], [aria-label], [readonly]
aria readonly
INPUT[text], [aria-label], [required]
aria required
INPUT[text], [aria-label], [aria-required]
aria required
INPUT[text], [aria-label], [required], [readonly]
aria readonly
INPUT[text], [aria-label], [readonly], [aria-required]
aria readonly
INPUT[text], [aria-label], [aria-readonly]
aria readonly
INPUT[text], [aria-label], [aria-readonly], [aria-required]
aria readonly
BUTTON, [aria-label], [aria-disabled]
aria unavailable
BUTTON, [tabindex], [aria-label], [disabled]
NOT FOCUSABLE
INPUT[file], [aria-label], [aria-required]
aria required
Duplicates/Multiples
duplicate 'for' attibutes
duplicate 'id' attibutes
Multiple Legends
Multiple Figcaptions
Multiple Captions
ARIA Misspellings
ARIA Misspellings: aria-labeledby
ARIA Misspellings: arialabelledby
ARIA Misspellings: labelledby
ARIA Misspellings: ariadescribedby
ARIA Misspellings: describedby
ARIA Misspellings: arialabel
ARIA Misspellings: aria-role
Accesskey Issues
Accesskey that can't gain focus
Pressing alt+a does nothing because I don't have a tabindex
Accesskey with two character
Accesskey with shift key character
Accesskey is empty
Javascript Events
Javascript Event: onBlur
Javascript Event: onChange
Javascript Event: onmouseover and not focusable
You Can Hover Over Me, But You Can't Tab To Me
Javascript Event: ondoubleclick
Trickery
aria-labelledby that points to a span that has an aria-label
reads the aria-label
don't read this
aria-describedby that points to a span that has an aria-label
reads the aria-label
don't read this
content
aria-labelledby pointing to a hidden element(spec says it should still read the hidden content)
reads the hidden content
aria-describedby(two idrefs)
DANGER
aria-labelledby(two idrefs)
labelledby1 labelledby2
aria-labelledby referencing 'id' of a legend
legend legend+WARNING
aria-labelledby referencing 'id' of a label(nested)
label
aria-labelledby referencing 'id' of a label whose 'for' is referencing the 'id' of the element
label
aria-labelledby referencing 'id' of itself
content
content
aria-labelledby referencing 'id' of itself multiple times
content
content
aria-labelledby referencing 'id' of a div that has a link that has a title attribute
Div content Anchor content
Div content
Anchor content
aria-labelledby pointing to a legend
legend legend+WARNING
Empty Values/Contents & Missing References
aria-labelledby missing reference
labelledby+WARNING
aria-describedby missing reference aria-label
aria describedby+WARNING
Empty Attribute: aria-label
DANGER
Empty Attribute: aria-labelledby
DANGER
Empty label (first without space, second with space)
DANGER
Empty label(nested) (first without space, second with space)
DANGER
Empty Attribute: aria-describedby
DANGER
Empty Attribute: title
DANGER
Empty Attribute: alt
DANGER
Empty Legend (first without space, second with space)
DANGER
Empty Div
DANGER
Other Attributes
aria-invalid
aria invalid entry
aria-haspopup
content menu
aria-controls
controller controls element
content
aria-hidden
IGNORES HIDDEN ELEMENT(READS "black")
Black
hidden
IGNORES HIDDEN ELEMENT(READS "black")
Black Green


I find that the word 'if' puts things off, it is too tentative, as though things were not going to happen. I changed the
word 'if 'to the words 'as soon as' and I have found that things I want to have happen come much quickly into my life. Don't
say 'if they Stage' rather say, 'as soon as they Stage.' See what I mean, that is much better.
Barb Schwarz, The Creator of Home Staging


The Talented Mr. Ripley 3 Stars (Out of 4) Reviewed by Mac VerStandig<EMAIL_ADDRESS>http://www.moviereviews.org January, 2000
---A copy of this review can be found at http://moviereviews.org/the_talented_mr__ripley.htm---
The most impressive part of The Talented Mr. Ripley isn't Matt Damon's excellent performance or the picturesque Italian scenery, but rather the abnormally disturbing chills that commence running down your spine at the 10-minute juncture of the two-hour-plus film.
Dickie Greenleaf (Jude Law) is a playboy in the truest of senses. He lives in Italy off of the allowance his father provides, dates a beautiful girl named Marge Sherwood (Academy Award Winner Gwyneth Paltrow) and cheats on her constantly. But Dickie's father, Herbert (James Rebhorn), isn't blind to his son's laziness and decides to do something about it when he meets Tom Ripley (Matt Damon). The meeting is really just a big misunderstanding, since Tom is wearing a borrowed Princeton jacket that leads Herbert to assume he was Dickie's classmate. Before long, Tom is given $1000 (a lot of money in the 1950's setting) to find Dickie in Italy and bring him back to his father. Although the film's trailer has no qualms about giving away almost every twist and turn of the movie, I won't.  Dickie Greenleaf is a somebody.
One of the unnecessary characters in the film is Meredith Logue (Cate Blanchett). Meredith is a playgirl who shuns her family's name and money but clearly couldn't survive without the socialite status that both provide. She wanders in and out of the plot according to when it is convenient to have her around and could be edited out altogether in favor of a shorter and more concise film. The only drawback to splicing Meredith away is that Cate Blanchett gives a remarkable performance that over-shadows the more prominent Gwyenth Paltrow. This is most ironic since Paltrow stole Blanchett's much deserved Best Actress Oscar for Elizabeth when she won for her mediocre-at-best performance in Shakespeare in Love.
The other standout is Matt Damon who confirms his status as one of the finer up-and-coming actors with Good Will Hunting, Rounders, Saving Private Ryan and now this under his belt. He makes Ripley an eerie and frightening character while, at the same time, maintaining a sort of dorky persona and managing to not overdue some rather subtle homosexual themes. His character's success at becoming someone he isn't is half due to his talent and half due to his luck. Damon smirks just the right way when he catches a serendipitous break and uses these fortunes to make the character all the more eerie and the film all the more disturbing.
The Talented Mr. Ripley beautifully captures the essence of Italy. The film's remarkable cinematography should go head-to-head with Anna and the King on Oscar night. Scenes in Venice's St. Marx Square, Rome's Piazza di Spagna (Spanish Steps) and other Italian landmarks are magnificently shot and even compete with the actors onscreen for attention.
The movie has many similarities to F. Scott Fitzgerald's The Great Gatsby. Not the least of which is the concept of someone who obtains money through illegitimate means by trying to be someone they're not. This holds true of both Tom Ripley and Dickie here. The lavish socialite lifestyles portrayed are similar and so is the deep, dark secrets that just about everyone has. Just don't confuse yourself, The Talented Mr. Ripley may be good, but if you expect something on par with The Great Gatsby, you will be sorely disappointed.
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


{* this email is sent to the applicant after he applied for a multiple jobs *}
[t]Dear {$name|escape},[/t]
[t]You have succesfully applied for the jobs:[/t]
{foreach from=$jobTitles item=jobTitle}
{$jobTitle|escape}
{/foreach}
[t]We will contact you within a few days, to inform you about the first screening results. You can contact me by e-mail or telephone if you have any questions.[/t]
[t]Kind regards, {$contactPerson} {$client} {$website}[/t]
[t]Remark: this e-mail message has been automatically generated[/t]


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.ApplicationConfig @import include._ @import views.html.include.DevMain @import domain.models.applications.CollaboratorRole @import domain.models.developers.DeveloperSession @import domain.models.applications.Application @import domain.models.views.IpAllowlistFeedbackBanner @import model.Crumb @this(devMain: DevMain) @(app: Application, roleOfLoggedIn: CollaboratorRole)( implicit request: play.api.mvc.Request[Any], loggedIn: DeveloperSession, messages: Messages, applicationConfig: ApplicationConfig) @sandboxOrAdmin = @{app.deployedTo.isSandbox || roleOfLoggedIn.isAdministrator} @devMain( title = "IP allow list", userFullName = loggedIn.loggedInName, developerSession = Some(loggedIn), breadcrumbs = Seq( Crumb("IP allow list"), Crumb.application(app), Crumb.viewAllApplications ), feedbackBanner = Some(IpAllowlistFeedbackBanner) ) {
API requests can only be made from these IP addresses.
| IP addresses |
|---|
| @ipRange |
Check how to add IP addresses to your IP allow list
@if(!app.ipAllowlist.required) { } } else {You cannot edit the IP allow list because you are not an administrator.


Custom URL protocols and multiple classloaders
In the introduction to Spring’s Resources, the following is mentioned in reference to the standard java.net.URL:
While it is possible to register new handlers for specialized URL prefixes (similar to existing handlers for prefixes such as http:), this is generally quite complicated, and the URL interface still lacks some desirable functionality, such as a method to check for the existence of the resource being pointed to.
Whilst I don’t disagree on the need for a simpler resource abstraction, I do think that the statement misses the key point that the URL protocol extension mechanism does not work well in multiple classloader environments (e.g. Webapps and OSGI bundles), hence I thought I would write this blog entry to explain:
- The way custom URL protocol handlers are registered.
- Why the extension mechanism does not work well with multiple classloaders.
Registering a custom URL protocol handler
To register a custom URL protocol handler the following needs to be done:
- Provide a concrete implementation for URLStreamHandler.
- Provide a concrete implementation for URLConnection.
- Name your URLStreamHandler class Handler and put it in a special package.
The following code illustrates a protocol called user, which will treat all file paths relative to the user’s home directory:
package sun.net.www.protocol.user; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; public class Handler extends URLStreamHandler { @Override protected URLConnection openConnection(URL url) throws IOException { return new UserURLConnection(url); } private static class UserURLConnection extends URLConnection { private String fileName; public UserURLConnection(URL url) { super(url); fileName = url.getPath(); } @Override public void connect() throws IOException { } @Override public InputStream getInputStream() throws IOException { File absolutePath = new File(System.getProperty("user.home"), fileName); return new FileInputStream(absolutePath); } } }
Note that the package is sun.net.www.protocol.user and the class is called Handler. The extension mechanism requires you to call your class Handler and put it in a subpackage that is your protocol name. The parent package can be arbitrary however by default sun.net.www.protocol will be searched. If you wish to use your own parent package you must also provide a system property called java.protocol.handler.pkgs which lists your package name (e.g. uk.co.cooljeff.protocol.user).
The following test case illustrates how the customer user protocol can be used:
public class URLTest { @Test public void testUserProtocol() throws Exception { URL url = new URL("user:.profile"); InputStream ins = url.openStream(); assertNotNull(ins); ins.close(); } }
This is all that needs to be done which I found pretty simple to do. The hardest bit was finding the documentation. Unfortunately the documentation for the extension mechanism is found on one of the java.net.URL constructors and not in the class level documentation for URL or the package documentation for java.net.
Multiple classloaders and custom URL protocol handlers
The custom user protocol described in the previous section works without any issue in an Eclipse project or in a vanilla standalone application. However if I were to supply my custom protocol in a web app deployed on tomcat, the following exception is likely to have been seen:
Caused by: java.net.MalformedURLException: unknown protocol: user at java.net.URL.(URL.java:574) at java.net.URL.(URL.java:464) at java.net.URL.(URL.java:413) at uk.co.cooljeff.protocol.user.URLTest.testUserProtocol(URLTest.java:12) . . . 5 more
To understand why, take a look at the logic used to locate custom protocols (found in URL.getURLStreamHandler(String)):
static URLStreamHandler getURLStreamHandler(String protocol) { . . . String clsName = packagePrefix + "." + protocol + ".Handler"; Class cls = null; try { cls = Class.forName(clsName); } catch (ClassNotFoundException e) { ClassLoader cl = ClassLoader.getSystemClassLoader(); if (cl != null) { cls = cl.loadClass(clsName); } } if (cls != null) { handler = (URLStreamHandler)cls.newInstance(); } . . .
You will notice that Class.forName() is used. The issue here is that the classloader that will be used is the classloader of the calling class. The calling class in this instance is URL. Hence if URL is loaded in a parent classloader of where the custom protocol is, it won’t be found. This is why custom URL protocols have to be put on the web containers classpath rather than being bundled in the web app that uses it.
Conclusion
The URL protocol extension mechanism is fundamentally flawed when it comes to multi classloader environments such as OSGI and Webapp containers. The registration mechanism does not work because in such environments, the URL class itself is likely to be in a parent classloader of the custom protocol, resulting in the custom protocol not being visible to the registration logic. In addition there is no standardization for the default package structure for where additional protocols should be found. This leads to either a non portable solution across JVMs or the need to use system properties which are not that friendly in enterprise web app containers.


pngtopnm(1) pngtopnm(1) NAME pngtopnm - convert a Portable Network Graphics file into portable anymap SYNOPSIS pngtopnm [-verbose] [-alpha | -mix] [-background color] [-gamma value] [-text file] [-time] [pngfile] DESCRIPTION Reads a Portable Network Graphics as input. Produces a portable anymap as output. The type of the output file depends on the input file - if it's black & white, a pbm file is written, else if it's grayscale a pgm file, else a ppm file. OPTIONS -verbose Display the format of the input file and the type of the output file. If the chunks are part of the png-file, the alpha, trans‐ parency and gamma-values will be indicated. -alpha Output the alpha channel or transparency mask of the image. The result is either a pbm file or pgm file, depending on whether dif‐ ferent levels of transparency appear. -mix Compose the image with the transparency or alpha mask against a the background. When a background chunk is available that color is taken, else black will do. -background color If no background color chunck is present in the png-file, or when another color is required this parameter can be used to set the background color of images. This is especially useful for alpha- channel images or those with transparency chunks. The format, to specify the color in, is either (in the case of orange) "1.0,0.5,0.0", where the values are floats between zero and one, or with the syntax "#RGB", "#RRGGBB" or "#RRRRGGGGBBBB" where R, G and B are hexa-decimal numbers. -gamma value Converts the image to a new display-gamma value. When a gAMA chunk is present in the png-file, the image-gamma value will be used. When not, the image-gamma is considered to be 1.0. Based on the image-gamma and the display-gamma given with this option the col‐ ors written to the pnm-file will be adjusted. Because the gamma's of uncompensated monitors are around 2.6, which results in an image-gamma of 0.45, some typical situations are: when the image-gamma is 0.45 (use -verbose to check) and the picture is too light, your system is gamma-corrected, so convert with "-gamma 1.0". When no gAMA chunk is present or the image- gamma is 1.0, use 2.2 to make the picture lighter and 0.45 to make the picture darker. -text file Writes the tEXt and zTXt chunks to a file, in a format as described in the pnmtopng man-page. These chunks contain text comments or annotations. -time Prints the tIME chunk to stderr. All flags can be abbreviated to their shortest unique prefix. SEE ALSO pnmtopng(1), ptot(1), pnmgamma(1), pnm(5) NOTE Instead of pngtopnm|pnmtoxxx, a specific converter should be used, if available. E.g. ptot (PNG to TIFF conversion), etc. BUGS There could be an option to read the comment text from pnm comments instead of a separate file. The program could be much faster, with a bit of code optimizing. AUTHORS Copyright (C) 1995-1997 by Alexander Lehmann and Willem van Schaik. 6 January 1997 pngtopnm(1)


Ocean [ax60], ocean, in The Inner Sea
Last updated Turn #132
Ocean [ax60], ocean, in The Inner Sea
------------------------------------------------------------------------
22: Pleasure Sloop [v5n], ship, 30 hulls, 1 rowing port, 90 sails,
22: 4% damaged, arrived from Ocean [ax61], owner:
22: Dorothy [v1b], Pen, with one peasant, 94 sailors
22: Apollo [b5e], Imperial Empire, with 63 lt. xbowmen,
22: accompanied by:
22: Lutra [a4w], Imperial Empire, with 13 paladins, 40 pikemen
22: Hera [g3f], Imperial Empire, with 20 soldiers, 40 pikemen
22: Thor [r4g], Imperial Empire, with ten soldiers, 39 pikemen
22: Eos [a2t], Imperial Empire, with ten workers, 48 lt. xbowmen
22: Khaki Blazer [w4j], Imperial Empire, with 17 soldiers,
22: seven pikemen, 35 lt. foot
22: Banian [e7n], Imperial Empire, earl, the High Priest of the
22: Church of Eres [151], with five soldiers, ten angels
23: Pleasure Sloop [v5n], ship, 30 hulls, 1 rowing port, 90 sails,
23: 4% damaged, departed for Ocean [ax59].
23: Hungry looking birds circle overhead.
30: The fog has cleared.
30: Strangely solid clouds cover the sky.
Routes leaving Ocean:
North, to Ocean [aw60], 6 days
East, to Ocean [ax61], Crystal Sea, 6 days
South, to Ocean [ay60], Crystal Sea, 6 days
West, to Ocean [ax59], 6 days


Starter
- Up to 5 users
- Basic support on Github
- Monthly updates
- Free cancelation
Professional
- Up to 5 users
- Basic support on Github
- Monthly updates
- Free cancelation
Order Now
Business
- Up to 5 users
- Basic support on Github
- Monthly updates
- Free cancelation


Bachelors in Architecture and Urbanism from the Pontifical Catholic University of Minas Gerais, Brazil.
July 2010 - June 2015


BILLY'S HOLLWOOD SCREEN KISS
Reviewed by Harvey Karten, Ph.D. Trimark Pictures Director: Tommy O'Haver Writer: Tommy O'Haver Cast:Sean P. Hayes, Brad Rowe, Richard Ganoung, Meredith Scott Lynn, Matthew Ashford, Armando Valdes- Kennedy, Paul Bartel, Carmine D. Giovinazzo, Holly Woodlawn
Sometimes large ambitions can be realized with inconsequential admonitions. In the case of "Billy's Hollywood Screen Kiss," the writer-director ends the movie with the caption, "A Tommy O'Haver trifle," yet he opens the scenario with his lead character's pronouncement that he intends to bring straights and gays closer together. I think that the title person, Billy (Sean P. Hayes), understands the straight world well enough; he wants to get heterosexuals to fathom where homosexuals are coming from a little more.  To O'Haver's credit, that very large pigeonholing is discredited without the slightest pinch of pretentiousness or weighty plotting. "Billy's Hollywood Screen Kiss" features likable characters whose flaws may include opportunism and confusion but who are otherwise delightful beings with whom to spend an hour and a half.
O'Haver uses a cute distancing device throughout the film, a series of Polaroid snapshots which Billy has allegedly taken behind the viewfinder of the camera he carries around at all times. He is unemployed but hopes that his photography will get him noticed, preferably via a gallery exhibition set up by an established lenser. He is not confused by his sexual identity but he is baffled by his inability to find someone to commit himself to, another soul who could likewise find him attractive. In this longing he precisely mirrors the folks in straight society, thereby showing the audience that gays and straights are really the same.
In a series of episodes divided by a display of Polaroids, Billy first presents exhibit A, that of himself in bed with Fernando (Armando Valdes-Kennedy), who likes him but is committed to someone else. When he runs into a staggeringly handsome coffee-shop waiter, Gabriel (Brad Rowe), he's in love. Though Gabriel repeatedly speaks of a girl friend he left behind in San Francisco when he went to L.A. for fame and fortune, he sends out mixed signals. Billy is hopeful that the girl friend is a fabrication and, against the advice of his roommate Georgiana (Meredith Scott Lynn) and his well-to-do friend Perry (Richard Ganoung), he pursues the 26-year-old man.
The movie gets its title from the way that our current romantic imagination is fueled by the old Hollywood pictures like "From Here to Eternity." In fact, Billy gets Gabriel a job modeling for master photographer Rex Webster (Paul Bartel) simulating a scene at Catalina Island from that famous Burt Lancaster-Deborah Kerr sizzler. In the film's most tender scene, painstakingly milked for poignancy by director O'Haven, Billy gets Gabriel to share his bed and slowly, like any straight man seeking to get somewhere with the object of his devotion, cautiously and "accidentally" touches him on his bare torso to observe a reaction. What results fashions the movie's climax--so to speak--and leads Billy to go ahead with a Polaroid show in which Hollywood romantic scenes are re- created.
 The movie has a bittersweet ending, but most of all this light and airy fiction conjures up dream worlds with which Shakespeare himself was not unfamiliar.
Rated R. Running time: 92 minutes. (C) Harvey Karten 1998
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


Please NOTE
All the data here is fake, it gets stored in your localStorage, it will NEVER leave your browser.
Username is too short!
Max username length is 16, please shorten it.
minlength: {{registerForm.username.$error.minlength}}
Provided name is too short!
Max name length is 32, please shorten it.
Passwords do not match.
E-Mail is already taken.


Great Barrier Reef annual mass coral spawning begins
CAIRNS, Nov 18 — A mass coral spawning has begun on Australia's Great Barrier Reef, with early indications the annual event could be among the biggest in recent years, local marine biologists said yesterday.
Buffeted by climate change-induced rising sea temperatures and coral bleaching, the world's largest reef system goes into a frenzy once a year with a mass release of coral eggs and sperm that is synchronised to increase the chances of fertilisation.
Marine biologist Pablo Cogollos, from Cairns-based tour operator Sunlover Reef Cruises, said the first night of the 2019 spawning was notably "prolific" in a positive sign for the under-threat ecosystem.
“There was three times the volume of eggs and sperm compared to last year, when the soft corals spawned four nights after the full moon and it was deemed to be the best coral spawn in five years,” he said.
The natural wonder, which has been likened to underwater fireworks or a snowstorm, occurs just once a year in specific conditions: after a full moon when water temperatures hover around 27 to 28 Celsius.
Soft corals are the first to release, followed by hard corals, in a process that typically spans between 48 and 72 hours.
Coral along large swathes of the 2,300-kilometre reef have been killed by rising sea temperatures linked to climate change, leaving behind skeletal remains in a process known as coral bleaching.
The northern reaches of the reef suffered an unprecedented two successive years of severe bleaching in 2016 and 2017, raising fears it may have suffered irreparable damage.
Scientists last year launched a project to harvest coral eggs and sperm during the spawning, from which they plan to grow coral larvae and use it to regenerate badly damaged areas of the reef. — AFP-Relaxnews


Ocean [ab33], ocean, in Crystal Sea
Last updated Turn #78
Ocean [ab33], ocean, in Crystal Sea
------------------------------------------------------------------------
8: Fast Sail [ht2u], ship, 3 hulls, 1 rowing port, 9 sails, 8% damaged,
8: arrived from Ocean [ab32], owner:
8: Stewart [k0u], Pen, with 12 sailors
9: Fast Sail [ht2u], ship, 3 hulls, 1 rowing port, 9 sails, 8% damaged,
9: departed for Ocean [ab34].
Routes leaving Ocean:
North, to Ocean [aa33], 6 days
East, to Ocean [ab34], 6 days
South, mountain, to Dragonback Mountains [ac33], Oleg's Folly, impassable
West, to Ocean [ab32], 6 days
It is raining.


WITNESS LIST Insurance Committee March 24, 1997-10:30A HB 1498 For: Wise, Miguel (Sponsor) On: Anderson, Lyndon (TDI) HB 1662 For: Counts, David (Sponsor) Against: Burner, Burnie (Tx Gnty Mutual Assn) Davis, Will (USAA, Foremost C.M.) Geiger, Richard (Vesta Ins. Group) Thompson, Jay (AFACT) HB 1708 For: Cobb, Ronald (Amer Ins Assn) Lewis, Glenn (Sponsor) On: Brady, Kevin (TDI) HB 1709 For: Johnson, Gerald (IAA) Lewis, Glenn (Sponsor) On: Anderson, Lyndon (TDI) HB 1815 For: Abdnor, John (IAA) Dutton, Harold (Sponsor) Parker, Carl (IAA) On: Bordelon, Rod (OPIC) Perkins, Pamela (Attny General) Reeser, Rose Ann (TDI) HB 1963 For: Briesmeister, Janee (Consumers Union) Ferguson, Francis (Tx Assn of Cmty Dev. Co) Henneberger, John (Tx Low Income Housing) Hirschi, John (Sponsor) Huebell, Lee (Himself) Westbrook, Gilson (Himself) Against: Lee, Randy (Stewart Title Grnty Co) Snead, Robert (Texas Land and Title As) On: Cordova, Leroy (Himself) Durden, David (TDI) HB 2063 For: Clayton, Nan (AARP) Redus, Ron, DDS (Texas Dental Assn) Van de Putte, Letecia (Sponsor) HB 2314 For: Van de Putte, Leticia (Sponsor) Against: Lee, Randy (Stewart Title Grnty) Snead, Robert (Texas Land and Title) HB 3391 For: Neeley, Karen (Indep Bankers Assn of T) Payne, Tyson (Tx Assn Life Underwrite) Smithee, John (Sponsor) Spillman, Wade (Tx Assn of Ins Agents) Tooley, Ken (Tex Assn Life Underwrit) Against: Boggins, Joseph (First St Bank of Rio Vi) Heasley, John (Tx Bankers Assn)


Main menu:
Cyprus Shooting Sport Federation
Amfipoleos str. 21
2025 Nicosia, Cyprus
www.cssf-
Email<EMAIL_ADDRESS>English Target Shooting Federation
7 Pine Tree Hill, WOKING
Surrey, GU22 8LZ
Email<EMAIL_ADDRESS>Gibraltar
Guernsey
Isle of Man Target Shooting Federation
Email<EMAIL_ADDRESS>Jersey Shooting Federation
Chalet Abaco, Green Road
St Clement, Jersey, JE2 6QA
www.jsf.org.je
Email<EMAIL_ADDRESS>Malta Shooting Sport Federation
Triq is-
Bidnija I/o Mosta MST 5100, Malta
www.mssf.org.mt
Email<EMAIL_ADDRESS>Northern Ireland Federation of Shooting Sports
www.nifss.co.uk
Email<EMAIL_ADDRESS>Scottish Target Shooting
Caledonia House, 1 Redheughs Rigg,
Edinburgh, EH12 9DQ
www.scottishtargetshooting.co.uk
Email<EMAIL_ADDRESS>Welsh Target Shooting Federation
WTSF Office, Sport Wales National Centre
Sophia Gardens, Cardiff, CF11 9SW
www.wtsf.org.uk
Email: john.dallimore@wtsf.org.uk


Games played last month
Coffee cups per day
Average Monthly Uploads
VISITORS
VOLUME
FORKS
MESSAGES
VISITORS
VOLUME
FORKS
MESSAGES
Lead director
Voluptate velit id mollit ex. Anim labore non dolore ad cupidatat aute reprehenderit ullamco culpa esse. Esse exercitation laboris culpa ipsum pariatur mollit minim culpa magna.
Photos
Likes
Following
Website Traffics
Website Impressions
Total Sales
Support Tickets
VISITORS
VOLUME
FORKS
NEW MESSAGES
A UI Design Language
{{item.content}}
{{item.content}}


WTO says US not complying fully on India steel dispute ruling
GENEVA, Nov 16 — A World Trade Organisation panel ruled yesterday that Washington had failed to fully comply with a five-year-old ruling in a dispute over import duties on Indian steel products.
India first filed its complaint at the WTO in 2012, after Washington imposed duties of nearly 300 per cent on imports of products including carbon-quality steel pipes, after complaining that Indian steel manufacturers were benefitting from unfair subsidies.
The global trade body then ruled in 2014 that the duties constituted a breach of global trade rules, and ordered Washington to bring its practices into line.
But India complained that Washington was failing to comply with that ruling and asked the WTO to weigh in again.
In the ruling yesterday, the WTO’s Dispute Settlement Body rejected several charges by India but found that the US had “failed to comply with the recommendations and rulings of the DSB in the original dispute.”
“We recommend that the United States bring its measures into conformity with its obligations,” the ruling said.
The WTO polices global trade accords in an effort to offer its member economies a level playing field.
Its panels can authorise retaliatory trade measures by the wronged party if its rival fails to fall into line. — AFP


fun setDeleteEmptyListener(deleteEmptyListener: DeleteEmptyListener?): Unit
Sets a listener that can react to the user attempting to delete the empty string.
deleteEmptyListener - the DeleteEmptyListener to attach to this view
deleteEmptyListener


Trees
Indices
Help
Jisc Publications Router - SWORDv2 repository depositor
[
hide private
]
[
frames
] |
no frames
]
Identifier Index
[
A
B
C
D
E
F
G H I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y Z
_
]
A
account
(in
service.models
)
activate()
(in
RepositoryStatus
)
ALI
(in
service.tests.unit.test_xwalk
)
Account
(in
service.models.account
)
activate_deposit()
(in
service.control
)
API_KEY
(in
service.tests.unit.test_client
)
ACCOUNT_ENABLE
(in
config.service
)
add_packaging()
(in
Account
)
api_key()
(in
Account
)
AccountDAO
(in
service.dao
)
add_sword_credentials()
(in
Account
)
ATOM
(in
service.tests.unit.test_xwalk
)
B
BASE_NOTIFICATION
(in
service.tests.fixtures.notifications
)
C
can_retry()
(in
RepositoryStatus
)
completed_status()
(in
DepositRecord
)
control
(in
service
)
COL
(in
service.tests.functional.test_deposit
)
config
complete_deposit()
(in
service.deposit
)
content_status()
(in
DepositRecord
)
D
dao
(in
service
)
deposit
(in
service
)
deposit_record_do_test()
(in
SwordFactory
)
DC
(in
service.tests.unit.test_xwalk
)
deposit_date()
(in
DepositRecord
)
DepositException
(in
service.deposit
)
deactivate()
(in
RepositoryStatus
)
deposit_datestamp()
(in
DepositRecord
)
DepositRecord
(in
service.models.sword
)
deactivate_deposit()
(in
service.control
)
DEPOSIT_RECORD
(in
service.tests.fixtures.sword
)
DepositRecordDAO
(in
service.dao
)
DEBUG
(in
config.service
)
deposit_record()
(in
SwordFactory
)
DepositRecordQuery
(in
service.dao
)
DEFAULT_SINCE_DATE
(in
config.service
)
DEPOSIT_RECORD_DO
(in
service.tests.fixtures.sword
)
E
ELASTIC_SEARCH_EXAMPLE_DOCS
(in
config.service
)
ELASTIC_SEARCH_MAPPINGS
(in
config.service
)
error_response()
(in
NotificationFactory
)
ELASTIC_SEARCH_HOST
(in
config.service
)
ELASTIC_SEARCH_VERSION
(in
config.service
)
example_package_path()
(in
NotificationFactory
)
ELASTIC_SEARCH_INDEX
(in
config.service
)
ERR_COL
(in
service.tests.functional.test_deposit
)
F
fixtures
(in
service.tests
)
functional
(in
service.tests
)
J
JPER_BASE_URL
(in
service.tests.unit.test_client
)
L
last_deposit_date()
(in
RepositoryStatus
)
last_tried_timestamp()
(in
RepositoryStatus
)
LONG_CYCLE_RETRY_DELAY
(in
config.service
)
last_tried()
(in
RepositoryStatus
)
LIST_ERROR
(in
service.tests.fixtures.notifications
)
LONG_CYCLE_RETRY_LIMIT
(in
config.service
)
M
metadata_deposit()
(in
service.deposit
)
mock_iterate()
(in
service.tests.unit.test_client
)
mock_package_deposit_success()
(in
service.tests.unit.test_deposit
)
metadata_status()
(in
DepositRecord
)
mock_iterate_fail()
(in
service.tests.unit.test_deposit
)
mock_process_account_fail()
(in
service.tests.unit.test_deposit
)
mock_complete_deposit_fail()
(in
service.tests.unit.test_deposit
)
mock_iterate_success()
(in
service.tests.unit.test_deposit
)
mock_process_notification_fail()
(in
service.tests.unit.test_deposit
)
mock_complete_deposit_success()
(in
service.tests.unit.test_deposit
)
mock_list()
(in
service.tests.unit.test_client
)
mock_process_notification_success()
(in
service.tests.unit.test_deposit
)
mock_get_content()
(in
service.tests.functional.test_deposit
)
mock_metadata_deposit_fail()
(in
service.tests.unit.test_deposit
)
models
(in
service
)
mock_get_content()
(in
service.tests.unit.test_client
)
mock_metadata_deposit_success()
(in
service.tests.unit.test_deposit
)
mock_get_content()
(in
service.tests.unit.test_deposit
)
mock_package_deposit_fail()
(in
service.tests.unit.test_deposit
)
N
notification()
(in
DepositRecord
)
notification_list()
(in
NotificationFactory
)
notifications
(in
service.tests.fixtures
)
NOTIFICATION_LIST
(in
service.tests.fixtures.notifications
)
NotificationFactory
(in
service.tests.fixtures.notifications
)
O
OUTGOING
(in
service.tests.fixtures.notifications
)
outgoing_notification()
(in
NotificationFactory
)
P
package_deposit()
(in
service.deposit
)
PORT
(in
config.service
)
pull_by_ids()
(in
DepositRecordDAO
)
PACKAGING
(in
service.tests.functional.test_deposit
)
process_account()
(in
service.deposit
)
PW
(in
service.tests.functional.test_deposit
)
packaging()
(in
Account
)
process_notification()
(in
service.deposit
)
Q
query()
(in
DepositRecordQuery
)
query()
(in
SwordAccountQuery
)
R
record_failure()
(in
RepositoryStatus
)
REPOSITORY_STATUS_DO
(in
service.tests.fixtures.sword
)
RIOXX
(in
service.tests.unit.test_xwalk
)
REPO_SOFTWARE
(in
service.tests.functional.test_deposit
)
repository_status_do_test()
(in
SwordFactory
)
run()
(in
service.deposit
)
repository()
(in
DepositRecord
)
RepositoryStatus
(in
service.models.sword
)
RUN_THROTTLE
(in
config.service
)
repository_software()
(in
Account
)
RepositoryStatusDAO
(in
service.dao
)
runner
(in
service
)
REPOSITORY_STATUS
(in
service.tests.fixtures.sword
)
RESOURCES
(in
service.tests.fixtures.notifications
)
repository_status()
(in
SwordFactory
)
retries()
(in
RepositoryStatus
)
S
SECRET_KEY
(in
config.service
)
setUp()
(in
TestModels
)
sword
(in
service.models
)
service
(in
config
)
SSL
(in
config.service
)
sword
(in
service.tests.fixtures
)
service
status()
(in
RepositoryStatus
)
sword_collection()
(in
Account
)
setUp()
(in
TestDeposit
)
STORE_IMPL
(in
config.service
)
sword_password()
(in
Account
)
setUp()
(in
TestModels
)
STORE_LOCAL_DIR
(in
config.service
)
sword_username()
(in
Account
)
setUp()
(in
TestModels
)
STORE_RESPONSE_DATA
(in
config.service
)
SwordAccountQuery
(in
service.dao
)
setUp()
(in
TestDeposit
)
STORE_TMP_DIR
(in
config.service
)
SwordFactory
(in
service.tests.fixtures.sword
)
setUp()
(in
TestModels
)
STORE_TMP_IMPL
(in
config.service
)
T
tearDown()
(in
TestDeposit
)
test_03_content_deposit_success()
(in
TestDeposit
)
test_11_process_account_error()
(in
TestDeposit
)
tearDown()
(in
TestModels
)
test_03_deposit_record()
(in
TestModels
)
test_12_process_account_success()
(in
TestDeposit
)
tearDown()
(in
TestModels
)
test_03_iterate_notifications()
(in
TestModels
)
test_client
(in
service.tests.unit
)
tearDown()
(in
TestDeposit
)
test_03_notification_metadata_fail()
(in
TestDeposit
)
test_control
(in
service.tests.unit
)
tearDown()
(in
TestModels
)
test_04_content_deposit_fail()
(in
TestDeposit
)
test_deposit
(in
service.tests.functional
)
tearDown()
(in
TestModels
)
test_04_deposit_record_pull()
(in
TestModels
)
test_deposit
(in
service.tests.unit
)
TERMS
(in
service.tests.unit.test_xwalk
)
test_04_notification_metadata_no_package_success()
(in
TestDeposit
)
test_models
(in
service.tests.unit
)
test_01_account()
(in
TestModels
)
test_04_notification_package_link()
(in
TestModels
)
test_xwalk
(in
service.tests.unit
)
test_01_activate_deactivate()
(in
TestModels
)
test_05_cache_content()
(in
TestDeposit
)
TestDeposit
(in
service.tests.functional.test_deposit
)
test_01_list_notifications()
(in
TestModels
)
test_05_complete_deposit_success()
(in
TestDeposit
)
TestDeposit
(in
service.tests.unit.test_deposit
)
test_01_metadata_deposit_success()
(in
TestDeposit
)
test_06_complete_deposit_fail()
(in
TestDeposit
)
TestModels
(in
service.tests.unit.test_client
)
test_01_run_fail()
(in
TestDeposit
)
test_06_metadata_success_package_fail()
(in
TestDeposit
)
TestModels
(in
service.tests.unit.test_control
)
test_01_xwalk()
(in
TestModels
)
test_07_full_cycle_success()
(in
TestDeposit
)
TestModels
(in
service.tests.unit.test_models
)
test_02_get_content()
(in
TestModels
)
test_07_metadata_success_package_success_complete_fail()
(in
TestDeposit
)
TestModels
(in
service.tests.unit.test_xwalk
)
test_02_metadata_deposit_fail()
(in
TestDeposit
)
test_08_full_deposit_success()
(in
TestDeposit
)
tests
(in
service
)
test_02_notification_ignore()
(in
TestDeposit
)
test_09_process_account_failing()
(in
TestDeposit
)
THREADED
(in
config.service
)
test_02_repository_status()
(in
TestModels
)
test_10_process_account_jper_error()
(in
TestDeposit
)
to_dc_rioxx()
(in
service.xwalk
)
U
UN
(in
service.tests.functional.test_deposit
)
unit
(in
service.tests
)
unrouted_notification()
(in
NotificationFactory
)
W
was_successful()
(in
DepositRecord
)
with_sword_activated()
(in
AccountDAO
)
X
xwalk
(in
service
)
_
__init__()
(in
DepositRecordQuery
)
__package__
(in
service
)
__type__
(in
DepositRecordDAO
)
__init__()
(in
SwordAccountQuery
)
__package__
(in
service.tests
)
__type__
(in
RepositoryStatusDAO
)
__init__()
(in
DepositRecord
)
__package__
(in
service.tests.functional
)
_cache_content()
(in
service.deposit
)
__init__()
(in
RepositoryStatus
)
__package__
(in
service.tests.unit
)
__package__
(in
config
)
__type__
(in
AccountDAO
)
Trees
Indices
Help
Jisc Publications Router - SWORDv2 repository depositor
Generated by Epydoc 3.0.1 on Wed Nov 25 09:18:47 2015
http://epydoc.sourceforge.net


D3-Celestial
Sky map with D3.js
Interactive map Sky viewer Animated planets Just the stars GitHub repositoryInteractive, adaptable celestial map done with the D3.js visualization library. So, GeoJSON for sky stuff. Which surprisingly nobody has done yet, it seems.
Features display of stars from the Hipparcos catalogue, deep sky objects (DSOs) with a selectable magnitude limit up to 6, or choose different GeoJSON data source for higher magnitudes. Also shows constellations with names, lines and/or boundaries, the Milky Way band, grid lines/coordinates and Solar System objects. Alternate coordinate spaces e.g. ecliptc, galactic or supergalactic are also possible. Full support for zoom and rotation with mouse or gestures. The interactive viewer has a form that can set most parameters live on the map
D3-Orrery
Solar System map with D3.js & three.js
Interactive Map GitHub RepositoryAn interactive Solar System simulator (a.k.a. Orrery) implemented with d3.js for data handling and three.js for visualization. Shows planets as 3D bodies with surface texture and trajectories, as well as small bodies as simple sprites. Optional spacecraft with images and trajectories (tbi). Full support for zoom and rotation with mouse or gestures.
Space Exploration History
in interactive graphics
Solar System Exploration GitHub Repository Readme Event list Ground Segment Missions Destinations Launch sites Rockets Space Telescopes Spectral Range vs. ResolutionA collection of interactive graphics of space exploration, starting with a Solar System timeline and listings/maps of all the involved components. Continuing with an overview of active and future space telescopes, their spectral ranges and angular resolutions.
Asteroid families
Interactive plot with D3.js
Interactive Map GitHub RepositoryA 3D plot of asteroid families by proper elements and colors implemented with D3.js. Shows main belt asteroids grouped naturally by their proper orbital elements semi major axis (a), inclnation (sin i) and eccentricity (e). The color coding is from diagnostic colors indicative of composition.
THREEx Planets
Planet simulations for three.js
All bodies Earth & Moon Planetary Systems GitHub RepositoryAn extension for three.js, originally created by Jerome Etienne, improved and extended because I needed convincing displays of all the major Solar System bodies for my orrery (see above)
***
An exploration of the Tisserand parameter as an interactive line diagram and a heat map, including an explanation what it is.
***
Since the maps use d3.js, three.js and HTML5 canvas, they need a modern browser with canvas support, so any recent flavor of Chrome/Firefox/Safari/Opera or IE 9 and above should suffice. Check out the demo interactive viewers linked above or fork/download the code from the abve linked github repositories. Local loading works fine with Firefox; Chrome needs to be started with command line parameter --allow-file-access-from-files
to load local json files. Or use a local web server environment.
Thanks to Mike Bostock and Jason Davies for D3.js and d3.geo.projections. And also thanks to Jason Davies for d3.geo.zoom, which saved me some major headaches in figuring out how to rotate/zoom the sky map.
Released under BSD License


Setting up a development environment
Build requirements
The minimum requirements to build GDAL are:
CMake >= 3.10, and an associated build system (make, ninja, Visual Studio, etc.)
C99 compiler
C++11 compiler
PROJ >= 6.0
Additional requirements to run the GDAL test suite are:
SWIG >= 4, for building bindings to other programming languages
Python >= 3.6
Python packages listed in autotest/requirements.txt
A number of optional libraries are also strongly recommended for most builds: SQLite3, expat, libcurl, zlib, libtiff, libgeotiff, libpng, libjpeg, etc. Consult Raster drivers and Vector drivers pages for information on dependencies of optional drivers.
Vagrant
Vagrant is a tool that works with a virtualization product such as VirtualBox to create a reproducible development environment. GDAL includes a Vagrant configuration file that sets up an Ubuntu virtual machine with a comprehensive set of dependencies.
Once Vagrant has been installed and the GDAL source downloaded, the virtual machine can be set up by running the following from the source root directory:
# VAGRANT_VM_CPU=number_of_cpus
vagrant up
The source root directory is exposed inside the virtual machine at /vagrant
, so changes made to
GDAL source files on the host are seen inside the VM. To rebuild GDAL after changing source files,
you can connect to the VM and re-run the build command:
vagrant ssh
cmake --build .
Note that the following directories on the host will be created (and can be removed if the Vagrant environment is no longer needed):
../apt-cache/ubuntu/jammy64
: contains a cache of Ubuntu packages of the VM, to allow faster VM reconstructionbuild_vagrant
: CMake build directoryccache_vagrant
: CCache directory
Docker
The Linux environments used for building and testing GDAL on GitHub Actions are defined by Docker images that can be pulled to any machine for development. The Docker image used for each build is specified in linux_build.yml. As an example, the following commands can be run from the GDAL source root to build and test GDAL using the clang address sanitizer (ASAN) in the same environment that is used in GitHub Actions:
docker run -it \
-v $(pwd):/gdal:rw \
ghcr.io/osgeo/gdal-deps:ubuntu_20.04-master
cd /gdal
mkdir build-asan
cd build-asan
../.github/workflows/asan/build.sh
../.github/workflows/asan/test.sh
To avoid built objects being owned by root, it may be desirable to add -u $(id
-u):$(id -g) -v /etc/passwd:/etc/passwd
to the docker run
command above.
Building on Windows with Conda dependencies and Visual Studio
It is less appropriate for Debug builds of GDAL, than other methods, such as using vcpkg.
 It is also possible
to use the vs2019_win-64
package if Visual Studio 2019 is to be used.
Checkout GDAL sources
cd c:\dev
git clone https://github.com/OSGeo/gdal.git
Build GDAL
From a Conda enabled console
conda activate gdal
cd c:\dev\gdal
cmake -S . -B build -DCMAKE_PREFIX_PATH:FILEPATH="%CONDA_PREFIX%" \
-DCMAKE_C_COMPILER_LAUNCHER=clcache
-DCMAKE_CXX_COMPILER_LAUNCHER=clcache
cmake --build build --config Release -j 8


In this excercise, I have created wireframes for the three websites I talked about in my Week 1 Technical Blog post. Here I will talk about what problem the web page is solving, and what visual challenges there are.
Justin W
In this excercise, I have created wireframes for the three websites I talked about in my Week 1 Technical Blog post. Here I will talk about what problem the web page is solving, and what visual challenges there are.
Twitter users have a lot to deal with, with all of their hundreds of followers posting, friends to talk to, notifications to watch, and more. Twitter makes it easy for people to multitask and get everything they want on one main page. A user is able to read posts, make posts, write private messages, and even find suggestions for new people to follow, all on one page. The navbar never hides which makes it easy to make a post or do anything even when you are scrolling down through hundreds of tweets. It's challenging to fit all of that content on one page, but Twitter succeeds in making it easy to use without any clutter.
YouTube's video page format is key in its usability and popularity. One might think it could be difficult to cram all this information on one page that is half filled up with a video. Yet, it works, and the transition between video to other sections in the page seem... seamless. What's great about the video page is that they are never forgetting that people are on this site to upload there own videos, and there is always an "Upload" button present, no matter how far down you scroll, due to the fixed position of the navbar. A problem with video websites is how to keep people on the website longer, and with the highly tailored video suggestions on the side, people find excuses to stay on YouTube all day long.
I find Sony's "Be Moved" website layout to be very interesting and experimental. There's no visible container that you can differentiate from the background. There's no true footer, or header. The navbar dissapears as soon as you scroll down. This is because everything that is important is directly on the screen. This very dynamic "scroll down" website constantly changes its animations, images, and text as you go further down, and anything else would just be in the way. One might wonder how they can skip from one slide to the other, which is made doable with simple, light nav buttons on the right side. This website perfectly displays the Sony products by showing them in all kinds of beautiful angles, solving the problem of marketing efficiently. With so many visuals, this website might slow down older computers, but running it on a faster computer will surely be worth it.


Next: *print-lines*, Previous: *print-gensym*, Up: Printer Dictionary
a non-negative integer, or nil.
nil.
*print-level* controls how many levels deep a nested object will print. If it is false, then no control is exercised. Otherwise, it is an integer indicating the maximum level to be printed. An object to be printed is at level 0; its components (as of a list or vector) are at level 1; and so on. If an object to be recursively printed has components and is at a level equal to or greater than the value of *print-level*, then the object is printed as "#".
*print-length* controls how many elements at a given level are printed. If it is false, there is no limit to the number of components printed. Otherwise, it is an integer indicating the maximum number of elements of an object to be printed. If exceeded, the printer will print "..." in place of the other elements. In the case of a dotted list, if the list contains exactly as many elements as the value of *print-length*, the terminating atom is printed rather than printing "..."
*print-level* and *print-length* affect the printing of an any object printed with a list-like syntax. They do not affect the printing of symbols, strings, and bit vectors.
(setq a '(1 (2 (3 (4 (5 (6))))))) ⇒ (1 (2 (3 (4 (5 (6)))))) (dotimes (i 8) (let ((*print-level* i)) (format t "~&~D -- ~S~ |> 0 -- # |> 1 -- (1 #) |> 2 -- (1 (2 #)) |> 3 -- (1 (2 (3 #))) |> 4 -- (1 (2 (3 (4 #)))) |> 5 -- (1 (2 (3 (4 (5 #))))) |> 6 -- (1 (2 (3 (4 (5 (6)))))) |> 7 -- (1 (2 (3 (4 (5 (6)))))) ⇒ NIL (setq a '(1 2 3 4 5 6)) ⇒ (1 2 3 4 5 6) (dotimes (i 7) (let ((*print-length* i)) (format t "~&~D -- ~S~ |> 0 -- (...) |> 1 -- (1 ...) |> 2 -- (1 2 ...) |> 3 -- (1 2 3 ...) |> 4 -- (1 2 3 4 ...) |> 5 -- (1 2 3 4 5 6) |> 6 -- (1 2 3 4 5 6) ⇒ NIL (dolist (level-length '((0 1) (1 1) (1 2) (1 3) (1 4) (2 1) (2 2) (2 3) (3 2) (3 3) (3 4))) (let ((*print-level* (first level-length)) (*print-length* (second level-length))) (format t "~&~D ~D -- ~S~ *print-level* *print-length* '(if (member x y) (+ (car x) 3) '(foo . #(a b c d "Baz")))))) |> 0 1 -- # |> 1 1 -- (IF ...) |> 1 2 -- (IF # ...) |> 1 3 -- (IF # # ...) |> 1 4 -- (IF # # #) |> 2 1 -- (IF ...) |> 2 2 -- (IF (MEMBER X ...) ...) |> 2 3 -- (IF (MEMBER X Y) (+ # 3) ...) |> 3 2 -- (IF (MEMBER X ...) ...) |> 3 3 -- (IF (MEMBER X Y) (+ (CAR X) 3) ...) |> 3 4 -- (IF (MEMBER X Y) (+ (CAR X) 3) '(FOO . #(A B C D ...))) ⇒ NIL
Next: *print-lines*, Previous: *print-gensym*, Up: Printer Dictionary


In the quest of democratizing energy monitoring, a main aspect is to make the abstract more tangible. It's great to visualize electricity consumption in real time, with statistics and so on, but my grandmother still does not understand what it is all about.
In this blogpost (http://openenergymonitor.blogspot.de/2012/06/getting-visual.html) I shared some thoughts about what I'd like to see implemented in emonCMS dashboards, I'd love to see a conversation started here, and maybe a working group coming together to tackle this challenge.
Here are some ideas:
- Visualising 100w as one lightbulb.
- Visualizing 1kWh as a 100w lighbulb that is on for 10 hours.
- Find some kind of formulas (define variables) to compute performance indicator
- Implementing some kind of code that compiles a community benchmark
- Integrate some kind of social energy monitoring way of comparing performance and sharing best practice.
Looking forward to see what you think about this.
Re: What kind of graphs in emonCMS? Performance benchmarking?
Nice blog post Amin, I like the example, its really clear, definitely a way to present the information in a interesting way, yes interested in seeing how we can push this forward.
Re: What kind of graphs in emonCMS? Performance benchmarking?
Hello Amin, what do you think of this procedure of creating and appliance list and working out estimated savings: http://openenergymonitor.org/emon/sustainable-energy/electricity-audit-and-savings-case-study
I think this is the kind of information we need to be able to get at, the information thats needed for creating action points.
Although maybe the ultimate energy monitor might arrive at this list automatically via appliance inference or per appliance monitoring its either a very difficult problem or very expensive, maybe its just easier to do it manually in the meantime..until the hard problem is fixed - or that said maybe the mental engagement that you get from sitting down and going through the procedure of creating the list is important if your going to get anyware..
I can see a benefit in designing the process to be really nice, so maybe a well designed application that will bring both the manually built appliance list and the energy monitoring visualisation together in a beneficial way.
What do you think?
Re: What kind of graphs in emonCMS? Performance benchmarking?
about the monitoring of appliances, there is an nice product that called "plugwise" and makes simular dashboards like emoncms for every device that's connected to and plugwise "Circles" (current monitors). But it's very expencive a starterkit cost about 300 euro. and you can monitor only sockets with that..
So until there is an afforable*1 way to monitor single applicances I will do it manualy.
*1 you can also made an jeenode v6 and an CT sensor in a small kit for this but it will also be expensive..about 30 euro for each socket/applicance.
Re: What kind of graphs in emonCMS? Performance benchmarking?
hey alco,
plugwise is a product of ELV (elv.de), they make other cheaper plug monitors like this one. The RFM12B module can decode their readings with some tinkering in the code (JCW from jeelabs and other could do it)
For 20 EUR a piece it's a sweet deal.
Re: What kind of graphs in emonCMS? Performance benchmarking?
Hey Tryst,
well you're right in your approach of making small steps at a time and gaining momentum. It's better to do it manually until we have a fully automated solution.
But I believe the automated solution is not that hard after all. I'll take my flat as an example:
I have an emonTx with 3 CTs:
All I need it to add a wireless measuring plug to the fridge, then I'm all set for a fully automated solution.
I think this applies to many users as well. So if we make a few tweaks to the code you already have so that it fetches data directly from feeds, then this would be a hige leap (at least for me).
Another thing: households are complicated to survey, but small shops (bakeries, cafes, office builldings) have different wiring diagrams than most houses. By using a few CT's on each sub-circuit (even a few emonTx's make sense) and by fetching data from the feeds directly to the code you're referring to, we already have something.
What do you think?
Re: What kind of graphs in emonCMS? Performance benchmarking?
Yes your quite right
One idea that came to mind is that we have a wizard in emoncms to create the appliance list, If your just monitoring one circuit you can assign the whole list to that one CT.
But if your measuring sub circuits, say you have 5 lights on sub circuit 1 you could assign the CT on that sub circuit to the 5 lights in the list and be able to cross reference your model a little better.
So maybe there is a scale between fully manual and fully automatic.
We need a open source plug based monitor that interfaces with the system, that would be great! :)
Re: What kind of graphs in emonCMS? Performance benchmarking?
Is there a way to measure the time one feed value is higher than a defined value?
The plug would be tricky because it's directly connected to mains (safety concerns). Maybe we could hack the hexaplugs :)
I also remember that Alex (a member here) made such a plug.


AeroPress
The AeroPress allows a brewer a high degree of control over their cup of coffee. At first, the range of possibilities can be overwhelming—not just the possible combinations but also remembering what produced good results. Starting with a bean you are unfamiliar with can be like starting all over again. If only there was a way to keep track of your coffee experimentation...


Constructor
new MochaUtils()
- Source:
Examples
<script src="/node_modules/sw-testing-helpers/browser/mocha-utils.js"></script>
<script>
console.log(window.goog.mochaUtils);
</script>
importScripts('/node_modules/sw-testing-helpers/browser/mocha-utils.js');
console.log(self.goog.mochaUtils);
const mochaUtils = require('sw-testing-helpers').mochaUtils;
console.log(mochaUtils);
Methods
prettyPrintErrors(identifier, testResults) → {String}
Present any failed tests in a friendly format. Useful if you are running
tests on a CI like Travis and want to be able to understand the errors
quickly.
Parameters:
| Name | Type | Description |
|---|---|---|
identifier |
String | This will be printed at the top of the output. It should be something that will help you identify which tests these logs belong to (i.e. the service worker file, or browser name). |
testResults |
MochaTestRestuls | The results to log. |
- Source:
Returns:
The return is a string that can be prited to
standard out. If there are any errors this method will return null.
- Type
- String
startInBrowserMochaTests() → {Promise.<MochaTestResults>}
Start Mocha tests in a browser, checking for leaks and
collect passed / failed results, resolving the promise with the results
in a friendly format.
- Source:
Returns:
The resutls from the Mocha test
- Type
- Promise.<MochaTestResults>
startServiceWorkerMochaTests(swPath) → {Promise.<MochaTestResults>}
Register a service worker and send a message to the service worker to start running Mocha tests in the worker.
It's expected that the service worker will import `mocha-utils.js` to make this work seamlessly.
This requires `window-utils.js` to be added to the page.
Parameters:
| Name | Type | Description |
|---|---|---|
swPath |
String | The path to a service worker |
- Source:
Returns:
Promise resolves when the tests
in the service worker have completed, returned the results.
- Type
- Promise.<MochaTestResults>
startWebDriverMochaTests(browserName, driver, url) → {Promise.<MochaTestResults>}
Print the User Agent of the browser, load the page the Mocha tests are in and wait for the results.
Parameters:
| Name | Type | Description |
|---|---|---|
browserName |
String | Name to be printed with the browsers UserAgent |
driver |
WebDriver | Instance of a WebDriver |
url |
String | URL of that has mocha tests. |
- Source:
Returns:
Returns the results from the browsers tests
- Type
- Promise.<MochaTestResults>


| Opcode/Instruction | Op/En | 64/32 -bit Mode | CPUID Feature Flag | Description |
|---|---|---|---|---|
| VEX.NDD.LZ.0F38.W0 F3 /2 BLSMSK r32, r/m32 | VM | V/V | BMI1 | Set all lower bits in r32 to “1” starting from bit 0 to lowest set bit in r/m32. |
| VEX.NDD.LZ.0F38.W1 F3 /2 BLSMSK r64, r/m64 | VM | V/N.E. | BMI1 | Set all lower bits in r64 to “1” starting from bit 0 to lowest set bit in r/m64. |
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| VM | VEX.vvvv (w) | ModRM:r/m (r) | NA | NA |
Sets all the lower bits of the destination operand to “1” up to and including lowest set bit (=1) in the source operand. If source operand is zero, BLSMSK sets all bits of the destination operand to 1 and also sets CF to 1.
This instruction is not supported in real mode and virtual-8086 mode. The operand size is always 32 bits if not in 64-bit mode. In 64-bit mode operand size 64 requires VEX.W1. VEX.W1 is ignored in non-64-bit modes. An attempt to execute this instruction with VEX.L not equal to 0 will cause #UD.
temp ← (SRC-1) XOR (SRC) ; SF ← temp[OperandSize -1]; ZF ← 0; IF SRC = 0 CF ← 1; ELSE CF ← 0; FI DEST ← temp;
SF is updated based on the result. CF is set if the source if zero. ZF and OF flags are cleared. AF and PF flag are undefined.
BLSMSK:
unsigned __int32 _blsmsk_u32(unsigned __int32 src);
BLSMSK:
unsigned __int64 _blsmsk_u64(unsigned __int64 src);
None
See Section 2.5.1, “Exception Conditions for VEX-Encoded GPR Instructions”, Table 2-29; additionally
| #UD | If VEX.W = 1. |


| {{week.date}} | {{week.totalLength | distance}} km | {{week.totalTimeUsed | duration}} | {{week.paceKm | duration}} |
| {{month.date}} | {{month.totalLength | distance}} km | {{month.totalTimeUsed | duration}} | {{month.paceKm | duration}} |
| {{year.date}} | {{year.totalLength | distance}} km | {{year.totalTimeUsed | duration}} | {{year.paceKm | duration}} |


OLIVE, THE OTHER REINDEER A film review by Norm Schrager Copyright 2000 filmcritic.com filmcritic.com
One of the best-ever names for a holiday special (sure as hell beats Frosty Returns) hits home video a year after its TV premiere, in this animated production from Simpsons creator Matt Groening. Based on a book by J. Otto Seibold and Vivian Walsh, Olive's a hip dash of Christmas humor and fun amidst specials that have just made little kids cry all these years.
See, Olive's not really a reindeer - she's a dog. A strange dog. Voiced by Drew Barrymore, she speaks English to her owner Tim (Jay Mohr), doesn't dig for bones, and won't chase cars. While listening to the radio on Christmas Eve, she hears that Santa may cancel his delivery, as Blitzen is injured. He announces (in a 90's soundbite), that he'll just have to rely on "all of the other reindeer."
Olive is so caught up in the holidays, she thinks Santa is talking about her. Even her pet flea can't believe it.
Once it's set that she's really a lonely misfit -- a holiday story staple -- she's off to the North Pole with a shifty penguin named Martini (The Matrix's Joe Pantoliano). They catch a "Mauvehound Bus" driven by a weirdo named Richard Stands (SNL's Tim Meadows), who once thought the Pledge of Allegiance was for him (say it out loud). But it's not just an easy bus trip that'll get Olive to Santaland.
Our villain is a demented mailman (Simpsons veteran Dan Castellaneta) who just goes postal during the holiday season due to the weight of the all his deliveries. He'd love for Santa's cancellation to hold up, so he's on his own quest to stop Olive and company.
As with any good Simpsons episode, Groening's writer -- Simpsons and David Letterman staffer Steve Young -- fills the story and landscape with bad puns and inside visuals that welcome the adults into the action just as much as the kids. The laughs don't have the stinging irony of The Simpsons, but they are certainly playful enough to hold most viewers' interest.
As is the animation, a freaky mix of multi-dimensional backgrounds and flat characters. It looks like a strange combination of a kid's video game and a set of Colorforms, giving it a splashy, original look.
There are a few musical numbers that whiz by, most notably The Postman's lament about delivering the mail (the best lyrics in the feature), and a ditty headed by REM's Michael Stipe, singing as Schnitzel the Reindeer.
Just a few minutes into Olive, I wondered why Drew Barrymore was voicing our hero. She's not really a voice actor, and doesn't sound too expressive. Then I read that she and partner Nancy Juvonen are also executive producers on this special. Drew may want to audition a few others next time.
But, like most of Olive, Drew's voice grew on me. This is a special that's hard not to enjoy, and it thankfully avoids any sappy finale. It may not enter the pantheon of holiday classics, but it's just too damn cute not to watch once a year. Especially when Olive wags that little tail. That's great.
RATING: ***1/2 |------------------------------| \ ***** Perfection \ \ **** Good, memorable film \ \ *** Average, hits and misses \ \ ** Sub-par on many levels \ \ * Unquestionably awful \ |------------------------------|
MPAA Rating: NR
Director: Oscar Moore Producers: Keith Alcorn, Alex Johns, Michael Stipe Writer: Steve Young Starring: Drew Barrymore, Dan Castellaneta, Joe Pantoliano, Edward Asner, Peter MacNicol, Tim Meadows, Jay Mohr, Michael Stipe, Diedrich Bader, David Herman
no current web site
http://www.amazon.com/exec/obidos/redirect?tag=filmcriticcom&path=subst/video/sellers/amazon-top-100-dvd.html Movie Fiends: Check out Amazon.com's Top 100 Hot DVDs!
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


In [1]: import pandas as pd
This tutorial uses the titanic data set, stored as CSV. The data consists of the following data columns:
PassengerId: Id of every passenger.
Survived: This feature have value 0 and 1. 0 for not survived and 1 for survived.
Pclass: There are 3 classes: Class 1, Class 2 and Class 3.
Name: Name of passenger.
Sex: Gender of passenger.
Age: Age of passenger.
SibSp: Indication that passenger have siblings and spouse.
Parch: Whether a passenger is alone or have family.
Ticket: Ticket number of passenger.
Fare: Indicating the fare.
Cabin: The cabin of passenger.
Embarked: The embarked category.
In [2]: titanic = pd.read_csv("data/titanic.csv") In [3]: titanic.head() Out[3]: PassengerId Survived Pclass ... Fare Cabin Embarked 0 1 0 3 ... 7.2500 NaN S 1 2 1 1 ... 71.2833 C85 C 2 3 1 3 ... 7.9250 NaN S 3 4 1 1 ... 53.1000 C123 S 4 5 0 3 ... 8.0500 NaN S [5 rows x 12 columns]
DataFrame
I’m interested in the age of the titanic passengers.
In [4]: ages = titanic["Age"] In [5]: ages.head() Out[5]: 0 22.0 1 38.0 2 26.0 3 35.0 4 35.0 Name: Age, dtype: float64
To select a single column, use square brackets [] with the column name of the column of interest.
[]
Each column in a DataFrame is a Series. As a single column is selected, the returned object is a pandas Series. We can verify this by checking the type of the output:
Series
In [6]: type(titanic["Age"]) Out[6]: pandas.core.series.Series
And have a look at the shape of the output:
shape
In [7]: titanic["Age"].shape Out[7]: (891,)
shape is an attribute (remember tutorial on reading and writing, do not use parantheses for attributes) of a pandas Series and DataFrame containing the number of rows and columns: (nrows, ncolumns). A pandas Series is 1-dimensional and only the number of rows is returned.
I’m interested in the age and sex of the titanic passengers.
In [8]: age_sex = titanic[["Age", "Sex"]] In [9]: age_sex.head() Out[9]: Age Sex 0 22.0 male 1 38.0 female 2 26.0 female 3 35.0 female 4 35.0 male
To select multiple columns, use a list of column names within the selection brackets [].
Note
The inner square brackets define a Python list with column names, whereas the outer brackets are used to select the data from a pandas DataFrame as seen in the previous example.
The returned data type is a pandas DataFrame:
In [10]: type(titanic[["Age", "Sex"]]) Out[10]: pandas.core.frame.DataFrame
In [11]: titanic[["Age", "Sex"]].shape Out[11]: (891, 2)
The selection returned a DataFrame with 891 rows and 2 columns. Remember, a DataFrame is 2-dimensional with both a row and column dimension.
For basic information on indexing, see Basics
I’m interested in the passengers older than 35 years.
In [12]: above_35 = titanic[titanic["Age"] > 35] In [13]: above_35.head() Out[13]: PassengerId Survived Pclass ... Fare Cabin Embarked 1 2 1 1 ... 71.2833 C85 C 6 7 0 1 ... 51.8625 E46 S 11 12 1 1 ... 26.5500 C103 S 13 14 0 3 ... 31.2750 NaN S 15 16 1 2 ... 16.0000 NaN S [5 rows x 12 columns]
To select rows based on a conditional expression, use a condition inside the selection brackets [].
The condition inside the selection brackets titanic["Age"] > 35 checks for which rows the Age column has a value larger than 35:
titanic["Age"] > 35
Age
In [14]: titanic["Age"] > 35 Out[14]: 0 False 1 True 2 False 3 False 4 False ... 886 False 887 False 888 False 889 False 890 False Name: Age, Length: 891, dtype: bool
The output of the conditional expression (>, but also ==, !=, <, <=,… would work) is actually a pandas Series of boolean values (either True or False) with the same number of rows as the original DataFrame. Such a Series of boolean values can be used to filter the DataFrame by putting it in between the selection brackets []. Only rows for which the value is True will be selected.
>
==
!=
<
<=
True
False
We now from before that the original titanic DataFrame consists of 891 rows. Let’s have a look at the amount of rows which satisfy the condition by checking the shape attribute of the resulting DataFrame above_35:
above_35
In [15]: above_35.shape Out[15]: (217, 12)
I’m interested in the titanic passengers from cabin class 2 and 3.
In [16]: class_23 = titanic[titanic["Pclass"].isin([2, 3])] In [17]: class_23.head() Out[17]: PassengerId Survived Pclass ... Fare Cabin Embarked 0 1 0 3 ... 7.2500 NaN S 2 3 1 3 ... 7.9250 NaN S 4 5 0 3 ... 8.0500 NaN S 5 6 0 3 ... 8.4583 NaN Q 7 8 0 3 ... 21.0750 NaN S [5 rows x 12 columns]
Similar to the conditional expression, the isin conditional function returns a True for each row the values are in the provided list. To filter the rows based on such a function, use the conditional function inside the selection brackets []. In this case, the condition inside the selection brackets titanic["Pclass"].isin([2, 3]) checks for which rows the Pclass column is either 2 or 3.
isin
titanic["Pclass"].isin([2, 3])
Pclass
The above is equivalent to filtering by rows for which the class is either 2 or 3 and combining the two statements with an | (or) operator:
|
In [18]: class_23 = titanic[(titanic["Pclass"] == 2) | (titanic["Pclass"] == 3)] In [19]: class_23.head() Out[19]: PassengerId Survived Pclass ... Fare Cabin Embarked 0 1 0 3 ... 7.2500 NaN S 2 3 1 3 ... 7.9250 NaN S 4 5 0 3 ... 8.0500 NaN S 5 6 0 3 ... 8.4583 NaN Q 7 8 0 3 ... 21.0750 NaN S [5 rows x 12 columns]
When combining multiple conditional statements, each condition must be surrounded by parentheses (). Moreover, you can not use or/and but need to use the or operator | and the and operator &.
()
or
and
&
Conditional (boolean) indexing, see indexing.boolean. Specific information on isin, see Indexing with isin.
I want to work with passenger data for which the age is known.
In [20]: age_no_na = titanic[titanic["Age"].notna()] In [21]: age_no_na.head() Out[21]: PassengerId Survived Pclass ... Fare Cabin Embarked 0 1 0 3 ... 7.2500 NaN S 1 2 1 1 ... 71.2833 C85 C 2 3 1 3 ... 7.9250 NaN S 3 4 1 1 ... 53.1000 C123 S 4 5 0 3 ... 8.0500 NaN S [5 rows x 12 columns]
The notna conditional function returns a True for each row the values are not an Null value. As such, this can be combined with the selection brackets [] to filter the data table.
notna
Null
You might wonder what actually changed, as the first 5 lines are still the same values. One way to verify is to check if the shape has changed:
In [22]: age_no_na.shape Out[22]: (714, 12)
For more dedicated functions on missing values, see missing-data
I’m interested in the names of the passengers older than 35 years.
In [23]: adult_names = titanic.loc[titanic["Age"] > 35, "Name"] In [24]: adult_names.head() Out[24]: 1 Cumings, Mrs. John Bradley (Florence Briggs Th... 6 McCarthy, Mr. Timothy J 11 Bonnell, Miss. Elizabeth 13 Andersson, Mr. Anders Johan 15 Hewlett, Mrs. (Mary D Kingcome) Name: Name, dtype: object
In this case, a subset of both rows and columns is made in one go and just using selection brackets [] is not sufficient anymore. The loc/iloc operators are required in front of the selection brackets []. When using loc/iloc, the part before the comma is the rows you want, and the part after the comma is the columns you want to select.
loc
iloc
When using the column names, row labels or a condition expression, use the loc operator in front of the selection brackets []. For both the part before and after the comma, you can use a single label, a list of labels, a slice of labels, a conditional expression or a colon. Using a colon specificies you want to select all rows or columns.
I’m interested in rows 10 till 25 and columns 3 to 5.
 When specifically interested in certain rows and/or columns based on their position in the table, use the iloc operator in front of the selection brackets [].
When selecting specific rows and/or columns with loc or iloc, new values can be assigned to the selected data. For example, to assign the name anonymous to the first 3 elements of the third column:
anonymous
In [26]: titanic.iloc[0:3, 3] = "anonymous" In [27]: titanic.head() Out[27]: PassengerId Survived Pclass ... Fare Cabin Embarked 0 1 0 3 ... 7.2500 NaN S 1 2 1 1 ... 71.2833 C85 C 2 3 1 3 ... 7.9250 NaN S 3 4 1 1 ... 53.1000 C123 S 4 5 0 3 ... 8.0500 NaN S [5 rows x 12 columns]
For more detailed description on selecting subsets of a data table, see Different choices for indexing
When selecting subsets of data, square brackets [] are used.
Inside these brackets, you can use a single column/row label, a list of column/row labels, a slice of labels, a conditional expression or a colon.
Select specific rows and/or columns using loc when using the row and column names
Select specific rows and/or columns using iloc when using the positions in the table
You can assign new values to a selection based on loc/iloc.
Further details about indexing is provided in Indexing and selecting data


Building serverless Java
applications using
Micronaut and OpenFaaS
When working on microservices in the Java ecosystem, especially using Spring (Boot), you will notice the long start-up time that applications will have, let alone the high memory consumption they will have. The overhead of each single microservice will eventually take its costs on the system. Looking at a framework such as Micronaut could help out to reduce this overhead without losing any developer's productivity. Not only "classic" applications can be built using Micronaut, but also serverless applications, functions, can be built and deployed on a cloud environment or on Kubernetes using OpenFaaS. Let's dive into it!
by Paulien van Alst | OpenValue


VSL // The New Tech City
* I’m always looking for a better way to listen to audio on demand and (other than WNYC’s own app) this new one called Overcast
today’s Very Short List:
tech 2 Sep 2014
Manoush Zomorodi hosts New York Public Radio’s “New Tech City
Subscribe
* Data & Society
* Breather
http://link.nyobserver.com/516ca68465217dc6e1b9a3a61smfb.wni/TvnrKi0WTdwTHwxwC5edc
delightful e-mail that shares
cultural gems from a
different curator every day.
If you have any problems reading this e-mail, click here
http://link.nyobserver.com/516ca68465217dc6e1b9a3a61smfb.wni/UHyHCJsf7NZSKXrPC036f
Subscribe
Forward
My Account
Unsubscribe
food 28 Aug 2014
Kate Neuhaus on a few outstanding food experiences.
culture 26 Aug 2014
Divya Rao Heffley on the reflected self.
culture 22 Aug 2014
Newsletter-editor Alexa Jaccarino shares a few other newsletters she loves.
Editorial Policy
Privacy Policy
Contact Us
Press
Terms + Conditions
very fine print: ©2014
Observer VSL LLC.
321 West 44th Street, 6th Floor
New York, NY 10036 USA
All rights reserved.
Questions?<PHONE_NUMBER>.
This message was intended for<EMAIL_ADDRESS>If you believe this has been sent to you in error, please safely unsubscribe


The programme has been favoured by multiple countries including the US, Japan, South Korea, the
UK, Canada, Australia, Malaysia, Singapore, Uzbekistan and Vietnam.
At the launch ceremony of Digital India Week by Prime Minister Narendra Modi in Delhi on 1 July 2015,
top CEOs from India and abroad committed to invest ₹224.5 lakh crore (US$3.1 trillion) towards this
initiative. The CEOs said the investments would be utilized towards making smartphones and internet devices
at an affordable price in India which would help generate jobs in India as well as reduce the cost of
importing them from abroad.
Leaders from Silicon Valley, San Jose, California expressed their support for Digital India during PM
Narendra Modi's visit in September 2015. Facebook's CEO, Mark Zuckerberg, changed his profile picture in
support of Digital India and started a chain on Facebook and promised to work on WiFi Hotspots in rural area
of India. Google committed to provide broadband connectivity on 500 railway stations in India. Microsoft
agreed to provide broadband connectivity to five hundred thousand villages in India and make India its cloud
hub through Indian data centres. Qualcomm announced an investment of US$150 million in Indian startups.
Oracle plans to invest in 20 states and will work on payments and Smart city initiatives. However, back
in India, cyber experts expressed their concern over internet.org and viewed the Prime Minister's bonhomie
with Zuckerberg as the government's indirect approval of the controversial initiative. The Statesman
reported, "Prime Minister Narendra Modi's chemistry with Facebook CEO Mark Zuckerberg at the social media
giant's headquarters in California may have been greeted enthusiastically in Silicon Valley but back home
several social media enthusiasts and cyber activists are disappointed." Later the Prime Minister office
clarified that net neutrality will be maintained at all costs and vetoed the Basic Internet plans.
Digital India has also been influential in promoting the interests of the Indian Railways. br
Several academic scholars have critiqued ICTs in development. Some take issue with technological
determinism, the notion that ICTs are a sure-fire antidote to the world's problems. Instead, governments
must adjust solutions to the specific political and social context of their nation. Others note that
technology amplifies underlying institutional forces, so technology must be accompanied by significant
changes in policy and institutions in order to have meaningful impact.
It is being thought that there needs to be more research on the actual worth of these multimillion-dollar
government and ICT for development projects. For the most part, the technological revolution in India has
benefited the already privileged sectors of Indians. It is also difficult to scale up initiatives to
affect all Indians, and fundamental attitudinal and institutional change is still an issue. While much
ICT research has been conducted in Kerala, Andhra Pradesh, and Gujarat, poorer states such as Bihar and
Odisha are rarely mentioned.
Digital India as a programme has been considered by some as a continuation of the long history of bias
towards RIL, which has previously manifested in the form of altering TRAI regulations in favour of the
company. Reliance Jio has cited the Digital India initiative numerous times for its own marketing purposes.
Internet subscribers had increased to 500 million in India as of April 2017. On 28 December
2015, Panchkula district of Haryana was awarded for being the best as well as top performing district in the
state under the Digital India campaign.
India is now adding approximately 10 million daily active internet users monthly, which is the highest rate
of addition to the internet community anywhere in the world.


Note: a:hover MUST come after a:link and a:visited in the CSS definition in order to be effective.
Note: a:active MUST come after a:hover in the CSS definition in order to be effective.
Mouse over the div element below to change its background color:
Mouse Over Me
Hover over me to show the h1 element
Tada! Here I am!


Your favorite things
Enter your grocerie here.
Enter your grocerie here.
Enter your grocerie here.
Enter your grocerie here.
Submit!


Home
About
Products
Blog
Contact
Contact Form
First Name
E-mail Adress
Country
USA
Canada
Turkey
Subject


One of our major competitors is Rosie App. Rosie is an on-line shopping store, enabling its customers to shop for groceries from a variety of local stores. Rosie offers its customers in-store pickup and door delivery. It charges a convenience fee for each order and requires that the order be of a minimum amount before checkout.
CMart is different from Rosie in a number of ways, shown below:
| CMart | Rosie | |
|---|---|---|
| Revenue Model | CMart offers free delivery for orders above a minimum value. It charges a small but affordable fee for small orders. In addition, a very small order processing fee is charged for each order. | Rosie charges its users a convenience and delivery fee for all orders. It even charges a fuel surcharge for door delivery |
| Social and Health Features | CMart allows its customers to know what their friends are buying, receive recommendations and read review by other CMart customers. It also advises on dietary requirements. Customers can track their usage, spends and nutritional information of their orders. CMart encourages healthy eating and living with convenience of getting healthy food at their fingertips. | Rosie predicts the household items you need before you run out, and enables you to order them at the lowest price from local grocers and online retailers. |
| Loyalty and Rewards | CMart will offer rewards irrespective of the store you buy from and you can redeem those credits at any of CMart's affiliated stores | Rosie doesn't have a full fledged loyalty system yet. |
The following are CMart's competitive advantages:


Python-Javascript communication
Counting is hard. Let Python do the heavy lifting for you.
count
history


Downclick anywhere and move cursor to start drawing! Go to Edit Mode for advanced functions.
Edit Mode
Draw Mode
→
Number of Shapes Selected: 0
→ Mode:
Select/Deselect
Move
Copy/Paste
Cut/Paste
→ Action:
Type of Shape:
Freehand
Line
Circle
Square
Ellipse
Rectangle
Open Polygon
Closed Polygon
→ Color:
Black
Blue
Green
Red
Yellow
White
Current Mode: Draw (Freehand)


Software Developer since 2012. Trainer and mentor in the field of Software Development. Strong command of English, French and Chinese. Good Tech Communicator and eager to learn and try out new technologies. Writes cross platform C++ graphics applications using Qt and XMPP instant messaging solutions for desktop and mobile almost daily. Copes well in Multi-cultural environments.
Involved in the design of company Software Products from conception to final design. Assessing and introducing new technologies for the company. Training junior developers joining the company. Mainly working in C++, Java, Html 5. Using different frameworks where necessary.
Creating online courses in software development technologies learnt through out my carreer. Currently have video courses out on GUI development using Qt,C++ and QML and using XMPP to build instant messaging apps for Android. My courses are hosted on udemy , learnqt and blikoon
Lead developer of the whiteboard system of the company at the time. The product was written using mainly the Qt framework using C++. Managing the build system and version control for the product. Tech adviser and involved in the development of the instant messaging side of one of the companie's product for android. Mainly working in C++, Java/Android on Windows and Linux at the time
Mainly working in C++ working on the whiteboard system product of the company at the time.Tools : C++, Qt, MSVC,Git


Add a single object
URL to manifest
load
Add all objects of a collection (recursively)
URL to manifest of collection
load


{% extends "base.html" %} {% block title %}WattTime Beta{% endblock %} {% block content %}
Sorry, we couldn't find an account associated with phone number {{ phone }}. Please contact us and we'll sort this out. While you're at it, please pass along your comments and requests so that we can make this early-stage product work better for you!
{% endblock %}