A cook, looking to become a studious developer.
I am a first-generation American who moved to Portland from Los Angeles. I've been in the food industry for 10 years, but have only been cooking for 2. After looking into the way technology is heading, I thought it wouldn't be a bad idea to be a part of that change. A friend who completed Epicodus introduced me to the website where I learned more about the actual work needed to participate in software development. I am looking forward towards working hard every day to become a savy and seasoned coder.
Hello World was intended to teach me how to initiate and track changes with Git. By creating the project "hello-world," I was able to understand the purpose of Git and how to apply it to every single project. The language used in this file is HTML.
Cupcake Shoppe', pronounced "shop," was created to understand changing multiple elements by giving them the same class names. A rule can then be added to the stylesheet to make changes to every element with the same class-name instead of styling them through HTML one-by-one. This project uses HTML and CSS.
Lorem ipsum was introduced which allows one to create fake paragraphs, however-long, in order to help give a website structure in the early stages. It also re-iterated what was taught in "Cupcake Shoppe."" The difference is in targeting specific elements with the same class name by adding the element tag, followed by a . (period) and then the class name. This project uses HTML and CSS.
The Animal Shelter project taught me what inheritance of styles is through styling an element in css, and having that style apply to all the child elements of their parent element. Using this in your stylesheet is called cascading. I also learned that a row must be within a container.  This project uses HTML and CSS.
This band-site project helped teach me the box model. By understanding the model, I am able to control the space between the content and its border, the padding in between, and the margin of the box and the border. This project uses HTML and CSS.
The purpose of Vacation Destination was to gain practice on the utilization of the bootstrap grid system. It also showed the importance of linking my personal stylesheet after bootstrap's. This project uses HTML, CSS, and Bootstrap.


Jane Doette
Front-End Ninja
Featured Work
Appify
/udacity/Appify
Sunflower
/udacity/Sunflower
Bokeh
/udacity/Bokeh


Your Design / Development Resource
WebWabiSabi is your ultimate design & development one stop shop.
Abode Organizer
Live Webpage
Github repo
Abode Organizer is a home organization helper tool that helps families keep track of recurring activities or home item purchases that need to be done.
Technologies: MERN stack (Mongoose, Express, React, NodeJS), Victory Charts, Axios, Heroku, CSS3, HTML5, Passport, Bcrypt
Spontaneity
Live Webpage
Github repo
Spontaneity is a travel companion to help you make the decision of where to visit on the spur of the moment based on dates, city, weather, food , & events.
Technologies: CSS3, HTML5, JavaScript, jQuery, OpenWeather, Ticketmaster, & Zomato APIs, Materialize, & Firebase
Eat Da Burgers
Live Webpage
Github repo
Eat Da Burgers is an app that allows the user to input a burger of their choice & devour it if they choose.
Technologies: Hand built MVC & CSS animation using CSS. JavaScript, jQuery, NodeJS, Express, HTML5, CCS3, Bootstrap
News Scraper
Live Webpage
Github repo
This web app scrapes the New York Times website & allows the user to save articles & leave notes on them.
Technologies: JavaScript, jQuery, NodeJS, Express, HTML5, CSS3 with NPM packages: express, express-handlebars, mongoose, cheerio, axios
Clicky Game
Live Webpage
Github repo
A memory game that a user clicks on an image & gets a point if they haven't clicked on that image before. If they click on the same image twice, their high score is retained but the current score is reset to 0 & they start the game over.
Technologies: React, JavaScript ES6, NodeJS, Express, HTML5, CSS3, Bootstrap
Google Book Search
Live Webpage
Github repo
Problems: Users need a way to search Google Books with the option of saving those books that they are interested in for later viewing.
Technologies: Reactm JavaScript ES6, NodeJS, Express, HTML5, CSS3, Bootstrap, MongoDB~
Our Expertise
Technologies
Databases
SQL Server, MySQL, Firebase, MongoDB, Cache
Modern Design
WebWabiSabi focuses on clean & modern designs that are timeless and unique to your business needs!
App development
Our apps will help your business keep things fresh & cutting edge to meet your clients expectations. We believe getting it in front of the user as quickly as possible is the only way to develop!
Build a slick, modern product faster than ever
WebWabiSabi is your complete design resource, always building from the ground up to be flexible, extensible and stylish. Building slick, contemporary designs with attention to detail is always our goal!
Learn More


West Virginia sportsmen groups oppose national park
FAYETTEVILLE, W.Va. (AP) - West Virginia sportsmen’s groups say they are not happy they could lose about 4,800 acres (1,940 hectares) of hunting land if the New River Gorge National River is designated a national park and preserve.
The Register-Herald reports the proposal by U.S. Sens. Shelley Moore Capito and Joe Manchin would designate about 64,000 (25,900 hectares) acres as a national preserve, with hunting and fishing allowed.
The National Park area would consist of a little less than 8,000 acres, with hunting restricted. Some of that land already has hunting restrictions but more than half does not.
West Virginia Wildlife Federation President Jerod Harmon tells the paper they will not support additional restrictions on hunters, anglers or trappers.
The senators say a National Park designation will boost tourism.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


{# layout.html #} {# Import the theme's layout. #} {% extends "!layout.html" %} {% set css_files = css_files + ['_static/railroad-diagrams.css'] %}


Provides a base implementation to perform bi-directional searches with. The actual algorithm used depends on the
particular queue types and search nodes used. These are passed to the basic bi-directional implementation to use
to control the flow of the search.
The basic algorithm proceeds by alternately taking the next node from each of the queues and testing to see if it can
be found in the search fringe of nodes derived from the other queue and start node. When a match is found the two paths
are joined together using a path joining algorithm.
Sometimes a specialized path joining algorithm is needed that knows how to reverse the steps along one path because one
path will be in a forward direction and the other in the reverse direction. A basic algorithm is provided that does not
attempt to reverse any of the path steps. An interface for the path join algorithm has been factored out of the base
bi-directional algorithm so that implementations other than the default can be written and then passed in to the base
algorithm as a parameter.
Bi-directional searches can reduce a search space by a large degree but are not always useful. The goal state needs to
be known in advance and it is not always known for many problems. One of the search directions needs to proceed breadth
first or at least provide good breadth coverage, such as an iterative deepening search otherwise the two search paths may
miss each other. For example two depth first searches heading towards each other are extremely unlikely to meet up in
anything but search spaces with trivially small branching factors.


Steve Jobs
Steve Jobs (Born 24 February 1955 in San Francisco, California) is an American inventor, entrepreneur and co-founder of Apple inc
Steve Gary Wozniak
Stephen Gary Wozniak was an American computer engineer who co-founded Apple Computer with Steve Jobs. Steve Gary Wozniak attended the University of Colorado and later transferred to UC Berkeley, where he received his undergraduate degree in electrical
Engineering and Computing (EECS) in 1987.
Jonathan Ive
Sir Jonathan Ive is an industrial designer and senior vice President of Design at Apple. He has been involved in the design of the iPod, iMac, iPhone, iPad and many other Apple products. Aside from Steve Jobs, he was the most influential person on Apple's
famous products.


Unique database hash ID based on the data model.
The NanoSQL instance this database is attached to.
A query hash split up by tables.
Holds the database data.
Called once to init the database, prep all the needed variables and data models
Recursively freezes a js object, used to prevent the rows from being edited once they're added.
Called by NanoSQL to execute queries on this database.
Undo & Redo logic.
Reverse the state of the database by one step into the past.
Usage: NanoSQL().extend("<")
;
Step the database state forward by one.
Usage: NanoSQL().extend(">")
;
Discover the state of the history system
NanoSQL().extend("?").then(function(state) {
console.log(state[0]) // <= length of history records
console.log(state[1]) // <= current history pointer position
});
The history point is zero by default, perforing undo shifts the pointer backward while redo shifts it forward.
Invalidate the query cache based on the rows being affected
Generated using TypeDoc
The main class for the immutable database, holds the indexes, data and primary methods.
A majority of data moving around for select statements and the like is indexes, not the actual data.
_NanoSQLDB
{NanoSQLBackend}


There are 2 types of labels in LiveCharts, Formatted and Mapped labels.
A Formatted label is useful when there is a direct conversion between the chart value and the label, for example, in the image above, the Y axis has a range of values between 8 and 26, but because of the current formatter, we are able to see 8 as 8.00k items.
This is really easy to achieve, the Axis.LabelFormatter property, stores a function that takes a double value as parameter and returns a string, LiveCharts will use this function every time it needs to display a chart value as string.
MyAxis.LabelFormatter = val => val.ToString("C"); //as currency MyAxis.LabelFormatter = val => val + "°"; //as degrees MyAxis.LabelFormatter = val => val + ".00 items sold"; //or any other custom format
A mapped label is normally useful to map a position with a name, for example when first point belongs to John second to Susan and third one to Charles.
<lvc:BarChart> <lvc:BarChart.AxisX> <lvc:Axis Title="Month" Labels="John, Susan, Charles" /> </lvc:BarChart.AxisX> </lvc:BarChart>
A mapped label means that an axis value will be represented by a string in the Axis.Labels property, Axis.Labels type is IList<string> so when axis value is 0, then the label will be Labels[0], when value eq 1 > Labels[1], value eq 2 > Labels[2], value eq 3 > Labels[3], ..., value eq n > Labels[n].
Notice that if the axis value is greater than Labels.Count an empty string will be returned.
Axis.Labels hides Axis.LabelFormatter, therefore if Axis.Labels is not null then labels will be pulled from Axis.Labels, if Axis.Labels is null then LiveCharts will use the formatter, if both are null then the raw value will be used as label.
Any time you need a label on every point of your series (as shown in image), set the Series.DataLabels property to true.
If necessary, you can also customize the DataLabel, using the Series.LabelPoint property
new ColumnSeries { Values = new ChartValues<double> { 4, 2, 8, 2, 3, 0, 1 }, DataLabels = true, LabelPoint = point => point.Y + "K" }
Some times your labels are long, and you need to optimize the space, in this case you can rotate any axis labels. You can use any angle, even negatives.
<lvc:CartesianChart Grid.Row="2" Series="{Binding SeriesCollection}"> <lvc:CartesianChart.AxisX> <lvc:Axis LabelsRotation="13" Labels="{Binding Labels}"> <lvc:Axis.Separator> <lvc:Separator IsEnabled="False" Step="1"> </lvc:Separator> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> </lvc:CartesianChart>


Week 4 Phase 0
Map Method
11/1/2014
This week focus on ruby algorithms and learning more about this programming language Ruby. Today I want to talk you about very powerful Enumerable method map. What map method does is goes through every element of collection and preforms a block of code that you give. The map method returns the resolve of that code block as a new array. So let’s take a look at our array from last week called list_favorite_cities which is a list of favorite cities.
list_favorite_cities = ["New York", "San Franciso", "Chicago", "Dallas", "Los Angeles"]
Let’s say we want to make a welcome message for each city. You can do that with by calling the map method on like the following.
welcome = list_favorite_cities.map do |city| "Welcome to #{city}." end
puts welcome
puts list_favorite_cities
What will happen is welcome variable will be set to the new array with all the new elements. So, not only does map perform block of code it also doesn’t change the original collection. There more powerful things you can do with this method but that enough for now.


Ibaka out again for Raptors vs. 76ers, Thomas has finger injury
by Sportsnet StaffForward Serge Ibaka has been ruled out of Monday’s game against the Philadelphia 76ers, while guard Matt Thomas has been diagnosed with a fractured finger, the team announced.
Ibaka is still dealing with a sprained ankle, but he could be back next week.


WITNESS LIST Appropriations Committee February 21, 2001-7:00A Budget On: Bailey Taylor, Shelia (State Office of Administrative Hearings) Bordelon, Rod (Office of Public Insurance Counsel) Brodie, Mike (Texas Real Estate Commission) Brown, Will (State Board of Barber Examiners) Conaway, Michael (Texas State Board of Public Accountancy) Craig, Tim (Texas Racing Commission) Flowerday, Paula (Texas Racing Commission) Fowler, William (Texas Department of Licensing and Regulation) Francis, Brian (Texas Department of Licensing and Regulation) Gillen, Gary (Structural Pest Control Board) Hendricks, Cathy (Texas Board of Architectural Examiners) Holifield, Henry (Texas Cosmetology Commission) Kuntz, Jr., William (Texas Department of Licensing and Regulation) Lacy, Terri (Texas Racing Commission) Landreth, Gordon (Texas Board of Architectural Examiners) Lanford, Lane (Texas Public Utility Commission) Liner, Renil (Texas Appraiser Licensing and Certification Board) Mathis, Benny (Structural Pest Control Board) Maxwell, Robert (Texas State Board of Plumbing Examiners) McClellan, Suzi (Office of Public Utility Counsel) Montemayor, Jose (Texas Department of Insurance) Robbins, Chet (Texas Funeral Service Commission) Runyan, Debra (Texas Appraiser Licensing and Certification Board) Smith, Sandra (Texas Funeral Service Commission) Smith, Sandy (Texas Board of Professional Land Surveying) Taylor, Clare (Texas Cosmetology Commission) Thorburn, Wayne (Texas Real Estate Commission) Wong, Jr., Raul (Texas Board of Professional Land Surveying)


Overview
Package
Class
Tree
Deprecated
Index
Help
PREV PACKAGE
NEXT PACKAGE
FRAMES
NO FRAMES
All Classes
Package com.swarmconnect
Class Summary
NotificationAchievement
NotificationChallenge
NotificationFriend
NotificationGotCoins
NotificationLeaderboard
NotificationMessage
NotificationOnline
NotificationPurchase
Swarm
SwarmAchievement
Contains variables and methods for Swarm Achievements
SwarmAchievement.AchievementUnlockedCB
SwarmAchievement.GotAchievementsListCB
SwarmAchievement.GotAchievementsMapCB
SwarmActiveUser
SwarmActiveUser.FriendRequestCB
SwarmActiveUser.GotCloudDataCB
SwarmActiveUser.GotFriendsCB
SwarmActiveUser.GotInventoryCB
SwarmActiveUser.GotUserCoinsCB
SwarmActiveUser.SaveCloudDataCB
SwarmActivity
SwarmApplication
SwarmConnectivityReceiver
SwarmFacebook
SwarmFacebook.FacebookLoginCB
SwarmLeaderboard
Contains variables and methods for Swarm Leaderboards
SwarmLeaderboard.GotLeaderboardCB
SwarmLeaderboard.GotLeaderboardsListCB
SwarmLeaderboard.GotScoreCB
SwarmLeaderboard.GotScoresCB
SwarmLeaderboard.SubmitScoreCB
SwarmLeaderboardScore
SwarmLeaderboardScore.GotDataCB
SwarmLoginManager
SwarmMainActivity
SwarmMessage
SwarmMessageThread
SwarmMessageThread.GotMessagesCB
SwarmMessageThread.GotNumMessages
SwarmMessageThread.GotThreadsCB
SwarmMessageThread.SentMessageCB
SwarmNotification
SwarmPushListener
SwarmStore
SwarmStore.GotStoreListingCB
SwarmStore.GotSwarmStoreCB
SwarmStoreCategory
SwarmStoreItem
SwarmStoreListing
SwarmStoreListing.ItemPurchaseCB
SwarmUser
SwarmUser.GotUserCB
SwarmUser.GotUserStatusCB
SwarmUserInventory
Enum Summary
SwarmLeaderboard.LeaderboardFormat
The enum for the different available Leaderboard format types.
SwarmNotification.NotificationType
Overview
Package
Class
Tree
Deprecated
Index
Help
PREV PACKAGE
NEXT PACKAGE
FRAMES
NO FRAMES
All Classes


Data Register A (RA)
¶
Schematic
¶
SAP-1 Processor Architecture
Navigation
Contents:
Instruction Set Architecture (ISA)
Hardware Blocks
Clock (CLK)
Data Register A (RA)
Schematic
Data Register B (RB)
Instruction Register (IR)
Arithmetic Logic Unit (ALU)
Random Access Memory (RAM)
Memory Address Register (MAR)
Program Counter (PC)
Output Display (OUT)
Instruction Decoder (ID)
Status Register (SR)
Related Topics
Documentation overview
Hardware Blocks
Previous:
Clock (CLK)
Next:
Data Register B (RB)
Quick search


Voting
{{ btn_action }} voting
Results
{{ yes_votes }} people voted yes
{{ no_votes }} people voted no
Voting in progress
Voters
{{ voter }}


This message was intended for {{customer_email}}. This message has been automatically generated, please do not reply to this message as PowellTech will not receive it. If you did not request a password reset, please contact us to ensure the integrity of your account security is preserved. Please feel free to review the PowellTech Terms of Service and Privacy Policy.
Copyright © 2019 Powell Industries
All Rights Reserved.


Select your favorite Cheese:
Pressing the submit button will confirm your selection for your favorite cheese.


STARGATE A film review by Jeffrey Graebner Copyright 1994 Jeffrey Graebner
For virtually everyone, there are a few films that fit into the "guilty pleasure" category. These are movies that are clearly not very good, but which you still enjoy against your own better judgement. STARGATE is just such a film.
The storyline of this film is completely ludicrous. The film opens in the 1920s with the discovery of an unusual artifact in the Egyptian desert. It then jumps to the present day where the military is involved in a scientific analysis of this artifact (the movie never bothers to explain where the artifact had been for the last 70 years). They bring in controversial but brilliant Egyptologist Dr. Jackson (James Spader) who quickly figures out that the artifact is a "stargate" allowing for instantaneous interstellar travel. Soon, Dr. Jackson is going along on a mission led by suicidal Col. O'Neil (Kurt Russell) to the "other side of the known universe". On the other side, they discover a race of enslaved humans being ruled by an alien posing as the sun god Ra (Jaye Davidson). In the process, we learn the "true" origins of the Great Pyramids.
Obviously, this story sounds pretty ridiculous in print. It doesn't make much more sense in the film itself. In fact, a large part of the film's entertainment value comes from watching to see how much more ludicrous the plot can become. Just when you think the film has reached a new height of silliness, it manages to come up with some new ridiculous idea. As silly as it all is, everyone involved in the film seems to be taking it completely seriously. The result probably works much better than it would have if the filmmakers had acknowledged the silliness of the plot and tried to play it for laughs. Some of the fun here comes from the fact that you will likely be laughing at things that weren't really meant to be funny.
Even with an extremely badly written role like he has here, James Spader still manages to come out of the film with some dignity intact. In order to indicate that he is an intellectual, but a bit of a dweeb, Spader is made up to have an almost frightening resemblance to John Denver. He is one of those ultra-brilliant movie scientists who can come in and immediately solve puzzles that other scientists have been struggling with for years. He also has outlandish theories that can clear a conference room in a moment but which, of course, must turn out to be completely true. Spader is asked to give bizarre speeches containing all kinds of technological buzzwords, do lots of bumbling stunts (including being dragged across the desert by a strange alien pack animal), translate and occasionally speak extinct Egyptian dialects, participate in one of the most awkward love stories of recent memory, and to frequently act indignant at the soldiers' behavior (thankfully, he is never required to start singing "Rocky Mountain High"). Despite all this, Spader still remains likable and even comes close to creating a believable character.
Russell, on the other hand, is given an incredibly cliched role and does virtually nothing with it. Early in the film, we are told that Russell's character had a son who was accidentally shot.  With those two little bits of information, you can probably correctly guess >everything< that Russell is going to do in this movie. In general, Russell seemed bored like he didn't really want to be there during most of the movie.
Most of the publicity about Jaye Davidson's role in THE CRYING GAME seemed to revolve around his character's secret, but that largely ignored the fact that he gave a genuinely powerful and moving performance in that film. Unfortunately, his role here indicates that he may be doomed to stunt casting from now on. Despite the fact that he is prominently featured in much of the promotional material for the film, Davidson doesn't even appear until about ninety minutes into the movie (which runs just under two hours). All of his dialogue is electronically enhanced and is in the film's version of ancient Egyptian. The majority of his "performance" is really just posing for the camera instead of acting. Hopefully, somebody will eventually find Davidson another role with some depth, but this movie certainly isn't it.
Obviously, the storyline here does not live up to any kind of close scrutiny. If you try to look for logic here, you will likely never find it. At the top of the list of implausibilities is Spader's incredible ability to instantly read, speak, and understand ancient Egyptian dialects, even if he has never encountered them before. I guess that it is somewhat courageous of the filmmakers not to have all the aliens speak English, but they still take the easy way out by allowing Spader to become a human "universal translator". Another major implausibility is the fact that the civilization on the other planet seems to be technically way ahead of Earth, but that the humans on the other side of the stargate do not seem to have evolved one bit in thousands of years.
Another major problem with this film is the unfortunate cliches involved in the portrayal of the military. Screenwriters Roland Emmerich (who also directed) and Dean Devlin seem to have based the soldiers on those from other paranoid science fiction movies. Particularly during the early scenes, the soldiers seem rather cruel and heartless, showing virtually no wonderment about their journey. Of course, the film eventually ends up turning into a massive shoot-em-up, but it sure would have been nice if it had taken a more surprising direction.
Emmerich's direction of the film is a bit better than his screen-writing. The film moves at a very brisk pace and is certainly never dull. The whole movie is infused with a misguided but infectious energy. It is as if Emmerich realized how ridiculous the story was and thus felt that it would help to have everyone >really< work hard to sell it. In a way, this almost works. At times, Emmerich's direction seems a bit amateurish, though. Some of the action sequences are shot so confusingly that it is really difficult to tell what is happening (particularly surprising since the movie seems to have only about five or six bad guys...) As mentioned earlier, the romance between Spader and a native girl is also handled awkwardly, largely as an afterthought.
The production values of the film are generally quite good. There are some really neat looking CGI special effects (particularly the sequences where the characters travel through the stargate) which are generally quite convincing. Karl Walter Lindenlaub's Panavision photography is also good with some really nice desert vistas. David Arnold's music score is not particularly original (it seems to borrow from a number of other science fiction scores), but it is sufficiently rousing and effective. The soundtrack has a lot of bass and makes extensive use of surround sound, so it is probably best to see the film in a theater with the best possible sound system.
STARGATE certainly is not a very good film, but it is generally an enjoyable one. Much of the enjoyment comes from laughing at the film's ineptitude, a fact that likely would not please the filmmakers, but that doesn't change the fact that the movie will provide a generally good time.
-- Jeffrey P. Graebner Columbus, Ohio
.
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


RELATED RECIPES
- Amazing Chocolate Chip Cookies!
- Beer and Pretzel Chocolate Chip Cookies
- Bisquick® Chocolate Chip Cookies
- Browned Butter and Coconut Chocolate Chip Cookies
- Buttery Chocolate Chip Cookies
- Cherry Chocolate Chip Cookies
PREP TIME
45 Min
TOTAL TIME
45 Min
SERVINGS
A LOT
INGREDIENTS
- 1 and 1/2 cups (3 sticks) butter, softened
- 1 cup brown sugar
- 1 cup granulated sugar
- 1 Tbl vanilla instant pudding powder
- 2 Tbl milk
- 2 Tbl vanilla extract
- 2 eggs
- 4 cups all-purpose flour
- 2 tsp baking soda
- 1/2 tsp salt
- 4 cups chocolate chips
How to Make Mama’s Recipe: The Best Chocolate Chip Cookies
- Preheat oven to 350 degrees.
- Beat butter, granulated sugar, and brown sugar together until light and fluffy.
- Stir in pudding powder, milk, and vanilla extract.
- Beat in eggs.
- Add remaining dry ingredients (flour, salt, baking soda) and stir until combined.
- Stir in chocolate chips.

- Bake 8-10 minutes, or until golden brown.
EXPERT TIPS
Use an ice-cream scoop to make perfectly shaped cookies. Level off the dough on the edge of the bowl for perfectly round cookies. If you didn't think these cookies could get any better, think again! Get creative use with 1/2 cup each of semisweet chocolate chips, peanut butter chips or butterscotch chips instead of the 2 cups semisweet chocolate chips. OMG these are good!
Got questions? Our experts have the answers.
Email Us
NUTRITION INFORMATION
Probably bad for you, but who cares. MMMMMM COOKIES!!!! nom nom nom
This recipe was altered from Open Source Recipe (http://www.opensourcefood.com/people/Amanori/recipes/mamas-recipe-the-best-chocolate-chip-cookies). For more recipes, go here.


Logout
My result chain
Reports
Admin area
Components
Result chains
Indicator bank
Users
Churches
Countries
Areas
Configurations
New report
Report
Report title
Missional mindset trainings faciliated
Reporting date
Youtube video URL
Photos
Drag & Drop
or
click here to browse
Save report
Add new indicator
×
Indicator settings
Indicator type
Numeric
Cause and Effect
Source
New curches planted
Trainings faciliated
Mission health checks done.
Add new indicator
×
Indicator settings
Indicator type
Numeric
Cause and Effect
Add indicator
×
Add from indicator bank
This is item 1
This is item 2
This is item 3
Or create new
Add new


--- layout: post title: 'Three key open questions: 1) Will the media pool choose to put their video of the debates in the public domain, so folks can freely blog key moments and share them without fear of being deemed a lawbreaker? 2) Will Tom Brokaw use some bottom-up debate questions collected and voted on on Google’s site, in addition or in place of the top-down ones the Commission collected? 3) Will the Commission adopt these principles for future debates, now that the candidates from both major parties embrace them?' date: '2008-10-07T08:05:58-07:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/53467846/three-key-open-questions-1-will-the-media-pool ---
Three key open questions: 1) Will the media pool choose to put their video of the debates in the public domain, so folks can freely blog key moments and share them without fear of being deemed a lawbreaker? 2) Will Tom Brokaw use some bottom-up debate questions collected and voted on on Google’s site, in addition or in place of the top-down ones the Commission collected? 3) Will the Commission adopt these principles for future debates, now that the candidates from both major parties embrace them?—Obama reaffirms support for “open debates” (Lessig Blog)


Home
Search
Return a book
Register new student
Add new book
Serach for books
Select category:
All
Computer Science
Drama
Law
Enter Title:


Front-End Developer, with practical experience in project managment, infrastructure management of LAMP, WAMP, VMware vSphere, devoted to simplifying and optimizing everything.


Tito vs. Alberto pay-per-view main card finalized with new fight addition
by MMA Fighting NewswireThe main card for the upcoming Combate Americas pay-per-view featuring Tito Ortiz against Alberto “El Patron” Rodriguez has been finalized with the addition of a new bout just announced on Wednesday.
Combate Americas officials announced Levy Marroquin will face off with Enrique Gonzalez in a featherweight bout that will join the main card for the show taking place in McAllen, Texas.
The card officially titled “Tito vs. Alberto — What Side Are You On?” goes down on Dec. 7 from the Payne Arena with Ortiz returning from retirement to “El Patron”, who is a former WWE superstar previously performing under the name “Alberto Del Rio”.
“El Patron” was also an active mixed martial artist during much of his professional wrestling career including a notable fight against Mirko Cro Cop in PRIDE when he competed under the name Dos Caras Jr. He suffered a first round knockout in that fight.
“El Patron” hasn’t fought since 2010 and he currently stands with a 9-5 record overall.
As for Ortiz, he’s coming off a knockout victory over Chuck Liddell from the lone Golden Boy MMA card that took place last year.
Combate Americas also added two more preliminary card fights to the show including Jose Flores vs. Ismael Bonfim and Ricky Palacios vs. Jose Ceja.
Here is the full main card for the Tito vs. Alberto pay-per-view:
Catchweight (210lbs) main event: Tito Ortiz (20-12-1) vs. Alberto “El Patrón” Rodriguez (9-5)
Strawweight title fight: Melissa “Super Mely” Martinez (6-0) vs. Desiree “Dirty Dez” Yanez (5-1)
Dani Barez (11-4) vs. Joby Sanchez (13-5)
Levy “El Negro” Marroquin (12-3) vs. Enrique “Baby Bull” Gonzalez (8-3)
Gaston “Tonga” Reyno (8-2, 2 NC) vs. Angel “Tito” Cruz (6-4)
“Sexy” Dulce Garcia (1-0) vs. Marisol Ruelas (1-2)
Preliminary card:
Jose “Luke” Flores (8-1) vs. Ismael “Marreta” Bonfim (13-3)
Ricky “El Gallero” Palacios (11-2) vs. Jose “The Ghost” Ceja (4-5)


SCJP Reading Notes - 3
| |Summary
It is reading notes about the book – SCJP.
Assignments
Stack v.s Heap
Stack: Local variable(method variable/automatic) lives
Heap: Objects and instance variable live
Primitive Casting
a. narrowing (put a larger thing (like long) into a smaller containers (like short)) requires explicit cast
b. eg:
implicit cast: int a = 100; long b = a; // an int value always fits in a long eplicit cast: float a = 100.001f; int b = (int)a; //the float could lose info
Arrays
a. array elements are always given default values regardless of where the array itself declared or instantiated
b. JVM only needs to know the size of array (the following eg is legal)
int[][] array = new int[3][];
c. primitive array can accept any value that can be promoted implicitly to the declared type of the array.
eg: int[] wl = new int[3]; byte b = 4; char c = 'c'; short s = 7; wl[0] = b; //ok, byte is smaller than int wl[1] = c; //ok, char is smaller wl[2] = s; //ok, short is smaller
d. Arrays of object reference
i. array element could be subclass of declared type ii. if array is declared as an interface, array element could refer to any instance of class that implements the declared interface
Java is passing by value (a copy of the bits representing the reference)
Wrapper class
a. corelates to primitives
b. two fuctionalities
i. primitives can be handled like objects ii. provide unitility methods for primitives(usually conversions)
c. Wrapper objects are immutable
d. All wrapper class(except Character) provides 2 constructors:
i. primitive of the type being constructed ii. String representation of the type being constructed eg: Integer i1 = new Integer(2); Integer i2 = new Integer("2"); Exception: Character, only provides 1 constructor, which takes char argument
Overloading tricks
when an exact method isn’t found, what method JVM looks for?
a.widening (method with smallest arguement that is wider than the parameter) b. autoboxing (int, autoboxing to Integer) c. var-args (int, int ...x)
eg:
widening v.s autoboxing class AddBoxing { static void go(Integer x) {System.out.println("Integer");} static void go(long x) {System.out.println("long");} public static void main(String[] args) { int i = 5; go(i); //output: long---> widening wins } } autoboxing v.s var-args class AddVarargs { static void go(Byte x) { System.out.println("Byte"); } static void go(byte ...x) { System.out.println("byte"); } public static void main(String[] args) { byte b = 3; go(b);// output: Byte --> autoboxing wins } }
d. none of wrapper classes will widen from one to another
Garbage Collection(GC)
a. Java manages memory automatically
b. heap is part of memory where Java obj lives, and it’s the only part involved in garbage collection process.
c. JVM decides when GC run (typically when sense memory running low)
d. how GC work: mark and sweep algorithm
e. when an object is eligible for GC: when no live thread can access it
f. GC cannot guarantee enough memory: if maintain too many live objects –> out of memory
g. writing code that explicitly make object eligible for collection:
i. nulling a reference ii. reassign a reference variable iii. isolate a reference (two instance of same class reference to each other, so no alive thread can access) iv. force GC (System.gc()) // cannot guarantee (reason: 1). JVM may not have implemented this routine (the languagespecification allows this routine to do nothing at all; 2). another thread might grab lots of memory right after you run GC))
fyi.
The GC routines that Java provides are members of the Runtime class(special class that has a single object(singleton) for each program);
The Runtime object provides a mechamism for communicating directly with Virtual Machine, Runtime.getRuntime() –> returns Runtime instance (the Singleton)
h. finalize():
i. allows run some code before object deleted (clean up resources) ii. only called once(at most!) by GC iii. not guaranteed to run, don't put important code iv. may result in save an object from deletion


First pictures of London Bridge 'shooting' after panic fills streets as police swarm on area
BBC correspondent John McManus told BBC News that he had heard several gunshots on London Bridge
by James Rodger, https://www.facebook.com/jamesrodgerjournalistEmergency services have been called to London Bridge amid reports of shots being fired.
The Metropolitan Police said: "We are currently dealing with an incident at London Bridge. Please stand by for updates."
The London Ambulance Service said it had crews at the scene.
BBC correspondent John McManus told BBC News that he had heard several gunshots on London Bridge.
"Just a few minutes ago I was walking across London Bridge on the south bank to the north bank of the bridge," he said.
"There appeared to be a fight going on on the other side of the bridge, with several men attacking one man."
Various social media users also reported hearing gunshots in the area.
One video shows what appears to be police pulling equipment out of a vehicle nearby.
Those in the video can be heard saying: "They've actually got guns out. They've got the guns out."
Political commentator Owen Jones tweeted: "I'm near London Bridge, looks like a bad incident - people running, police yelling 'keep moving', lots of emergency services, area cordoned off. Stay safe everyone."
"Police then quickly arrived, including armed police, and then a number of shots were fired at this man," Mr McManus told BBC News.
"Police have now cleared the bridge, everybody has been told to move back and now on the northern side of the bridge, but there are more shots going on.
"I can't see what's happening now because we've been moved out of the way but there are shots going on, and you probably hear the police sounds as well.
"Everybody has cleared the area, the entire bridge has been moved, and right on the northern part of the bridge, right up until quite near the Bank of England, is being cleared."
Footage posted from inside a passing bus showed armed police pointing guns at a person who appeared to be lying still on the pavement.
The video was posted by Twitter user Amanda Hunter, who wrote: "Someone just shot on London Bridge."
Onlooker Zack Shooter told the PA news agency police almost knocked him over as they ran towards the incident.
"Then loads of cars with sirens all rushed past me at full speed," he added.
A cordon has been set up at Borough Market while evacuation continues from nearby shops and businesses.
Response from officers led scores of people to run down St Thomas' street, though the exact cause of the incident is still unknown.


--- layout: post title: How to Read Long-Form Content on the Web date: 2012-12-13 09:53:35.000000000 -08:00 categories: - technical-writing tags: [] status: draft type: post published: false ---
For example, during a break you check the #techcomm tagged tweets to see if there's anything interesting. An article catches your eye but it's too long to read in a couple of minutes. You click the Read Later bookmarklet on your browser's Bookmark toolbar. Later, you're waiting for your spouse in the mall, and you find a chair. You open Instapaper and read the article.
Here's another example. Scanning your RSS feed, you see an article that you want to read but right now you're in a meeting. You shouldn't be checking your feeds anyway, but the meeting is so boring. You click the Share button at the bottom of the article and Send it to Instapaper. You forget about the article until the next morning, when you wake up earlier and its dark and cold outside but warm in your bed. You open Instapaper and read the article. It takes you 20 minutes to get through the article, but that's okay because you're in the mood to read.
Checking your e-mail in the morning, you see someone has sent you a link to an article they claim you should read. You scan it quickly to get a gist of what it's about, but your busy and have a full day's work ahead of you. You save the article to Instapaper to read later, and then continue working on real projects. Later that night, after you put your kids to bed, you're lying there waiting for one to fall asleep, because they asked you to stay, and while they try to sleep your reading this really long article that you only glanced at in the morning.
I could probably list more examples, but you get the point.


WEEK 9 FRIDAY
Year 1 (Year 2)
FIRST READING Tobit 11:5-17
A reading from the Book of Tobit
In those days: Anna sat looking intently down the
road for her son. And she caught sight of him coming, and said to his father,
"Behold, your son is coming, and so is the man who went with him!" Raphael
said to Tobias, before they approached his father, "I know that his eyes will
be opened. Smear the gall of the fish on his eyes, and the medicine will cause the
white films to fall away. And your father will regain his sight and see the light."
Then Anna ran to meet them, and embraced her son, and said to him, "I have
seen you, my child; now I am ready to die." And she wept. Tobit got up, and came stumbling out through the courtyard
door. But his son ran to him with the gall of the fish in his hand, and holding
him firmly, he blew into his eyes, saying, “Take courage, Father." With
this he applied the medicine on his eyes. Next with both hands, he peeled off
the white films from the corners of his eyes. Then he saw his son and embraced
him, and he wept and said, “Here I see my son, the light of my eyes!” Then he
said, "Blessed be God, and blessed be his great name, and blessed be all his
holy angels. May his holy name be blessed throughout all the ages.
Though he afflicted me, he has had mercy on me. Now I see my son Tobias!"
The word of the Lord
RESPONSORIAL PSALM Psalm 146:1b.2.6c.7.8-9a.9bc-10 (R. 1b)
R. My soul, give praise to the Lord!
My soul, give praise to the LORD; I will praise the
LORD all my life, sing praise to my God while I live.
R. My soul, give praise to the Lord!
It is the LORD who preserves fidelity for ever, who
does justice to those who are oppressed. It is he who gives bread to the
hungry, the LORD who sets prisoners free.
R. My soul, give praise to the Lord!
It is the LORD who opens the eyes of the blind, the
LORD who raises up those who are bowed down. It is the
LORD who loves the just, the LORD who protects the stranger.
R. My soul, give praise to the Lord!
The LORD upholds the orphan and the widow, but
thwarts the path of the wicked. The LORD will reign
for ever, the God of Sion from age to age.
R. My soul, give praise to the Lord!
FIRST READING 2 Timothy 3:10-17
A reading from the second Letter of Saint Paul to Timothy
Beloved: You have observed my teaching, my conduct,
my aim in life, my faith, my patience, my love, my steadfastness, my
persecutions, my sufferings, what befell me at Antioch, at Iconium, and at
Lystra, what persecutions I endured; yet from them all the Lord rescued me. Indeed
all who desire to live a godly life in Christ Jesus will be persecuted, while
evil men and impostors will go on from bad to worse, deceivers and deceived. But
as for you, continue in what you have learned and have firmly believed, knowing
from whom you learned it and how from childhood you have been acquainted with
the sacred writings which are able to instruct you for salvation through faith
in Christ Jesus. All scripture is inspired by God and profitable for teaching,
for reproof, for correction, and for training in righteousness, that the man of
God may be complete, equipped for every good work.
The word of the Lord
RESPONSORIAL PSALM Psalm 119:<IP_ADDRESS>.166.168 (R. 165a)
R. The lovers of your law have great peace, Lord.
Though my foes and oppressors are countless, I have
not swerved from your decrees.
R. The lovers of your law have great peace, Lord.
Truth is the sum of your word; all your just
judgements are eternal.
R. The lovers of your law have great peace, Lord.
Though princes oppress me without cause, my heart
reveres your word.
R. The lovers of your law have great peace, Lord.
The lovers of your law have great peace; no
stumbling block for them.
R. The lovers of your law have great peace, Lord.
I await your salvation, O LORD; I fulfil your
commands.
R. The lovers of your law have great peace, Lord.
I obey your precepts and decrees; all my ways are
before you.
R. The lovers of your law have great peace, Lord.
R. Alleluia. If a man loves me, he will keep my word, says the Lord; and my Father will love him, and we will come to him. R. Alleluia.
GOSPEL Mark 12:35-37
A reading from the holy Gospel according to Mark
At that time: As Jesus taught in the temple, he
said, "How can the scribes say that the Christ is the son of David? David
himself, inspired by the Holy Spirit, declared, 'The Lord said to my Lord, Sit
at my right hand, till I put your enemies under your feet.' David himself calls
him Lord; so how is he his son?" And the great throng heard him gladly.
The Gospel of the Lord.


White House budget officials to defy U.S. House panel's requests for testimony
by Steve Holland(Reuters) - Three officials in the White House Office of Management and Budget will not appear for interviews this week sought by the U.S. House of Representatives as part of an impeachment inquiry into President Donald Trump, an administration official said.
Russ Vought, the budget office’s acting director, will defy a subpoena seeking his deposition testimony on Wednesday, the official said.
Two associate directors of the budget office, Michael Duffey and Brian McCormack, will also not appear for depositions, the official said.


Cleeven
Contractor for Cleeven - working for Monaco Telecom
Role : Web developer
Duration : January 2017 - December 2019
Backend : PHP/NodeJS
Database : MariaDB
Monaco Telecom : July 2017 - December 2019
I was part of a small team developing a CRM in PHP 7 for the swiss provider Salt.
We were also developing a smaller application in NodeJS.
Gemalto : January 2017 - July 2017
I was tasked with maintaining a large codebase mostly written in PHP and often older than 10 years old.
In addition to my coworkors in Monaco, I worked daily in direct collaboration with several teams in Beijing, Prague, Noida (India)
I also had the opportunity to go 3 weeks in India to train local web developers.
Unfortunately, my contract was terminated because the Monaco site has been shut down.
Self-taught 25 years old French developer
PERSONAL SKILLS
WHAT I BRING
A serious and thorough work.
An autonomous, efficient and highly motivated developer.
ABOUT ME
I'm passionate about computers and never settle for the minimum.
I always have an ongoing project on my free time to acquire new skills.
Right now I'm learning how computers are designed and how they work, I believe it's a requirement to be a proficient developer.
I also practice programming in C/C++.
I particularly love nature, animals and sport.
I've mainly played tennis and volley-ball.
Being naturally curious I have an interest in a lot of other things, history and personal development are among them.
TECHNICAL SKILLS
| Beginner | Average | Advanced | Expert | |
|---|---|---|---|---|
| PHP | ||||
| NodeJS | ||||
| C/C++ | ||||
| MariaDB | ||||
| APIs | ||||
| Git | ||||
| Computer architecture |
DIPLOMAS
Graph Search, Shortest Paths, and Data Structures by Stanford University
View my certificate
Divide and Conquer, Sorting and Searching, and Randomized Algorithms by Stanford University
View my certificate
Build a Modern Computer from First Principles: From Nand to Tetris
View my certificate
CS50 : Introduction to Computer Science by Harvard
View my certificate
Baccalauréat S with honours
LANGUAGES
French : Native
English : Fluent


${odfi_name} sent account confirmation entries to you. You can use these amounts to confirm that you own this wallet. The amounts are shown below. No cash was transferred.
${ach_confirmation_amounts_html}
${recipient_transfer_url}


For A Customizable Safety Footwear Program
That Helps Reduce One of The Most Common Employee Injury Risks
• Reduce Slips, Trips and Falls
• Reduced Worker's Comp Claims
• Reduced Footwear Spend
• Reduced Insurance Premiums
• Increased Employee Safety
• Advanced Analytic Tools for Better Tracking/Reporting/Budget Control
Our cutting-edge 3D Foot Scanner at on-site ordering events will detail your employee’s precise foot length, width, arch height, degree of pronation, pressure points and more. This Free Service will help us recommend the best footwear brand and style and orthotic to prevent, treat and correct various foot and body ailments resulting in
• Higher Productivity
• Lower Stress
• Less Pain & Discomfort
• Lower Absenteeism
• Less Risk of Related Injury• Lower Absenteeism
• Less Risk of Related Injury
Our cutting-edge 3D Foot Scanner at on-site ordering events will detail your employee’s precise foot length, width, arch height, degree of pronation, pressure points and more. This Free Service will help us recommend the best footwear brand and style and orthotic to prevent, treat and correct various foot and body ailments resulting in
• Higher Productivity
• Lower Stress
• Less Pain & Discomfort
• Lower Absenteeism
• Less Risk of Related Injury• Lower Absenteeism
• Less Risk of Related Injury
Integrate employee data to better manage, control, and track your program
On-site fittings with our cutting edge 3D foot scanner, powered by Aetrex Technology
Streamline purchasing with these payment options
24/7 Access to downloadable invoices and statements
Temporary or permanent on-site ordering solutions for qualifying accounts
Up to 25% off retail on over 75 brands and 2600 different footwear styles
Always free shipping, and free returns if something just isn’t quite right.
We think you’ll love em. If you don’t, return them in 60 days for a full refund.
On any manufacturer defect when used under normal conditions.


Hangman v0.9.6 Hangman.Pass
Module defines types Pass.key
and Pass.t
Returns result of pass runs as distinguished by initial :start
or subsequent :guessing
modes.
Pass data is a group of the pass size, the letter frequency tally, and relevant data on final word information.
Given a new Hangman
game, initially the words pass is the size of all words in the dictionary of secret length k. As each round proceeds, this is reduced by the Hangman
pattern sequence. It is these remaining possible word set instances that are stored in the cache.
After each player has made their Hangman
round guess, the resultant reduced words pass
data is stored into the Pass.Cache
for access on the subsequent round. The expired pass
data from stale rounds is subsequently removed from the cache
.
Summary
Functions
Removes pass key from ets
Helper to increment pass key
Result routine retrieves the pass
size, tally, possible words, and other data given these cache keys
. Relies on either the Dictionary Cache or the Reduction Engine to compute new pass data
Types
Functions
Specs
result(atom, pass_key :: key, reduce_key :: Hangman.Reduction.key) :: {key, t}
Result routine retrieves the pass
size, tally, possible words, and other data given these cache keys
. Relies on either the Dictionary Cache or the Reduction Engine to compute new pass data
:start
- this is the initial game startpass
, so we request the data from theDictionary.Cache
. The data is stored into thePass.Cache
viaPass.Cache.Writer.write/2
. Returnspass
data type.:guessing
- retrieves the pass data from the last player round and relies onReduction.Engine.reduce/3
to reduce the possibleHangman
words set withreduce_key
. When the reduction is finished, we write the data back to thePass.Cache
and return the newpass
data.


{{ partial "homepage_modules/popular_articles.html" . }}
{{ partial "extra/latest_header.html" }}
{{ partial "homepage_modules/latest_articles.html" . }}
{{ partial "homepage_modules/shine_squad_header.html" }}
{{ partial "homepage_modules/shine_squad_cards.html" }}
{{ partial "extra/join_bar.html" }}
{{ partial "homepage_modules/latest_articles_second_section.html" . }}
{{ partial "extra/read_more.html" }}


The Questions view shows you details of all questions that got asked at a certain point in time. Click on any question for a more detailed breakdown.
The Cell Lines view shows you details of which cell lines failed any at a certain point in time. Click on any cell line for a more detailed breakdown.
The dates view shows you dates on which the questions got asked. Click on any date to see what this website would have looked like on that date.


team zürich
home
menu
about
contact
404!
No delivery to your address!
Ouch, you suck...


Tutorial : Torque Script Event
Objects: VScriptEventTrack, VScriptEvent
A Script Event will call or evaluate a command upon triggering. The command is defined in the Event's "Command" property. Be sure that you verify the validity of the command, as it is not observed by Verve. It can be difficult to identify any errors in the statement, but the most common are parse errors.
If a Script Event Track is added to a Scene Object Group (or derived class), triggered Events will call a method on the object instead of a global function. For example the expression, "Hello World", will evaluate something that looks like this:
// In Scene Object Group. %referenceObject.HelloWorld();
// Not in Scene Object Group. HelloWorld();
The above only affects Events that are set to "METHOD". If an Event is set to evaluate an "EXPRESSION", then the command is evaluated something like this:
eval( %command );
How to Use:
Right-Click on your Group, go to "Add Track" and select "Add Script Event Track".
Right-Click on the Track and select "Add Event".
Select the newly created Event. The Property List window will refresh and inspect the Event. Enter the command to be evaluated in the "Command" property. Note: Be sure to verify the validity of the command, as it is not observed by Verve.


"x" "1" "HASHIMOTO,K AND TANII,H, MUTAGENICITY OF ACRYLAMIDE AND ITS ANALOGUESIN SALMONELLA TYPHIMURIUM, MUTAT. RES. 158(3):129-133, 1985"


We are the Ninth Street North Collective Company & Design Group. A collective agency consisting of our streetwear brand, record label and design group.
Our streetwear brand is "FKN GNXRLY", Our record label is "9th ST N Records" and our design branch handles projects from websites to branding and everything inbetween.
The leader and frontrunner of this operation is ran by founder & owner, Nicholas Powell. I'm a designer from Orlando, FL and use a variety of tools to work with but proficient in the following: Adobe Illustrator CC, Adobe Photoshop CC, Adobe Indesign CC and front end design.


--- layout: post title: (Barely) Birthday Wishes date: '2011-08-17 21:29:06 -0700' mt_id: 1454 blog_id: 1 post_id: 1454 basename: barely-birthday-wishes categories: - personal - observations ---
Every year, I have a ritual I do about a week or so before my birthday: I make my birthday private on Facebook. The reason? I don't want the onslaught of hollow birthday wishes on my wall or in my inbox. Unlike this person, I think birthday recognition on Facebook is worse than not recognizing another's birthday at all.
The author contends that there's very little difference between writing down someone's birthday in a calendar as a prompt for subsequent years and Facebook notifying your friends that it's your birthday today. I emphatically disagree.
A person who takes the time to notice your birthday, write it down somewhere, and then follow through on the day of (or planning ahead if there's lag time) is head and shoulders above entering your birthday into your profile and then Facebook prodding people to make an empty gesture.
Sure you can customize the greeting, and that should be the least you could do. What about taking the time to get a card or a gift or even do something nice for that person? In this day and age of doing the minimum, such effort becomes that much more valuable and appreciated.
So maybe you should take a moment to scour through your Facebook friends and plan something real for their birthdays. Resist the urge to thoughtlessly post something electronic.


Pittsburgh Pawngrabbers
Home
Stream
Blog
Shop
Alexander Shabalov
Atulya Shetty
Awonder Liang
Jennifer Yu
David Itkin
Ed Song
Gabriel Petesch
Mark Heimann
Mika Brattain
Minh Le
Safal Bora
About
We are the Pittsburgh Pawngrabbers! We are part of the Online Pro-Chess League.


Created on
by
pseudo : {{vm.member.username}}
first name : {{vm.member.providerData.first_name || vm.member.firstName}}
last name : {{vm.member.providerData.last_name || vm.member.lastName}}
email : {{vm.member.providerData.email || vm.member.email}}
age : {{vm.member.birth | date:'yyyy'}}
Deleted User


-
Leaving WordPress for GitHub Pages
I’ve been a WordPress user since 2007, continuously maintaining personal writing sites. I grew along with the product, moving from a casual hobbyist suffering through the Famous 5-minute Install to a WordPress professional, making my living from the open source CMS.
-
Creating an ideal epic
What I like most about managing projects with Jira is the level of organization and filtering I can achieve by tagging tickets. As someone who used to keep his CD collection in alphabetical order by artist (with secondary ordering done by year), the tagging options help me structure projects in a deeply satisfying way—except for labels, which totally bite.
-
Hide on mobile: A display: none; allegory
Once upon a time, a traveler entered a nondescript pizza palace. On each of the red-and-white clothed tables were squat shakers of parmesan cheese and crushed red pepper. The air smelled of garlic, oregano, and all the trappings of traditional East Coast pizzerias.
-
Debating opinions is bad communication
Two safe words in web development are “user error.” Something doesn’t work? Not my problem—it’s user error. And while this does happen, it’s also kind of a cop-out.
-
WordPress: In crisis
One of the selling points for (the free software that is) WordPress is its user friendliness. Intuitive, accessible, open—all of these words are at the root of what WordPress is and why it is of such benefit to the publishing world. I largely agree with this.
- Older posts


Change Password
Log out
Homi Bhabha Centre for Science Education
Tata Institute of Fundamental Research
Home
Vote
Cast Vote
Results
Home
Create Vote question
Body
Options
+
Time(s)
Submit
Translation
Time to vote:
seconds
Clear All
Message
Submit
Message Board


*Replication
Redis replication is a very simple to use and configure master-slave replication that allows slave Redis servers to be exact copies of master servers. The following are some very important facts about Redis replication:
Redis uses asynchronous replication. Starting with Redis 2.8, however, slaves will periodically acknowledge the amount of data processed from the replication stream.
A master can have multiple slaves.
Slaves are able to accept connections from other slaves. Aside from connecting a number of slaves to the same master, slaves can also be connected to other slaves in a graph-like structure.
Redis replication is non-blocking on the master side. This means that the master will continue to handle queries when one or more slaves perform the initial synchronization.
Replication is also non-blocking on the slave side. While the slave is performing the initial synchronization, it can handle queries using the old version of the dataset, assuming you configured Redis to do so in redis.conf. Otherwise, you can configure Redis slaves to return an error to clients if the replication stream is down. However, after the initial sync, the old dataset must be deleted and the new one must be loaded. The slave will block incoming connections during this brief window.
Replication can be used both for scalability, in order to have multiple slaves for read-only queries (for example, heavy SORT operations can be offloaded to slaves), or simply for data redundancy.
It is possible to use replication to avoid the cost of having the master write the full dataset to disk: just configure your master
redis.conf
to avoid saving (just comment all the "save" directives), then connect a slave configured to save from time to time. However in this setup make sure masters don't restart automatically (please read the next section for more information).
*Safety of replication when master has persistence turned off
In setups where Redis replication is used, it is strongly advised to have persistence turned on in the master, or when this is not possible, for example because of latency concerns, instances should be configured to avoid restarting automatically.
To better understand why masters with persistence turned off configured to auto restart are dangerous, check the following failure mode where data is wiped from the master and all its slaves:
- We have a setup with node A acting as master, with persistence turned down, and nodes B and C replicating from node A.
- A crashes, however it has some auto-restart system, that restarts the process. However since persistence is turned off, the node restarts with an empty data set.
- Nodes B and C will replicate from A, which is empty, so they'll effectively destroy their copy of the data.
When Redis Sentinel is used for high availability, also turning off persistence on the master, together with auto restart of the process, is dangerous. For example the master can restart fast enough for Sentinel to don't detect a failure, so that the failure mode described above happens.
Every time data safety is important, and replication is used with master configured without persistence, auto restart of instances should be disabled.
*How Redis replication works
If you set up a slave, upon connection it sends a SYNC command. It doesn't matter if it's the first time it has connected or if it's a reconnection.
The master then starts background saving, and starts to buffer all new commands received that will modify the dataset. When the background saving is complete, the master transfers the database file to the slave, which saves it on disk, and then loads it into memory. The master will then send to the slave all buffered commands. This is done as a stream of commands and is in the same format of the Redis protocol itself.
You can try it yourself via telnet. Connect to the Redis port while the server is doing some work and issue the SYNC command. You'll see a bulk transfer and then every command received by the master will be re-issued in the telnet session.
Slaves are able to automatically reconnect when the master <-> slave link goes down for some reason. If the master receives multiple concurrent slave synchronization requests, it performs a single background save in order to serve all of them.
When a master and a slave reconnects after the link went down, a full resync is always performed. However, starting with Redis 2.8, a partial resynchronization is also possible.
*Partial resynchronization
Starting with Redis 2.8, master and slave are usually able to continue the replication process without requiring a full resynchronization after the replication link went down.
This works by creating an in-memory backlog of the replication stream on the master side. The master and all the slaves agree on a replication offset and a master run id, so when the link goes down, the slave will reconnect and ask the master to continue the replication. Assuming the master run id is still the same, and that the offset specified is available in the replication backlog, replication will resume from the point where it left off. If either of these conditions are unmet, a full resynchronization is performed (which is the normal pre-2.8 behavior). As the run id of the connected master is not persisted to disk, a full resynchronization is needed when the slave restarts.
The new partial resynchronization feature uses the PSYNC
command internally,
while the old implementation uses the SYNC command. Note that a Redis 2.8
slave is able to detect if the server it is talking with does not support
PSYNC
, and will use SYNC instead.
*Diskless replication
Normally a full resynchronization requires to create an RDB file on disk, then reload the same RDB from disk in order to feed the slaves with the data.
With slow disks this can be a very stressing operation for the master. Redis version 2.8.18 will be the first version to have experimental support for diskless replication. In this setup the child process directly sends the RDB over the wire to slaves, without using the disk as intermediate storage.
The feature is currently considered experimental.
*Configuration
To configure replication is trivial: just add the following line to the slave configuration file:
slaveof <IP_ADDRESS> 6379
Of course you need to replace <IP_ADDRESS> 6379 with your master IP address (or hostname) and port. Alternatively, you can call the SLAVEOF command and the master host will start a sync with the slave.
There are also a few parameters for tuning the replication backlog taken
in memory by the master to perform the partial resynchronization. See the example
redis.conf
shipped with the Redis distribution for more information.
Diskless replication can be enabled using the repl-diskless-sync
configuration
parameter. The delay to start the transfer in order to wait more slaves to
arrive after the first one, is controlled by the repl-diskless-sync-delay
parameter. Please refer to the example redis.conf
file in the Redis distribution
for more details.
*Read-only slave
Since Redis 2.6, slaves support a read-only mode that is enabled by default.
This behavior is controlled by the slave-read-only
option in the redis.conf file, and can be enabled and disabled at runtime using CONFIG SET.
Read-only slaves will reject all write commands, so that it is not possible to write to a slave because of a mistake. This does not mean that the feature is intended to expose a slave instance to the internet or more generally to a network where untrusted clients exist, because administrative commands like DEBUG
or CONFIG
are still enabled. However, security of read-only instances can be improved by disabling commands in redis.conf using the rename-command
directive.
You may wonder why it is possible to revert the read-only setting and have slave instances that can be target of write operations. While those writes will be discarded if the slave and the master resynchronize or if the slave is restarted, there are a few legitimate use case for storing ephemeral data in writable slaves. However in the future it is possible that this feature will be dropped.
*Setting a slave to authenticate to a master
If your master has a password via requirepass
, it's trivial to configure the
slave to use that password in all sync operations.
To do it on a running instance, use redis-cli
and type:
config set masterauth <password>
To set it permanently, add this to your config file:
masterauth <password>
*Allow writes only with N attached replicas
Starting with Redis 2.8, it is possible to configure a Redis master to accept write queries only if at least N slaves are currently connected to the master.
However, because Redis uses asynchronous replication it is not possible to ensure the slave actually received a given write, so there is always a window for data loss.
This is how the feature works:
- Redis slaves ping the master every second, acknowledging the amount of replication stream processed.
- Redis masters will remember the last time it received a ping from every slave.
- The user can configure a minimum number of slaves that have a lag not greater than a maximum number of seconds.
If there are at least N slaves, with a lag less than M seconds, then the write will be accepted.
You may think at it as a relaxed version of the "C" in the CAP theorem, where consistency is not ensured for a given write, but at least the time window for data loss is restricted to a given number of seconds.
If the conditions are not met, the master will instead reply with an error and the write will not be accepted.
There are two configuration parameters for this feature:
- min-slaves-to-write
<number of slaves>
- min-slaves-max-lag
<number of seconds>
For more information, please check the example redis.conf
file shipped with the
Redis source distribution.


DeepQuestAI
Deepstack Demo
A simple image classification demo with DeepStack AI server.
{% block content %} {% endblock %}
DeepquestAI
DeepStack
© 2018 DeepquestAI


Blacksmith Pinter:
Heavy Armor, eh? Make sure that's what you want, because once I get started, there's no turning back!
"I want Heavy Armor."
"I need to think about it some more."


Vetro
.
space
arrow_upward
arrow_downward
A real-time anonymous community retrospective .
space
for Code Platoon Alumni.


Applications
Canvas
Pathway
Brightspace
Google Drive
Microsoft Email
Useful Links
Workday Canvas Style Guide Transcript Style Guide Colleges and Departments Outcomes and Assessments Old Accessiblity
Katana
Equella
Trello
Accessiblity
Google Chat


Toggle navigation
IMGS
About
Contact
Sign Up
Log In
The Image Gallery
A bunch of beautiful images that I didn't take.


Download a Gocad file over HTTP for the GAB base. It's in an EPSG:3112 projection so it is reprojected to EPSG:3857.
A flat surface elevation is constructed from a WCS, EPSG:3857 request and rendered along with the GAB data.
Navgation Keys
A - Rotate anticlockwise
D - Rotate clockwise
W - Zoom in (also left mouse button)
S - Zoom out (also right mouse button)
R - Tilt towards
F - Tilt away
Are you joking?
That is some old browser you are using. Don't come back until you upgrade to a 3D capable browser.


| Year | Team | Status | Finish | W-L | PPG | PAPG | Margin | TU/G | N/G | BHrd | BPts | PPB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 | Maryland B | D2 | 28 | 1-16 | 22.1 | 232.4 | -210.3 | 1.59 | 0.29 | 27 | 130 | 4.81 |
| 2014 | Maryland B | 13 | 12-7 | 214.5 | 187.9 | 26.6 | 9.26 | 1.74 | 176 | 2480 | 14.09 | |
| 2016 | Maryland B | D2 | 28 | 4-13 | 84.7 | 246.5 | -161.8 | 5.06 | 1.29 | 86 | 690 | 8.02 |
| 2019 | Maryland B | UG | 26 | 8-6 | 181.4 | 178.6 | 2.8 | 8.93 | 2.71 | 125 | 1480 | 11.84 |
ACF Nationals 2010
| Year | Round | Team | Opponent | Result | Score | 10 | -5 | PPB | Packet |
|---|---|---|---|---|---|---|---|---|---|
| 2010 | 1 (Prelims) | Maryland B | Minnesota A | Loss | 5 - 385 | 1 | 1 | 0.00 | Chicago A |
| 2010 | 2 (Prelims) | Maryland B | Chicago B | Loss | 20 - 190 | 1 | 0 | 10.00 | South Carolina + CMU |
| 2010 | 3 (Prelims) | Maryland B | Carnegie Mellon | Loss | 30 - 125 | 2 | 0 | 5.00 | Minnesota A + Chicago B |
| 2010 | 4 (Prelims) | Maryland B | VCU A | Loss | 10 - 505 | 1 | 0 | 0.00 | Carleton + UCLA |
| 2010 | 6 (Prelims) | Maryland B | Yale A | Loss | 20 - 265 | 1 | 0 | 10.00 | Stanford |
| 2010 | 7 (Prelims) | Maryland B | Illinois B | Loss | 20 - 155 | 1 | 0 | 10.00 | Yale + Rutgers |
| 2010 | 8 (Prelims) | Maryland B | George Mason | Loss | 0 - 100 | 1 | 2 | 0.00 | Michigan + Minnesota B |
| 2010 | 9 (Prelims) | Maryland B | Stanford A | Loss | 5 - 450 | 1 | 1 | 0.00 | Editors |
| 2010 | 10 (Prelims) | Maryland B | Carleton | Loss | 50 - 65 | 4 | 0 | 2.50 | Harvard |
| 2010 | 12 (Prelims) | Maryland B | Michigan A | Loss | -5 - 340 | 0 | 1 | NaN | Illinois A + Penn |
| 2010 | 13 (Prelims) | Maryland B | Harvard A | Loss | 0 - 400 | 0 | 0 | NaN | Editors |
| 2010 | 14 (Prelims) | Maryland B | Penn A | Loss | 0 - 390 | 0 | 0 | NaN | Brown A |
| 2010 | 15 (Prelims) | Maryland B | Brown B | Loss | 40 - 195 | 2 | 0 | 10.00 | UCSD |
| 2010 | 17 (Playoffs) | Maryland B | Rutgers | Loss | 50 - 110 | 3 | 0 | 6.67 | No Packet Recorded |
| 2010 | 18 (Playoffs) | Maryland B | Chicago C | Loss | 50 - 125 | 3 | 0 | 6.67 | No Packet Recorded |
| 2010 | 19 (Playoffs) | Maryland B | UCLA | Loss | 30 - 145 | 3 | 0 | 0.00 | No Packet Recorded |
| 2010 | 20 (Playoffs) | Maryland B | VCU B | Win | 50 - 5 | 3 | 0 | 6.67 | No Packet Recorded |
| Year | Team | Player | Games | Tossups | Negs | Pts | PPG |
|---|---|---|---|---|---|---|---|
| 2010 | Maryland B | Logan Anbinder | 17 | 19 | 0 | 190 | 11.18 |
| 2010 | Maryland B | Monica Remmers | 17 | 8 | 5 | 55 | 3.24 |
ACF Nationals 2014
| Year | Round | Team | Opponent | Result | Score | 10 | -5 | PPB | Packet |
|---|---|---|---|---|---|---|---|---|---|
| 2014 | 1 (Prelims) | Maryland B | Columbia A | Win | 210 - 180 | 9 | 2 | 14.44 | Dartmouth |
| 2014 | 2 (Prelims) | Maryland B | Yale A | Loss | 160 - 325 | 7 | 2 | 14.29 | Chicago A + Chicago C |
| 2014 | 3 (Prelims) | Maryland B | Chicago A | Loss | 80 - 475 | 4 | 0 | 10.00 | Illinois + USC |
| 2014 | 4 (Prelims) | Maryland B | Illinois A | Loss | 210 - 300 | 8 | 2 | 17.50 | Ohio State |
| 2014 | 5 (Prelims) | Maryland B | Washington | Win | 210 - 165 | 8 | 0 | 16.25 | Penn A |
| 2014 | 6 (Prelims) | Maryland B | Penn B | Win | 320 - 40 | 13 | 2 | 15.38 | Michigan State |
| 2014 | 7 (Prelims) | Maryland B | WUSTL | Loss | 155 - 180 | 8 | 3 | 11.25 | Yale |
| 2014 | 9 (Prelims) | Maryland B | Alabama | Win | 320 - 55 | 14 | 4 | 14.29 | Harvard |
| 2014 | 10 (Prelims) | Maryland B | Michigan State | Win | 190 - 175 | 10 | 0 | 9.00 | UW + Alberta + Chicago B |
| 2014 | 11 (Prelims) | Maryland B | Berkeley B | Win | 220 - 135 | 10 | 2 | 13.00 | Alabama + Columbia A + B |
| 2014 | 12 (Tiebreaker) | Maryland B | Washington | Loss | 160 - 315 | 8 | 0 | 10.00 | No Packet Recorded |
| 2014 | 13 (Playoffs) | Maryland B | Notre Dame A | Win | 275 - 55 | 13 | 3 | 12.31 | No Packet Recorded |
| 2014 | 14 (Playoffs) | Maryland B | Columbia B | Loss | 170 - 190 | 7 | 2 | 15.71 | No Packet Recorded |
| 2014 | 15 (Playoffs) | Maryland B | Rutgers | Win | 220 - 145 | 9 | 2 | 15.56 | No Packet Recorded |
| 2014 | 16 (Playoffs) | Maryland B | Northwestern | Loss | 170 - 210 | 8 | 2 | 12.50 | No Packet Recorded |
| 2014 | 17 (Playoffs) | Maryland B | Chicago B | Win | 275 - 245 | 10 | 1 | 18.00 | No Packet Recorded |
| 2014 | 18 (Playoffs) | Maryland B | Ohio State | Win | 185 - 160 | 9 | 1 | 11.11 | No Packet Recorded |
| 2014 | 19 (Playoffs) | Maryland B | Berkeley A | Win | 240 - 125 | 10 | 2 | 15.00 | No Packet Recorded |
| 2014 | 20 (Playoffs) | Maryland B | North Carolina | Win | 305 - 95 | 11 | 3 | 19.09 | No Packet Recorded |
| Year | Team | Player | Games | Tossups | Negs | Pts | PPG |
|---|---|---|---|---|---|---|---|
| 2014 | Maryland B | Arun Chonai | 19 | 61 | 1 | 605 | 31.84 |
| 2014 | Maryland B | Dan Puma | 19 | 64 | 12 | 580 | 30.53 |
| 2014 | Maryland B | Sohan Vartak | 19 | 27 | 9 | 225 | 11.84 |
| 2014 | Maryland B | Isaac Hirsch | 19 | 24 | 11 | 185 | 9.74 |
ACF Nationals 2016
| Year | Round | Team | Opponent | Result | Score | 10 | -5 | PPB | Packet |
|---|---|---|---|---|---|---|---|---|---|
| 2016 | 2 (Prelims) | Maryland B | Pittsburgh | Win | 125 - 70 | 7 | 1 | 8.57 | Michigan B + Chicago C + Illinois |
| 2016 | 3 (Prelims) | Maryland B | Stanford A | Loss | 5 - 490 | 1 | 1 | 0.00 | MIT B + Stanford B |
| 2016 | 4 (Prelims) | Maryland B | WUSTL | Loss | 80 - 305 | 5 | 0 | 6.00 | Stanford A + Louisville |
| 2016 | 5 (Prelims) | Maryland B | Ottawa | Win | 175 - 95 | 11 | 1 | 6.36 | Maryland A + McGill |
| 2016 | 6 (Prelims) | Maryland B | Illinois A | Loss | 80 - 250 | 4 | 0 | 10.00 | WUSTL + Virginia |
| 2016 | 7 (Prelims) | Maryland B | Georgia | Loss | 80 - 155 | 5 | 2 | 8.00 | Dartmouth + Chicago B |
| 2016 | 8 (Prelims) | Maryland B | Oklahoma | Loss | 160 - 300 | 7 | 0 | 12.86 | Columbia A + Columbia B |
| 2016 | 9 (Prelims) | Maryland B | Columbia A | Loss | 105 - 355 | 5 | 1 | 12.00 | MIT A |
| 2016 | 10 (Prelims) | Maryland B | Chicago D | Loss | 60 - 230 | 5 | 2 | 4.00 | Michigan A |
| 2016 | 11 (Prelims) | Maryland B | Michigan State | Win | 85 - 40 | 4 | 3 | 15.00 | Berkeley A |
| 2016 | 12 (Tiebreaker) | Maryland B | Michigan State | Win | 170 - 110 | 10 | 2 | 8.00 | Chicago A |
| 2016 | 13 (Playoffs) | Maryland B | Georgia Tech | Loss | 20 - 335 | 2 | 2 | 5.00 | Editors 1 |
| 2016 | 14 (Playoffs) | Maryland B | McGill | Loss | 10 - 330 | 1 | 2 | 10.00 | Editors 2 |
| 2016 | 15 (Playoffs) | Maryland B | Harvard A | Loss | 85 - 295 | 6 | 1 | 5.00 | VCU + Virginia + Oxford |
| 2016 | 16 (Playoffs) | Maryland B | Princeton | Loss | 90 - 205 | 6 | 2 | 6.67 | Editors 3 |
| 2016 | 17 (Playoffs) | Maryland B | Chicago B | Loss | 35 - 335 | 2 | 1 | 10.00 | Editors 4 |
| 2016 | 18 (Playoffs) | Maryland B | Northwestern | Loss | 75 - 290 | 5 | 1 | 6.00 | Editors 5 |
| Year | Team | Player | Games | Tossups | Negs | Pts | PPG |
|---|---|---|---|---|---|---|---|
| 2016 | Maryland B | Weijia Cheng | 17 | 65 | 19 | 555 | 32.65 |
| 2016 | Maryland B | Justin Hawkins | 17 | 11 | 1 | 105 | 6.18 |
| 2016 | Maryland B | Jason Shi | 17 | 10 | 2 | 90 | 5.29 |
ACF Nationals 2019
| Year | Round | Team | Opponent | Result | Score | 10 | -5 | PPB | Packet |
|---|---|---|---|---|---|---|---|---|---|
| 2019 | 1 (Prelims) | Maryland B | Auburn | Win | 225 - 50 | 12 | 3 | 10.00 | Yale A + Michigan |
| 2019 | 2 (Prelims) | Maryland B | MIT A | Loss | 190 - 200 | 9 | 4 | 13.33 | UVA + Rutgers + Chicago B |
| 2019 | 3 (Prelims) | Maryland B | Toronto A | Loss | 140 - 275 | 8 | 2 | 8.75 | McGill + UCLA + Oxford |
| 2019 | 4 (Prelims) | Maryland B | Harvard B | Loss | 140 - 205 | 7 | 2 | 11.43 | Berkeley A + Ohio St |
| 2019 | 5 (Prelims) | Maryland B | Minnesota A | Loss | 160 - 215 | 8 | 2 | 11.25 | Chicago A + Penn St |
| 2019 | 6 (Prelims) | Maryland B | Berkeley A | Loss | 90 - 290 | 5 | 6 | 14.00 | Minn A + Harvard A + B |
| 2019 | 7 (Prelims) | Maryland B | Illinois B | Win | 245 - 125 | 11 | 3 | 13.64 | Florida A + Michigan St |
| 2019 | 10 (Playoffs) | Maryland B | UCLA | Win | 180 - 125 | 8 | 2 | 13.75 | Editors 1 |
| 2019 | 11 (Playoffs) | Maryland B | Yale B | Win | 190 - 130 | 10 | 2 | 10.00 | Editors 2 |
| 2019 | 12 (Playoffs) | Maryland B | Michigan A | Win | 165 - 155 | 9 | 3 | 10.00 | Editors 3 |
| 2019 | 13 (Playoffs) | Maryland B | Chicago C | Win | 205 - 175 | 9 | 5 | 15.56 | Editors 4 |
| 2019 | 15 (Superplayoffs) | Maryland B | WUSTL | Loss | 165 - 250 | 8 | 1 | 11.25 | Editors 6 |
| 2019 | 16 (Superplayoffs) | Maryland B | Oxford A | Win | 230 - 150 | 11 | 0 | 10.91 | Editors 7 |
| 2019 | 17 (Superplayoffs) | Maryland B | Minnesota B | Win | 215 - 155 | 10 | 3 | 13.00 | Editors 8 |
| Year | Team | Player | Games | Tossups | Negs | Pts | PPG |
|---|---|---|---|---|---|---|---|
| 2019 | Maryland B | Vishwa Shanmugam | 14 | 58 | 17 | 495 | 35.36 |
| 2019 | Maryland B | Jack Lewis | 14 | 55 | 21 | 445 | 31.79 |
| 2019 | Maryland B | Jason Shi | 14 | 12 | 0 | 120 | 8.57 |


Candidates
- Vacancies:
- WEB-Designer
- Android Engineer
- HR Manager
- iOS Developer
- Front-End Engineer
- QA Engineer
-
Scott Chisholm
-
Scott Chisholm
-
Scott Chisholm
-
Scott Chisholm
-
Scott Chisholm


Nargis Fakhri's 'I Need A Vacation' Picture Screams 'Wow', Asks Fans An Important Question
by Chetna KapoorBollywood News
Bollywood actress Nargis Fakhri shared a picture from her Maldives vacation on Instagram. The 'Rockstar' actress asked her fans an important question.
Written By Chetna Kapoor | Mumbai | Updated On: November 23, 2019 17:30 IST
Rockstar fame Nargis Fakhri shared a stunning picture in a green & black bikini from her Maldives vacation on Instagram. She captioned it saying she needs a break and wrote, 'Dreaming of a new destination to see'. She further asked her fans an important question: "What’s your favorite place in the world??". Venice, Alaska, Hawaii, Iceland, Israel, Kenya, and New Zealand were some of the options suggested by her fans.
Nargis Fakhri slams pregnancy rumours in a fiery social media rant, details inside
Nargis Fakhri tries stand-up comedy
Nargis Fakhri shared a video on her timeline and wrote: “My first ever stand up comedy setI have a fear of standing on stage in front of people. “Stage fright” i took a comedy class to help me build some confidence to get over this fear. My birthday is coming up and i wanted to make a list of things that scare me so i can beat the fear!! And now i will share it with you!This was me at my most vulnerable! I was shitting my pants up there but i did it! And i want to share my accomplishment with you all. Hope u like it and if you don’t that ok too.”
Nargis Fakhri's 'Amavas' Unveils Its First Look On Halloween
I don't care about trolls and criticism: Nargis Fakhri
She was recently trolled for her weight gain but actress Nargis Fakhri says she does not let online vitriol affect her. The actor, who revealed that she had gained 40 pounds, says she likes to stay away from the limelight when she is not working.  We are too much in limelight. So, during my downtime I like to be relaxed and not focus on these things. If someone thinks that I will get busted with trolls or criticism... Sorry, but it is not going to happen," Nargis told PTI. The 37-year-old actor says she is fine with fewer but interesting films. "I like being in an incognito mode until I have an opportunity to be back with a bang."
(WITH PTI INPUTS)
Get the latest entertainment news from India & around the world. Now follow your favourite television celebs and telly updates. Republic World is your one-stop destination for trending Bollywood news. Tune in today to stay updated with all the latest news and headlines from the world of entertainment.


Records and Classes
The source code for this module: PartI/Records.ard
The source code for the exercises: PartI/RecordsEx.ard
In this module we introduce very useful kinds of definitions: records and classes.
We also discuss the mechanism of coercions.
Records: \new, \cowith, projections, pattern matching
In the previous modules we saw two ways to arrange a sequence of types A1, …, An into a composite type of tuples: Sigma-types \Sigma A1 … An and data types \data Tuples | tuple A1 … An.
For example, a type of pairs of natural numbers can be defined as \Sigma Nat Nat. In this case elements of a pair x : \Sigma Nat Nat are accessed by means of projections x.1 and x.2. Alternatively, one can realize this type as a data type \data NatPair with projections defined by pattern matching:
\data NatPair | natPair Nat Nat
\func natFst (p : NatPair) : Nat
| natPair x _ => x
\func natSnd (p : NatPair) : Nat
| natPair _ y => y
The advantage of Sigma-type option is eta-equivalence: if x : \Sigma Nat Nat, then (x.1, x.2) == x, where == is computational equality. Eta-equivalence doesn’t hold for data types: natPair (natFst x) (natSnd x) is not computationally equal to x, one should prove that they are equal and use transport every time one wants to replace one with the other.
Record types provide the third option:
\record NatPair'
| fst : Nat
| snd : Nat
The major advantage of records over Sigma-types is that they allow to name components, which are called fields: we can write x.fst and x.snd instead of x.1 and x.2. And eta-equivalence also applies to elements of records.
Every field of a record is simply a function that has an instance of the record as its first implicit parameter:
-- fst : \Pi {x : NatPair'} -> Nat
\func foo (p : NatPair') => fst {p}
There is a namespace corresponding to a record, which contains all the fields of the record:
\func foo' (p : NatPair') => NatPair'.fst {p}
The syntax with dot p.snd can only be used to access fields if p is a variable and its type is specified explicitly:
\func bar (p : NatPair') => p.snd
-- (f x).snd -- This is not allowed. It can be replaced with one of the following variants:
-- \let e : NatPair' => f x \in e.snd
-- snd {f x}
-- This code will not typecheck since the type of p is not specified explicitly
-- \func baz {p p' : NatPair'} (q : p = p') => pmap (\lam p => p.fst) q
An element of a record can be created using the keyword \new:
\func zeroPair => \new NatPair' {
| fst => 0
| snd => 0
}
Eta-equivalence for records, thus, means that \new NatPair’ { | fst => p.fst | snd => p.snd } is computationally equal to p:
\func etaNatPair' (p : NatPair') : p = \new NatPair' { | fst => p.fst | snd => p.snd }
=> idp
The pattern matching on variables of record types can be done using the same tuple patterns as used for pattern matching on variables of Sigma-types:
\func sum (p : NatPair') => fst {p} + p.snd
\func sum' (p : NatPair') : Nat
| (a, b) => a + b
If we want to define a function that returns an element of a record, we can do this by means of copattern matching using the keyword \cowith:
-- This function is equivalent to zeroPair defined above.
-- \cowith is followed with a set of clauses, each starting
-- with | and specifying a field and its value
\func zeroPair' : NatPair' \cowith
| fst => 0
| snd => 0
Exercise 1: Define the function swap, which swaps components in pairs, in several ways: a) using \cowith and field access, b) using \new and pattern matching, c) using \new and field access.
Exercise 2: Prove that swap (swap p) = p.
Partial implementation
Given a record, it is possible to form new records out of it via partial implementation, that is by means of assigning values to some of its fields. If C is a record with fields f1, …, fn, then C { | f_{i_1} => e_{i_1} … | f_{i_k} => e_{i_k} } is a record formed by elements of the record C, where corresponding fields are implemented accordingly.
For example, NatPair’ { | fst => 0 } is the type of elements of the record NatPair’, whose first component is 0. This type is, thus, equivalent to the type Nat. We call such types anonymous extensions.
\func PartialEx : \Type => NatPair' { | fst => 0 }
\func ppp : NatPair' { | fst => 0 } => \new NatPair' { | snd => 1 }
Anonymous extensions of a record are subtypes of the record. If p is of type of the form C { … }, where the subset F of fields of C is implemented, then p is also of type of the form C { … }, where fields from a subset F’ of F are implemented and these implementations agree with the implementations in the former case. For example:
\func partial (p : NatPair' { | fst => 0 | snd => 1 }) : PartialEx => p
\func PartialEx' => NatPair' { | fst => 3 | snd => 7 }
The operator \new can be applied to any expression that evaluates to a record or its anonymous extension provided all fields are implemented. For example:
\func new => \new PartialEx'
Parameters, visibility of fields
Record types can have parameters:
\record Pair (A B : \Type)
| fst : A
| snd : B
Elements of such records can be created using \new or \cowith as before:
\func pairExample : Pair Nat (Nat -> Nat)
=> \new Pair { | fst => 1 | snd (x : Nat) => x }
Actually parameters of a record are also its fields. The example above can be equivalently rewritten as follows:
\func pairExample'
=> \new Pair { | A => Nat | B => Nat -> Nat | fst_ => 1 | snd_ (x : Nat) => x }
\func pairExample''
=> \new Pair Nat (Nat -> Nat) 1 (\lam (x : Nat) => x)
There is (almost) no difference between fields and parameters. In particular, it is perfectly fine to define all fields as parameters. For example, the following is an equivalent version of NatPair:
\record NatPair'' (fst'' snd'' : Nat)
\func natPair''ex => \new NatPair'' {
| fst'' => 0
| snd'' => 0
}
And, conversely, the type Pair has equivalent definition without parameters:
\record Pair'
| A : \Type
| B : \Type
| fst : A
| snd : B
Dependent records, a type of positive natural numbers
Records can be dependent, that is fields can depend on previous fields. This makes them fully equivalent to Sigma-types, the only difference is that components of a record are named.
For example, the set of positive natural numbers { n : Nat | T (isPos n) } can be expressed as Sigma-type \Sigma (n : Nat) (T (isPos n)) or as a record:
\data Bool | true | false
-- compare this definition of T with the one in module Basics
\data T (b : Bool) \with
| true => tt
\func isPos (n : Nat) : Bool
| 0 => false
| suc _ => true
\record PosNat (n : Nat) (p : T (isPos n))
Exercise 3: Prove that the type PosNat 0 is empty, but the type PosNat 1 is not.
Exercise 4: Define the \record consisting of pairs of coprime natural numbers. Define the type of natural numbers that are coprime with 60.
Monoid
Another example of dependent records – the type of monoids. We define this type as a class using keyword \class instead of \record. Classes are very similar to records and almost equivalent to them. But there are some nice features that classes have and records don’t. We will discuss classes in more detail below.
\class Monoid (A : \Type)
| id : A
| \infixl 6 * : A -> A -> A
| *-assoc (x y z : A) : (x * y) * z = x * (y * z)
-- | *-assoc : \Pi (x y z : A) -> (x * y) * z = x * (y * z)
| id-left (x : A) : id * x = x
| id-right (x : A) : x * id = x
\func baz (m : Monoid Nat 0 (Nat.+)) => m.*-assoc
Classes and records can extend other records and classes. Some fields can be implemented in these extensions, this is useful when all instances of the extension are supposed to implement the field in the same way:
\class CommMonoid \extends Monoid
| *-comm (x y : A) : x * y = y * x
| id-right x => *-comm x id *> id-left x
-- id-right follows from id-left for commutative monoids
We will discuss extensions in more detail below.
Classes, instances
The only difference between classes and records is that there is an instance inference mechanism available for classes. This mechanism is analogous to the one in Haskell.
Global instances of a class can be defined using \instance keyword. For example, there are two natural instances of the class Monoid for natural numbers: monoid on + and monoid on *.
\instance +-NatMonoid : Monoid Nat
| id => 0
| * => Nat.+
| *-assoc => {?}
| id-left => {?}
| id-right => {?}
\instance *-NatMonoid : Monoid Nat
| id => 1
| * => Nat.*
| *-assoc => {?}
| id-left => {?}
| id-right => {?}
-- alternative definition of the latter:
\instance *-NatMonoid' : Monoid Nat 1 (Nat.*) {?} {?} {?}
The first explicit parameter of a class is of special significance and is called classifying field of a class. The classifying field of a class is typically a carrier, on top of which all other fields of the class define some structure. Thus the type of the classifying field is often \Type or \Set. Classifying fields significantly affect the behavior of the instance inference algorithm. Basically, in case there are no local instances, the algorithm searches for a first appropriate global instance (appropriate in the sense that its classifying field coincides with some expected type).
Note, that the type of a class field is determined in the same way as in case of records. For example, for *:
* {M : Monoid} (x y : M.A) : M.A
Consider the following examples:
-- ok, +-NatMonoid is inferred since it was declared the first
-- id-left x here is equivalent to id-left {+-NatMonoid} x
\func +-test (x : Nat) : 0 Nat.+ x = x => id-left x
-- error, because +-NatMonoid is inferred, not *-NatMonoid
\func *-test (x : Nat) : 1 Nat.* x = x => id-left x
Such global instances behave like ordinary functions defined by copattern matching:
\func instEx => +-NatMonoid.id-left
\func instExF (M : Monoid) => M.id
\func instEx' => instExF +-NatMonoid
Arend classes can be used as typeclasses in Haskell. For example, Eq can be written as follows:
\class Eq (A : \Type)
| \infix 3 == (x y : A) : Bool
-- function refl from Haskell can be defined in two ways
-- refl :: Eq a => a -> Bool
-- refl x = x == x
\func refl {A : \Type} {e : Eq A} (a : A) => a == a
\func refl' {E : Eq} (a : E) => a == a
-- \func xxxx => refl 1
Coercions
The classifying field of a class has a number of nice properties. For example, if in some place an element of type X is expected and X is the type of the classifying field of a class C, then any object of type C can be used in this place (the field accessor .X of the classifying field will be added implicitly).
In the following example M in the right-hand side of (x : M) is understood as M.A since an element of type \Type is expected:
\func CF-coerce (M : Monoid) (x : M) => x
This kind of substitutions are called coercions, we say that a class can be coerced to its classifying field. The mechanism of coercions in Arend allows also to define coercions between data types, classes and records. In order to be able to use elements of type A, where elements of type B are expected, one should define a function f : A -> B in the \where-block of either A or B as a coercion by using keywords \use \coerce. Elements a of type A will then be replaced with f a if they are used in a context, where B expected.
Consider the following example:
\data XXX | con
\data YYY | con' XXX Nat | con''
\where {
-- We can define coercions TO this type.
-- The return type of the function must be YYY.
\use \coerce fromXXX (x : XXX) => con' x 0
-- We can also define coercions FROM this type.
-- The type of the last parameter of the function must
-- be YYY.
\use \coerce toXXX (y : YYY) => con
}
\func fff (y : YYY) => y
-- Elements of type XXX are implicitly converted to type YYY by function fromXXX.
\func ggg => fff con
-- Implicit conversion from Nat to Int is done in this way:
\func hhh : Int => 0
Extensions, diamond problem
Records and classes can extend other classes. The list of records and classes extended by a given class can be specified after the keyword \extends as shown in the following example:
\record Base (A : \Type)
\record Base' (A : \Type)
\record X \extends Base
| a : A
\record Y \extends Base'
| b : A
\record Z \extends X, Y
\func zzz => \new Z {
| A => {?}
| a => {?}
| Base'.A => {?}
| b => {?}
}
\func zzzz (z : Z) => Base'.A {z}
This means that the set of fields of a given class (or record) contains all fields declared in the class plus all the fields from the classes and records that it extends.
The record Z in the example above has four fields: Base.A, Base’.A, a and b. But if X and Y both extended the same record, say, Base, then Z would have had three fields:
\record X' \extends Base
| aa : A
\record Y' \extends Base
| bb : A
-- Z' has three fields: aa, bb, A
\record Z' \extends X', Y'
Consider an example from algebra: the type of rings. With a few simplifications, a possible definition might look as follows:
\class Monoid (A : \Type) {
| \infixl 7 * : A -> A -> A
| ide-left (x : A) : ide * x = x
| ide-right (x : A) : x * ide = x
| *-assoc (x y z : A) : (x * y) * z = x * (y * z)
}
\class CommMonoid \extends Monoid {
| comm (x y : A) : x * y = y * x
| ide-right x => comm x ide *> ide-left x
}
\class AbGroup \extends CommMonoid {
| inverse : A -> A
| inv-left (x : A) : inverse x * x = id
| inv-right (x : A) : x * inverse x = id
}
-- We omit distributivity
\class Ring \extends AbGroup
| mulMonoid : Monoid A
In order to distinguish the structure of addition from the structure of multiplication we do not extend Monoid, but add it as a field instead. Note that we explicitly specify the underlying classifying field of mulMonoid so that it matches with the carrier of the ring’s additive group structure.
If we try to define the type of rings that extends class AbGroup for the abelian group of addition and class Monoid for the monoid of multiplication, we will get into trouble: the clash of two monoidal structures. This is called the diamond problem.
-- This is not a correct way to define the class Ring:
-- the structures of addition and multiplication coincide.
\class Ring \extends AbGroup, Monoid
A possible way to make it work is to define another copy of AbGroup that does not extend Monoid:
-- This class does not extend Monoid
\class AbGroup' (A : \Type) {
-- Here all the fields of Monoid, CommMonoid and AbGroup
-- should be repeated
}
\class Ring' \extends AbGroup', Monoid
| Monoid.A => AbGroup'.A -- make sure that classifying fields coincide
This approach is adopted in Arend standard library with one small improvement: algebraic structures extend the same BaseSet class in order to avoid identifications such as Monoid.A => AbGroup’.A above.
Definitions inside classes
It is possible to define functions and data structures inside classes. For example, we can modify the definition of a ring as follows:
\class Ring {
...
\func two => ide + ide
\func square (x : A) => x * x
}
Note that functions are defined inside the class (not in its \where block). The system adds one implicit parameter of type Ring to such functions. Thus, the definition above is equivalent to the following:
\class Ring {
...
} \where {
\func two {this : Ring} => ide + ide
\func square {this : Ring} (x : A) => x * x
}
Classes without classifying fields
It is often necessary to have a group of functions with a common set of parameters. For example, consider the following snippet that defines injective, surjective, and bijective functions and proves their properties:
-- Implementations are omitted
\func isInj {A B : \Type} (f : A -> B) : \Type => {?}
\func isSur {A B : \Type} (f : A -> B) : \Type => {?}
\func isBij {A B : \Type} (f : A -> B) : \Type => {?}
\func IsInj+isSur=>isBij {A B : \Type} (f : A -> B) (p : isInj f) (q : isInj f) : isBij f => {?}
\func IsBij=>isInj {A B : \Type} (f : A -> B) (p : isBij f) : isInj f => {?}
\func IsBij=>isSur {A B : \Type} (f : A -> B) (p : isBij f) : isSur f => {?}
Functions above have 3 common parameters: A
, B
, and f
.
Classes without classifying fields can be used to extract these parameters so that we do not have to type in them for every function.
A class without classifying fields can be defined in two ways: as a class without explicit parameters, or as a class with the keyword \noclassifying.
The example above can be rewritten as follows:
\class Map \noclassifying {A B : \Type} (f : A -> B) {
\func isInj : \Type => {?}
\func isSur : \Type => {?}
\func isBij : \Type => {?}
\func isInj+isSur=>isBij (p : isInj) (q : isInj) : isBij => {?}
\func isBij=>isInj (p : isBij) : isInj => {?}
\func isBij=>isSur (p : isBij) : isSur => {?}
}
Since Map is a class without classifying fields, the system will infer the first available instance of this class whenever one the functions above is invoked:
\func isInj+isSur<=>isBij (m : Map) : \Sigma (isBij -> \Sigma isInj isSur) (\Sigma isInj isSur -> isBij)
=> ((\lam p => (isBij=>isInj p, isBij=>isInj p)), (\lam p => isInj+isSur=>isBij p.1 p.2))
\where \open Map
Of course, a function from the class Map can also be invoked with an explicitly specified instance:
\func id-isInj {A : \Type} : Map.isInj {\new Map (\lam (a : A) => a)} => {?}
Of course, classes without classifying fields can also be extended. For example, if we want to define a few functions about endomorphisms, we can extend the class Map as follows:
\class Endo \extends Map {
| B => A
\func isIdem => \Pi (x : A) -> f (f x) = f x
\func isInv => \Pi (x : A) -> f (f x) = x
\func isIdem+isInv=>id (p : isIdem) (q : isInv) : f = (\lam x => x) => {?}
}
Functor
We conclude by demonstrating another example: the class of functors.
\class Functor (F : \Type -> \Type)
| fmap {A B : \Type} (f : A -> B) : F A -> F B
| fmap-id {A : \Type} (y : F A) : fmap (\lam (x : A) => x) y = y
| fmap-comp {A B C : \Type} (f : A -> B) (g : B -> C) (y : F A)
: fmap (\lam x => g (f x)) y = fmap g (fmap f y)
Exercise 5: Define the class of monads, which extends the class of functors Functor. Define \instance of this class for Maybe.
Exercise 6: Define instances for the class of monads for State and State’.
\record State (S A : \Type)
| state : S -> \Sigma S A
\data State' (S A : \Type)
| state' (S -> \Sigma S A)