This Day in History: Nov. 15
by Fox NewsOn this day, Nov. 15 …
1984: Stephanie Fae Beauclair, the infant publicly known as “Baby Fae” who had received a baboon’s heart to replace her own congenitally deformed one, dies at Loma Linda University Medical Center in California three weeks after the transplant.
Also on this day:
- 1777: The Second Continental Congress approves the Articles of Confederation.
- 1806: Explorer Zebulon Pike sees the mountaintop now known as Pikes Peak in present-day Colorado.
- 1864: During the Civil War, Union forces led by Maj. Gen. William T. Sherman begin their “March to the Sea” from Atlanta; the campaign would end with the capture of Savannah on Dec. 21.
- 1937: At the U.S. Capitol, members of the House and Senate meet in air-conditioned chambers for the first time.
- 1959: Four members of the Clutter family of Holcomb, Kan., are found murdered in their home. (Ex-convicts Richard Hickock and Perry Smith would be convicted of the killings and hanged in a case made famous by the Truman Capote book “In Cold Blood.”)
- 1966: The flight of Gemini 12, the final mission of the Gemini program, ends successfully as astronauts James A. Lovell and Edwin “Buzz” Aldrin Jr. splash down safely in the Atlantic after spending four days in orbit.
- 1982: Funeral services are held in Moscow’s Red Square for Soviet President Leonid I. Brezhnev.
- 1998: Kwame Ture, the civil rights activist formerly known as Stokely Carmichael, dies in Guinea at age 57.
- 2008: World leaders battling an economic crisis agree in Washington to flag risky investing and regulatory weak spots in hopes of avoiding future financial meltdowns.
- 2008: A wildfire destroys nearly 500 mobile homes in Los Angeles.
- 2013: Toronto Mayor Rob Ford vows to take the City Council to court after it votes overwhelmingly to strip him of some of his powers over his admitted drug use, public drinking and increasingly erratic behavior.
- 2017: Zimbabwe’s military takes control of the country’s capital and the state broadcaster and holds 93-year-old President Robert Mugabe and his wife under house arrest; the military emphasizes that it is not staging a takeover but is instead starting a process to restore the country’s democracy. (The military intervention would lead to impeachment proceedings against Mugabe, who died Sept. 6 of this year at age 95.)


Select topic from the dropdown, to switch the content of this DIV.
Appx. Taxable Amount: {{taxable | currency:"₹":0}}
Appx. Tax Amount: {{getTaxAmount(taxable) | currency:"₹":0}}
You have saved {{(initialTax - getTaxAmount(taxable)) | currency:"₹":0}} amount


Control
Schedule
Config
About
Please select a command
Move
Goto
Stop
Please select a motor number
1
2
3
4
Degrees
Degrees/Sec
Duration
Clear Queue
Run Queue
Motor
Command
Code Amount
At Speed


This is an example of the Authorization Code flow
Log in with Spotify
Hide
Obtain new token using the refresh token


Advisor: Dr. Jihie Kim
From September 2010 to May 2012, under the REU program funded by NSF, I researched discourse and sentiment patterns in online course discussion boards, using discussion threads annotated with Speech and Emotion Acts. I wrote two refereed publications (citations below) for the ASEE Annual Conferences.
In my first paper, I investigated the effects of different question-answer patterns (and who stated them) in the first two posts of a thread and how these Q&A pairs correlated with factors like thread length and the number of unique students participating in the thread.
For this task, I split the thread data set into "undeveloped" (two posts) and "developed" (more than two posts) to compare whether the Q&A patterns of the first two posts led to any further development of the thread. From my analysis, I found that "how to" questions and direct answers, in accordance with intuition, tended to be associated more often with undeveloped threads, limiting possible further discussion. On the other hand, when questions appeared in both posts, regardless of whether the same student posted both, the threads tended to be more developed. Overall, in this paper and in my research, I found that certain question and answer types were a reasonably good indicator of whether the thread would continue and whether more users would be involved.
Finally, I studied the correlation between the role of the first responder (student or instructor) and the thread length. In my results, matching intuition, when someone in an instructor role (e.g. professors or course assistants) answered directly with instructions, the threads tended to be undeveloped. When students responded in the second post, with either responses or questions, more engagement occurred, as seen in longer thread lengths and more users in the discussion.
In my second paper, I looked at the correlation between the appearance of phrases denoting frustration and other variables. In particular, I observed the location of frustration in threads and whether this correlated with discussion length, poster diversity/count, and average first response times. I also then looked at whether frustration appearing in initial posts close to a project deadline affected these variables.
To my surprise, the appearance of frustration in the initial post, and throughout the discussion, did not correlate with an increase in urgent responses or increased student involvement. This (lack of) trend was observed in general and when viewing threads close to a deadline. Also, no significant correlation was found between the length of posts (measured in number of tokens) that contained frustration and response times.
In all of my research here, I labeled posts with Speech Acts and Emotion Acts, tagging frustration and question/answer types. To direct this labeling effort, I helped develop manuals that set out the criteria for and examples of each annotation type. To reduce bias from my own labeling decisions, I led a group of two other students to create independent annotation sets on the same posts. I wrote Python comparison tools that visualized our disagreements, leveraging Cohen's Kappa measure to determine our level of agreement. After discussing and reconciling our annotations, I added the agreed-upon annotations to the data set, ultimately creating a data set with four semesters of tagged posts.
Outside of the statistical investigations in my publications, I become certified to handle sensitive data and looked into whether the appearance of frustration and other factors would impact project grades. Employing supervised classification algorithms like C4.5 decision trees and Naïve Bayes via WEKA API's, I started exploring whether certain dialogue acts were predictive of passing/failing project grades, finding that a number of confident answer posts that a student posted near the deadline was quite a strong indicator of whether (s)he received a passing grade. While this research was more experimental than publication-ready, I gained my first valuable experience in applying classification algorithms.
Michael Hergenrader, Jihie Kim, and Erin Shaw. "Stuck in the Middle: The Impact and Prevalence of Frustration in Online Question-Answer Discussion Threads". 2012 ASEE Annual Conference, San Antonio, Texas, 2012, June. ASEE Conferences, 2012. https://peer.asee.org/21941. Internet.
Michael Hergenrader, Joanna Drummond, and Jihie Kim. "First Impressions: The First Two Posts and their Influence on the Development of Online Question-Answer Discussion Threads". 2011 Annual Conference & Exposition, Vancouver, BC, 2011, June. ASEE Conferences, 2011. https://peer.asee.org/17997. Internet.
Advisor: Dr. Mario Saltarelli
From September 2011 to May 2012, I conducted research in the Department of Spanish and Portuguese (enrolled in SPAN-490x), presenting an Honors Thesis in the second semester, the first thesis having a computational linguistics focus in the department. For my investigation, I looked at the dialectology of Spanish and Portuguese via a corpus composed of canonical works, stories/essays written by anyone, and tweets from a variety of countries. Overall, I wanted to understand whether certain words and phrases in written works of different countries were particularly indicative of their associated dialect.
This was a great experience for me in building my own training corpus from scratch. I scraped a multitude of sources (many with errors), set everything to a common encoding, and decomposed all documents into sets of unigrams, bigrams, and trigrams, selecting the top 2,500 from each set that were not purely consisting of structural words. I then created training examples, one per document, with features being the binary appearance of each N-gram instance in the document and the label (22 in total) being the country from which the document originated. I chose this setup and below classifier from two considerations: (a) the very large size of the training, development, and test sets (I wanted to train in an efficient manner) and (b) my focus on the individual correlations between these N-grams and their corresponding countries.
In the end, leveraging my budding machine learning experience from ISI and IBM, I implemented a multivariate (Bernoulli) Naïve Bayes classifier in C++ and applied it to these sets to determine which N-grams were most/least characteristic of different countries and their associated dialects, using a one-vs-rest strategy. I selected as representative phrases those with the highest positive one-vs-rest label odds in each country. Under the unigram model, there were certainly some intuitive results, like gauchos appearing more often in Argentine texts and exports like cacao in Ecuadorian ones. An interesting revelation was the spelling changes in the Peruvian dialect, in which fortunato and callao (with the d in the more standard participle callado dropped) received highly representative scores.
There were certainly some challenges in the research for this paper. The bigram and trigram models did not produce results that were as significant as I expected. In addition, the relative lack of texts from some African countries, like Equatorial Guinea (Spanish) and Namibia (Portuguese), made reasoning about their representative phrases more difficult and less impactful for them. Finally, I believe I could have further improved the preprocessing to avoid capturing some collocations that still had a single structure word in them. However, despite these challenges, I learned a great deal about multi-class classification, proper corpus building, scraping, preprocessing, and sentence tagging. And I even found an interesting highlight: the high odds of English phrases (“happy birthday,” “i love you”) in Mexican documents, hinting at the increased sharing between American English and Mexican Spanish.
Beyond my paper, I also, from my constructed Naïve Bayes model, ran prediction over the test set of texts to determine whether my classifier could correctly predict the country of origin. The simplicity of my classifier, relying on simple N-grams with no backoff, revealed some underfitting, underscoring the need for possible extensions like observing syntactical differences (word order, sentence length, etc.) as well, in addition to trying more sophisticated classifiers. Another broader extension I'd like to pursue would be to classify dialects from spoken language materials.
Michael Hergenrader and Mario Saltarelli. “La dialectología estadística de las lenguas ibéricas estudiada mediante los n-gramas”. (A Statistical Study of Iberian Language Dialectology via N-grams.) Honors Thesis. University of Southern California, 2012. http://mikehergenrader.com/uploads/tesis.pdf. Internet.


Library: Geometries
Overview
Geometries
- desc: Geometries
Constructors
This is the constructor for the default value geometry.
A value geometry is what regulates mapping of the plot values to the screen y coordinate.
If two plots share the same value geometry, they will be drawn using the same scale.
If "min" and "max" parameters are not set, the geometry will stretch itself automatically
so that the entire plot will be drawn without overflowing. The stretching happens also
when a geometry is shared between multiple plots, the one with the biggest range will
win over the others.
parameters
| params |
methods
This is the constructor for a Logarithmic value geometry, which
is useful when plots have values in different magnitudes but
exhibit similar trends and such trends want to be shown on the same
plot (here a cartesian geometry would make the small magnitudes
disappear).
NOTE: this class extends Timeplot.DefaultValueGeometry and inherits
all of the methods of that class. So refer to that class.
parameters
| params |
methods
This is the constructor for the default time geometry.
parameters
| params |
methods
This is the constructor for the magnifying time geometry.
Users can interact with this geometry and 'magnify' certain areas of the
plot to see the plot enlarged and resolve details that would otherwise
get lost or cluttered with a linear time geometry.
parameters
| params |
methods
Functions
Since geometries can be reused across timeplots, we need to call this function
before we can paint using this geometry.
parameters
| timeplot |
Called by all the plot layers this geometry is associated with
to update the value range. Unless min/max values are specified
in the parameters, the biggest value range will be used.
parameters
| range |
Called after changing ranges or canvas size to reset the grid values
Map the given value to a y screen coordinate.
parameters
| value |
Map the given y screen coordinate to a value
parameters
| y |
Each geometry is also a painter and paints the value grid and grid labels.
Timeplot.DefaultValueGeometry._clearLabels()
Removes all the labels that were added by this geometry
Timeplot.LogarithmicValueGeometry.actLinear()
Turn the logarithmic scaling off.
Timeplot.LogarithmicValueGeometry.actLogarithmic()
Turn the logarithmic scaling on.
Toggle logarithmic scaling seeting it to on if off and viceversa.
Since geometries can be reused across timeplots, we need to call this function
before we can paint using this geometry.
parameters
| timeplot |
Called by all the plot layers this geometry is associated with
to update the time range. Unless min/max values are specified
in the parameters, the biggest range will be used.
parameters
| range |
Called after changing ranges or canvas size to reset the grid values
Map the given date to a x screen coordinate.
parameters
| time |
Map the given x screen coordinate to a date.
parameters
| x |
Timeplot.DefaultTimeGeometry.getPeriod()
Get a period (in milliseconds) this time geometry spans.
Timeplot.DefaultTimeGeometry.getLabeler()
Return the labeler that has been associated with this time geometry
Timeplot.DefaultTimeGeometry.getUnit()
Return the time unit associated with this time geometry
Each geometry is also a painter and paints the value grid and grid labels.
Initialize this geometry associating it with the given timeplot and
register the geometry event handlers to the timeplot so that it can
interact with the user.
parameters
| timeplot |
Set the Magnifying parameters. c is the location in pixels where the Magnifying
center should be located in the timeplot, a is the aperture in pixel of
the Magnifying and b is the time period in milliseconds that the Magnifying
should span.
parameters
| c | ||
| a | ||
| b |
Objects


Money Play. How should Red Play 63?
pips Red=104 White=140
(CorrectAnswer= 0/0, ErrorScore= 0)
It is easy to overplay positions like this with 11/15, 8/5, hoping to pick up the second checker.
Even the duplication play 17/14, 11/5 is an overplay. First win the gammon and then win the game. 17/8 leaves no jokers, creates a broken five-point prime and prepares to attack White if he enters on the 2-pt.
Red’s plan should be to close White out and THEN escape the rear checker, perhaps picking up more blots in the process.
Even the duplication play 17/14, 11/5 is an overplay. First win the gammon and then win the game. 17/8 leaves no jokers, creates a broken five-point prime and prepares to attack White if he enters on the 2-pt.
Red’s plan should be to close White out and THEN escape the rear checker, perhaps picking up more blots in the process.
1. Cubeful 2-ply 17/8 Eq.: +0.714 0.665 0.538 0.007 - 0.335 0.045 0.002 2. Cubeful 2-ply 17/14 11/5 Eq.: +0.684 (-0.030) 0.656 0.539 0.007 - 0.344 0.052 0.003 3. Cubeful 2-ply 17/11 8/5 Eq.: +0.656 (-0.058) 0.651 0.513 0.007 - 0.349 0.044 0.002 4. Cubeful 2-ply 11/5 8/5 Eq.: +0.636 (-0.077) 0.639 0.531 0.012 - 0.361 0.058 0.002 5. Cubeful 2-ply 11/5 6/3 Eq.: +0.592 (-0.121) 0.626 0.526 0.011 - 0.374 0.071 0.004


EXPAND(1) User Commands EXPAND(1) NAME expand - convert tabs to spaces SYNOPSIS expand [OPTION]... [FILE]... DESCRIPTION Convert tabs in each FILE to spaces, writing to standard output. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -i, --initial do not convert tabs after non blanks -t, --tabs=NUMBER have tabs NUMBER characters apart, not 8 -t, --tabs=LIST use comma separated list of explicit tab positions --help display this help and exit --version output version information and exit AUTHOR Written by David MacKenzie. REPORTING BUGS Report expand 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 expand 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 unexpand(1) The full documentation for expand is maintained as a Texinfo manual. If the info and expand programs are properly installed at your site, the command info coreutils 'expand invocation' should give you access to the complete manual. GNU coreutils 8.12.197-032bb September 2011 EXPAND(1)


DR. SEUSS' HOW THE GRINCH STOLE CHRISTMAS
Earlier this year, Jim Carrey was the only reason to see "Me, Myself & Irene," a Farrelly Brothers mistep. He's done it again.
Carrey simply *is* the Grinch, helped, of course, by Rick Baker's phenomenal makeup design. Whether he's gleefully tampering with Who mail ('jury duty, pink slip, blackmail, eviction notice!'), going over his schedule ('4:00, wallow in self pity, 4:30, stare into the abyss') or lecturing Max (Kelly, the film's other asset) on the art of being a reindeer, Carrey had me sucked in. However, when the focus shifts from Carrey, the movie is abysmal.
Firstly, there's the story tampering. We're given background as to how the Grinch got this way (he was called names at school). The Whos' Christmas obssession has become crass commercialism, depressing Cindy Lou Who (newcomer Taylor Momsen) to the point that she sings the maudlin 'Where Are You Christmas?' mid-film. The mayor (Jeffrey Tambor) is in a love triange with Martha May Whovier (Christine Baranski) and the Grinch! Screenwriters Jeffrey Price and Peter S. Seaman ("Doc Hollywood") even have the poor taste to include a couple of sex 'jokes' that seem seedy and woefully out of place.
Secondly, there's the truly awful Whos (makeup again by Rick Baker). They look like rat-dogs. Cindy Lou is too old and too normal looking in contrast to the others. Even the Grinch, when shown in flashbacks as a baby and an eight year old, looks awful, like a rejected monster from "Gremlins."
Thirdly, there's the art direction which is plastic and non-organic. Whoville looks like Munchkinland crossed with the live action "Flinstones." I was always aware I was watching a soundstage covered in fake snow. At one point, the Grinch's quick entry/exit to Whoville is shown in an animated sequence and the whole film is picked up for that one brief moment. Otherwise this is just a drab, grimy, bleak looking film.
I can't recommend "Dr. Seuss' How the Grinch Stole Christmas" as a film, although I can recommend Carrey's performance and the casting of Max the dog. Anthony Hopkins was chosen to narrate the film, perhaps to recall the English accent of Boris Karloff from the vastly superior original animation, a move the filmmakers should have avoided.
C
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


HDFS Architecture Guide
Introduction
The Hadoop Distributed File System (HDFS) is a distributed file system designed to run on commodity hardware. It has many similarities with existing distributed file systems. However, the differences from other distributed file systems are significant. HDFS is highly fault-tolerant and is designed to be deployed on low-cost hardware. HDFS provides high throughput access to application data and is suitable for applications that have large data sets. HDFS relaxes a few POSIX requirements to enable streaming access to file system data. HDFS was originally built as infrastructure for the Apache Nutch web search engine project. HDFS is now an Apache Hadoop subproject. The project URL is https://hadoop.apache.org/hdfs/.
Assumptions and Goals
Hardware Failure
Hardware failure is the norm rather than the exception. An HDFS instance may consist of hundreds or thousands of server machines, each storing part of the file system’s data. The fact that there are a huge number of components and that each component has a non-trivial probability of failure means that some component of HDFS is always non-functional. Therefore, detection of faults and quick, automatic recovery from them is a core architectural goal of HDFS.
Streaming Data Access
Applications that run on HDFS need streaming access to their data sets. They are not general purpose applications that typically run on general purpose file systems. HDFS is designed more for batch processing rather than interactive use by users. The emphasis is on high throughput of data access rather than low latency of data access. POSIX imposes many hard requirements that are not needed for applications that are targeted for HDFS. POSIX semantics in a few key areas has been traded to increase data throughput rates.
Large Data Sets
Applications that run on HDFS have large data sets. A typical file in HDFS is gigabytes to terabytes in size. Thus, HDFS is tuned to support large files. It should provide high aggregate data bandwidth and scale to hundreds of nodes in a single cluster. It should support tens of millions of files in a single instance.
Simple Coherency Model
HDFS applications need a write-once-read-many access model for files. A file once created, written, and closed need not be changed. This assumption simplifies data coherency issues and enables high throughput data access. A MapReduce application or a web crawler application fits perfectly with this model. There is a plan to support appending-writes to files in the future.
“Moving Computation is Cheaper than Moving Data”
A computation requested by an application is much more efficient if it is executed near the data it operates on. This is especially true when the size of the data set is huge. This minimizes network congestion and increases the overall throughput of the system. The assumption is that it is often better to migrate the computation closer to where the data is located rather than moving the data to where the application is running. HDFS provides interfaces for applications to move themselves closer to where the data is located.
Portability Across Heterogeneous Hardware and Software Platforms
HDFS has been designed to be easily portable from one platform to another. This facilitates widespread adoption of HDFS as a platform of choice for a large set of applications.
NameNode and DataNodes
HDFS has a master/slave architecture. An HDFS cluster consists of a single NameNode, a master server that manages the file system namespace and regulates access to files by clients. In addition, there are a number of DataNodes, usually one per node in the cluster, which manage storage attached to the nodes that they run on. HDFS exposes a file system namespace and allows user data to be stored in files. Internally, a file is split into one or more blocks and these blocks are stored in a set of DataNodes. The NameNode executes file system namespace operations like opening, closing, and renaming files and directories. It also determines the mapping of blocks to DataNodes. The DataNodes are responsible for serving read and write requests from the file system’s clients. The DataNodes also perform block creation, deletion, and replication upon instruction from the NameNode.
The NameNode and DataNode are pieces of software designed to run on commodity machines. These machines typically run a GNU/Linux operating system (OS). HDFS is built using the Java language; any machine that supports Java can run the NameNode or the DataNode software. Usage of the highly portable Java language means that HDFS can be deployed on a wide range of machines. A typical deployment has a dedicated machine that runs only the NameNode software. Each of the other machines in the cluster runs one instance of the DataNode software. The architecture does not preclude running multiple DataNodes on the same machine but in a real deployment that is rarely the case.
The existence of a single NameNode in a cluster greatly simplifies the architecture of the system. The NameNode is the arbitrator and repository for all HDFS metadata. The system is designed in such a way that user data never flows through the NameNode.
The File System Namespace
HDFS supports a traditional hierarchical file organization. A user or an application can create directories and store files inside these directories. The file system namespace hierarchy is similar to most other existing file systems; one can create and remove files, move a file from one directory to another, or rename a file. HDFS does not yet implement user quotas. HDFS does not support hard links or soft links. However, the HDFS architecture does not preclude implementing these features.
The NameNode maintains the file system namespace. Any change to the file system namespace or its properties is recorded by the NameNode. An application can specify the number of replicas of a file that should be maintained by HDFS. The number of copies of a file is called the replication factor of that file. This information is stored by the NameNode.
Data Replication
HDFS is designed to reliably store very large files across machines in a large cluster. It stores each file as a sequence of blocks; all blocks in a file except the last block are the same size. The blocks of a file are replicated for fault tolerance. The block size and replication factor are configurable per file. An application can specify the number of replicas of a file. The replication factor can be specified at file creation time and can be changed later. Files in HDFS are write-once and have strictly one writer at any time.
The NameNode makes all decisions regarding replication of blocks. It periodically receives a Heartbeat and a Blockreport from each of the DataNodes in the cluster. Receipt of a Heartbeat implies that the DataNode is functioning properly. A Blockreport contains a list of all blocks on a DataNode.
Replica Placement: The First Baby Steps
The placement of replicas is critical to HDFS reliability and performance. Optimizing replica placement distinguishes HDFS from most other distributed file systems. This is a feature that needs lots of tuning and experience. The purpose of a rack-aware replica placement policy is to improve data reliability, availability, and network bandwidth utilization. The current implementation for the replica placement policy is a first effort in this direction. The short-term goals of implementing this policy are to validate it on production systems, learn more about its behavior, and build a foundation to test and research more sophisticated policies.
Large HDFS instances run on a cluster of computers that commonly spread across many racks. Communication between two nodes in different racks has to go through switches. In most cases, network bandwidth between machines in the same rack is greater than network bandwidth between machines in different racks.
The NameNode determines the rack id each DataNode belongs to via the process outlined in Hadoop Rack Awareness. A simple but non-optimal policy is to place replicas on unique racks. This prevents losing data when an entire rack fails and allows use of bandwidth from multiple racks when reading data. This policy evenly distributes replicas in the cluster which makes it easy to balance load on component failure. However, this policy increases the cost of writes because a write needs to transfer blocks to multiple racks.
For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on one node in the local rack, another on a node in a different (remote) rack, and the last on a different node in the same remote rack. This policy cuts the inter-rack write traffic which generally improves write performance. The chance of rack failure is far less than that of node failure; this policy does not impact data reliability and availability guarantees. However, it does reduce the aggregate network bandwidth used when reading data since a block is placed in only two unique racks rather than three. With this policy, the replicas of a file do not evenly distribute across the racks. One third of replicas are on one node, two thirds of replicas are on one rack, and the other third are evenly distributed across the remaining racks. This policy improves write performance without compromising data reliability or read performance.
The current, default replica placement policy described here is a work in progress.
Replica Selection
To minimize global bandwidth consumption and read latency, HDFS tries to satisfy a read request from a replica that is closest to the reader. If there exists a replica on the same rack as the reader node, then that replica is preferred to satisfy the read request. If angg/ HDFS cluster spans multiple data centers, then a replica that is resident in the local data center is preferred over any remote replica.
Safemode
On startup, the NameNode enters a special state called Safemode. Replication of data blocks does not occur when the NameNode is in the Safemode state. The NameNode receives Heartbeat and Blockreport messages from the DataNodes. A Blockreport contains the list of data blocks that a DataNode is hosting. Each block has a specified minimum number of replicas. A block is considered safely replicated when the minimum number of replicas of that data block has checked in with the NameNode. After a configurable percentage of safely replicated data blocks checks in with the NameNode (plus an additional 30 seconds), the NameNode exits the Safemode state. It then determines the list of data blocks (if any) that still have fewer than the specified number of replicas. The NameNode then replicates these blocks to other DataNodes.
The Persistence of File System Metadata
The HDFS namespace is stored by the NameNode. The NameNode uses a transaction log called the EditLog to persistently record every change that occurs to file system metadata. For example, creating a new file in HDFS causes the NameNode to insert a record into the EditLog indicating this. Similarly, changing the replication factor of a file causes a new record to be inserted into the EditLog. The NameNode uses a file in its local host OS file system to store the EditLog. The entire file system namespace, including the mapping of blocks to files and file system properties, is stored in a file called the FsImage. The FsImage is stored as a file in the NameNode’s local file system too.
The NameNode keeps an image of the entire file system namespace and file Blockmap in memory. This key metadata item is designed to be compact, such that a NameNode with 4 GB of RAM is plenty to support a huge number of files and directories. When the NameNode starts up, it reads the FsImage and EditLog from disk, applies all the transactions from the EditLog to the in-memory representation of the FsImage, and flushes out this new version into a new FsImage on disk. It can then truncate the old EditLog because its transactions have been applied to the persistent FsImage. This process is called a checkpoint. In the current implementation, a checkpoint only occurs when the NameNode starts up. Work is in progress to support periodic checkpointing in the near future.
The DataNode stores HDFS data in files in its local file system. The DataNode has no knowledge about HDFS files. It stores each block of HDFS data in a separate file in its local file system. The DataNode does not create all files in the same directory. Instead, it uses a heuristic to determine the optimal number of files per directory and creates subdirectories appropriately. It is not optimal to create all local files in the same directory because the local file system might not be able to efficiently support a huge number of files in a single directory. When a DataNode starts up, it scans through its local file system, generates a list of all HDFS data blocks that correspond to each of these local files and sends this report to the NameNode: this is the Blockreport.
The Communication Protocols
All HDFS communication protocols are layered on top of the TCP/IP protocol. A client establishes a connection to a configurable TCP port on the NameNode machine. It talks the ClientProtocol with the NameNode. The DataNodes talk to the NameNode using the DataNode Protocol. A Remote Procedure Call (RPC) abstraction wraps both the Client Protocol and the DataNode Protocol. By design, the NameNode never initiates any RPCs. Instead, it only responds to RPC requests issued by DataNodes or clients.
Robustness
The primary objective of HDFS is to store data reliably even in the presence of failures. The three common types of failures are NameNode failures, DataNode failures and network partitions.
Data Disk Failure, Heartbeats and Re-Replication
Each DataNode sends a Heartbeat message to the NameNode periodically. A network partition can cause a subset of DataNodes to lose connectivity with the NameNode. The NameNode detects this condition by the absence of a Heartbeat message. The NameNode marks DataNodes without recent Heartbeats as dead and does not forward any new IO requests to them. Any data that was registered to a dead DataNode is not available to HDFS any more. DataNode death may cause the replication factor of some blocks to fall below their specified value. The NameNode constantly tracks which blocks need to be replicated and initiates replication whenever necessary. The necessity for re-replication may arise due to many reasons: a DataNode may become unavailable, a replica may become corrupted, a hard disk on a DataNode may fail, or the replication factor of a file may be increased.
Cluster Rebalancing
The HDFS architecture is compatible with data rebalancing schemes. A scheme might automatically move data from one DataNode to another if the free space on a DataNode falls below a certain threshold. In the event of a sudden high demand for a particular file, a scheme might dynamically create additional replicas and rebalance other data in the cluster. These types of data rebalancing schemes are not yet implemented.
Data Integrity
It is possible that a block of data fetched from a DataNode arrives corrupted. This corruption can occur because of faults in a storage device, network faults, or buggy software. The HDFS client software implements checksum checking on the contents of HDFS files. When a client creates an HDFS file, it computes a checksum of each block of the file and stores these checksums in a separate hidden file in the same HDFS namespace. When a client retrieves file contents it verifies that the data it received from each DataNode matches the checksum stored in the associated checksum file. If not, then the client can opt to retrieve that block from another DataNode that has a replica of that block.
Metadata Disk Failure
The FsImage and the EditLog are central data structures of HDFS. A corruption of these files can cause the HDFS instance to be non-functional. For this reason, the NameNode can be configured to support maintaining multiple copies of the FsImage and EditLog. Any update to either the FsImage or EditLog causes each of the FsImages and EditLogs to get updated synchronously. This synchronous updating of multiple copies of the FsImage and EditLog may degrade the rate of namespace transactions per second that a NameNode can support. However, this degradation is acceptable because even though HDFS applications are very data intensive in nature, they are not metadata intensive. When a NameNode restarts, it selects the latest consistent FsImage and EditLog to use.
The NameNode machine is a single point of failure for an HDFS cluster. If the NameNode machine fails, manual intervention is necessary. Currently, automatic restart and failover of the NameNode software to another machine is not supported.
Snapshots
Snapshots support storing a copy of data at a particular instant of time. One usage of the snapshot feature may be to roll back a corrupted HDFS instance to a previously known good point in time. HDFS does not currently support snapshots but will in a future release.
Data Organization
Data Blocks
HDFS is designed to support very large files. Applications that are compatible with HDFS are those that deal with large data sets. These applications write their data only once but they read it one or more times and require these reads to be satisfied at streaming speeds. HDFS supports write-once-read-many semantics on files. A typical block size used by HDFS is 64 MB. Thus, an HDFS file is chopped up into 64 MB chunks, and if possible, each chunk will reside on a different DataNode.
Staging
A client request to create a file does not reach the NameNode immediately. In fact, initially the HDFS client caches the file data into a temporary local file. Application writes are transparently redirected to this temporary local file. When the local file accumulates data worth over one HDFS block size, the client contacts the NameNode. The NameNode inserts the file name into the file system hierarchy and allocates a data block for it. The NameNode responds to the client request with the identity of the DataNode and the destination data block. Then the client flushes the block of data from the local temporary file to the specified DataNode. When a file is closed, the remaining un-flushed data in the temporary local file is transferred to the DataNode. The client then tells the NameNode that the file is closed. At this point, the NameNode commits the file creation operation into a persistent store. If the NameNode dies before the file is closed, the file is lost.
The above approach has been adopted after careful consideration of target applications that run on HDFS. These applications need streaming writes to files. If a client writes to a remote file directly without any client side buffering, the network speed and the congestion in the network impacts throughput considerably. This approach is not without precedent. Earlier distributed file systems, e.g. AFS, have used client side caching to improve performance. A POSIX requirement has been relaxed to achieve higher performance of data uploads.
Replication Pipelining
When a client is writing data to an HDFS file, its data is first written to a local file as explained in the previous section. Suppose the HDFS file has a replication factor of three. When the local file accumulates a full block of user data, the client retrieves a list of DataNodes from the NameNode. This list contains the DataNodes that will host a replica of that block. The client then flushes the data block to the first DataNode. The first DataNode starts receiving the data in small portions (4 KB), writes each portion to its local repository and transfers that portion to the second DataNode in the list. The second DataNode, in turn starts receiving each portion of the data block, writes that portion to its repository and then flushes that portion to the third DataNode. Finally, the third DataNode writes the data to its local repository. Thus, a DataNode can be receiving data from the previous one in the pipeline and at the same time forwarding data to the next one in the pipeline. Thus, the data is pipelined from one DataNode to the next.
Accessibility
HDFS can be accessed from applications in many different ways. Natively, HDFS provides a Java API for applications to use. A C language wrapper for this Java API is also available. In addition, an HTTP browser can also be used to browse the files of an HDFS instance. Work is in progress to expose HDFS through the WebDAV protocol.
FS Shell
HDFS allows user data to be organized in the form of files and directories. It provides a commandline interface called FS shell that lets a user interact with the data in HDFS. The syntax of this command set is similar to other shells (e.g. bash, csh) that users are already familiar with. Here are some sample action/command pairs:
| Action | Command |
|---|---|
| Create a directory named /foodir | bin/hadoop dfs -mkdir /foodir |
| Remove a directory named /foodir | bin/hadoop dfs -rmr /foodir |
| View the contents of a file named /foodir/myfile.txt | bin/hadoop dfs -cat /foodir/myfile.txt |
FS shell is targeted for applications that need a scripting language to interact with the stored data.
DFSAdmin
The DFSAdmin command set is used for administering an HDFS cluster. These are commands that are used only by an HDFS administrator. Here are some sample action/command pairs:
| Action | Command |
|---|---|
| Put the cluster in Safemode | bin/hadoop dfsadmin -safemode enter |
| Generate a list of DataNodes | bin/hadoop dfsadmin -report |
| Recommission or decommission DataNode(s) | bin/hadoop dfsadmin -refreshNodes |
Browser Interface
A typical HDFS install configures a web server to expose the HDFS namespace through a configurable TCP port. This allows a user to navigate the HDFS namespace and view the contents of its files using a web browser.
Space Reclamation
File Deletes and Undeletes
When a file is deleted by a user or an application, it is not immediately removed from HDFS. Instead, HDFS first renames it to a file in the /trash directory. The file can be restored quickly as long as it remains in /trash. A file remains in /trash for a configurable amount of time. After the expiry of its life in /trash, the NameNode deletes the file from the HDFS namespace. The deletion of a file causes the blocks associated with the file to be freed. Note that there could be an appreciable time delay between the time a file is deleted by a user and the time of the corresponding increase in free space in HDFS.
A user can Undelete a file after deleting it as long as it remains in the /trash directory. If a user wants to undelete a file that he/she has deleted, he/she can navigate the /trash directory and retrieve the file. The /trash directory contains only the latest copy of the file that was deleted. The /trash directory is just like any other directory with one special feature: HDFS applies specified policies to automatically delete files from this directory. The current default policy is to delete files from /trash that are more than 6 hours old. In the future, this policy will be configurable through a well defined interface.
Decrease Replication Factor
When the replication factor of a file is reduced, the NameNode selects excess replicas that can be deleted. The next Heartbeat transfers this information to the DataNode. The DataNode then removes the corresponding blocks and the corresponding free space appears in the cluster. Once again, there might be a time delay between the completion of the setReplication API call and the appearance of free space in the cluster.
References
HDFS Java API: https://hadoop.apache.org/core/docs/current/api/
HDFS source code: https://hadoop.apache.org/hdfs/version_control.html
by Dhruba Borthakur


Click here to learn about solar energy!
Click here to learn about money savings!
Click here to use our solar advisor calculator!


Emotion Image: {{selectedEmotion.emotionImage}}
Emotion Name: {{selectedEmotion.emotionName}}
Activity Completed: {{selectedEmotion.activityCompleted}}
Score: {{selectedEmotion.score}}
Date Completed: {{selectedEmotion.dateCompleted}}


This plugin inserts a search input above the filter options. It is visible if the configured value is bigger than the count of the filter options.
This plugin is part of @FriendsOfShopware. Maintainer from the plugin is: Alexander Wolf
For questions or bugs please create a Github Issue


5.1.d supported derived XML schema types in basic processors
When you activate the Valid Values trigger you must see an "xforms-valid" output for all the
data types. When you activate the Invalid Values trigger you must see an "XFORMS-INVALID"
output for all the data types.
Results:
Valid Values
12
0
-3
-9223372036854775808
-2147483648
-32768
-128
0
18446744073709551615
4294967295
65535
255
+100000
Invalid Values
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
Bogus Data
integer
XFORMS-INVALID (integer)
xforms-valid (integer)
nonPositiveInteger
XFORMS-INVALID (nonPositiveInteger)
xforms-valid (nonPositiveInteger)
negativeInteger
XFORMS-INVALID (negativeInteger)
xforms-valid (negativeInteger)
long
XFORMS-INVALID (long)
xforms-valid (long)
int
XFORMS-INVALID (int)
xforms-valid (int)
short
XFORMS-INVALID (short)
xforms-valid (short)
byte
XFORMS-INVALID (byte)
xforms-valid (byte)
nonNegativeInteger
XFORMS-INVALID (nonNegativeInteger)
xforms-valid (nonNegativeInteger)
unsignedLong
XFORMS-INVALID (unsignedLong)
xforms-valid (unsignedLong)
unsignedInt
XFORMS-INVALID (unsignedInt)
xforms-valid (unsignedInt)
unsignedShort
XFORMS-INVALID (unsignedShort)
xforms-valid (unsignedShort)
unsignedByte
XFORMS-INVALID (unsignedByte)
xforms-valid (unsignedByte)
positiveInteger
XFORMS-INVALID (positiveInteger)
xforms-valid (positiveInteger)


Ideas on Scaling up Security Architecture for Deploying Web Apps
Let us take a case of a mid sized company which wants to scale up its security architecture for it’s client facing website. As per the terms of reference, there should be minimum disruption in the existing workflow and any kind of code rewrite is not on the platter. They have a classic deployment in which the website is hosted on Virtual Private Servers (VPSs).
We can have a two pronged strategy here, first to minimize the attack surface and then to monitor the traffic that is allowed to come in. This can be done by limiting access to hosted infrastructure (VPS) by dropping all the traffic at ingress except that for
https
or port443
. We also need to limit the access to web APIs in such a way that, the internal APIs are not exposed to outside world and all incoming traffic on the exposed public APIs is being monitored.
Now, having worked out the design goals, we can rework the architecture of our deployment. Of course there are many ways to go about the security architecture, but one of the ways is to enable/introduce following artifacts.
- Infrastructure Firewall
- Proxy / Load balancer
- Web Application Firewall
Infrastructure Firewall
The infrastructure firewall will drop all traffic at ingress of our VPS except that meant for https
and http
. We can also configure the firewall to limit the traffic from specific IPs/subnets. Some of the sample rules in our firewalld
of CentOS7 as given here:
Firewalld Rules
# Step 1: Create a trusted Zone having whitelisted IP / subnet.
firewall-cmd --permanent --add-source=<IP_ADDRESS> --zone=trusted &
# Step 2: Add service http and https to the trusted zone
firewall-cmd --permanent --add-service=http --zone=trusted &
firewall-cmd --permanent --add-service=https --zone=trusted &
# Step 3: Remove service http and https from the public zone
firewall-cmd --permanent --remove-service=http --zone=public &
firewall-cmd --permanent --remove-service=https --zone=public &
firewall-cmd --reload
Proxy / Load balancer
The proxy will ensure that our website is not directly exposed to the outside world and has additional benefits of load balancing. We can setup Access Control Lists (ACLs) so that only specific endpoints of our website APIs are accessible from outside. This will also safeguard any accidental exposure of our internal APIs. Some of the sample configuration settings for the HAproxy could be as follows:
HAProxy Config Rules
frontend httpsandhttp
bind *:80
bind *:443 ssl crt /etc/ssl/haproxy.pem
# Redirect traffic to https
http-request redirect scheme https unless { ssl_fc }
mode http
acl app1 path_end -i /app1
acl app2 path_end -i /app2
use_backend app1Servers if app1
use_backend app2Servers if app2
backend app1Servers
balance roundrobin
mode http
server webserver1 <IP_ADDRESS>:2222 check weight 1 maxconn 50 ssl verify none
backend app2Servers
balance roundrobin
mode http
server webserver2 <IP_ADDRESS>:3333 check weight 1 maxconn 50 ssl verify none
Web Application Firewall
The traffic from our proxy now goes through the Web Application Firewall. This is configured to thwart common web application vulnerabilities. We could use the open source WAF like modsecurity or vendor dependent one. The WAFs also have the settings to configure it as proxy for sending the actual website traffic. Thus both proxy and WAF can be bundled in one software. We can run everything in a containerised environment using docker or Kubernetes.
Reference
- https://www.youtube.com/watch?v=qYnA2DFEELw
- https://www.haproxy.com/blog/redirect-http-to-https-with-haproxy/


Access to webpages is not limited to a desktop computer with screen resolution more than 950 pixels. There is a range of resolutions from tablet to mobile devices. There is an explosive growth of internet access via mobile devices and in future it will grow exponentially. So it is important that present day webpages must be designed to function on any devices maintaining the easy reading and particularly page navigation experience.
Mobile first design is a strategy adopted to meet the growing smartphone services used for internet. Websites are first designed to function in mobile phones and later adding correlations in design for traditional desktop and laptop computers.
It has its own advantages browser compatibility, common solutions to problems. However it has it disadvantage of slow learning, adds more code to my CSS file that I may not need or use it. It has its own semantics and so you could lead to waste lot of time.
Wireframes are simple layout that specifies the size and placement of page elements, images, and other contents. It is like a blueprint to a home.
The grid sketch above shows a 12 column layout for the index page of the blog for screen resolution more than 550px, i.e. for laptop and desktop computers
The grid sketch above shows a 12 column layout for other post page of the blog for laptop and desktop computers
The grid sketch above shows the layout for index page for mobile screen resolution
The grid sketch above shows the layout for post page for mobiles.
I had trouble in aligning the author image and its description to the right side of the main section. It was working ok on a static screen. But to make it responsible the sizes of those elements were to change from fixed size to % size. So this was done with the CSS.
It took me substantial time to position the navigation bar below the blog title. Either it was not on a single line or it was positioning to the right side of the banner. It took even more time to make those drop down list type archive for other posts.
Posted: 19 Dec 2015


About Cicada 3301
Cicada 3301 is a nickname given to an organization that on three occasions has posted a set of puzzles to recruit codebreakers from the public.[1] The first internet puzzle started on January 4, 2012 on 4chan and ran for approximately one month. A second round began one year later on January 4, 2013, and a third round following the confirmation of a fresh clue posted on Twitter on January 4, 2014.[2][3] The stated intent was to recruit "intelligent individuals" by presenting a series of puzzles which were to be solved. No new puzzles were published on January 4, 2015. However, a new clue was posted on Twitter on January 5, 2016.[4][5] In April 2017 a verified PGP-signed message was found: Beware false paths. Always verify PGP signature from 7A35090F.[6] That message explicitly denies the validity of any unsigned puzzle, as recently as April 2017. The puzzles focused heavily on data security, cryptography, steganography, internet anonymity, and surveillance.[1][7][8][9][10] It has been called "the most elaborate and mysterious puzzle of the internet age"[11] and is listed as one of the "top 5 eeriest, unsolved mysteries of the internet",[12] and much speculation exists as to its function. Many have speculated that the puzzles are a recruitment tool for the NSA, CIA, MI6, a "Masonic conspiracy"[13] or a cyber mercenary group.[1][8] Others have claimed Cicada 3301 is an alternate reality game. No company or individual has taken credit for it or attempted to monetize it, however.


Is it time to talk to an audiologist?
This online hearing test can help identify problem areas in your hearing health.
Adjust the volume on your computer so the noise plays at a comfortable level.
Please do not adjust your computer volume after this step.
Do you hear the tone playing?
Tone 1
Tone 2
Tone 3
Tone 4
Tone 5
Click on the words you hear spoken
A summary of your online hearing test results.
Hearing Quiz
Tone Test
Speech Test
Environments you struggle to hear in.
%environment%


$$ \newcommand{\real}{\mathbb{R}} \newcommand{\der}[2]{\frac{d#1}{d#2}} \newcommand{\pder}[2]{\frac{\partial#1}{\partial#2}} \newcommand{\D}[1]{\Delta#1} \newcommand{\inner}[2]{\langle#1, #2\rangle} $$
When looking at the computational efficiency of the simulations one thing that can jump out is the use of expm
. During the computations we use expm
to step the kinematics, but this can be a relatively expensive thing to compute. We can specialize expm
to work on \(SE(3)\) and \(SO(3)\) to improve the efficiency a bit, but it can still be expensive. So, we want to improve this and avoid expensive expm
calls.
The reason we needed expm
in the first place is because rotation matrices are not closed under addition. When we step the rotations using a Runge-Kutta integrator we add the current step and a term based on the derivative to get the next step, but doing this causes the determinant of the rotation to drift making it no longer a pure rotation. One way to avoid this was the RKMK integration scheme, but we can change the representation to get more efficient computations. If we represent rotations as quaternions we no longer need the RKMK scheme, and therefore don’t use expm
, because quaternions are closed under addition. One issue is that unit quaternions are rotations, but with addition they won’t remain unital. This can be avoided by having normalization be included in the change from quaternion to rotation matrix form. This ought to result in a more computationally efficient implementation of the kinematics.
The main piece the quaternions change is the derivative in space and time, everywhere else in the computations we want to keep the rotation matrix form. To convert a quaternion to a rotation matrix we have:
\[\begin{gather} q = q_0 +q_1i + q_2j + q_3k = \begin{bmatrix} q_0 \\ q_1 \\ q_2 \\q_3 \end{bmatrix} \\ R = I + \frac{2}{q^Tq} \begin{bmatrix} -q_2^2-q_3^2 & q_1q_2-q_3q_0 & q_1q_3+q_2q_0 \\ q_1q_2+q_3q_0 & -q_1^2-q_3^2 & q_2q_3-q_1q_0 \\ q_1q_3-q_2q_0 & q_2q_3+q_1q_0 & -q_1^2-q_2^2 \end{bmatrix} \end{gather}\] where \(q\) is the quaternion using the typical \(i\), \(j\), \(k\) basis.
So, now we need to see how the derivative and integration changes. For rotations we originally had: \[ R' = R\hat{\omega} \]
With quaternions we instead have: \[ q' = \frac{1}{2} \begin{bmatrix} 0 & -\omega_x & -\omega_y & -\omega_z \\ \omega_x & 0 & \omega_z & -\omega_y \\ \omega_y & -\omega_z & 0 & \omega_x \\ \omega_z & \omega_y & -\omega_x & 0 \end{bmatrix} q \] where \(\omega\) has been broken into components.
Using this we have a fairly straightforward change in the integration steps except we have to do rotations and translations separately rather than unified in \(g\). The change to quaternions changes how \(g\) is stored and accessed in the code and we will need a transformation from quaternion form to matrix form.
Adding to utils:
# quaternion form to matrix form
def toMatrix(q):
return np.eye(3) + 2 / (q @ q) * (np.array(
[[-q[2] ** 2 - q[3] ** 2, q[1] * q[2] - q[3] * q[0], q[1] * q[3] + q[2] * q[0]],
[q[1] * q[2] + q[3] * q[0], -q[1] ** 2 - q[3] ** 2, q[2] * q[3] - q[1] * q[0]],
[q[1] * q[3] - q[2] * q[0], q[2] * q[3] + q[1] * q[0], -q[1] ** 2 - q[2] ** 2]]))
Also it will be useful to convert from rotations to quaternions in the initialization of the rod and we will have:
# matrix form to quaternion
def toQuaternion(R):
t = np.trace(R)
r = np.sqrt(1 + t)
w = r / 2
x = np.sign(R[2, 1] - R[1, 2]) * np.sqrt(1 + R[0, 0] - R[1, 1] - R[2, 2]) / 2
y = np.sign(R[0, 2] - R[2, 0]) * np.sqrt(1 - R[0, 0] + R[1, 1] - R[2, 2]) / 2
z = np.sign(R[1, 0] - R[0, 1]) * np.sqrt(1 - R[0, 0] - R[1, 1] + R[2, 2]) / 2
return np.array([w, x, y, z])
For ease we can modify the flatten
and unflatten
functions to work with the new representation and keep the same structure.
Now we can change \(g\) to be storing the quaternion form and the position rather than a flattened representation of itself.
The resulting changes are incorporated into the stepping and should give the same results just a bit more efficiently.


Scania Colours
For digital media, we've devided the Scania colours in brand, primary, secondary and tertiary colours. If you're using print, please find the appropriate colour values in the Scania Identity Manual.
Restrictions: The colours may only be used for their intended purposes. Any restrictions must be followed. The colours should not be altered.
Variables
For web development purposes you should use our LESS variables file to access colors:
https://static.scania.com/build/global/2.3.5-pre/less/corporate-ui/variables.less
List all CSS colour classes
Brand Colours
The Scania brand colours are derived from the Scania symbol and wordmark and effectively establish, represent and communicate the brand.
Scania Blue and Scania White should mainly be used for text and backgrounds.
Scania Red is represented by the griffin in the Scania symbol. It must be used with great care and only as a highlight or accent colour, never to steal attention from the griffin. Red can also be associated with warning signs and negative results (e.g. red numbers in a table).
rgb(4, 30, 66)
HEX #041E42
LESS @color-brand-01
CSS
rgb(250, 250, 250)
HEX #FAFAFA
LESS @color-brand-02
CSS
rgb(214, 0, 28)
HEX #D6001C
LESS @color-brand-03
CSS
Primary palette
The Scania brand colours are supported by primary supporting colours and a secondary colour palette. All Scania colours must be represented as outlined by the CSS classes definied in the Corporate UI stylesheet. The primary supporting colours in grey offset the brand colours and form the primary background of the colour scheme.
rgb(200, 201, 199)
HEX #C8C9C7
LESS @color-primary-01
CSS
rgb(151, 153, 155)
HEX #97999B
LESS @color-primary-02
CSS
rgb(83, 86, 90)
HEX #53565A
LESS @color-primary-03
CSS
rgb(45, 41, 38)
HEX #2D2926
LESS @color-primary-04
CSS
Secondary palette
Scania’s secondary colour palette is designed to be used to vary or highlight content. Orange communicates news, innovation and power. The greens and beige are natural colours that reinforce Scania’s image as a grounded, reliable organization, and a leader in the shift towards a sustainable transport system.
rgb(227, 82, 5)
HEX #E35205
LESS @color-secondary-01
CSS
rgb(206, 184, 136)
HEX #CEB888
LESS @color-secondary-02
CSS
rgb(148, 165, 150)
HEX #94A596
LESS @color-secondary-03
CSS
rgb(44, 82, 52)
HEX #2C5234
LESS @color-secondary-04
CSS
Tertiary palette
The tertiary palette broadens the fields of colour beyond the spectrum of the primary and secondary pallets. They should not be used to make our brand more vivid, rather than in places where you'll really need the extra colours, like for examle in complex charts. It is never advised to use a tint or tonal percentage of a colour.
rgb(68, 134, 145)
HEX #448691
LESS @color-tertiary-01
CSS
rgb(94, 56, 133)
HEX #5e3885
LESS @color-tertiary-02
CSS
rgb(0, 93, 109)
HEX #005d6d
LESS @color-tertiary-03
CSS
rgb(225, 169, 62)
HEX #e1a93e
LESS @color-tertiary-04
CSS
rgb(137, 106, 115)
HEX #896a73
LESS @color-tertiary-05
CSS
rgb(93, 167, 169)
HEX #5da7a9
LESS @color-tertiary-06
CSS
rgb(96, 178, 105)
HEX #60b269
LESS @color-tertiary-07
CSS
Font and Icon Colours
Font colours differs when it comes to headers and body copy as well as if they are placed on a white background, coloured background or on a photograph.
(body copy on white background)
rgb(83, 86, 90)
HEX #53565A
LESS @main-font-color
Applies to:
(header texts on white background)
rgb(4, 30, 66)
HEX #041E42
LESS @color-brand-01
Applies to:
rgb(250, 250, 250)
HEX #fafafa
LESS @inverted-font-color
Applies to: All text elements when on coloured backgrounds.
Interaction Colours
The main interaction colours are used only in digital media, often for buttons, alert messages and form elements. Input fields, for example, can get positive and negative feedback, whereas alert messages can have warning feedback. Buttons can guide the user in a very good way as long as the same colours are implemented across the organisation, sending the same message.
Buttons
Alerts
Gradients
When you need to illustrate information as a gradient, use the scale below. The colors should be used only to make gradients in charts. The colours are not allowed to be use elsewhere.
rgb(96, 226, 102)
HEX #60e266
LESS
@gradient-color-a
rgb(185, 238, 81);
HEX #b9ee51
LESS
@gradient-color-b
rgb(255, 236, 0)
HEX #ffec00
LESS
@gradient-color-c
rgb(237, 160, 83)
HEX #eda053
LESS
@gradient-color-d
rgb(225, 96, 96)
HEX #e16060
LESS
@gradient-color-e
Data Visualization Colours
Column Chart Example
For charts we're using a combination of all four palettes. The priority of the colours is shown in the sample chart below, starting with the secondary palette and then expands with the blue brand colour and the primary palette. If needed, we then add on colours from the tertiary palette.
Donut Chart Example
Depending on what kind of data visualization tool you're using and what kind of background you want to embed it in, you might need to combine colours from all Scania palettes.
Area Spline Chart Example
Depending on what kind of data visualization tool you're using and what kind of background you want to embed it in, you might need to combine colours from all Scania palettes.


Provides functions and data sets to accompany the book 'Applied Hierarchical Modeling in Ecology: Analysis of distribution, abundance and species richness in R and BUGS' by Marc Kery and Andy Royle. The first volume appeared early in 2016 (ISBN: 978-0-12-801378-6, <https://www.mbr-pwrc.usgs.gov/pubanalysis/keryroylebook>); the second volume is in preparation and additional functions will be added to this package.
| Version: | 0.1.4 |
| Depends: | R (≥ 2.10), unmarked (≥ 0.12.2) |
| Imports: | grDevices, graphics, methods, stats, utils, plotrix, raster, sp, RandomFields, coda |
| Published: | 2017-05-19 |
| Author: | Marc Kery, Andy Royle, Mike Meredith |
| Maintainer: | Mike Meredith <mmeredith at wcs.org> |
| License: | GPL (≥ 3) |
| URL: | https://www.mbr-pwrc.usgs.gov/pubanalysis/keryroylebook/, https://sites.google.com/site/appliedhierarchicalmodeling/home |
| NeedsCompilation: | no |
| Materials: | NEWS |
| CRAN checks: | AHMbook results |
| Reference manual: | AHMbook.pdf |
| Package source: | AHMbook_0.1.4.tar.gz |
| Windows binaries: | r-devel: AHMbook_0.1.4.zip, r-release: AHMbook_0.1.4.zip, r-oldrel: AHMbook_0.1.4.zip |
| OS X binaries: | r-release: AHMbook_0.1.4.tgz, r-oldrel: AHMbook_0.1.4.tgz |
| Old sources: | AHMbook archive |
Please use the canonical form https://CRAN.R-project.org/package=AHMbook to link to this page.


Ex-lobbyist faces Nov. 25 sentencing for Arkansas bribery
by KNOEFAYETTEVILLE, Ark. (AP) - Court records show that a former lobbyist who pleaded guilty to bribing three former Arkansas lawmakers will be sentenced this month.
Rusty Cranford could face up to 10 years in federal prison for bribing Sen. Jon Woods, Rep. Hank Wilkins and Sen. Jeremy Hutchinson, the nephew of Gov. Asa Hutchinson and son of former U.S. Sen. Tim Hutchinson. Cranford had hoped to increase revenue for the Missouri-based nonprofit Preferred Family HealthCare.
Cranford also confessed to embezzling from the nonprofit where he worked. His attorney declined to comment.
The Northwest Arkansas Democrat-Gazette reports that court records posted Tuesday show he’ll be sentenced Nov. 25. His attorney declined to comment.
A federal grand jury in Missouri indicted Cranford on one count of conspiracy and eight counts of accepting bribes.
___
Information from: Northwest Arkansas Democrat-Gazette, http://www.nwaonline.com
(Copyright 2019 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.)


arthur dent
home
projects
blog
posts
a title of my post
a title of my post
This is an example of a blog post layout.


About Williert Charles
I'm Williert Charles , i'm student at MUM since November 2018
My Classes
- CS390-Fundamental Programming Practice
- CS401-Modern Programming Practice
- CS425-Software Ingeneering
- CS472-Web Application
My Favorite Movies
- Games of thrones (IMDB)
- Director:
- John Snow
- Genre:
- Comedy/Drama/Romance (more)
- Tagline:
- The world will never be the same, once you've seen in the Games of Thrones
- Plot OutLine:
- John Snow must kill the dragon (more)
- Titanic (IMDB)
- The Honeymooners (IMDB)
My Moods
Happy:
Sad :
Fun facts Movies About my Neighbors
- Jules Wilfrid: Harmonious
- Mathieu Pierre: Proactive Man


Server List
Garry's Mod
WHATSTHEFUCKINGIPBANK
TeamSpeak3
Join us on TeamSpeak3! Connect with:
http://summit8398.ts.nfoservers.com
Minecraft
Use the following IP to connect:
faction.game.nfoservers.com
WHATSTHEFUCKINGIPBANK
Join us on TeamSpeak3! Connect with:
http://summit8398.ts.nfoservers.com
Use the following IP to connect:
faction.game.nfoservers.com


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
This is a quick and easy dish using fragrant Middle-Eastern spices, loads of herbs and succulent pork.
For the marinade, mix together all the herbs, spices and oil in a bowl. Add the pork slices and stir to coat them in the marinade, then set aside in the fridge for half an hour.
For the tabbouleh, mix the pomegranate seeds, tomatoes, spring onions, parsley, za’atar, and bulgur wheat in a large bowl until well combined.
Mix together the lemon juice, pomegranate molasses, honey and half of the olive oil in a separate bowl. Season, to taste, with salt and freshly ground black pepper.
Combine the two mixtures and season again if necessary, then stir in the flaked almonds. Set aside.
Heat the remaining olive oil in a frying pan over a medium heat. Add the pork slices, in batches, for 2-3 minutes, or until golden-brown on both sides and cooked through.
To serve, transfer all of the frying pan contents, including the oil, to a serving platter. Serve the tabbouleh in a large bowl alongside.


Pysteroids
0
left /right arrows = turn
up arrow = thrust
space = shoot
GAME OVER
(c) 2017 Steve Theodore
Made with Python and
Transcrypt
Sounds from
freesound.org
, created by:
newagesoup
qubodup
NotR
juskiddink
nsstudios


NAV
home
menu
specials
order online
services
Reservations
Banquet Rooms
Gift Certificates
reviews
Testimonals
Review Us
about
Our Story
Events
Gallery
Blog
contact


CHAPTER 483
UNIFORM JOINT OBLIGATIONS ACT
Section
483-1 Definitions; limitations of law
483-2 Co-obligor not discharged when
483-3 Crediting of payments made to obligee
483-4 Effect of obligee's release to one or more
483-5 Effect of knowledge of obligee in making release
483-6 Executor or administrator of joint obligor bound
Case Notes
Based on the facts and issues raised in plaintiffs complaint, the nature of the grievance and the relief sought, where the essential character of the underlying action was one of equitable contribution under this section and was not an action in the nature of assumpsit under §607-14, the circuit court abused its discretion in awarding attorneys fees and costs to defendants under §607-14. 128 H. 366 (App.), 289 P.3d 1002 (2012).
A guarantor is not a co-obligor or a joint and/or several obligor with the principal obligor; thus, guarantor and ex-husband were not co-obligors or joint and/or several obligors under this chapter. 93 H. 142 (App.), 997 P.2d 68.


Typography
This is an example of a display text
This is an example of a H1 text.
We campaign for a world where human rights are enjoyed by all.
This is an example of a H2 text.
We campaign for a world where human rights are enjoyed by all.
This is an example of a H3 text.
We campaign for a world where human rights are enjoyed by all.
This is an example of a tag text.
We campaign for a world where human rights are enjoyed by all.
This is an example of a body text. Amnesty International is a global movement of more than 10 million people in over 150 countries and territories who campaign to end abuses of human rights.
This is an example of a body text bold. Amnesty International is a global movement of more than 10 million people in over 150 countries and territories who campaign to end abuses of human rights.
Colors
Brand Primary Color
#FDFB38
Brand Secondary Color
#000000
Neutral Color 600
#262626
Neutral Color 500
#363636
Neutral Color 400
#4A4A4A
Neutral Color 300
#B6B6B6
Neutral Color 200
#E6E6E6
Neutral Color 100
#F7F7F7
Accent Color 500
#FED330
Accent Color 400
#FEDD59
Accent Color 300
#FEE583
Accent Color 200
#FFEEAC
Buttons
Input Fields


I took Remeron for depression (5-30 mgs) for about two months, and found it to be a really strange drug. From a dosage of 10 mgs and up I noticed effects, which included changes in sleep patterns, increased sensitivity to stimulants, and mild hallucinations after dosing. I will go into these in detail in this report. I took the drug once a day before bed.
About an hour after dosing I would begin to notice strange patterns when I was in an area of low light. Sort of like red and green static superimposed over everything I looked at. I have been off this drug for almost a year and these have not entirely gone away.
I would also feel really unreal and drowsy but not really tired, kind of like a large dose of vicodin but more anxious. These effects continued for up to a day after taking the drug. It always put me to sleep within half an hour of going to bed, which was nice because I am an insomniac, but I would have unsettling side effects right before. I would be lying with my eyes closed, and my mind would wander. I would think that I was in an entirely different place, and would be surprised when I opened my eyes and found myself in my room. I mentioned this to my psychiatrist and he asked me if I ever heard voices. I guess he thought I was schizophrenic, which makes sense because that was one of the side effects mentioned. This was the reason I decided to get off the drug.
The most prominent side effect of this drug was extremely vivid and random dreams. There was no way for me to tell that I was dreaming, and when I woke up it took a while for me to realize that I was back in the real world. The dreams always occured much later than normal, so I would have to wake up for school while I was in the middle of dreaming, which made it difficult to wake up. Another interesting side effect was that it greatly increased my sensitivity to stimulants, including adrenaline. Whenever I was surprised the resulting rush would feel extremely good, almost like the come up of a good dose of X. It also seemed to interact with marijuana. I smoked quite a bit while taking it, and it made my paranoia a lot worse. One time I smoked a joint about an hour after taking it and experienced frightening audios and visuals. Everything seemed to turn a shade of red, and I heard my parents screaming at me. Since then I have never smoked alone.
My experience with this drug wasn't really positive or negative. It didn't have any effect on my depression, and since then I have resolved not to take antidepressants any more. I would rather work through my issues on my own. I apologize for the length of this report, but I wanted to cover all the details. I hope this is helpful for someone.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


25
Total Contract Count
05
New
02
In Progress
25
Completed
05
Failed
Contract Number
23112837
Alert
Shock Detected
Description of the alert . Temprature limit reached
Container Conditions
Temperature(C)
Humidity(%)
Pressure(kPa)
Luminosity(lux)
Vehicle Conditions
Oil Level
Accelerometer
Gyroscope
Battery Level
Engine Temp
Vibration Chart
Gyroscope Chart
Luminosity Chart


Interface used by a class implementing IPvDeviceAdapter to forward notifications to PvDeviceSerialPort. More...
Public Member Functions | |
| virtual void | NotifyEvent (uint16_t aEventID, uint16_t aChannel, uint64_t aBlockID, uint64_t aTimestamp, const void *aData, uint32_t aDataLength)=0 |
| Forwards a controller event (GigE Vision or USB3 Vision) to a registered interface. More... | |
| virtual void | NotifyInvalidatedGenParameter (const PvString &aParameterName)=0 |
| Forwards a GenICam parameter invalidation event to a registered interface. More... | |
Interface used by a class implementing IPvDeviceAdapter to forward notifications to PvDeviceSerialPort.
This interface is implemented classes internal to PvDeviceSerialPort.
You need to forward GenICam invalidation events for all IPvDeviceEventSink interfaces registered using RegisterEventSink up until UnregisterEventSink is called.
Use IPvDeviceEventSink::NotifyInvalidatedGenParameter for parameters that RegisterGenInvalidator was called for. You also need to forward all messaging channel events to the PvDeviceSerialPort using IPvDeviceEventSink::NotifyEvent.
|
pure virtual |
Forwards a controller event (GigE Vision or USB3 Vision) to a registered interface.
| [in] | aEventID | Event ID. Some standard event IDs are defined but usually device dependent. |
| [in] | aChannel | Streaming channel associated with the event, if any. 0xFFFF is used if the event is not associated to a streaming channel. |
| [in] | aBlockID | Streaming block ID associated with the event, if any. Can be used to pair one or more than one event with a block received from a device. 0 is used if the event is not associated to a block. |
| [in] | aTimestamp | Timestamp of the event on the time domain of the device. Time unit is defined by the device. 0 if timestamps are not supported by the device that generated the event. |
| [in] | aData | Pointer to Event Data, if applicable. NULL otherwise. |
| [in] | aDataLength | Data length, in bytes. |
|
pure virtual |
Forwards a GenICam parameter invalidation event to a registered interface.
| [in] | aParameterName | Name of the invalidated parameter. |
Copyright (c) 2002-2015 Pleora Technologies Inc.
www.pleora.com


Date: 10th October 2021
Hosted by DigitalOcean for the 8th year in a row, Hacktoberfest encourages participation in giving back to the open source community by completing pull requests, participating in events, and donating to open source projects. All backgrounds and skills levels are encouraged to complete the challenge. Connect with the community, ask questions and find projects.
© Hack Club SSGI 2021


{% include 'partials/header.html' %} {% include 'partials/title_bar.html' %} {% include 'partials/bread_crumb.html' %}


--- title: "Blink Detection Using GazeR" author: "Jason Geller" date: "2020-12-09 15:44:40" output: html_document ---
While it is generally agreed that blinks need to be taken care of during preprocessing, most eye tracking software does not include this event information. This has lead to the development of several great blink algorithms. I decided to implement a velocity based one off of Matĥot (2013) in gazeR .The code itself very simple and intuitive algorithm and does a nice job recovering the pupil data.
This vignette will show how you the steps involved in identifying blinks that underlie the blink_velocity
function in gazeR.
First load gazeR and some sample data.
library(gazer)
library(cowplot)
library(data.table)
library(patchwork)
library(tidyverse)
pupil_path <- system.file("extdata", "pupil_sample_files_edf.xls", package = "gazer")
pupil_files1<-fread(pupil_path)
pupil_files1 <- as_tibble(pupil_files1)
For blink detection we are using a variation of Mathôt’s (2013) approach.I found some parts of his paper to follow. First the uncorrected pupil signal for a single trial from a single subject is plotted as a continuous signal. The signal is measured in arbitrary units as outputted by Eyelink’s software (Please check your own data before using this). In the below figure, it is clear to see that the participant blinked three times during the trial. Eye blinks are characterized by a pronounced drop in the pupillary signal, followed by a full loss of signal, and then usually a recovery artifact when the signal comes back online.
In order to detect these events systematically, I calculated a velocity profile for each trace. However, the original signal is too noisy to create a reliable profile. In order to detect blinks efficiently, I began by smoothing the signal using a weighted moving window average of 10 samples (i.e., 20 ms; 250 Hz tracker).
Next I created a velocity profile by subtracting each sample from the immediately preceding sample in the signal.
pupil_blink_algo1 <- pupil_blink_algo %>%
mutate(velocity_pupil=c(diff(smooth_pupil)/diff(time), 0))
pup_g2<- ggplot(pupil_blink_algo1, aes(x= time, y= velocity_pupil)) +
geom_point()+ geom_line(colour="black") + ylab("Pupil Speed") +
ggtitle("Pupil Velocity")
pup_g2
## Warning: Removed 42 rows containing missing values (geom_point).
Blink onsets were subsequently identified as occurring when the velocity crossed a predetermined negative threshold (I selected -5 based on Mathot’s (2013) recommendation. This rapid decrease in pupil diameter corresponds to the apparent decrease in size of the pupil as the eyelid closes. Likewise, when the eyelid reopens there is a recovery artifact wherein pupil size rapidly gets larger. Thus, the algorithm detected the recovery period by indexing the time since onset that velocity exceed some positive threshold (I selected -5, again based off Matĥot (2013) recommendation). Finally, the offset was detected as the time at which velocity fell back down to 0. In this way, a blink corresponds to an onset, recovery, and offset index. According to Mathôt (2013), this detection algorithm underestimates the blink period by several milliseconds, thus I selected a margin value (10 ms) which was subtracted from the onset and added to the offset using the ’extend_blinks` function in gazeR. Finally, the pupil signal was then linearly interpolated.
By looking at interpolated data plotted over the raw data we can see that the algo
did a pretty good job at finding the blinks and recovering the pupil signal.
These steps are all contained in the blink_mathot
function.


|
|
For reading and writing images in PNG format. More...
#include <FilePng.h>
Static Public Member Functions | |
| template<class T > | |
| static void | read (T &image, const std::string &path, int png_transforms=0) |
| Syntax for recognising png files. More... | |
| static void | write (const ImageFrame &image, const std::string &path) |
| Writes image to a png file. More... | |
Static Public Attributes | |
| static FileInfo | fileInfo |
| Syntax for recognising image files. | |
| static short int | compressionLevel = 5 |
| Default compression level for png_set_compression_level(png_ptr, ...);. | |
Static Protected Attributes | |
| static FileInfo & | initFileInfo |
For reading and writing images in PNG format.
A lighter alternative for Magick++ which supports tens of image formats. Portable Network Graphics (PNG) format is a widely adapted, flexible image format for gray level and color images. It supports lossless compression and alpha channels.
|
static |
Syntax for recognising png files.
Reads a png file to Image or Channel . Converts indexed (palette) images to RGB or RGBA. Scales data to 8 or 16 bits, according to template class. Floating point images will be scaled as 16 bit integral (unsigned short int).
In addition to reading to Image, supports reading to ImageFrame if type and geometry match.
| T | - Image or ImageFrame |
Main action
Read comments
Copy to drain::Image
|
static |
Writes image to a png file.
Writes drain::Image to a png image file applying G,GA, RGB or RGBA color model. Writes in 8 or 16 bits, according to template class. Floating point images will be scaled as 16 bit integral (unsigned short int).
| image | - image |
| pathPrefix | - |
Writes drain::Image to a png image file applying G,GA, RGB or RGBA color model. Writes in 8 or 16 bits, according to template class. Floating point images will be scaled as 16 bit integral (unsigned short int).
? png_set_traverseFrame(png_ptr, 0,PNG_FILTER_HEURISTIC_DEFAULT);
WARNING: for channels/views: getProperties instead?
NEW:


--- layout: default --- {% include header.html %} {{ content }} {% include projects.html title="Current projects" limit=10 %} {% include sponsors.html %}


We realize it is mid December and some places are experiencing
snow, ice storms and cold weather (-20 degrees F), and
your typical winter weather conditions. Since we are
further south our weather has been different; high temp still in
the mid 80s, low temp mid 70s, a bit more windy
which makes for a cooler night but overall it has been very
enjoyable, that was until we arrived in Dominica.
The weather was predicted to become nasty out of the
east/northeast with high winds which would make the seas 8 to 10
foot. So the plan was to make it to Dominica and enjoy the
protected anchorage and see the island. There are probably 20
other cruising boats here as well all with the same idea.
We made it to Dominica just fine, and our first day was great.

Then next day, everyone decided to go take a hike at the local
fort. Kris and Derek did not go, as Derek has
sprained his neck while doing flips and dives off of Pollux.
That day it dumped rain.
Most of the time the rain storms will come through and dump for
5 to 10 minutes and then the sun comes out and maybe another
storm comes through later in the day. The rain dumped for hours
on end then a short 5 to 10 minute sunny spot and then back to
rain. If any boat that has a rain catcher for their fresh water
tanks has already topped off their tanks and is looking for ways
to clean the boat or do laundry with the excess water. Rain is
nice, but only so much.
We got two loads of laundry done in the rain, filled the tanks
and still had water going to waste. Kris and Derek
were quite happy to be on the boat, while everyone else was
hunkered down waiting for a break in the rain on their hike.
The next day, it was only spotty rain and it cleared off and we
were able to enjoy a nice potluck on the beach with about 12
other boats in the anchorage.
We decided to take a tour with "Emily Grace", "Pollux", and
"Windchasers". We drove to Chaudie pool and took a hike
and then went diving in the pool. Kris and Derek had
done this last time we were in Dominica, but it was new to
everyone else. We then went and bought some casava
bread which is a locally made bread from the Casava plant.
It is a quite heave bread and flavored with coconut and ginger.
We went on to the Karibugng area where most of the local Carib
Indians are settled and bought some home made baskets.
The baskets are beautiful and very reasonably priced.
After a nice lunch at a local restaurant then we went to the
red rocks area, of interesting red clay canyons and formations.
Played there for a while, and then to a beautiful river.
If you swam across the river, a small area was set off where hot
springs flowed into a small pool. Due to the recent
rains, the pool was only lukewarm, so not everyone braved the
river swim.
Lots seen and a long day. The next morning we went over to
say goodbye to "Moana Roa", as they were taking off, and we
would not see them again. - At least that is what we
thought.
12/17/13: rain, wind, did I mention rain?
|
|
Clouds and rain |
|
Video of Derek diving in to pool |
Kids in the red rocks |
More playing in the red rocks |
Indian baskets and handicrafts |
Swim the river for the "lukewarm" pool |
Banana leaves are really big. |


Finding documentation for Ruby gems and libraries is often time-consuming. ORI addresses this issue by bringing RI documentation right to your IRB console in a simple, consistent and truly object-oriented way.
If you’re too lazy to read this README, watch this screencast instead.
$ gem sources --add http://rubygems.org
$ gem install ori
Add to your ~/.irbrc
:
require "rubygems"
require "ori"
If you’re using RVM (Ruby Version Manager), install the gem into global
gemset of Rubies you’re actively using:
$ rvm 1.9.2
$ rvm gemset use global
$ gem install ori
It is recommended that you have Ruby >= 1.8.7 and RDoc >= 2.5.3. Issue reports for older versions will, most probably, be ignored.
All commands listed below are assumed to be typed in IRB. Example:
$ irb
irb> Array.ri
Array.ri
String.ri
[].ri
"".ri
5.ri
So that’s fairly straightforward – grab a class or class instance and call ri on it:
obj = SomeKlass.new
obj.ri
String.ri :upcase
"".ri "upcase"
[].ri :sort
Hash.ri :[]
Hash.ri "::[]"
Hash.ri "#[]"
# Regular expression argument denotes list request.
String.ri //
"".ri //
# Show method names matching a regular expression.
"".ri /case/
"".ri /^to_/
[].ri /sort/
{}.ri /each/
# Show ALL methods, including those private of Kernel.
Hash.ri //, :all => true
Hash.ri //, :all
# Show class methods or instance methods only.
Module.ri //, :access => "::"
Module.ri //, :access => "#"
# Show own methods only.
Time.ri //, :own => true
Time.ri //, :own
# Specify visibility: public, protected or private.
Module.ri //, :visibility => :private
Module.ri //, :visibility => [:public, :protected]
# Filter fully formatted name by given regexp.
Module, //, :fullre => /\(Object\)::/
# Combine options.
Module.ri //, :fullre => /\(Object\)::/, :access => "::", :visibility => :private
By using the :join option it’s possible to fetch methods for more than 1 object at once. Value of :join (which can be an object or an array) is joined with the original receiver, and then a combined set is queried.
# List all division-related methods from numeric classes.
Fixnum.ri /div/, :join => [Float, Rational]
5.ri /div/, :join => [5.0, 5.to_r]
# List all ActiveSupport extensions to numeric classes.
5.ri //, :join => [5.0, 5.to_r], :fullre => /ActiveSupport/
# Query entire Rails family for methods having the word "javascript".
rails_modules = ObjectSpace.each_object(Module).select {|mod| mod.to_s.match /Active|Action/}
"".ri /javascript/, :join => rails_modules
You can configure ORI via ORI.conf
object. By default it’s autoconfigured based on your OS and environment.
# Enable color.
ORI.conf.color = true
# RI frontend command to use. <tt>%s</tt> is replaced with sought topic.
ORI.conf.frontend = "ri -T -f ansi %s"
# Paging program to use.
ORI.conf.pager = "less -R"
Prior to publication, ORI gem has been thoroughly tested on:
Copyright © 2011 Alex Fortuna.
Licensed under the MIT License.
Send bug reports, suggestions and criticisms through project’s page on GitHub.


Education
Chicago Public Schools Budget Tele-Townhall - July 18, 2012
On Wednesday July 18, 2012 Chicago Public Schools held a tele-townhall conference call to answer questions regarding the proposed FY 2013 CPS budget. 6:00 pm - 7:00 pm.
-
More information about the FY 2013 proposed budget is available at cps.edu/budget :
-
Pages - FY13ProposedBudgetI'm pleased to present a budget for Fiscal Year 2013 that addresses our financial challenges, while also upholding our commitment to stud...
-
The official Chicago Public Schools Press Release regarding the Budget Tele-Townhall:
-
Chicago Public Schools : Chicago Public Schools To Host First-Ever FY 13 Budget Tele-Townhall Wednesday, July 18July 17, 2012 Chicago Public Schools (CPS) today reminded the public that it will host its first ever FY 13 budget tele-townhall on Wedne...
-
While there were several people on the call, most questions were answered by Chicago Public Schools Chief Administrative Officer Tim Cawley.
-
Significant drop in capital budget. Spending money adding science labs, playgrounds, etc. Capital Plan: http:// j.mp/Ob4cp9 c pcps
-
They took a couple minute break while waiting for more questions to come in...
-
@ILRaiseYourHand true... Underlying point is the same though. There is not enough $ available to do everything everyone wants.


Meet the Knight-Mozilla Fellowship Community
The Knight-Mozilla Fellows spent 10 months working with a partner news organization, contributing to and learning from the journalism code community. After their fellowship, they joined a thriving community of fellowship alumnit. Fellows shared their curiosity, code, and insights during their fellowship and beyond.
The fellowship is on hiatus for 2017, but you can meet our five cohorts of fellows.
Meet our fellows: 2016 | 2015 | 2014 | 2013 | 2012
Throughout their time as a fellow, we encouraged fellows to explore their passions, collaborate on projects, and share their work. Here are some examples of work from our fellows.
Explore
The mandate to explore is one of the ways a fellowship is really different from a regular job. Fellows had the time, space, and support to learn new skills, investigate topics of interest to them, and experiment to answer questions that fascinate them.
Brian Jacobs - 2014 fellow, now at National Geographic
Brian brought his prior experience with mapping and science to ProPublica’s “Losing Ground,” a project documenting erosion of the coastline in Louisiana. He dove into a huge project to understand historical, satellite, and even balloon-mapped imagery and then figure out how to make it accessible and understandable to readers.
Mark Boas - 2012 fellow, now at Hyperaudio
Mark came to the fellowship with a wealth of experience with online audio and video. This was a great fit for interactive projects at Al Jazeera as well as efforts to add better navigation and captioning support to news events like the 2012 U.S. presidential debates.
Collaborate
Working together is at the heart of open source development and fellows had the chance to combine forces with their newsroom colleagues, the other fellows in their cohort, the wider journalism-code community, and beyond.
Kavya Sukumar - 2015 fellow at Vox Media, now at Vox Media
Kavya and colleagues on the Vox Product team open sourced Autotune, a tool to make it easier to create templates for things like quizzes and charts. Vox had been using the tool internally, and with Kavya’s help they were able to share it so other orgs can use it, too.
Manuel Aristarán - 2013 fellow, now at MIT Civic Media
Mike Tigas - 2013 fellow, now at ProPublica
Manuel and Mike worked on the tricky problem of extracting tabular data from PDFs. Manuel began work on Tabula prior to his fellowship and continued its development while at La Nacion in partnership with ProPublica. Mike, his ProPublica colleague Jeremy B. Merrill, and Manuel launched TabulaPDF in 2013 and have continued its development.
Share
A handful of individuals get to spend 10 months as a fellow, but by documenting, speaking, and teaching about their work, fellows expand the reach of their efforts and allow the rest of the journalism-code community to benefit from their work.
Martin Shelton - 2016 fellow at The Coral Project, soon at Google Chrome
As part of Martin’s work at The Coral Project, he did user research about topics including operational security for newsrooms. He compiled resources to defend against common attacks in a guide for Source and created, Tinfoil, an online community for discussing and sharing strategies about journalism, media activism, and information security.
Harlo Holmes - 2014 fellow, now at Freedom of the Press Foundation
Aurelia Moser - 2014 fellow, now at Mozilla Foundation
Harlo and Aurelia wanted to help journalists understand how and why to communicate securely with sources. Harlo brought her extensive experience in the security community and Aurelia brought her curiosity about apps and communication to develop several talks about opsec for journalists. They presented together, alongside Barton Gellman at HOPE, and at the Hacks/Hackers Buenos Aires Media Party.


Summary: Latitude vs. X
The purpose of this project was to analyze how weather changes as you get closer to the equator. To accomplish this analysis, we first pulled data from the OpenWeatherMap API to assemble a dataset on over 500 cities.
After assembling the dataset, we used Matplotlib to plot various aspects of the weather vs, latitude. Some of the factors we looked at included: temperature, cloudiness, wind speed, and humidity. This site provides the source data and visualizations created as part of the analysis, as well as explanations and descriptions of any trends and correlations witnessed.