Syllabus
- Course description
- Tentative Course Topics
- Course Objectives
- Course Components
- Course Resources
- Course Policies and Expectations
Course description
Data Science 2 is the second half of a one-year introduction to data science. Building upon the material in Data Science 1, the course introduces advanced methods for data wrangling, data visualization, and deep neural networks, statistical modeling, and prediction. Topics include big data and database management, multiple deep learning subjects such as CNNs, RNNs, autoencoders, and generative models as well as basic Bayesian methods, nonlinear statistical models and unsupervised learning.
The programming language will be python.
Tentative Course Topics
- Feed Forward Neural Networks
- Regularization of Neural Network
- Optimization of Neural Networks
- Autoencoders
- Convolutional Neural Networks
- Recurrent Neural Networks
- Variational AutoEncoders
- Generative Adversarial Networks
- Smoothing and Additive Models
- Unsupervised Learning
- Bayesian Inference Models, LDA
- SQL
- AWS
Course Objectives
Upon successful completion of this course, you should feel comfortable with the material mentioned above, plus you will have had experience in working with others on real-world problems. Both the content knowledge, the project, and teamwork, will prepare you for the professional world or further studies.
Course Components
There will be live video feed available only to distance education students for lectures, labs, and advanced sections. Recordings for all other students will be available within 24 hrs.
Lectures
The class meets twice a week for lectures. Attending lectures is a crucial component of learning the material presented in this course.
Labs
Lectures are supplemented by weekly programming labs. Labs are an important aspect of the course, as they supplement material from lectures with examples, discuss programming environments, and teach you important skills.
In-class Quizzes
At the end of each lecture, we will ask you to take a short graded quiz on the material presented in class. These quizzes will count towards your final grade.
Advanced Sections
The course will include advanced sections for 209 students and will cover a different topic per week. These are 75 min lectures and they will cover advanced topics like the mathematical underpinnings of the methods seen in lecture and lab and extensions of those methods. The material covered in the advanced sections is required for all ac209 students. Tentative topics are:
- Earth Mover's Distance
- Dropout
- ConvNets: LeNet, AlexNet, VGG-15, ResNet and Inception
- LSTN, GRU in NLP
- Neural style transfer learning
- Deep Reinforcement Learning
- Variational Inference
Exams
There are no exams in this course.
Projects
- For distant students
The goal of the project is to have a complete end-to-end data science process encompassing both semesters of subject material while working as a 3-4 person team. We will supply a small set of project choices within the thematic categories. Teams may propose a different project with sufficient notice and will be subject to approval by the course staff.- For campus students
During the final four (4) weeks of the course, students will be divided in break-out thematic sections where they will study topics such as medicine, law, astronomy, e-commerce, and government. Each section will include lectures by Harvard faculty, experts on the field, followed by project work also led by that faculty. You will get to present your projects in the SEAS Design Fair at the end of the semester.Homework Assignments
There will be seven graded homework assignments. Some of them will be due one week after being assigned and some will be due two weeks after being assigned. For five assignments, you have the option to work and submit in pairs, the two remaining are to be completed individually.
Course Resources
Online Materials
All course materials, including lecture notes, lab notes, and section notes will be published in the class GitHub:
https://github.com/Harvard-IACS/2019-CS109B. Assignments will only be posted on Canvas.
Working environment
You will be working in Jupyter Notebooks which you can run in your own machine or in the SEAS JupyterHub cloud (details on this to come).Recommended Textbooks
- ISLR: An Introduction to Statistical Learning. by James, Witten, Hastie, Tibshirani (Springer: New York, 2013)
- DL: Deep Learning by Goodfellow, Bengio and Courville.
Free electronic versions are available (ISLR), (DL) or hard copy through Amazon (ISLR), (DL).
Getting Help
For questions about homework, course content, package installation, the process is:
- try to troubleshoot yourself by reading the lecture, lab, and section notes, and looking up online resources.
- go to office hours this is the best way to get help.
- post on the class Piazza; we want you and your peers to engage in helping each other. TFs also monitor Piazza and will respond within 24 hours. Note that Piazza questions are visible to everyone. If you are citing homework solution code you want to post privately so that only the staff sees your message.
- watch for official announcements via Canvas so make sure you have your Canvas notifications turned on. Piazza should always be your first resource for seeking answers to your content questions.
- send an email to the Helpline<EMAIL_ADDRESS>for administrative issues, regrade requests, and non-content specific questions we have this email account.
- for personal matters that you do not feel comfortable sharing with the TFs, you may send an email to either or both of the instructors.
Course Policies and Expectations
Grading for CS109b, STAT121b, and CS209b:
<<<<<<< HEAD
=======
3aa6558f04b882eacb6af4d0b69db82445ca5329 Paired-option Homeworks 45% (5 homework for which you have the option to work in pairs) Individual Homeworks 25% (2 homework which you must complete individually) Quizzes 10% (you may drop 40% of the quizzes) Project 20%
TOTAL 100%
Note: Regular homework (for everyone) counts as 5 points. 209b extra homework counts as 1 point.
Grading for DCE:
- Paired-option Homeworks 48% (5 homework for which you have the option to work in pairs)
- Individual Homeworks 28% (2 homework which you must complete individually)
- Project 24%
TOTAL 100%
Collaboration Policy
We expect you to adhere to the Harvard Honor Code at all times. Failure to adhere to the honor code and our policies may result in serious penalties, up to and including automatic failure in the course and reference to the ad board. If you work with a partner on an assignment make sure both parties solve all the problems. Do not divide and conquer. You are expected to be intellectually honest and give credit where credit is due. In particular:
- if you work with a fellow student but decide to submit different papers, include the name of each other in the designated area of the submission paper.
- if you work with a fellow student and want to submit the same paper you need to form a group prior to the submission. Details in the assignment. Not all assignments will permit group submissions.
- you need to write your solutions entirely on your own or with your collaborator
- you are welcome to take ideas from code presented in labs, lecture, or sections but you need to change it, adapt it to your style, and ultimately write your own. We do not want to see code copied verbatim from the above sources.
- if you use code found on the internet, books, or other sources you need to cite those sources.
- you should not view any written materials or code created by other students for the same assignment;
- you may not provide or make available solutions to individuals who take or may take this course in the future.
- if the assignment allows it you may use third-party libraries and example code, so long as the material is available to all students in the class and you give proper attribution. Do not remove any original copyright notices and headers.
Late or Wrongly Submitted Assignments
There are no late days in homework submission. We will accept late submissions only for medical reasons and if accompanied by a doctor's note.
To submit after Canvas has closed or to ask for an extension, send an email to the Helpline with subject line "Submit HW1: Reason=the flu" replacing 'HW1' with the name of the current assignment and "the flu" with your reason. You need to attach the note from your medical provider otherwise we will not accept the request.
If you forgot to join a Group with your peer and are asking for the same grade we will accept this with no penalty up to HW3. For homeworks beyond that we feel that you should be familiar with the process of joining groups. After that there will be a penalty of -1 point for both members of the group provided the submission was on time.
Re-grade Requests
Our graders and instructors make every effort in grading accurately and in giving you a lot of feedback.
If you discover that your answer to a homework problem was correct but it was marked as incorrect, send an email to the Helpline with
If you decide to send a regrade request, send an email to the Helpline with subject line "Regrade HW1: Grader=johnsmith" replacing 'HW1' with the current assignment and 'johnsmith' with the name of the grader within 48 hours of the grade release.
Auditing the Class
If you would like to audit the class, please send an email to the Helpline indicating who you are and why you want to audit the class. You need a HUID to be included to Canvas.
Academic Integrity
Ethical behavior is an important trait of a Data Scientist, from ethically handling data to attribution of code and work of others. Thus, in CS109 we give a strong emphasis to Academic Honesty. As a student your best guidelines are to be reasonable and fair. We encourage teamwork for problem sets, but you should not split the homework and you should work on all the problems together. For more detailed expectations, please refer to the Collaborations section above.
Accommodations for students with disabilities
Students needing academic adjustments or accommodations because of a documented disability must present their Faculty Letter from the Accessible Education Office (AEO) and speak with the professor by the end of the second week of the term, (fill in specific date). Failure to do so may result in the Course Head's inability to respond in a timely manner. All discussions will remain confidential, although Faculty are invited to contact AEO to discuss appropriate implementation.
Diversity and Inclusion Statement
Data Science, like many fields of science, has historically only been represented by a small sliver of the population. This is despite some of the early computer scientist pioneers being women (see Ada Lovelace and Grace Hopper for two examples). Recent initiatives have attempted to overcome some barriers to entry: Made w/ Code. We would like to attempt to discuss diversity in data science from time to time where appropriate and possible. Please contact us (in person or electronically) or submit anonymous feedback if you have any suggestions to improve the diversity of the course materials. Furthermore, we would like to create a learning environment for our students that supports a diversity of thoughts, perspectives and experiences, and honors your identities (including race, gender, class, sexuality, religion, ability, etc.) To help accomplish this:
- If you have a name and/or set of pronouns that differ from those that appear in your official Harvard records, please let us know!
- If you feel like your performance in the class is being impacted by your experiences outside of class, please don’t hesitate to come and talk with us. We want to be a resource for you. Remember that you can also submit anonymous feedback (which will lead to me making a general announcement to the class, if necessary to address your concerns). If you prefer to speak with someone outside of the course, you may find helpful resources at the Harvard Office of Diversity and Inclusion.
- We (like many people) are still in the process of learning about diverse perspectives and identities. If something was said in class (by anyone) that made you feel uncomfortable, please talk to us about it. (Again, anonymous feedback is always an option.)
- As a participant in course discussions, you should also strive to honor the diversity of your classmates.


Virtualization uses software to create an abstraction layer over computer hardware that allows the hardware elements of a single computer—processors, memory, storage and more—to be divided into multiple virtual computers, commonly called virtual machines (VMs). Each VM runs its own operating system (OS) and behaves like an independent computer, even though it is running on just a portion of the actual underlying computer hardware.
It follows that virtualization enables more efficient utilization of physical computer hardware and allows a greater return on an organization’s hardware investment.
Today, virtualization is a standard practice in enterprise IT architecture. It is also the technology that drives cloud computing economics. Virtualization enables cloud providers to serve users with their existing physical computer hardware; it enables cloud users to purchase only the computing resources they need when they need it, and to scale those resources cost-effectively as their workloads grow.
To learn and understand more better you can watch the below video.
Benefits of containerization
Containerization offers significant benefits to developers and development teams as follows:
Portability: A container creates an executable package of software that is abstracted away from the host operating system, and hence, is portable and able to run uniformly and consistently across any platform or cloud.
Agility: The open source Docker Engine for running containers started the industry standard for containers with simple developer tools and a universal packaging approach that works on both Linux and Windows operating systems. The container ecosystem has shifted to engines managed by the Open Container Initiative (OCI). Software developers can continue using agile or DevOps tools and processes for rapid application development and enhancement.
Speed: Containers are often referred to as “lightweight,” meaning they share the machine’s operating system (OS) kernel and are not bogged down with this extra overhead. Not only does this drive higher server efficiencies, it also reduces server and licensing costs while speeding up start-times as there is no operating system to boot.
Efficiency: Software running in containerized environments shares the machine’s OS kernel, and application layers within a container can be shared across containers. Thus, containers are inherently smaller in capacity than a VM and require less start-up time, allowing far more containers to run on the same compute capacity as a single VM. This drives higher server efficiencies, reducing server and licensing costs.
Security: The isolation of applications as containers inherently prevents the invasion of malicious code from affecting other containers or the host system. Additionally, security permissions can be defined to automatically block unwanted components from entering containers or limit communications with unnecessary resources.


{% extends "common/base_site.html" %} {% load i18n static %}{% load humanize %} {% load widget_tweaks %} {% block navbar %}{% endblock %} {% block messages %}
{% if form.errors.items|length == 1 %}{% trans 'Please correct the error below.' %}{% else %}{% trans 'Please correct the errors below.' %}{% endif %}
{{ error }}
{% blocktrans with username=request.user.username trimmed %} You are authenticated as {{ username }}, but are not authorized to access this page. Would you like to login to a different account? {% endblocktrans %}
{% endif %}Don't have an account? Sign up here.


|
F´ Flight Software - C/C++ Documentation
NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
|
#include <Os/Directory.hpp>
Public Types | |
| enum | Status { OP_OK, DOESNT_EXIST, NO_PERMISSION, NOT_OPENED, NOT_DIR, NO_MORE_FILES, OTHER_ERROR } |
Public Member Functions | |
| Directory () | |
| Constructor. More... | |
| virtual | ~Directory () |
| Destructor. Will close directory if still open. More... | |
| Status | open (const char *dirName) |
| open directory. Directory must already exist More... | |
| bool | isOpen (void) |
| check if file descriptor is open or not. More... | |
| Status | rewind () |
| rewind directory stream to the beginning More... | |
| Status | read (char *fileNameBuffer, U32 bufSize) |
| get next filename from directory More... | |
| Status | read (char *fileNameBuffer, U32 bufSize, I64 &inode) |
| get next filename and inode from directory More... | |
| void | close (void) |
| close directory More... | |
| NATIVE_INT_TYPE | getLastError (void) |
| read back last error code (typically errno) More... | |
| const char * | getLastErrorString (void) |
| get a string of the last error (typically from strerror) More... | |
Definition at line 11 of file Directory.hpp.
| Enumerator | |
|---|---|
| OP_OK | Operation was successful. |
| DOESNT_EXIST | Directory doesn't exist. |
| NO_PERMISSION | No permission to read directory. |
| NOT_OPENED | Directory hasn't been opened yet. |
| NOT_DIR | Path is not a directory. |
| NO_MORE_FILES | Directory stream has no more files. |
| OTHER_ERROR | A catch-all for other errors. Have to look in implementation-specific code. |
Definition at line 14 of file Directory.hpp.
| Os::Directory::Directory | ( | ) |
Constructor.
Definition at line 17 of file Directory.cpp.
|
virtual |
Destructor. Will close directory if still open.
Definition at line 20 of file Directory.cpp.
| void Os::Directory::close | ( | void | ) |
close directory
Definition at line 120 of file Directory.cpp.
| NATIVE_INT_TYPE Os::Directory::getLastError | ( | void | ) |
read back last error code (typically errno)
Definition at line 128 of file Directory.cpp.
| const char * Os::Directory::getLastErrorString | ( | void | ) |
get a string of the last error (typically from strerror)
Definition at line 132 of file Directory.cpp.
| bool Os::Directory::isOpen | ( | void | ) |
check if file descriptor is open or not.
Definition at line 116 of file Directory.cpp.
| Directory::Status Os::Directory::open | ( | const char * | dirName | ) |
open directory. Directory must already exist
Definition at line 24 of file Directory.cpp.
| Directory::Status Os::Directory::read | ( | char * | fileNameBuffer, |
| U32 | bufSize | ||
| ) |
get next filename from directory
Definition at line 69 of file Directory.cpp.
| Directory::Status Os::Directory::read | ( | char * | fileNameBuffer, |
| U32 | bufSize, | ||
| I64 & | inode | ||
| ) |
get next filename and inode from directory
Definition at line 76 of file Directory.cpp.
| Directory::Status Os::Directory::rewind | ( | ) |
rewind directory stream to the beginning
Definition at line 53 of file Directory.cpp.


Join one of our chat rooms from the list below
{{ c?.nickname || c?.uid }}
Create a new chat room
{{ message?.content }}


Wanyama’s coach Pochettino sacked by Spurs
by AGENCE FRANCE PRESSELONDON, United Kingdom, Nov 19 – Victor Wanyama’s Tottenham Hotspur sacked manager Mauricio Pochettino on Tuesday just five months after reaching the Champions League final following a poor start to the Premier League season.
“The club can today announce that Mauricio Pochettino and his coaching staff Jesus Perez, Miguel D’Agostino and Antoni Jimenez have been relieved of their duties,” Tottenham, who sit 14th in the Premier League, said in a statement.
Pochettino, 47, joined Spurs from Southampton in 2014 and has been instrumental in turning Tottenham into Champions League regulars over the past four seasons.
That culminated in a dramatic run to the club’s first ever European Cup final in June, which they lost 2-0 to Liverpool in Madrid.
However, domestically results have been on the decline since February.
Spurs had the faltering fortunes of Arsenal and Manchester United to thank for them clinging onto a top-four finish last season as they won just three of their final 12 league games.
That form has continued at the start of this season with just three wins from their opening 12 games leaving Tottenham already 11 points outside the top four and 20 behind leaders Liverpool.
“We were extremely reluctant to make this change and it is not a decision the board has taken lightly, nor in haste,” said Tottenham chairman Daniel Levy.
“Regrettably domestic results at the end of last season and beginning of this season have been extremely disappointing.
“It falls to the board to make the difficult decisions — this one made more so given the many memorable moments we have had with Mauricio and his coaching staff — but we do so in the club’s best interests.”
(Visited 33 times, 27 visits today)


Viewing Crypt {{.Crypt.CryptID}}
Last Checkin: {{.LastCheckIn}}
Description: {{.Crypt.Description}}
Crypt Contents:
{{if .Crypt.IsDestroyed}}( The area above is blank as the crypt has been destroyed. The encrypted data is unrecoverable. )
{{else}}{{.Crypt.CipherText}}
(The data above is encrypted with a GPG public key held only by the owner. We cannot acquire the key nor decrypt this data)
{{end}}


Py Contributors Developers Community
An open Source community primarily for Python.
About the Community
We are a community of developers who are interested in contributing to Python, Javascript, and other open-source projects. Many of us are core developers, but we are not limited to that. we are also interested in contributing to other projects. Most of us are active on Discord and we have a channel for Py-Contributors. We also have a GitHub organization, and we have a few repositories there.
Why you should join the py-contributors community ?
Open source projects bring many benefits to those who participate in them, and such experience is excellent for your CV and more remarkable for your knowledge and skills. By joining a community of like-minded people and polishing up your skills, you can give yourself a step up as an aspiring developer. We are an active developer community encouraging open-source development.


Understand the scrum master role and discover new ceremonies through the construction of a city in Lego ? This is the goal of the training given to our co-worker !
Serious games are a good way to forward ideas with playful workshops


NOTE: Before continuing with the following steps, make sure you are in the N. Virginia Region
In this lab you will be using the S3 bucket with your data and the Athena table you created in the previous lab.
Note: Chrome browser might timeout at this step. If that’s the case, try this step in Firefox/Microsoft Edge/Safari.
On the next page,
i. Enter a unique QuickSight account name.
ii. Enter a valid email for Notification email address.
iii. Just for this step, leave the QuickSight capacity region as N.Virginia.
iv.
v. Click Finish.
vi. You will be presented with a message Congratulations!  Click on Go to Amazon QuickSight.
Before continuing with the following steps, make sure you are in the N. Virginia Region to edit permissions.
Now, on the Amazon QuickSight dashboard, navigate to User Settings page by clicking on the Top-Right section - see image below - and click Manage QuickSight.
NOTE: Make sure to tick the boxes for “Write permission for Athena Workgroup” as well.
What is a data source and what is a dataset?
A data source is an external data store and you use it to access the data in this external data store eg. Amazon S3, Amazon Athena, Salesforce etc.
A data set identifies the specific data in a data source that you want to use. For example, the data source might be a table if you are connecting to a database data source. It might be a file if you are connecting to an Amazon S3 data source. A data set also stores any data preparation you have performed on that data, such as renaming a field or changing its data type. Storing this preparation means that you don’t have to reprepare the data each time you want to create an analysis based on it.
What is an Analysis, a Visual and a Dashboard?
An analysis is a container for a set of related visuals and stories, for example all the ones that apply to a given business goal or key performance indicator. You can use multiple data sets in an analysis, although any given visual can only use one of those data sets.
A visual is a graphical representation of your data. You can create a wide variety of visuals in an analysis, using different datasets and visual types.
A dashboard is a read-only snapshot of an analysis that you can share with other Amazon QuickSight users for reporting purposes. A dashboard preserves the configuration of the analysis at the time you publish it, including such things as filtering, parameters, controls, and sort order. The data used for the analysis isn’t captured as part of the dashboard. When you view the dashboard, it reflects the current data in the data sets used by the analysis.
For this lab, you will need to choose the region where your data resides.
Click on the region icon on the top-right corner of the page, and select the region where your data resides.
Click on Datasets in the left menu to review existing data sets.
Click on New dataset on the top-right corner of the web page and review the options.
Select Athena as a Data source.
Enter the Data source name (e.g. AthenaDataSource).
Select the Athena workgroup you created specifically for QuickSight. Then Validate the Connection.
Click Create data source.
Choose curated database you created then choose the table you need to visualize its data.
Choose Select.
Choose to Directly query your data then click Visualize
Alternative Option
You can choose to create a dataset using S3 as your data source. For this:
Select the fields that you will use for the visualization.
We suggest that you pick two - three columns from your data set that meet the following criteria:
Press over the arrow on the right side of the field you want to modify
Choose one of the available data types
You can also modify the format of your date field(s) into one of the supported formats.
Once you finish your edit, press the Save and Visualize button on top of the screen.
Now that you have configured the data source and prepared the dataset to work with, we will start by forecasting values in future dates based on your sample data.
At this point, the Y-axis of the visual will be populated automatically with count of records that match each date individually. You can keep it that way and do forecasting for count of records, or choose another quantity attribute from Fields list to populate Y-axis automatically and have more meaningful forecast.
Before viewing the forecast, you can choose the level of aggregation you want for your date column to populate X-axis by year, month or day. 4. Click on the date field name in top Field Wells bar to reveal a sub-menu. 5. Select Aggregate:Month to aggregate by month.
You can also use the slider on the X-axis to select the range of values to appear in the graph.
If you receive an error, try to use Forecast properties panel that opens at left, customizing Periods backward value to match your number of data points.
NOTE: Make sure your Y-axis is assigned to a quantity column before proceeding.
You can apply filters to both regular and calculated fields, which include text, numeric, and date fields. Let’s apply a date filter:
Choose Filter on the tool bar.
On the Applied filters pane, choose Create one, and then choose a date field to filter on.
Choose in which visual the filter will apply and choose the filter type from the dropdown list.
Choose a comparison type.
Enter date values.
Choose Apply.
NOTE: You can customize the narrative by clicking on top right arrow of the visual and selecting Customize narrative.
Note: The interesting outlier in the above graph is that on Jan23rd, 2016, you see the dip in the number of taxis across all types. Doing a quick google search for that date, gets us this weather article from NBC New York
Using Amazon QuickSight, you were able to see patterns across a time-series data by building visualizations, performing ad-hoc analysis, and quickly generating insights.
This library is licensed under the Apache 2.0 License.


This fills the gaps credit analysts and loan modellers at Optimum Credit identify in the existing R code body. It allows for the production of documentation with less coding, replicates a number of Microsoft Excel functions useful for modelling loans (without rounding), and other helpful functions for producing charts and tables. It also has some additional scales for use, including a GBP scale.
| Version: | 0.40.1 |
| Depends: | R (≥ 3.0.2) |
| Imports: | data.table (≥ 1.9.6), ggplot2, AUC, grid, knitr, plyr, scales, stringr, XML |
| Suggests: | testthat, covr, rmarkdown |
| Published: | 2018-07-03 |
| Author: | Steph Locke [aut, cre], Locke Data [fnd] (https://itsalocke.com/), Optimum Credit Ltd's analysts [fnd] (https://www.optimumcredit.co.uk/), Maëlle Salmon [ctb] |
| Maintainer: | Steph Locke <stephanie.g.locke at gmail.com> |
| BugReports: | https://github.com/lockedata/optiRum/issues |
| License: | GPL-3 |
| URL: | https://github.com/lockedata/optiRum, https://itsalocke.com/optirum/ |
| NeedsCompilation: | no |
| Materials: | NEWS |
| CRAN checks: | optiRum results |
| Reference manual: | optiRum.pdf |
| Vignettes: |
optiRum Presentation components |
| Package source: | optiRum_0.40.1.tar.gz |
| Windows binaries: | r-devel: optiRum_0.40.1.zip, r-release: optiRum_0.40.1.zip, r-oldrel: optiRum_0.40.1.zip |
| OS X binaries: | r-release: optiRum_0.40.1.tgz, r-oldrel: optiRum_0.40.1.tgz |
| Old sources: | optiRum archive |
| Reverse suggests: | iemisc |
Please use the canonical form https://CRAN.R-project.org/package=optiRum to link to this page.


Go is a wonderful programming language, nestled comfortably in between low-level languages like C or Rust, and higher level languages like Python or Ruby. The convenience one gains by doing systems programming in Go, thanks to perks like syntactic simplicity and first-class concurrency, is offset by repetitive error handling, lack of direct memory access, and a few glaring omissions from the standard library (generics and binary literals come to mind.)
This article will describe one challenge I encountered when writing the network resource for mgmt, a tool for next generation distributed, event-driven, parallel config management. The network resource is tasked with applying the prescribed network configuration, monitoring the defined device, and correcting its state if it diverges from the configuration. In simpler terms, it sets up a network device and makes sure it stays set up exactly how you want.
Unfortunately Go’s net library is only useful when it comes to checking the network state, and lacks the ability to apply changes to an interface, so it was necessary to venture outside the comfort of the standard library and employ a more powerful solution. Enter Netlink.
There are several libraries available to interface with kernel netlink sockets
at various levels of abstraction, but none of them are without problems. For
example, vishvananda/netlink
has a “subscribe” function, which is supposed
to subscribe to events on a netlink socket. Unfortunately the package fails to
clean up spawned goroutines and their api design leads to a race, where data
and errors may not be serialized in the correct order. Another package,
mdlayher/netlink
, gets one step closer to a correct implementation but the
conn.Receive()
method will block indefinitely until a message arrives on the
socket. Given these shortcomings, it was necessary to roll my own netlink
socket listener. I was however, able to use some helper functions from
vishvananda/netlink
when it came time to apply changes to the interface.
Enter unix.Select()
. Systems programmers should already be familiar with
select(2)
, but for those that aren’t, here’s a quote from the man page:
select() and pselect() allow a program to monitor multiple file
descriptors, waiting until one or more of the file descriptors become
"ready" for some class of I/O operation (e.g., input possible). A
file descriptor is considered ready if it is possible to perform a
corresponding I/O operation (e.g., read(2) without blocking, or a
sufficiently small write(2)).
On linux, everything is a file, and that includes sockets (netlink or
otherwise.) So, we can use select to watch the socket, and return when an event
occurs. Simple enough. In fact, this is exactly what mdlayher/netlink
does.
The problem is that when you want to exit, the select will block indefinitely.
On some systems, select will return when the file descriptor is destroyed, but
that is undefined behavior, and doesn’t happen on many linux systems.
The solution is the Unix Pipe
pattern, where we employ a second file
descriptor to signal select when it’s time to close. The pipe in this case, is
an ordinary Unix socket, stored in the temp filesystem. With both file
descriptors in place, we can call select, using golang.org/x/sys/unix
’s
Select()
function, and pass it a set containing file descriptors for both
netlink and pipe sockets. Then, to unblock select when we want to shut
down, all we have to do is close the netlink socket, and then send an empty
message to the pipe socket. This will cause select to return and our program
can exit cleanly. Here’s what that looks like:
// shutdown closes the event file descriptor and unblocks receive by sending
// a message to the pipe file descriptor. It must be called before close, and
// should only be called once.
func (obj *socketSet) shutdown() error {
// close the event socket so no more events are produced
if err := unix.Close(obj.fdEvents); err != nil {
return err
}
// send a message to the pipe to unblock select
return unix.Sendto(obj.fdPipe, nil, 0, &unix.SockaddrUnix{
Name: path.Join(obj.pipeFile),
})
}
// close closes the pipe file descriptor. It must only be called after
// shutdown has closed fdEvents, and unblocked receive. It should only be
// called once.
func (obj *socketSet) close() error {
return unix.Close(obj.fdPipe)
}
// receive waits for bytes from fdEvents and parses them into a slice of
// netlink messages. It will block until an event is produced, or shutdown
// is called.
func (obj *socketSet) receive() ([]syscall.NetlinkMessage, error) {
// Select will return when any fd in fdSet (fdEvents and fdPipe) is ready
// to read.
_, err := unix.Select(obj.nfd(), obj.fdSet(), nil, nil, nil)
if err != nil {
// if a system interrupt is caught
if err == unix.EINTR { // signal interrupt
return nil, nil
}
return nil, errwrap.Wrapf(err, "error selecting on fd")
}
// receive the message from the netlink socket into b
b := make([]byte, os.Getpagesize())
n, _, err := unix.Recvfrom(obj.fdEvents, b, unix.MSG_DONTWAIT) // non-blocking receive
if err != nil {
// if fdEvents is closed
if err == unix.EBADF { // bad file descriptor
return nil, nil
}
return nil, errwrap.Wrapf(err, "error receiving messages")
}
// if we didn't get enough bytes for a header, something went wrong
if n < unix.NLMSG_HDRLEN {
return nil, fmt.Errorf("received short header")
}
b = b[:n] // truncate b to message length
// use syscall to parse, as func does not exist in x/sys/unix
return syscall.ParseNetlinkMessage(b)
}
If you are interested in the details of my implementation, check out the source for context and if you have any questions, hit me up in the comments below, or ping me on twitter @JonWritesCode


Object Filters
Used to filter the objects that are in a list (Hub collection). The list will then stay updated as changes are made.


Trump Approval Rate
This variation is a line graph showing the percentage of "Yes" responses over time to the corresponding question category selected. My aim with the color choices was to leverage the colors we are familiar with respect to America. This iteration is the same as the previous in that there is a linear interpolation between points. However, I've added dots at each data point for two reasons. First is that this may more clearly show where in time each poll was taken. Secondly is for future considerations, we may annotate certain points/dots with corresponding events that took place in that time frame.


Tracks Texture frame changes
Changes frame clamping Works with TilingSprite and Mesh Change to -0.5 to add a pixel to the edge, recommended for transparent trimmed textures in atlas
Changes frame clamping Works with TilingSprite and Mesh Change to 1.5 if you texture has repeated right and bottom lines, that leads to smoother borders
If texture size is the same as baseTexture
Matrix operation that converts texture region coords to texture coords
texture property
Clamp region for normalized coords, left-top pixel center in xy , bottom-right in zw. Calculated based on clampOffset.
Normalized clamp offset. Calculated based on clampOffset.
Multiplies uvs array to transform
mesh uvs
output
updates matrices if texture was changed
whether or not it was updated
Generated using TypeDoc
Class controls uv mapping from Texture normal space to BaseTexture normal space.
Takes
trim
androtate
into account. May contain clamp settings for Meshes and TilingSprite.Can be used in Texture
uvMatrix
field, or separately, you can use different clamp settings on the same texture. If you want to add support for texture region of certain feature or filter, that's what you're looking for.Takes track of Texture changes through
_lastTextureID
private field. Useupdate()
method call to track it from outside.PIXI.Texture
PIXI.Mesh
PIXI.TilingSprite
PIXI


Classless.css is one small CSS file, which defines few but great styles for basic HTML5 tags plus very few classes for grid and spacing. Nothing more. Nothing less.
Features
Tiny. Only 300 lines of CSS3 for Grids, Navigation Bar, Cards and more.
Responsive. We use media queries, rem units, and smart overflows for tables and code.
Bootstrap Compatible. The few classes use the same names as Bootstrap.
Getting Started
One-Click Testing
For testing, you can simply insert the following two lines into your HTML file. For production, please host the classless.css file yourself.
The page you are seeing right now, is already a demo of pure classless.css. We do not use any additional CSS files.
Text Elements
The typography of Classless is purely based on CSS3.
You can use the standard html5 tags such as  or  for bold text,  or  for italic text and  for underlined text.
Use  for subscripts like in H2O.
This small text uses  for for fine print, etc.
This big text uses <big> for a lead paragraph
Inline quotations with <q> such as This is Lars’ car! insert automatically the correct quotation marks.
This is a citation.
The dfn element indicates a definition.
The mark element indicates a highlight.
The variable element, such as x = y.
The time element:
Blockquotes
A block quotation (also known as a long quotation or extract) is a quotation in a written document, that is set off from the main text as a paragraph, or block of text.
It is typically distinguished visually using indentation and a different typeface or smaller size quotation. It may or may not include a citation, usually placed at the bottom.
You can use inline code such div with div or show keyboard inputs such as Ctrl+C with Ctrl+C.
Code Listing
main(int a){
println("hello world")
}
Pre-formatted text
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
 All columns except the first one are right aligned by default which makes it easy to compare numbers. Of course you can change this behavior with our utility classes.
Table 1: Comparison of different minimal CSS frameworks
* readable, non-minified code (these tiny libs don't need minimizers)
Figures

Here is a caption for this image.

Horizontal rules

Extra
These features are included but are marked as extras such that you can easily remove them from the CSS file in case you do not need them.
Navigation Bar
Yes! Just 30 lines of CSS code for a simple yet full responsive navigation bar including dropdown menus and callapsing items on mobile phones.
You can place side notes using the  element.
Form elements
Bootless.css
Some concepts, such as grids and cards, are not covered by the default html5 tags and require CSS classes.
Therefore, Classless defines a few classes with the same class names as the popular framework Bootstrap.
Grid System
Classless provides a simple grid system with the same class names as bootstrap.
Colum 1/2
This text is on the other side explaining something. If the width of the viewport is small enough, this text should be visible below the the heading on the left.

Column 1/2

This text is on the other side ...

Columns
There are also classes for columns with special width such as .col-4 (4/12) resulting in one third of the width:
Colum 1/3
Colum 2/3
Colum 3/3
and also .col-3 (3/12) resulting in 4 cols:
Colum 1/4
Colum 2/4
Colum 3/4
Colum 4/4
If you use a .col-X with limited width, the other .col will take up the remaining space:
Colum 1/3
This text is on the other side explaining something. If the width of the viewport is small enough, this text should be visible below the the heading on the left.
Cards
If you want to group special content from the normal text flow, cards will be your friends.
Card Heading
This is the card body.

Card Heading

This is the card body.


--- layout: post title: Episode 051 | Wendy Closson - Whole Person link: http://traffic.libsyn.com/developeronfire/DeveloperOnFire-51-WendyClosson.mp3 length: 41943040 speaker: Dave Rael duration: '42:28' subtitle: 'Developer On Fire: Wendy Closson' guest_name: Wendy Closson image: /assets/images/WendyClosson.png guest_blog: http://justaddwendy.com guest_twitter: wendypclosson disqus_url: http://developeronfire.com/Podcast/Episodes/wendy-closson-whole-person episode_number: 51 redirect_from: - "/51/" - "/051/" - "/0051/" - "/wendy-closson-whole-person/" - "/Wendy-Closson/" - "/WendyClosson/" - "/Podcast/Episodes/51/" - "/Podcast/Episodes/051/" - "/Podcast/Episodes/0051/" - "/Podcast/Episodes/wendy-closson-whole-person/" - "/Podcast/Episodes/Wendy-Closson/" - "/Podcast/Episodes/WendyClosson/" guid: http://developeronfire.com:80/Podcast/Episodes/wendy-closson-whole-person ---
Wendy Closson is an expert software developer with over a decade of experience immersed in development and championing agile practices. After a run in with cancer, she gathered a unique toolset to overcome overwhelm, create clear communication, and increase influence. Fusing her expertise together, Wendy coaches senior technologists through their mid-career crisis. Additionally, she teaches yoga, researches meditation, blogs for mothering.com, and hacks away on side projects. She lives on Long Island with her husband and two children.
1.
2. It's helpful to be honest about your feelings
3. There's a difference between being nice and being kind


Customer Survey
Let us know how you enjoyed our service
* Name:
* Email:
* Client Number:
Which service did you purchase?
Select an Option
Entry Level
Complete
How likely are you to recommend our service to someone else?
Very Likely
Somewhat Likely
Not Likely
How did you hear about our company? (Select all that apply):
Word of mouth
Website
Television Commercial
Radio Advertisement
Public Flyer
Any comments or suggestions?
Submit


ALIEN (1979)
A Review by Matthew K. Gold from the Book-Lover's Guide to Cinema http://www.panix.com/~mgold/meter.htm Copyright 1998 Matthew K. Gold
Smoke Without Mirrors
The first third of Ridley Scott's Alien contains a brilliant reworking of Stanley Kubrick's 2001: A SPACE ODYSSEY. In the opening scenes of the movie, Scott appropriates Kubrick's modernistic set design and lighting, and finds a similar, patient sense of rhythm and pace. Where 2001 is theoretical and abstract, however, Ridley adds a dimension of gritty realism. He photographs a crew of space travelers emerging from cryogenic sleep like butterflies unfolding from their chrysalises, but when these characters come to life, the first thing they do is gather around the breakfast table, slurp coffee, smoke cigarettes, and argue about the wages they're receiving on the trip.  At one point early in the film, we see the crew trying to land their vessel. Scott shows this as a difficult, stressful task, which is unusual for the sci-fi genre: usually directors cut from shots of a tractor-beam-pull-in to shots of mechanics walking up to a safely landed ship. In ALIEN, by contrast, we see the characters sweat and grimace, and we come to know that grit is an indelible aspect of the human spirit.
As exhilarating as the first third of this movie is--with Scott's long, snake-like continuous shots, which mirror the motions of the aliens who appear later in the film--the movie takes a downward turn exactly when the alien kills its first victim. Scott replaces the deliberately slow pace of the opening scenes with the dull rhythms of generic conventions. Suddenly, instead of watching a great movie, we're watching a great sci-fi/horror flick. The eccentric cast of characters, who are set up so well at the beginning of the movie, are transformed into shallow, murder-by-numbers victims by the end. Plot contrivances begin to build up and annoy the viewer: why, for instance, when she has only seven minutes to meet up with her companions, does Ripley suddenly obsess so much about her cat? Yes, it shows that she has an execeptional understanding of species other than her own, but it feels forced. Earlier in the movie, she had an iron will, and was willing to sacrifice two humans; near the end of the film, she turns unexpectedly sentimental.
For many people, the ALIEN series is valuable because it places a woman (Ripley/Sigourney Weaver) in the role of the action hero. Weaver does a great job, and the battle-of-the-sexes scenes at the beginning of the movie have an extremely realistic feel. However, near the end of the film, Scott's camera resorts to the familiar male gaze as it watches Weaver get out of her uniform. Although this scene is undeniably sexy, it's also completely gratuitous--I'm simply not convinced by explanations such as "her nakedness is symbolic--she has to fight her last battle with the alien when she is at her most vulnerable." After all, she gets out of one uniform in order to get into another. It feels like a step backward to me.
If I could split a movie in two, I'd take the first third of ALIEN and put it in the shrine, and take the last two-thirds and give it a 3.5. Overall, it's a fine film, but in the end it doesn't live up to its own promise.
Rating (1-5): 4.0 12/24/97 © Matthew K. Gold 1997
Directed by Ridley Scott. Cinematography by Derek Vanlint. Production design by Roger Christian, Leslie Dilley, Anton Furst, and Michael Seymour. Written by Dan O'Bannon and Thilo Newman. Starring Sigourney Weaver, Tom Skerrit, Veronica Cartwright, Harry Dean Stanton, John Hurt, Ian Holm, Yaphet Kotto, Bolaji Badejo, and Helen Horton.
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


[§52D-13] Orders of retention. No property shall be sold or delivered under sections 52D-10 to 52D-14 if the chief of police, any county attorney or corporation counsel, or any court directs that it be retained as evidence. [L 1989, c 136, pt of §2]


What are Treasury, Departments and Parliament busy with?
- Deliberations take place within National Treasury's budget technical structures to enable them to finalise recommendations to political structures on the detail of the MTEF National allocations to be tabled in the budget in February.
- Cabinet considers the recommendations tabled before it. Allocations adopted by Cabinet are included in updated allocation letters sent to departments.
- Departments update their budget documentation inputs accordingly.
- Departments finalise their budgets and budget documentation in accordance with the final allocations received.
- Within 9 days after the adoption of the fiscal framework report, Parliament must report to the respective Houses on the Division of Revenue Amendment Bill.
- The Committee on Appropriations must report to the relevant House on the Adjustments Appropriation Bill within 30 days of the tabling of the national adjustments budget.
How can I participate?
- Participate in public hearings on the Division of Revenue Amendment Bill in the national and provincial legislatures.
- Participate in public hearings on the Adjustments Appropriation Bill. These will be held by the appropriations committee and the relevant sector committees may also be engaged.


{% extends "public/components/base.html" %} {% load static %} {% block title %}About Open States Subscriptions{% endblock %} {% block description %}Track legislation for free using Open States.{% endblock %} {% block content %}
As of February 2020 bill tracking & subscriptions are in open beta. This power user feature lets you easily track all legislation that has been introduced on a given topic as well as subscribe to updates on existing bills.
Here's a quick guide on how to get the most out of this powerful new feature:
The first thing you need to do is create an account and verify your email.
You can create an account using a username & password, or any common social media provider (Twitter, Google, Facebook, GitHub).
Make sure to verify your email address, we can't send alerts until that's done.
We currently support two types of subscriptions: saved searches and individual bills.
Saved searches allow you to be notified any time a new piece of legislation that matches your search criteria is introduced.
To create a saved search navigate to your state's bills page (e.g. North Carolina Bills) and enter a search query. After you see your results you can click the "Add Subscription" button, which will ensure you're updated any time new legislation is introduced matching your criteria.
You may also find legislation that you wish to track changes to. Let's say you're curious to see all updates to the North Carolina Farm Act of 2019. You'd navigate to the bill, and click the "Follow Bill" button beneath the bill title at the top of the page.
Once clicked, you'll receive emails any time the legislation is updated in any way. This means if a new sponsor is added, action is taken, or text is changed- you'll be informed that a change took place. Perfect for keeping tabs on the legislation you're most interested in.
Now you can sit back & wait. We'll send emails when changes occur. Our system updates each state at least once every 24 hours, so you can be sure you're up to date.
Visiting your profile will let you browse & manage your subscriptions and email preferences.
You can choose between daily & weekly emails, and unsubscribe from any of your current subscriptions from this page.
This feature is still in beta, so if you notice anything weird or have any requests, please get in touch.


Kodak Black wants prison rehab after being ‘drugged’ by another inmate
Kodak Black has reportedly asked a judge to be approved for a drug rehab program in prison, days after he allegedly claimed to be ‘drugged’ right before a brawl with another inmate.
The Zeze rapper was sentenced to 46 months in prison earlier this month after pleading guilty to weapons charges.
It was reported last week that Kodak, real name Bill K Kapri, was involved in a huge prison brawl in October with his reps claiming another inmate slipped a substance in his drink around 20 minutes before the brawl broke out.
TMZ now reports that the 22-year-old rapper has requested to be sent to a prison that offers the Residential Drug Abuse Program.
The scheme lasts for nine months and involves group therapy in addition to one-on-one treatment. Through the program, inmates are allowed to live in a separate unit to the general population.
Advertisement Advertisement
But perhaps the most appealing draw is that participants could see their sentences dramatically cut short by as much as 12 months.
The judge is yet to make a decision on the request.
Kodak’s team reportedly believe he was set up in the prison brawl, as he was seen drinking from a coffee cup which they claim was spiked with a chemical substance shortly before the incident, causing his behaviour to change.
An FBI agent allegedly testified that inmates said Kodak appeared to be under the influence during the fight.
It’s claimed Kodak had to be restrained by several prison guards before being sprayed with mace after getting into a brawl with another inmate.
Emery Nelson, a spokesperson from the Bureau of Prisons, confirmed that a prison staff member was physically assaulted during the brawl and required hospital treatment.
Kodak’s reps said they didn’t know who allegedly drugged him but had suspicions.
The rapper was arrested before his performance at Rolling Loud festival in Miami in May and admitted to falsifying information on forms in order to buy four guns.
After his sentencing, Kodak’s lawyer Bradford Cohen told BBC News: ‘After the court was apprised of all the facts and circumstances of this case and the good charitable work that Bill has done over the years, the court rejected the government’s request of 96 months and sentenced Bill to 46 months.’
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


TAC(1) User Commands TAC(1) NAME tac - concatenate and print files in reverse SYNOPSIS tac [OPTION]... [FILE]... DESCRIPTION Write each FILE to standard output, last line first. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -b, --before attach the separator before instead of after -r, --regex interpret the separator as a regular expression -s, --separator=STRING use STRING as the separator instead of newline --help display this help and exit --version output version information and exit AUTHOR Written by Jay Lepreau and David MacKenzie. REPORTING BUGS Report tac bugs to<EMAIL_ADDRESS>GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> Report tac translation bugs to <http://translationproject.org/team/> COPYRIGHT Copyright © 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO rev(1) The full documentation for tac is maintained as a Texinfo manual. If the info and tac programs are properly installed at your site, the command info coreutils 'tac invocation' should give you access to the complete manual. GNU coreutils 8.12.197-032bb September 2011 TAC(1)


NOTE: For this example to work you have to run it in a web server context. This is a simple example with basic resource assignment functionality. Select the resources in the resource column by clicking and selecting in the editor.
Note that the js for the example code is not minified so it is readable. See resources.js.


Home
About
Articles
Everything Computers!
System Design
Docker
System Design
Docker
Dev Kid's Basics
Everything Automation
A Very Very Basic Linux Guide
Ansible
OkTober
Azure Notes
Angular


Commands constants. Are used in IPC between ModuleProcess and its wrapped module. Author: Denis Ilguzin Source: commands.js, line 1
ModuleProcess represents a wrapper enabling interprocess communication functionality for arbitrary module which engages it to be available as a sub-process invocation. ModuleProcess is a core part of sub-processing dispatching. Author: Denis Ilguzin Source: moduleProcess.js, line 1
ProcessDispatcher is simply a container of pre-forked ModuleProcess instances. It also a set of useful tools. Author: Denis Ilguzin Source: processDispatcher.js, line 1


Welcome to Team #13
Team Lead
Damico Shields
Back-End Team
Jaimes Subroto
Andrew Hutzel
Front-End Team
Justice Chase
Leo Wang
Kimyou By


WebAssembly CG members representing four browsers, Chrome, Edge, Firefox, and WebKit, have reached consensus that the design of the initial (MVP) WebAssembly API and binary format is complete to the extent that no further design work is possible without implementation experience and significant usage. This marks the end of the Browser Preview and signals that browsers can begin shipping WebAssembly on-by-default. From this point forward, future features will be designed to ensure backwards compatibility.
This consensus includes a JavaScript API and binary format accompanied by a reference interpreter. You can test out WebAssembly today using the Emscripten toolchain by following the developer’s guide and reading more on MDN. You can also explore a variety of other advanced tools.
See Getting Started to start experimenting and Feedback for how and where to direct feedback.
See this message on the community group mailing list.
The WebAssembly community group and contributors plan to:
0x1
(from this point forward
all new features will be added in a backwards-compatible manner,
and be detected through feature-testing). To update your
WebAssembly modules, upgrade to the latest version of Emscripten
and recompile.


 Sometimes, a teenager will say something nasty, cruel or hateful and you'll have to correct them. One or two of the times this has happened to me, I've been met with the foolproof, rock solid, intellectually unscalable response "it's a free country man."
I'm sorry. I must have forgot that it's a free country. I must have forgot that we have freedom of speech here in America. You know, because everything that isn't illegal is thus automatically a good idea.   It's not illegal to add the word "jellyfish" to every sentence you say from now on. It's a free country man, go for it.
When we get on to kids about bad speech, we aren't appealing to legality, we are appealing to higher motives than that: kindness, their Christian walk, their personal testimony, etc.
In Christianity, there seems to be a lot of people who are pulling the "it's a free country man" card quite often. Of course I'm speaking about the tired old arguments about Christian liberty.
I believe in Christian liberty. I believe that if a behavior isn't specifically condemned or commended in scripture, that we need to give people some serious slack. There are people who hold wildly different opinions about areas of Christian practice than me that I think Christian liberty demands we give slack to. For example, I would have a problem with Charles Spurgeon's view of alcohol. Spurgeon would take issue with my piano. I think that if a person loves God and is faithfully trying to live by the Word, then we have to give room for difference of opinion in areas of practice.
That being said, there is a difference between believing in Christian liberty and thinking that it is always wise and proper to use it. Just because the Bible doesn't condemn something specifically, doesn't mean a Christian should do it. We live above the level of what is lawful. There are far higher motivations for the Christian than mere legality.
Our walk with God, our testimony to the lost, charity towards are fellow believers, and usefulness to the church; these are all motivations that the Bible says trump our liberty. (They also cut just as deeply into those who are overzealous about law as those who are overzealous about liberty.)
"It's a free country man." Let's use our freedom for the glory of God and build up the kingdom of God.


HTML form elements to interact with.
Forms Elements
Enter Your Data
User Name
Helper text if necessary.
Password
Error messages when appropriate.
First Name
Last Name
Email
Gender
Male
Female
Other
Please select your age:
0 - 30
31 - 60
61 - 100
Personal Site URL
Something about you:
Married?


# coding: utf-8
"""
--------------------------------------------------------------------------------------------------------------------
<copyright company="Aspose" file="file_version.py">
Copyright (c) 2022 Aspose.HTML for Cloud
</copyright>
<summary>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
</summary>
--------------------------------------------------------------------------------------------------------------------
"""
from asposehtmlcloud.models.base_model import BaseModel
[docs]class FileVersion(BaseModel):
"""
Attributes:
model_types (dict): The key is attribute name
and the value is attribute type.
attribute_map (dict): The key is attribute name
and the value is json key in definition.
"""
model_types = {
'name': 'str',
'is_folder': 'bool',
'modified_date': 'datetime',
'size': 'int',
'path': 'str',
'version_id': 'str',
'is_latest': 'bool'
}
attribute_map = {
'name': 'name',
'is_folder': 'isFolder',
'modified_date': 'modifiedDate',
'size': 'size',
'path': 'path',
'version_id': 'versionId',
'is_latest': 'isLatest'
}
def __init__(self, name=None, is_folder=None, modified_date=None, size=None, path=None,
version_id=None, is_latest=None):
self._name = None
self._is_folder = None
self._modified_date = None
self._size = None
self._path = None
self._version_id = None
self._is_latest = None
if name is not None:
self.name = name
self.is_folder = is_folder
if modified_date is not None:
self.modified_date = modified_date
self.size = size
if path is not None:
self.path = path
if version_id is not None:
self.version_id = version_id
self.is_latest = is_latest
@property
def name(self):
"""Gets the name of this FileVersion.
File or folder name.
:return: The name of this FileVersion.
:rtype: str
"""
return self._name
@name.setter
def name(self, name):
"""Sets the name of this FileVersion.
File or folder name.
:param name: The name of this FileVersion.
:type: str
"""
self._name = name
@property
def is_folder(self):
"""Gets the is_folder of this FileVersion.
True if it is a folder.
:return: The is_folder of this FileVersion.
:rtype: bool
"""
return self._is_folder
@is_folder.setter
def is_folder(self, is_folder):
"""Sets the is_folder of this FileVersion.
True if it is a folder.
:param is_folder: The is_folder of this FileVersion.
:type: bool
"""
if is_folder is None:
raise ValueError("Invalid value for `is_folder`, must not be `None`")
self._is_folder = is_folder
@property
def modified_date(self):
"""Gets the modified_date of this FileVersion.
File or folder last modified DateTime.
:return: The modified_date of this FileVersion.
:rtype: datetime
"""
return self._modified_date
@modified_date.setter
def modified_date(self, modified_date):
"""Sets the modified_date of this FileVersion.
File or folder last modified DateTime.
:param modified_date: The modified_date of this FileVersion.
:type: datetime
"""
self._modified_date = modified_date
@property
def size(self):
"""Gets the size of this FileVersion.
File or folder size.
:return: The size of this FileVersion.
:rtype: int
"""
return self._size
@size.setter
def size(self, size):
"""Sets the size of this FileVersion.
File or folder size.
:param size: The size of this FileVersion.
:type: int
"""
if size is None:
raise ValueError("Invalid value for `size`, must not be `None`")
self._size = size
@property
def path(self):
"""Gets the path of this FileVersion.
File or folder path.
:return: The path of this FileVersion.
:rtype: str
"""
return self._path
@path.setter
def path(self, path):
"""Sets the path of this FileVersion.
File or folder path.
:param path: The path of this FileVersion.
:type: str
"""
self._path = path
@property
def version_id(self):
"""Gets the version_id of this FileVersion.
File Version ID.
:return: The version_id of this FileVersion.
:rtype: str
"""
return self._version_id
@version_id.setter
def version_id(self, version_id):
"""Sets the version_id of this FileVersion.
File Version ID.
:param version_id: The version_id of this FileVersion.
:type: str
"""
self._version_id = version_id
@property
def is_latest(self):
"""Gets the is_latest of this FileVersion.
Specifies whether the file is (true) or is not (false) the latest version of an file.
:return: The is_latest of this FileVersion.
:rtype: bool
"""
return self._is_latest
@is_latest.setter
def is_latest(self, is_latest):
"""Sets the is_latest of this FileVersion.
Specifies whether the file is (true) or is not (false) the latest version of an file.
:param is_latest: The is_latest of this FileVersion.
:type: bool
"""
if is_latest is None:
raise ValueError("Invalid value for `is_latest`, must not be `None`")
self._is_latest = is_latest


|
ReactPhysics3D
0.6.0
Physics engine library
|
This class represents a rigid body of the physics engine. More...
#include <RigidBody.h>
Public Member Functions | |
| RigidBody (const Transform &transform, CollisionWorld &world, bodyindex id) | |
| Constructor. More... | |
| virtual | ~RigidBody () |
| Destructor. | |
| void | setType (BodyType type) |
| Set the type of the body (static, kinematic or dynamic) More... | |
| virtual void | setTransform (const Transform &transform) |
| Set the current position and orientation. More... | |
| decimal | getMass () const |
| Return the mass of the body. More... | |
| Vector3 | getLinearVelocity () const |
| Return the linear velocity. More... | |
| void | setLinearVelocity (const Vector3 &linearVelocity) |
| Set the linear velocity of the body. More... | |
| Vector3 | getAngularVelocity () const |
| Return the angular velocity. More... | |
| void | setAngularVelocity (const Vector3 &angularVelocity) |
| Set the angular velocity. More... | |
| virtual void | setIsSleeping (bool isSleeping) |
| Set the variable to know whether or not the body is sleeping. | |
| const Matrix3x3 & | getInertiaTensorLocal () const |
| Return the local inertia tensor of the body (in body coordinates) More... | |
| void | setInertiaTensorLocal (const Matrix3x3 &inertiaTensorLocal) |
| Set the local inertia tensor of the body (in body coordinates) More... | |
| void | setCenterOfMassLocal (const Vector3 ¢erOfMassLocal) |
| Set the local center of mass of the body (in local-space coordinates) More... | |
| void | setMass (decimal mass) |
| Set the mass of the rigid body. More... | |
| Matrix3x3 | getInertiaTensorWorld () const |
| Return the inertia tensor in world coordinates. More... | |
| Matrix3x3 | getInertiaTensorInverseWorld () const |
| Return the inverse of the inertia tensor in world coordinates. More... | |
| bool | isGravityEnabled () const |
| Return true if the gravity needs to be applied to this rigid body. More... | |
| void | enableGravity (bool isEnabled) |
| Set the variable to know if the gravity is applied to this rigid body. More... | |
| Material & | getMaterial () |
| Return a reference to the material properties of the rigid body. More... | |
| void | setMaterial (const Material &material) |
| Set a new material for this rigid body. More... | |
| decimal | getLinearDamping () const |
| Return the linear velocity damping factor. More... | |
| void | setLinearDamping (decimal linearDamping) |
| Set the linear damping factor. More... | |
| decimal | getAngularDamping () const |
| Return the angular velocity damping factor. More... | |
| void | setAngularDamping (decimal angularDamping) |
| Set the angular damping factor. More... | |
| const JointListElement * | getJointsList () const |
| Return the first element of the linked list of joints involving this body. More... | |
| JointListElement * | getJointsList () |
| Return the first element of the linked list of joints involving this body. More... | |
| void | applyForceToCenterOfMass (const Vector3 &force) |
| Apply an external force to the body at its center of mass. More... | |
| void | applyForce (const Vector3 &force, const Vector3 &point) |
| Apply an external force to the body at a given point (in world-space coordinates). More... | |
| void | applyTorque (const Vector3 &torque) |
| Apply an external torque to the body. More... | |
| virtual ProxyShape * | addCollisionShape (CollisionShape *collisionShape, const Transform &transform, decimal mass) |
| Add a collision shape to the body. More... | |
| virtual void | removeCollisionShape (const ProxyShape *proxyShape) |
| Remove a collision shape from the body. More... | |
| void | recomputeMassInformation () |
| Recompute the center of mass, total mass and inertia tensor of the body using all the collision shapes attached to the body. More... | |
| Public Member Functions inherited from reactphysics3d::CollisionBody | |
| CollisionBody (const Transform &transform, CollisionWorld &world, bodyindex id) | |
| Constructor. More... | |
| virtual | ~CollisionBody () |
| Destructor. | |
| BodyType | getType () const |
| Return the type of the body. More... | |
| void | setType (BodyType type) |
| Set the type of the body. More... | |
| virtual void | setIsActive (bool isActive) |
| Set whether or not the body is active. More... | |
| const Transform & | getTransform () const |
| Return the current position and orientation. More... | |
| virtual ProxyShape * | addCollisionShape (CollisionShape *collisionShape, const Transform &transform) |
| Add a collision shape to the body. More... | |
| const ContactManifoldListElement * | getContactManifoldsList () const |
| Return the first element of the linked list of contact manifolds involving this body. More... | |
| bool | testPointInside (const Vector3 &worldPoint) const |
| Return true if a point is inside the collision body. More... | |
| bool | raycast (const Ray &ray, RaycastInfo &raycastInfo) |
| Raycast method with feedback information. More... | |
| AABB | getAABB () const |
| Compute and return the AABB of the body by merging all proxy shapes AABBs. More... | |
| ProxyShape * | getProxyShapesList () |
| Return the linked list of proxy shapes of that body. More... | |
| const ProxyShape * | getProxyShapesList () const |
| Return the linked list of proxy shapes of that body. More... | |
| Vector3 | getWorldPoint (const Vector3 &localPoint) const |
| Return the world-space coordinates of a point given the local-space coordinates of the body. More... | |
| Vector3 | getWorldVector (const Vector3 &localVector) const |
| Return the world-space vector of a vector given in local-space coordinates of the body. More... | |
| Vector3 | getLocalPoint (const Vector3 &worldPoint) const |
| Return the body local-space coordinates of a point given in the world-space coordinates. More... | |
| Vector3 | getLocalVector (const Vector3 &worldVector) const |
| Return the body local-space coordinates of a vector given in the world-space coordinates. More... | |
| Public Member Functions inherited from reactphysics3d::Body | |
| Body (bodyindex id) | |
| Constructor. More... | |
| virtual | ~Body () |
| Destructor. | |
| bodyindex | getID () const |
| Return the ID of the body. More... | |
| bool | isAllowedToSleep () const |
| Return whether or not the body is allowed to sleep. More... | |
| void | setIsAllowedToSleep (bool isAllowedToSleep) |
| Set whether or not the body is allowed to go to sleep. More... | |
| bool | isSleeping () const |
| Return whether or not the body is sleeping. More... | |
| bool | isActive () const |
| Return true if the body is active. More... | |
| void * | getUserData () const |
| Return a pointer to the user data attached to this body. More... | |
| void | setUserData (void *userData) |
| Attach user data to this body. More... | |
| bool | operator< (const Body &body2) const |
| Smaller than operator. | |
| bool | operator> (const Body &body2) const |
| Larger than operator. | |
| bool | operator== (const Body &body2) const |
| Equal operator. | |
| bool | operator!= (const Body &body2) const |
| Not equal operator. | |
Protected Member Functions | |
| RigidBody (const RigidBody &body) | |
| Private copy-constructor. | |
| RigidBody & | operator= (const RigidBody &body) |
| Private assignment operator. | |
| void | removeJointFromJointsList (MemoryAllocator &memoryAllocator, const Joint *joint) |
| Remove a joint from the joints list. | |
| void | updateTransformWithCenterOfMass () |
| Update the transform of the body after a change of the center of mass. | |
| virtual void | updateBroadPhaseState () const |
| Update the broad-phase state for this body (because it has moved for instance) | |
| Protected Member Functions inherited from reactphysics3d::CollisionBody | |
| CollisionBody (const CollisionBody &body) | |
| Private copy-constructor. | |
| CollisionBody & | operator= (const CollisionBody &body) |
| Private assignment operator. | |
| void | resetContactManifoldsList () |
| Reset the contact manifold lists. | |
| void | removeAllCollisionShapes () |
| Remove all the collision shapes. | |
| void | updateProxyShapeInBroadPhase (ProxyShape *proxyShape, bool forceReinsert=false) const |
| Update the broad-phase state of a proxy collision shape of the body. | |
| void | askForBroadPhaseCollisionCheck () const |
| Ask the broad-phase to test again the collision shapes of the body for collision (as if the body has moved). More... | |
| int | resetIsAlreadyInIslandAndCountManifolds () |
| Reset the mIsAlreadyInIsland variable of the body and contact manifolds. More... | |
| Protected Member Functions inherited from reactphysics3d::Body | |
| Body (const Body &body) | |
| Private copy-constructor. | |
| Body & | operator= (const Body &body) |
| Private assignment operator. | |
Protected Attributes | |
| decimal | mInitMass |
| Intial mass of the body. | |
| Vector3 | mCenterOfMassLocal |
| Center of mass of the body in local-space coordinates. More... | |
| Vector3 | mCenterOfMassWorld |
| Center of mass of the body in world-space coordinates. | |
| Vector3 | mLinearVelocity |
| Linear velocity of the body. | |
| Vector3 | mAngularVelocity |
| Angular velocity of the body. | |
| Vector3 | mExternalForce |
| Current external force on the body. | |
| Vector3 | mExternalTorque |
| Current external torque on the body. | |
| Matrix3x3 | mInertiaTensorLocal |
| Local inertia tensor of the body (in local-space) with respect to the center of mass of the body. | |
| Matrix3x3 | mInertiaTensorLocalInverse |
| Inverse of the inertia tensor of the body. | |
| decimal | mMassInverse |
| Inverse of the mass of the body. | |
| bool | mIsGravityEnabled |
| True if the gravity needs to be applied to this rigid body. | |
| Material | mMaterial |
| Material properties of the rigid body. | |
| decimal | mLinearDamping |
| Linear velocity damping factor. | |
| decimal | mAngularDamping |
| Angular velocity damping factor. | |
| JointListElement * | mJointsList |
| First element of the linked list of joints involving this body. | |
| Protected Attributes inherited from reactphysics3d::CollisionBody | |
| BodyType | mType |
| Type of body (static, kinematic or dynamic) | |
| Transform | mTransform |
| Position and orientation of the body. | |
| ProxyShape * | mProxyCollisionShapes |
| First element of the linked list of proxy collision shapes of this body. | |
| uint | mNbCollisionShapes |
| Number of collision shapes. | |
| ContactManifoldListElement * | mContactManifoldsList |
| First element of the linked list of contact manifolds involving this body. | |
| CollisionWorld & | mWorld |
| Reference to the world the body belongs to. | |
| Protected Attributes inherited from reactphysics3d::Body | |
| bodyindex | mID |
| ID of the body. | |
| bool | mIsAlreadyInIsland |
| True if the body has already been added in an island (for sleeping technique) | |
| bool | mIsAllowedToSleep |
| True if the body is allowed to go to sleep for better efficiency. | |
| bool | mIsActive |
| True if the body is active. More... | |
| bool | mIsSleeping |
| True if the body is sleeping (for sleeping technique) | |
| decimal | mSleepTime |
| Elapsed time since the body velocity was bellow the sleep velocity. | |
| void * | mUserData |
| Pointer that can be used to attach user data to the body. | |
Friends | |
| class | DynamicsWorld |
| class | ContactSolver |
| class | BallAndSocketJoint |
| class | SliderJoint |
| class | HingeJoint |
| class | FixedJoint |
This class represents a rigid body of the physics engine.
A rigid body is a non-deformable body that has a constant mass. This class inherits from the CollisionBody class.
| RigidBody::RigidBody | ( | const Transform & | transform, |
| CollisionWorld & | world, | ||
| bodyindex | id | ||
| ) |
Constructor.
| transform | The transformation of the body |
| world | The world where the body has been added |
| id | The ID of the body |
|
virtual |
Add a collision shape to the body.
When you add a collision shape to the body, an internal copy of this collision shape will be created internally.
Therefore, you can delete it right after calling this method or use it later to add it to another body. This method will return a pointer to a new proxy shape. A proxy shape is an object that links a collision shape and a given body. You can use the returned proxy shape to get and set information about the corresponding collision shape for that body.
| collisionShape | The collision shape you want to add to the body |
| transform | The transformation of the collision shape that transforms the local-space of the collision shape into the local-space of the body |
| mass | Mass (in kilograms) of the collision shape you want to add |
Apply an external force to the body at a given point (in world-space coordinates).
If the point is not at the center of mass of the body, it will also generate some torque and therefore, change the angular velocity of the body.
If the body is sleeping, calling this method will wake it up. Note that the force will we added to the sum of the applied forces and that this sum will be reset to zero at the end of each call of the DynamicsWorld::update() method. You can only apply a force to a dynamic body otherwise, this method will do nothing.
| force | The force to apply on the body |
| point | The point where the force is applied (in world-space coordinates) |
|
inline |
Apply an external force to the body at its center of mass.
If the body is sleeping, calling this method will wake it up.
Note that the force will we added to the sum of the applied forces and that this sum will be reset to zero at the end of each call of the DynamicsWorld::update() method. You can only apply a force to a dynamic body otherwise, this method will do nothing.
| force | The external force to apply on the center of mass of the body |
|
inline |
Apply an external torque to the body.
If the body is sleeping, calling this method will wake it up.
Note that the force will we added to the sum of the applied torques and that this sum will be reset to zero at the end of each call of the DynamicsWorld::update() method. You can only apply a force to a dynamic body otherwise, this method will do nothing.
| torque | The external torque to apply on the body |
|
inline |
Set the variable to know if the gravity is applied to this rigid body.
| isEnabled | True if you want the gravity to be applied to this body |
|
inline |
Return the angular velocity damping factor.
|
inline |
Return the angular velocity.
|
inline |
Return the inverse of the inertia tensor in world coordinates.
The inertia tensor I_w in world coordinates is computed with the local inverse inertia tensor I_b^-1 in body coordinates by I_w = R * I_b^-1 * R^T where R is the rotation matrix (and R^T its transpose) of the current orientation quaternion of the body.
|
inline |
Return the local inertia tensor of the body (in body coordinates)
|
inline |
Return the inertia tensor in world coordinates.
The inertia tensor I_w in world coordinates is computed with the local inertia tensor I_b in body coordinates by I_w = R * I_b * R^T where R is the rotation matrix (and R^T its transpose) of the current orientation quaternion of the body.
|
inline |
Return the first element of the linked list of joints involving this body.
|
inline |
Return the first element of the linked list of joints involving this body.
|
inline |
Return the linear velocity damping factor.
|
inline |
Return the linear velocity.
|
inline |
Return the mass of the body.
|
inline |
Return a reference to the material properties of the rigid body.
|
inline |
Return true if the gravity needs to be applied to this rigid body.
| void RigidBody::recomputeMassInformation | ( | ) |
Recompute the center of mass, total mass and inertia tensor of the body using all the collision shapes attached to the body.
|
virtual |
Remove a collision shape from the body.
To remove a collision shape, you need to specify the pointer to the proxy shape that has been returned when you have added the collision shape to the body.
| proxyShape | The pointer of the proxy shape you want to remove |
Reimplemented from reactphysics3d::CollisionBody.
|
inline |
Set the angular damping factor.
| angularDamping | The angular damping factor of this body |
| void RigidBody::setAngularVelocity | ( | const Vector3 & | angularVelocity | ) |
Set the angular velocity.
| angularVelocity | The angular velocity vector of the body |
| void RigidBody::setCenterOfMassLocal | ( | const Vector3 & | centerOfMassLocal | ) |
Set the local center of mass of the body (in local-space coordinates)
| centerOfMassLocal | The center of mass of the body in local-space coordinates |
| void RigidBody::setInertiaTensorLocal | ( | const Matrix3x3 & | inertiaTensorLocal | ) |
Set the local inertia tensor of the body (in body coordinates)
| inertiaTensorLocal | The 3x3 inertia tensor matrix of the body in local-space coordinates |
|
inline |
Set the linear damping factor.
| linearDamping | The linear damping factor of this body |
| void RigidBody::setLinearVelocity | ( | const Vector3 & | linearVelocity | ) |
Set the linear velocity of the body.
| linearVelocity | Linear velocity vector of the body |
| void RigidBody::setMass | ( | decimal | mass | ) |
Set the mass of the rigid body.
| mass | The mass (in kilograms) of the body |
|
inline |
Set a new material for this rigid body.
| material | The material you want to set to the body |
|
virtual |
Set the current position and orientation.
| transform | The transformation of the body that transforms the local-space of the body into world-space |
Reimplemented from reactphysics3d::CollisionBody.
| void RigidBody::setType | ( | BodyType | type | ) |
Set the type of the body (static, kinematic or dynamic)
The type of the body can either STATIC, KINEMATIC or DYNAMIC as described bellow: STATIC : A static body has infinite mass, zero velocity but the position can be changed manually.
A static body does not collide with other static or kinematic bodies. KINEMATIC : A kinematic body has infinite mass, the velocity can be changed manually and its position is computed by the physics engine. A kinematic body does not collide with other static or kinematic bodies. DYNAMIC : A dynamic body has non-zero mass, non-zero velocity determined by forces and its position is determined by the physics engine. A dynamic body can collide with other dynamic, static or kinematic bodies.
| type | The type of the body (STATIC, KINEMATIC, DYNAMIC) |
|
protected |
Center of mass of the body in local-space coordinates.
The center of mass can therefore be different from the body origin


FAX2TIFF
Section: User Commands (1)Updated: November 2, 2005
Index Return to Main Contents
NAME
fax2tiff - create a TIFF Class F fax file from raw fax dataSYNOPSIS
fax2tiff [ options ] [ -o output.tif ] input.rawDESCRIPTION
Fax2tiff creates a TIFF file containing CCITT Group 3 or Group 4 encoded data from one or more files containing ``raw'' Group 3 or Group 4 encoded data (typically obtained directly from a fax modem). By default, each row of data in the resultant TIFF file is 1-dimensionally encoded and padded or truncated to 1728 pixels, as needed. The resultant image is a set of low resolution (98 lines/inch) or medium resolution (196 lines/inch) pages, each of which is a single strip of data. The generated file conforms to the TIFF Class F (FAX) specification for storing facsimile data. This means, in particular, that each page of the data does not include the trailing return to control (RTC) code; as required for transmission by the CCITT Group 3 specifications. The old, ``classic'', format is created if the -c option is used. (The Class F format can also be requested with the -f option.)The default name of the output image is fax.tif; this can be changed with the -o option. Each input file is assumed to be a separate page of facsimile data from the same document. The order in which input files are specified on the command line is the order in which the resultant pages appear in the output file.
OPTIONS
Options that affect the interpretation of input data are:- -3
- Assume input data is CCITT Group 3 encoded (default).
- -4
- Assume input data is CCITT Group 4 encoded.
- -U
- Assume input data is uncompressed (Group 3 or Group 4).
- -1
- Assume input data is encoded with the 1-dimensional version of the CCITT Group 3 Huffman encoding algorithm (default).
- -2
- Assume input data is 2-dimensional version of the CCITT Group 3 Huffman encoding algorithm.
- -P
- Assume input data is not EOL-aligned (default). This option has effect with Group 3 encoded input only.
- -A
- Assume input data is EOL-aligned. This option has effect with Group 3 encoded input only.
- -M
- Treat input data as having bits filled from most significant bit (MSB) to most least bit (LSB).
- -L
- Treat input data as having bits filled from least significant bit (LSB) to most significant bit (MSB) (default).
- -B
- Assume input data was encoded with black as 0 and white as 1.
- -W
- Assume input data was encoded with black as 1 and white as 0 (default).
- -R
- Specify the vertical resolution, in lines/inch, of the input images. By default input are assumed to have a vertical resolution of 196 lines/inch. If images are low resolution facsimile, a value of 98 lines/inch should be specified.
- -X
- Specify the width, in pixels, of the input images. By default input are assumed to have a width of 1728 pixels.
Options that affect the output file format are:
- -o
- Specify the name of the output file.
- -7
- Force output to be compressed with the CCITT Group 3 Huffman encoding algorithm (default).
- -8
- Force output to be compressed with the CCITT Group 4 Huffman encoding.
- -u
- Force output to be uncompressed (Group 3 or Group 4).
- -5
- Force output to be encoded with the 1-dimensional version of the CCITT Group 3 Huffman encoding algorithm.
- -6
- Force output to be encoded with the 2-dimensional version of the CCITT Group 3 Huffman encoding algorithm (default).
- -a
- Force the last bit of each End Of Line (EOL) code to land on a byte boundary (default). This ``zero padding'' will be reflected in the contents of the Group3Options tag of the resultant TIFF file. This option has effect with Group 3 encoded output only.
- -p
- Do not EOL-align output. This option has effect with Group 3 encoded output only.
- -c
- Generate "classic" Group 3 TIFF format.
- -f
- Generate TIFF Class F (TIFF/F) format (default).
- -m
- Force output data to have bits filled from most significant bit (MSB) to most least bit (LSB).
- -l
- Force output data to have bits filled from least significant bit (LSB) to most significant bit (MSB) (default).
- -r
- Specify the number of rows (scanlines) in each strip of data written to the output file. By default (or when value 0 is specified), tiffcp attempts to set the rows/strip that no more than 8 kilobytes of data appear in a strip (with except of G3/G4 compression schemes). If you specify special value -1 it will results in infinite number of the rows per strip. The entire image will be the one strip in that case. This is default in case of G3/G4 output compression schemes.
- -s
- Stretch the input image vertically by writing each input row of data twice to the output file.
- -v
- Force fax2tiff to print the number of rows of data it retrieved from the input file.
- -z
- Force output to be compressed with the LZW encoding.
DIAGNOSTICS
The following warnings and errors come from the decoding routines in the library.Warning, %s: Premature EOL at scanline %d (x %d).\n. The input data had a row that was shorter than the expected width. The row is padded with white.
%s: Premature EOF at scanline %d (x %d).\n. The decoder ran out of data in the middle of a scanline. The resultant row is padded with white.
%s: Bad code word at row %d, x %d\n. An invalid Group 3 code was encountered while decoding the input file. The row number and horizontal position is given. The remainder of the input row is discarded, while the corresponding output row is padded with white.
%s: Bad 2D code word at scanline %d.\n. An invalid Group 4 or 2D Group 3 code was encountered while decoding the input file. The row number and horizontal position is given. The remainder of the input row is discarded, while the corresponding output row is padded with white.
BUGS
Input data are assumed to have a a ``top left'' orientation; it should be possible to override this assumption from the command line.SEE ALSO
CCITT Recommendation T.4 (Standardization of Group 3 Facsimile Apparatus for Document Transmission).The Spirit of TIFF Class F, an appendix to the TIFF 5.0 specification prepared by Cygnet Technologies.
tiffinfo(1), tiffdither(1), tiffgt(1), libtiff(3)
Libtiff library home page: http://www.remotesensing.org/libtiff/
Index
This document was created by man2html, using the manual pages.
Time: 05:29:03 GMT, December 24, 2015