Walkthrough Part III: Generate PDF Documentation
After completing Walkthrough Part II: Add API Documentation to the Website, we successfully create a website containing both Conceptual and API documentation. In this section, we will generate PDF files for these articles.
After completing walkthrough part II, our D:\docfx_walkthrough\docfx_project
folder is in the following structure(Download the artifacts HERE):
|- articles
|- images
|- src
|- src2
|- index.md
|- toc.yml
|- docfx.json
Step0. Install prerequisite
We leverage wkhtmltopdf to generate PDF. Download wkhtmltopdf to some folder, e.g. E:\Program Files\wkhtmltopdf\
, and save the executable folder path to %PATH% by: set PATH=%PATH%;E:\Program Files\wkhtmltopdf\bin
.
Note
Alternativeley you can install wkhtmltopdf via chocolatey with choco install wkhtmltopdf
. This will also add the executable folder to %PATH% during installation.
Step1. Add a toc.yml specific for PDF
Current design is that each TOC file generates a corresponding PDF file, TOC is also used as the table of contents page of the PDF, so we create a toc.yml
file specific for PDF under a new folder pdf
, using TOC Include to include content from other TOC files.
- name: Articles
href: ../articles/toc.yml
- name: Api Documentation
href: ../api/toc.yml
- name: Another Api Documentation
href: ../api-vb/toc.yml
Step2. Add pdf section into docfx.json
Parameters are similar to build
section, definitely it is using a different template (the builtin template is pdf.default
), with another output destination. We also exclude TOC files as each TOC file generates a PDF file:
...
"pdf": {
"content": [
{
"files": [
"api/**.yml",
"api-vb/**.yml"
],
"exclude": [
"**/toc.yml",
"**/toc.md"
]
},
{
"files": [
"articles/**.md",
"articles/**/toc.yml",
"toc.yml",
"*.md",
"pdf/*"
],
"exclude": [
"**/bin/**",
"**/obj/**",
"_site_pdf/**",
"**/toc.yml",
"**/toc.md"
]
},
{
"files": "pdf/toc.yml"
}
],
"resource": [
{
"files": [
"images/**"
],
"exclude": [
"**/bin/**",
"**/obj/**",
"_site_pdf/**"
]
}
],
"overwrite": [
{
"files": [
"apidoc/**.md"
],
"exclude": [
"**/bin/**",
"**/obj/**",
"_site_pdf/**"
]
}
],
"wkhtmltopdf": {
"additionalArguments": "--enable-local-file-access"
},
"dest": "_site_pdf"
}
Now, let's run docfx
, and you can find pdf file walkthrough3_pdf.pdf generated under _site_pdf
folder:
Optional Step3. Enable plugins
If you wish to use plugins with pdf as well, you need to add a template
node to the pdf section. It needs to start with the pdf.template
followed by the path to the plugins you want to use:
"template": [
"pdf.default",
"pluginPackages/rest.tagpage.2.31.0/content"
],
Conclusion
In this walkthrough, we build a PDF file according to the TOC file under pdf
folder. Note that TOC plays an important role in PDF generation, it not only determines the files included in the PDF, but also the table of contents page for this PDF file. One TOC file generates one PDF file, so don't forget to exclude TOC files you don't want from docfx.json.


--- layout: default title: Q's tech' 'blog ---
Hi! I'm Quentin. I focus on a little bit of everything. I'll publish related stuff here. Feel free to improve on it using the associated GitHub repository.


WARNING! Read the conditions for the problems in this set very carefully! The type of tree and node structure can change from problem to problem.
Assume that for some binary tree node implementation, a pointer requires P bytes and a data object requires D bytes. Further assume that we are storing a Full binary tree, that the internal nodes are implemented to store only two pointers (no data field), and that the leaf nodes store only a data field. Type a fraction (like "1/2") that represents the fraction of the total space taken up by overhead. Give your fraction in lowest terms.
ANS
The overhead is the space taken up by the pointers to the node's children, as a fraction of all space in the node.
In a full binary tree, half the nodes are leaf nodes and half are internal nodes.
Internal nodes have two pointers, while leaf nodes have only a data field.
The total space is therefore (2*P/2) + (D/2) = P + D/2
and the
overhead is P
. It is probably simpler to think
of it as 2*P + D
total space
and 2*P
overhead.
If you have values like 4/8, reduce to 1/2.


Welcome to Wrox Wrecks Inc. - Junk, We Got It!
Enter your HailStorm User ID:
Enter your HailStorm Service Location:


Formartine boss will call on ex-Cove stars for EK Scottish Cup clash
Paul Lawson's side host Kilby in the third round of the Scottish Cup this afternoon
by Paul Thomson, https://www.dailyrecord.co.uk/authors/paul-thomson/Formartine United gaffer Paul Lawson will call on former Cove Rangers players Daniel Park and Darryn Kelly to plot EK’s Scottish Cup downfall.
Park and Kelly helped sink Kilby in the SPFL play-offs last season and now ply their trade at North Lodge Park.
They are set to line-up against EK on Saturday when the Lowland League side take on United in round three of the Scottish Cup.
Highland League Formartine knocked out Lowland side Gala Fairydean in the last round and gaffer Lawson, the former Ross County and Celtic youth midfielder, said: “Parky and Darryn are both former Cove players, so we’ll definitely speak to them about East Kilbride to get their thoughts, as well as doing our own homework.
“The teams are very evenly matched and both will feel they should be doing better in their leagues. We’ve been inconsistent but having home advantage is always a bonus.
“It will still be a difficult game.”
Lawson is also looking forward to catching up with an old team-mate, in Kilby defender Craig Reid.
He added: “I used to play with Craig Reid when he was at Motherwell and, in our younger days, at Celtic, so it will be good to catch-up with him – but friends go out of the window for 90 minutes in these games.
“This is a great opportunity for both teams to progress and potentially draw a big name.
“We’ve had East Kilbrdie watched a couple of times. They’ve lost their manager since then, but with Jim being part of the old management team anyway, I’m not sure that will change things much.
“It will come down to the players because they’ll see it as a good chance to get a big name out of the hat.”
United in focus
United have Paul Lawson, the former Ross County midfielder, in the hot-seat as their player manager and he is assisted by ex-Aberdeen captain Russell Anderson - also Lawson’s brother-in-law - at North Lodge Park.
Similar to East Kilbride they sit mid-table in their division, occupying eighth place in the Highland League, where they have been runners-up in two of the last four seasons.
They hold the record for the most goals ever scored in the Highland League, notching 137 times in 2015/16.
This season, the goals haven’t been flowing as freely with the side striking 29 times in 11 games.
But they do have the best defence in Highland League, conceding just seven times in their 11 outings.
United are on a good run of form, having lost just once in their last seven games, winning on five occasions. At home, though, they have one win in their last four.
Formartine defeated EK’s Lowland rivals Gala Fairydean Rovers in the last round of the Scottish Cup, winning a replay 2-1 at Netherdale. They saw off Turriff United 5-1 in the opening round.
And striker Garry Wood may be a familiar face to many, given his spells at Ross County and Montrose.


{{ partial "head.html" . }}
{{ partial "nav.html" . }}
404
Coming Soon
Back To Homepage
{{ partial "footer.html" . }} {{ partial "js-init.html" . }}


With JavaScript array variables, we can store several pieces of data in one place. You start an array declaration with an opening square bracket, end it with a closing square bracket, and put a comma between each entry, like this:
var sandwich = ["peanut butter", "jelly", "bread"]
We can access the data inside arrays using indexes. Array indexes are written in the same bracket notation that strings use, except that instead of specifying a character, they are specifying an entry in the array. Like strings, arrays use zero-based indexing, so the first element in an array is element 0
. For example:
var array = [1,2,3]; array[0]; // equals 1 var data = array[1]; // equals 2
Unlike strings, the entries of arrays are mutable and can be changed freely. For example:
var ourArray = [3,2,1]; ourArray[0] = 1; // equals [1,2,1]
An easy way to append data to the end of an array is via the .push()
function.
.push()
takes one or more parameters and pushes them onto the end of the array. For example:
var arr = [1,2,3]; arr.push(4); // arr is now [1,2,3,4]
Another way to change the data in an array is with the .pop()
function.
.pop()
is used to pop a value off of the end of an array. We can store this popped off value by assigning it to a variable. Any type of entry can be popped off of an array - numbers, strings, even nested arrays. For example:
var oneDown = [1, 4, 6].pop();
In the above code, the variable oneDown
now holds the value 6
and the array becomes [1, 4]
.
pop()
always removes the last element of an array. What if you want to remove the first? That's where .shift()
comes in. It works just like .pop())
, except it removes the first element instead of the last. For example:
var oneDown = [1, 4, 6].shift();
In the above code, the variable oneDown
now holds the value 1
and the array becomes [4, 6]
.
Not only can you shift
elements off of the beginning of an array, you can also unshift
elements to the beginning of an array i.e. add elements in front of the array. .unshift()
works exactly like .push()
, but instead of adding the element at the end of the array, unshift()
adds the element at the beginning of the array. For example:
var arr = [1,2,3]; arr.push(0); // arr is now [0,1,2,3]
Please, take the time to read the lesson, before you answer these questions.


WITNESS LIST State Affairs Committee February 17, 1997-2:00P HB 67ommittee Substitute (Hilbert) For: Becky Haskin (Fort Worth City Council) Rep. Henry Cuellar (Self) On: Tom Krampitz (Tx Dist & Co Atty Assn) Registering, but not testifying: For: David Mintz (Tx Apartment Assn.) Karen Kennard (Tx Municipal League) Kate Wedeikes (Self) Tom Martin (Tx Police Chief's Assn.) On: Drew Durham (Office of the Atty. Gen) Thomas J. Patterson (Office of the Atty. Gen) HB 255Committee Substitute (Carter) For: Bob Powell (Denton Co Sheriff's Dpt) Gregory Leveling (Denton Co Sheriff's Dpt) Rep. Mary Denny (Self) On: Michael Powers (General Services Comm.) Registering, but not testifying: For: Ramiro Castellano (Hidalgo Co. Sheriff's D) HB 499 On: Michael Powers (General Services Comm.) HB 600Committee Substitute (Stiles) For: David Clark (SW Region, Astron. Lge.) David Smith (Self) James T. Walker (Big Bend Atron. Society) John Gregory (Self) Kelley Knight (Austin Astron. Society) Rep. Ciro Rodriguez (Self) Rick Kirchhof (Self) On: Bob Templeton (Tx DOT) Karl Burkett (Tx DOT) Registering, but not testifying: For: A. MacRaonuill (Austin Astron. Society) Barbara Walker (Self) Bryan Snow (San Antonio Astron. Asn) David Hans Hough (Self) David McDavid (Limbur Observatory) Edwin Sarratt III (San Antonio Astron. Asn) Rick Frankenberger (San Antonio Astron. Asn) Ronald Dawes (San Antonio Astron. Asn) On: Ruben Solis (Self) Tom Newbern (Tx DOT) HB 679 On: Michael Powers (General Services Comm.)


Validation rules provide a way to check the content of an API. Use any of the provided rules
to check that the API is correct. If the content violates a rule, an issue
will be created to alert the user.
{{ getNumSelectedRules() }} Selected
{{ filteredRules.length }} Results
Active filters:
{{ getFilterLabel(filter) }}:
{{ getFilterValue(filter) }}
No results match the filter criteria
Zero rules matched the provided filters.
Check for conflicting filters and try again.


Mass Effect 3 ∞
First there was Seinfeld, now there is TOP ... the podcast about nothing. Take a listen and enjoy the sultry tones of Bob Martens and Philip Wels as they take you through everything.
First there was Seinfeld, now there is TOP ... the podcast about nothing. Take a listen and enjoy the sultry tones of Bob Martens and Philip Wels as they take you through everything.
Readability is now available on the App Store. I’ve been an Instapaper user for a while now and I was entertaining the idea of trying out Readability just to see what all of the “hubbub” might be about.
However, I’m sticking with Instapaper, and the reason is simple.
Instapaper is not free
I’m not talking about the website, I’m talking about the iOS apps. By not being free, I have some “skin in the game”, a sense that it is going to be around and going to treat me better.
In the future I might try out Readability, but for now, Instapaper is still it.
It is node by Steelcase and it is just about exactly what I would wish for seating in a classroom today. Flexible, designed with technology in mind, it moves, and you can store stuff below the seat and it comes with you. SUCH A GREAT IDEA!
First there was Seinfeld, now there is TOP ... the podcast about nothing. Take a listen and enjoy the sultry tones of Bob Martens and Philip Wels as they take you through everything.
Readability is now available on the App Store. I’ve been an Instapaper user for a while now and I was entertaining the idea of trying out Readability just to see what all of the “hubbub” might be about.
However, I’m sticking with Instapaper, and the reason is simple.
Instapaper is not free
I’m not talking about the website, I’m talking about the iOS apps. By not being free, I have some “skin in the game”, a sense that it is going to be around and going to treat me better.
In the future I might try out Readability, but for now, Instapaper is still it.


George Williams
koha-US member and Past Presidentwww.koha-us.org
USA - Kansas is in the middle.
I am the Next Search Catalog Coordinator at
Northeast Kansas Library System in Lawrence, KS.
117 NEKLS Libraries in the highlighted area.
NEKLS provides many services to all types of libraries in north east Kansas.
The 14 highlighted counties account for approximately 44% of the population of Kansas.
Using Koha since 2008.
Community Koha hosted by ByWater Solutions since 2011.
My life before Kansas
- Originally from Idaho.
- Latah County Library District
- Circulation Manager (2006-2016).
- University of Idaho
- TA and Lecturer (2002-2006).
- Boise Public Library
- Bookmobile Specialist (1997-2002).
- University of Idaho Library
- Student Employee (1996-1997).
- +Bus driver, Restaurant manager, Cook, Dishwasher, Sophisticated man about town.
koha-US
www.koha-us.org
koha-US at KohaCon18
KohaCon18 koha-US presentation
Lots of people attended
KohaCon18 full group photo
KohaCon18 - Portland
KohaCon18 Solving problems
KohaCon18 - Portland
Hanging out at KohaCon18
An update of what koha-US has been doing
koha-US since 2018
Brief recap
koha-US since 2018
KohaCon13
Reno, Nevada
Reno was fun!
Let's get together again soon
Past conferences
Early conference locations
koha-US website
Major website update in 2018/2019
Boring financial stuff
Boring but necessary
Even more boring financial stuff
Wikipedia article on 501(c)3 click here
Tax exempt in USA
koha-US is a tax-exempt organization in the USA
Working together
Collaborate; Learn; Unite!
Monthly meetings
Everything's on Zoom
Links on website
koha-us.org
Calendar with links to meetings on the bottom of every page
Anyone can attend
Everyone is welcomed
YouTube
Archive of many, many meetings
https://www.youtube.com/c/kohaUS
Special interest groups
A group for just about everything
https://koha-us.org/special-interest-groups/
Special Interest Group List
https://koha-us.org/special-interest-groups/
Acquisitions: 3rd Tuesday of the month 1700 UTC
Cataloging: 1st Thursday of the month 1500 UTC
Circulation: 1st Tuesday of the month 1800 UTC
Consortia: 4th Thursday of every odd month 1400 UTC
System administration: 2nd Tuesday of the month 1600 UTC
Web development: 3rd Thursday of the month 1800 UTC
Book and crafting club: Last Wednesday of the month 0100 UTC
Special interest groups
These are all posted on the koha-US calendar with all of our other meetings
https://koha-us.org/special-interest-groups/
Anyone can attend
Everyone is welcomed
YouTube
Special interest group meetings are also archived
https://www.youtube.com/c/kohaUS
Regional user groups
Several groups in different areas
Kansas
NEKLS; SEKLS; CKLS; KanShare
Michigan
Still developing
Intermountain West
LCEI; CLiC; Several Utah Libraries
Texas
Several independent libraries
Communication
Mailing lists; Zoom
Koha development fund
koha-US wants to help fund development
Two goals
We want the development - We are hoping the developer will do more Koha work
2014-2018 Conferences
First koha-US conferences
koha-US 2019
Pueblo, Colorado
koha-US 2019
Our second conference east of the continental divide
Kohathon
Our first 100% online conference
Fresh Perspectives Cancelled
Stupid pandemic!
Online Together
Our fully online 2020 Conference
koha-US 2021
McKinney second try
Past conference presentations
2017 Conference presentation Click here
2019 Conference presentations Click here
2020 Kohathon presentations Click here
2020 Conference presentations Click here
2021 Conference presentations Click here
Every Other Thursday
Videos by a couple of fools
Every Other Thursday
Christopher and George
Every Other Thursday
jQuery
Every Other Thursday
SQL
Every Other Thursday
Send suggestions to<EMAIL_ADDRESS>Mentors
koha-US mentors
Mentors
New people that want help should get help
New officers for 2022
Barbara Johnson, 2022 koha-US president
Giving Tuesday
Koha Q&A
National Library Week
A second Q&A session is planned
Every Other Thursday
We've had some illnesses and some busy months
koha-US 2022
Accepting proposals
koha-US 2022
Location to be determined
Look for our website
Everything you need to know is there
http://koha-us.org
Please join us
Everyone is welcomed to attend
Slides
These slides availale at http://hopperdietzel.org
Slides
These slides availale here https://bit.ly/kohacon21


Ontario Catholic teachers vote 97 per cent for strike, but talks continue
by The Canadian Press, StaffTORONTO - Teachers in Ontario's English Catholic system have voted 97 per cent in favour of a strike.
Ontario English Catholic Teachers' Association president Liz Stuart says the vote sends a message to the government that members won't accept an agreement that would be detrimental to learning and working conditions in schools.
The Catholic teachers are not yet in a legal strike position, and negotiations will continue.
OECTA is now the third of four major teachers' unions whose members are heading toward potential strike action.
High school teachers are in a legal strike position as of Monday, though they won't be off the job that day as they have not yet filed a required five-day notice.
Elementary teachers also voted for job action and will be in a legal strike position as of Nov. 25.


WebML Benchmark
Model
Mobilenet V1(TFlite)
Mobilenet V2(TFlite)
Inception V3(TFlite)
Inception V4(TFlite)
Squeezenet(TFlite)
Incep. Res. V2(TFlite)
SqueezeNet(Onnx)
Mobilenet v2(Onnx)
ResNet50 v1(Onnx)
ResNet50 v2(Onnx)
Inception v2(Onnx)
DenseNet(Onnx)
SSD MobileNet(TFlite)
PoseNet
Framework and backends
Preference
SUSTAINED_SPEED
FAST_SINGLE_ANSWER
LOW_POWER
Iterations
1(warming up) +
Pick Image
Run
(It will take several minutes)


Hey, it's PhoneGap!
Don't know how to get started? Check out PhoneGap Start
- Check isExternalScreenAvailable
- Load local file: secondary.html
- Try to load a missing file (error checking)
- Load remote url: http://tricedesigns.com
- Load HTML
- Invoke JavaScript: document.write("hello world")


{% extends "layout.html" %} {% set title = 'Market - Login' %} {% block content %}
Access the Sony appstore and download camera apps to your computer
Please enter your Sony Entertainment Network credentials. We won't save them on our servers.
Email:
Password:
Not registred yet? Create an account


This may be the name of a person, or of an organisation.
Type in the date and time of the event, like "may 13th, 6pm to 9pm", "january 21st", or "2/1/16 3pm - 5pm". We'll show you exactly when we think that is. Or, tap the following checkbox for different way to set the date.
Type in the names of the guest(s), one per line.
Is there anything else that the guests should know?


Mob Programming Introduction
Outline
What is Mob Programming...
The roles and mechanics
Common questions
Things we have learnt
Roles in Mob Programming...
- Driver Typist
- Navigator Rest of mob
The typist
- Understand
- Ask
- Implement
- Trust
- Learn
The rest of the mob
- Help discover
- Ask questions
- Contribute
- Focus
- Listen
- Anticipate
- Look


import com.sleepycat.db.*;public void flush(DbLsn lsn) throws DbException;
The DbLog.flush method guarantees that all log records whose DbLsn values are less than or equal to the lsn argument have been written to disk. If lsn is null, all records in the log are flushed.
The DbLog.flush method throws an exception that encapsulates an errno on failure.
The DbLog.flush method may fail and throw an exception for any of the errors specified for the following Berkeley DB and C library functions: abort(3), close(3), dbenv->db_paniccall(3), fcntl(3), fflush(3), fprintf(3), free(3), fsync(3), getenv(3), getpid(3), getuid(3), isdigit(3), lseek(3), malloc(3), memcpy(3), memset(3), open(3), sigfillset(3), sigprocmask(3), snprintf(3), stat(3), strerror(3), strlen(3), unlink(3), vfprintf(3), vsnprintf(3), and write(3).
In addition, the DbLog.flush method may fail and throw an exception encapsulating errno for the following conditions:


item 1
item 2
item 3
111
111
222
333
Product Description
^
Replace parchment paper and greasy sprays for baking
Easy to release and clean
Hello Kitty patterns can help to distribute pastry dough equally
* (Spatula not included)
Featured Products
Pasta Machine
Jamie Oliver
1234.8
28888.8
Periodic
Bundle Up
Bundle
Preview
Pasta Machine
Jamie Oliver
8,888.8
2,888.8
Periodic
Bundle Up
Bundle
Preview
Pasta Machine
Jamie Oliver
8,888.8
2,888.8
Periodic
Bundle Up
Bundle
Preview
Pasta Machine
Jamie Oliver
8,888.8
2,888.8
Periodic
Bundle Up
Bundle
Preview
Pasta Machine
Jamie Oliver
8,888.8
2,888.8
Periodic
Bundle Up
Bundle
Preview
Pasta Machine
Jamie Oliver
8,888.8
2,888.8
Periodic
Bundle Up
Bundle
Preview
Product Category
Kitchen
Food
Homecare
Health
Others
Brand
Aires de campo
Jamie Oliver
Rincon Poblano


Summer's here - watch out!
Big Momma's House A Film Review by Michael Redman Copyright 2000 by Michael Redman
No Stars (out of ****)
"It's June," said the walrus to the carpenter, "and it's time to talk of excruciatingly bad movies."
Every summer, the film industry, trusting in the belief supposedly held by P. T. Barnum about how often suckers are brought into this world, dumps a seemingly infinite number of movies into the nation's theaters.
Each of these cinematic offerings, most with a budget roughly equivalent to the GNP of a small industrialized country, are touted as the "Big Summer Blockbuster!" (TM).
There are movies that are hyped as hilarious: you'll be close to a heart attack from laughter. Others are supposed to be the most exciting time you've spent in the dark since your prom date in high school.
Unfortunately the vast majority are better suited for providing an air-conditioned location for napping. The studios are banking on you having so much free time during the warmer months that you'll be willing to fork over a few bucks just to do _something_.
Of course there are the exceptions. Some of the best action films, funniest comedies and even a few exceptional dramas are released while the sun shines. But these are rare.
"Big Momma's House" is not one of these. It's not even an acceptable time-waster. In fact, if it weren't for "Battlefield Earth", it could be in the running for most disappointing film of the season.
 Big Momma's granddaughter Sherry (Nia Long) just might come a'visiting along with millions in bank loot and her escaped convict boyfriend.
When the very large matriarch is suddenly called out of town, Malcolm dons a latex Big Momma suit to try to get Sherry to spill the beans.
You can probably guess the rest: a lot of fat jokes, fart jokes, old woman jokes and then Malcolm falls for Sherry. Not one bit of which is even remotely humorous.
The only potentially funny bits are telegraphed well in advance or have been given away in commercials. It's a fewer-than-one-joke film.
Malcolm's disguise looks like a hyper-inflated Cabbage Patch Kid and could only fool someone who has never seen a human being before.
Even Lawrence who has been amusing in other films, comes across as a low-rent Eddie Murphy. The "real" Big Momma ((Ella Mitchell), a huge feisty woman, would have been a much more interesting star. She's fiery and has some energy about her. On the other hand, Lawrence, despite his padding, is smaller than life.
It's a mystery what director Raja Gosnell had in mind. Perhaps he was attempting to recapture the magic that was his directoral debut: "Home Alone 3".
Supposedly screenwriter Darryl Quarles pitched this with a one-line idea and then went home to write it. The result looks like he never got beyond that one line.
The film reminds me of an extended version of the failed sit-com pilots the networks toss into the television schedules to fill time rather than show reruns -- only not as entertaining.
The best part of this film? It's showing at the new Showplace West and the seats are comfortable.
(Michael Redman has written this column for a very long time and you'd think he'd come to know what to expect when the days get longer. But futile hope springs eternal. Email your tales of better times to<EMAIL_ADDRESS>[This appeared in the 6/8/2000 "Bloomington Independent", Bloomington, Indiana. Michael Redman can be contacted at<EMAIL_ADDRESS>--<EMAIL_ADDRESS>Film reviews archive: http://us.imdb.com/M/reviews_by?Michael%20Redman
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


Welcome
Quest Objectives
- Learn about the value of Puppet and Puppet Enterprise
- Familiarize yourself with the Quest structure and tool
Getting Started
In this quest we'll introduce you to the Learning VM and give you the information you need to get you started on your learning adventure. When you're ready to get started, type the following command:
quest --start welcome
The Puppet Enterprise Learning Virtual Machine
Any sufficiently advanced technology is indistinguishable from magic.
-Arthur C. Clarke
Welcome to the Quest Guide for the Puppet Enterprise Learning Virtual Machine (VM). This guide is your companion to learning Puppet using the Learning VM. You should have started up the VM by now, and have an IP Address for the VM.
Use the IP address to SSH to the VM. We do this for convenience and it's essential for you to get the most out of the Learning VM and this Quest Guide.
If you are logged in directly to the Virtual Machine, please logout from it by typing the following command in the VM's terminal and pressing Enter:
exit
We will now connect to the VM over SSH.
To SSH to the VM, on a Linux system or a Mac, you can open a Terminal application and run the following command:
ssh root@<ip-address>
where <ip-address>
will be replaced by the IP address for your Learning VM that you noted down when setting up your VM.
If you are using a Windows computer, please use an SSH client. We recommend Putty.
Here are the credentials to log in to the Learning VM via SSH:
username: root
password: puppet
Once you're logged in, feel free to take a look around. You will see the Learning VM is fairly typical of a Unix-based operating system. You should be aware though, that some services are running in the background, including the SSH service you're using to access this Learning VM from your own terminal.
We should give you a heads up; since you're logged in to the root
account, which is garnished by the uid => 0
, you carry the mark of a Superuser. Your account gives you the ability to change just about anything you would like in this Learning VM, just as you would if you were tasked with administrating a machine.
By following this Quest Guide, you will learn how Puppet allows you to use these privileges easily and effectively.
What is Puppet?
So what is Puppet, and why should you care? At a high level, Puppet manages your machines' configurations. You describe your machine configurations in an easy-to-read declarative language, known as the Puppet DSL, and Puppet will bring your systems into the desired state and keep them there.
Puppet Enterprise is a complete configuration management platform, with an optimized set of components proven to work well together. It combines Puppet (including a preconfigured production-grade puppet master stack), a web console for analyzing reports and controlling your infrastructure, powerful orchestration features, cloud provisioning tools, and professional support.
It may seem a lot easier to "just run a command" to effect a change in configuration, or perhaps writing a script that executes a series of commands looks like a more effective way to manage the configuration of a system. This is true, as long as you're only concerned about a single change, or changes to a single system. The true power of Puppet is that it allows you to describe all the details of the configuration for multiple machines in a composable manner, and allows you to manage the configuration of multiple machines (think hundreds or thousands) without having to write complicated scripts that are hard to comprehend; or maintaining an inventory of all your systems, and logging in to each system in turn to run the required commands or scripts. Puppet automates the process of configuring your systems and keeping them configured exactly as you need them to be.
But a journey of a thousand miles starts with a single step. This Learning VM will get you started by means of examples that help you configure the VM. While doing the exercises, imagine the possibilities in using what you learn to manage hundreds or thousands of systems in an effortless, intuitive manner!
Task 1 :
Before we dig any deeper, let's check and see what version of Puppet Enterprise we are running on this Learning VM. Type the following command:
puppet -V # That's a capital 'V'
You will see something like the following:
3.4.3 (Puppet Enterprise 3.2.1)
This indicates that Puppet Enterprise 3.2.1 is installed on the Learning VM, which leverages Puppet version 3.4.3. Puppet Enterprise includes more than 40 open source projects, including Puppet, MCollective, PuppetDB, Hiera, and others that we’ve integrated, certified, performance-tuned, and security-hardened to make it a complete solution suitable for automating mission-critical enterprise infrastructure. In addition, it includes several capabilities found only in Puppet Enterprise, including event inspection, supported modules, role-based access control, certification management and VMware cloud provisioning.
What is a Quest?
Up to this point we've introduced you to the Learning VM and Puppet. We'll continue to dive into greater detail about Puppet in future quests. Wait a minute! What's a quest? That's a great question! A Quest is a structured tutorial consisting of a number of interactive tasks that will help you learn about a topic related to Puppet.
Each Quest includes a number of Tasks that give you a hands-on opportunity to apply what you have learned. You have already finished a task by now, since the first task was to execute the puppet -V
command earlier. But how do you keep track of everything as you progress? What if you forget what quest you are on? These are all great questions and that's why we specifically created a 'Quest Tool' for this Learning VM to help you when you're in need.
The Quest Tool
To monitor your status as you progress through these Quests, we've created a quest tool you can use in the Learning VM. However, this quest tool is not part of Puppet itself. We have included this tool in the Learning VM to provide you with real-time feedback as you progress through the many Quests and Tasks on your journey to learn Puppet.
Task 2 :
To explore the command options for the quest tool, type the following command:
quest --help
The quest --help
command provides you with a list of all the options for the quest
command. You can invoke the quest command with each of those options, such as:
quest --progress # Displays details of tasks completed
quest --completed # Displays completed quests
quest --list # Shows all available quests
quest --start <name> # Provide the name of a quest to start tracking progress
Task 3 :
Let's find out how much progress you have made thus far! Execute the following command:
quest --progress
Using the quest tool is entirely optional, but we have also integrated it into the first few quests to help you out if needed.
Typing `clear` into your terminal will remove everything on your terminal screen.
In addition to the quest commandline tool, we have also integrated real-time feedback into the VM, which is displayed in the bottom-right corner of the terminal, as seen in Figure 1.
Figure
Review
In this introductory quest we provided a very high level explanation of what Puppet is, what a quest is, and how to use the quest tool. As you progressed through this quest, you learned about the mechanics of successfully completing a quest by means of completing the associated tasks. We hope you have a general understanding of how to complete a quest and what is in store for you on your learning journey.


ETAbot's goal is to help people do great things, more efficiently.
We believe that realtime updates on task completion are critical to successful project management.


--- title: TIMM's `create_model` function with all it's **kwargs keywords: fastai sidebar: home_sidebar nb_path: "nbs/00c_create_model.ipynb" ---
As you might have guessed from the title, in this tutorial we are going to look at the create_model
function inside timm
and also look at all the **kwargs
that can be passed to this function.
In timm
, the create_model
function is responsible for creating the architecture of more than 300 deep learning models! To create a model, simply pass in the model_name
to create_model
.
import timm
# creates resnet-34 architecture
model = timm.create_model('resnet34')
# creates efficientnet-b0 architecture
model = timm.create_model('efficientnet_b0')
# creates densenet architecture
model = timm.create_model('densenet121')
And so on.. A complete list of available models can be found using timm.list_models()
function.
To create a pretrained model, simply pass in pretrained=True
keyword argument to the timm.create_model
function along with the model name.
import timm
# creates pretrained resnet-34 architecture
model = timm.create_model('resnet34', pretrained=True)
# creates pretrained efficientnet-b0 architecture
model = timm.create_model('efficientnet_b0', pretrained=True)
# creates pretrained densenet architecture
model = timm.create_model('densenet121', pretrained=True)
To get a complete list of pretrained models available in timm
, pass pretrained=True
to timm.list_models()
function.
all_pretrained_models_available = timm.list_models(pretrained=True)
{% include note.html content='Internally, when we set pretrained=True
, timm
get’s the model weights from a URL and set’s these weights as the pretrained weights. For example, for resnet34
, timm
loads the model weights from https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/resnet34-43635321.pth
. ’' %}
All models support the features_only=True
argument for create_model
call to return a network that extracts feature maps from the deepest layer at each stride. It is also possible to specify the indices of the layers to extract the features from using out_indices=[...]
argument.
import timm
import torch
# input batch with batch size of 1 and 3-channel image of size 224x224
x = torch.randn(1,3,224,224)
model = timm.create_model('resnet34')
model(x).shape
feature_extractor = timm.create_model('resnet34', features_only=True, out_indices=[2,3,4])
out = feature_extractor(x)
Can you guess the length of out
if I tell you that out is a list of Tensors?
{% include image.html alt="Resnet34" width="500" class="center" max-width="500" file="/timmdocs/images/resnet34.png" %}
We know that the resnet-34
architecture looks like above. If the 7x7
Convolution Layer at the beginning is considered as Layer-0, can you guess the shapes of features coming out from Layer-1, Layer-2, Layer-3 and Layer-4 where each layer is represented by a different color?
{% include note.html content='This might be a great time to open up a Jupyter notebook and do something like this: ' %}
import torch.nn as nn
import torch
# input batch
x = torch.randn(1, 3, 224, 224)
pool = nn.MaxPool2d(3, 2, 1, 1)
conv1 = nn.Conv2d(3, 64, 7, stride=2, padding=3)
conv2 = nn.Conv2d(64, 64, 3, 1, 1)
conv3 = nn.Conv2d(64, 128, 3, 2, 1)
# feature map from Layer-0
conv1(x).shape
# feature map from Layer-1
conv2(pool(conv1(x))).shape
# and so on..
{% include note.html content='If you’re looking for resources to read about ResNet architecture, here is an excellent resource in FastBook by Jeremy Howard and Sylvain Gugger.' %}
As you might have guessed by now, the output shape of the Feature Map from Layer-2, Layer-3 and Layer-4 should be [1, 128, 28, 28], [[1, 256, 14, 14], [1, 512, 7, 7]
respectively.
Let's see if the results match our expectation.
[x.shape for x in out]
The output shapes of the Feature Maps match our expectation. This way, we can convert any model into a feature extractor in timm
.


Frank Neugebauer
neuggs.github.io
Profile
Frank Neugebauer
There is no "try."
Data scientist, programmer, insurance geek.
Started programming in 1983 on a TRS-80 using BASIC (then Pascal). Have programmed in C, C++,
PowerBuilder, Delphi, Lotus Notes (don't tell anyone), Java, .NET, Python, and R.
Then I took a long stint into the executive ranks. Data science is helping me recover from it.
Sourcerer.io Profile
Programming, Data Science
Python
R (RStudio)
Java
SQL
Apache Spark and Databricks
Skills
P&C Insurance
EDA
Wrangling
Feature Engineering
Big Data


| Interface | Description | |
|---|---|---|
| InfoRecycler | ||
| ParticleCollection | ||
| ParticleIterator | This interface defines the common operations shared by particle collection iterators. |
| Class | Description | |
|---|---|---|
| Particle | This class represents a particle and its properties. | |
| ParticleCollectionType | ||
| ParticleFactory | Each emitter has a particle factory for creating new particles. | |
| ParticleFastArray | Array implementatoin of particle collection, with splicing operation even faster than linked-lists. | |
| ParticleFastArrayIterator | ||
| ParticleList | Linked-list implementatoin of particle collection. | |
| ParticleListIterator | ||
| ParticlePool | This is an object pool for particle objects. |


Verstappen satisfied with opening day in Abu Dhabi
by Joseph TyrrellMax Verstappen finished second and fifth during the opening two sessions of the Abu Dhabi Grand Prix, and despite the contrasting results, the Dutchman is still relatively pleased with the day's work.
Verstappen came second in FP1 at the Yas Marina circuit, setting a time of 1:37.492 only being beaten by Valtteri Bottas. However, in FP2 the Red Bull driver dropped down to fifth as Lewis Hamilton, Charles Leclerc and Sebastian Vettel all improved during the penultimate practice session.
Despite being slightly off the pace in FP2 Verstappen admits he's actually quite satisfied with the day.
"It was okay," said Verstappen in the Red Bull garage.
"There are still a few things that we can look at and that we can improve, but on the whole it was a pretty decent day.
Valterri Bottas topped both sessions and his teammate Lewis Hamilton helped secure a Mercedes one-two. Verstappen admits it is going to be tough to catch them.
"Mercedes still looks very strong but that is not really a big surprise," he added.


Develop: Story and plot elements
You will now write a fictional, yet plausible story that describes how this imagined future 30 years from now came to be. For example, Unicorns are not plausible to exist in 30 years (unless you make a compelling CRISPR argument), but autonomous flying cars are plausible.
The story should describe the evolution of the world as it is now to the world 30 years in the future**,** using characters and dramatic story structure.
Requirements
- Positive content: The result of the plot must be of a positive future.
- Plausible: The story must be in the realm of technological and scientific plausibility.
- Conduct research: Find articles or books that help support the plausible nature of story. For instance, if some new technology is being used, find credible sources that help support it's use in your story.
Document guidelines
Produce a document with the following items:
- Your name
- Date
- Title: Story and plot elements
- Synopsis sentence
- Write your synopsis sentence here.
- Story genre
- In what genre would you like to tell the story? Ensure that the genre supports a story that is plausible and results in a positive future. Avoid fantasy, tragedy, dystopian, and erotica genres. There is an enormous variety of fiction genres. Start with the links below, and investigate further as needed:
- Narrative tropes
- Search through this list of narrative tropes to identify ones you are interested in using. Choose three or more tropes and write a short description for each.
- Settings and environment
- Describe the sights, sounds, smells, etc. In what location are the characters?
- Bibliography
- List any articles, books, websites, or other sources used in your topic research. Use a citation generator to create citations in either APA or MLA format.
- Character list
- List the people who would need to see this story in order for it to become a reality? Who are the decision makers that can make this happen? Who are the organizers, supporters, proponents, and opponents? These people are your characters. Read the character topic for more details.
- Plot structure
- The way it was
- And then one day...
- Raising the stakes
- Moment of change
- World as it is now
Document instructions
- Make a new text document in
.doc
format.
- Write the document according the document guidelines.
- Double-check that you've met all other listed requirements.
Post work to the Studio
Use the exact indicated file format. You must obtain prior approval to deviate from these upload requirements.
- Follow the document instructions.
- Upload the plot document in
.doc
format.


Every time access the Battlelog website I expand the site.
Better version is > 133%;143% on 1920x1080.
Yes...it´s easy CTRL + mouse scroll but i just sharing.Or maybe a feature.
Post edited 1 x times, last by
BrainFooLong
Administrator
BrainFooLong
Administrator
Well, it's not a feature :)
You said it, it's easy for everyone and differs for everyone with a different screen resolution.
And mostly all pages are not 100% optimized for zooming.


Packaging namespace packages¶
Namespace packages allow you to split the sub-packages and modules within a single package across multiple, separate distribution packages (referred to as distributions in this document to avoid ambiguity). For example, if you have the following package structure:
mynamespace/
__init__.py
subpackage_a/
__init__.py
...
subpackage_b/
__init__.py
...
module_b.py
setup.py
And you use this package in your code like so:
from mynamespace import subpackage_a
from mynamespace import subpackage_b
Then you can break these sub-packages into two separate distributions:
mynamespace-subpackage-a/
setup.py
mynamespace/
subpackage_a/
__init__.py
mynamespace-subpackage-b/
setup.py
mynamespace/
subpackage_b/
__init__.py
module_b.py
Each sub-package can now be separately installed, used, and versioned.
Namespace packages can be useful for a large collection of loosely-related
packages (such as a large corpus of client libraries for multiple products from
a single company). However, namespace packages come with several caveats and
are not appropriate in all cases. A simple alternative is to use a prefix on
all of your distributions such as import mynamespace_subpackage_a
(you
could even use import mynamespace_subpackage_a as subpackage_a
to keep the
import object short).
Creating a namespace package¶
There are currently three different approaches to creating namespace packages:
Use native namespace packages. This type of namespace package is defined in PEP 420 and is available in Python 3.3 and later. This is recommended if packages in your namespace only ever need to support Python 3 and installation via
pip
.Use pkgutil-style namespace packages. This is recommended for new packages that need to support Python 2 and 3 and installation via both
pip
andpython setup.py install
.Use pkg_resources-style namespace packages. This method is recommended if you need compatibility with packages already using this method or if your package needs to be zip-safe.
注意
While native namespace packages and pkgutil-style namespace packages are largely compatible, pkg_resources-style namespace packages are not compatible with the other methods. It's inadvisable to use different methods in different distributions that provide packages to the same namespace.
Native namespace packages¶
Python 3.3 added implicit namespace packages from PEP 420. All that is
required to create a native namespace package is that you just omit
__init__.py
from the namespace package directory. An example file
structure:
setup.py
mynamespace/
# No __init__.py here.
subpackage_a/
# Sub-packages have __init__.py.
__init__.py
module.py
It is extremely important that every distribution that uses the namespace
package omits the __init__.py
or uses a pkgutil-style
__init__.py
. If any distribution does not, it will cause the namespace
logic to fail and the other sub-packages will not be importable.
Because mynamespace
doesn't contain an __init__.py
,
setuptools.find_packages()
won't find the sub-package. You must
use setuptools.find_namespace_packages()
instead or explicitly
list all packages in your setup.py
. For example:
from setuptools import setup, find_namespace_packages
setup(
name='mynamespace-subpackage-a',
...
packages=find_namespace_packages(include=['mynamespace.*'])
)
A complete working example of two native namespace packages can be found in the native namespace package example project.
メモ
Because native and pkgutil-style namespace packages are largely compatible, you can use native namespace packages in the distributions that only support Python 3 and pkgutil-style namespace packages in the distributions that need to support Python 2 and 3.
pkgutil-style namespace packages¶
Python 2.3 introduced the pkgutil module and the extend_path function. This can be used to declare namespace packages that need to be compatible with both Python 2.3+ and Python 3. This is the recommended approach for the highest level of compatibility.
To create a pkgutil-style namespace package, you need to provide an
__init__.py
file for the namespace package:
setup.py
mynamespace/
__init__.py # Namespace package __init__.py
subpackage_a/
__init__.py # Sub-package __init__.py
module.py
The __init__.py
file for the namespace package needs to contain
only the following:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
Every distribution that uses the namespace package must include an
identical __init__.py
. If any distribution does not, it will cause the
namespace logic to fail and the other sub-packages will not be importable. Any
additional code in __init__.py
will be inaccessible.
A complete working example of two pkgutil-style namespace packages can be found in the pkgutil namespace example project.
pkg_resources-style namespace packages¶
Setuptools provides the pkg_resources.declare_namespace function and
the namespace_packages
argument to setup()
. Together
these can be used to declare namespace packages. While this approach is no
longer recommended, it is widely present in most existing namespace packages.
If you are creating a new distribution within an existing namespace package that
uses this method then it's recommended to continue using this as the different
methods are not cross-compatible and it's not advisable to try to migrate an
existing package.
To create a pkg_resources-style namespace package, you need to provide an
__init__.py
file for the namespace package:
setup.py
mynamespace/
__init__.py # Namespace package __init__.py
subpackage_a/
__init__.py # Sub-package __init__.py
module.py
The __init__.py
file for the namespace package needs to contain
only the following:
__import__('pkg_resources').declare_namespace(__name__)
Every distribution that uses the namespace package must include an
identical __init__.py
. If any distribution does not, it will cause the
namespace logic to fail and the other sub-packages will not be importable. Any
additional code in __init__.py
will be inaccessible.
メモ
Some older recommendations advise the following in the namespace
package __init__.py
:
try:
__import__('pkg_resources').declare_namespace(__name__)
except ImportError:
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
The idea behind this was that in the rare case that setuptools isn't
available packages would fall-back to the pkgutil-style packages. This
isn't advisable because pkgutil and pkg_resources-style namespace packages
are not cross-compatible. If the presence of setuptools is a concern
then the package should just explicitly depend on setuptools via
install_requires
.
Finally, every distribution must provide the namespace_packages
argument
to setup()
in setup.py
. For example:
from setuptools import find_packages, setup
setup(
name='mynamespace-subpackage-a',
...
packages=find_packages()
namespace_packages=['mynamespace']
)
A complete working example of two pkg_resources-style namespace packages can be found in the pkg_resources namespace example project.


Follow these steps to place a new bid on an alpha:
Click Show Detailed View to see other bids on the order book.
Your bid will be automatically accepted if the alpha has capacity available. Otherwise, your bid will stay on the order book until the next auction.


General discussion about Komodo. For useful links and more info click the pinned messages to the right. DON'T DM @jl777
100 messages
Before 05-Dec-19 12:00 AM
SHossain10-Jul-18 10:16 PM
ComputerGenie10-Jul-18 10:33 PM
@metaphilibert I find it exceptionally difficult knowing exactly what happened and seeing Komodo (both as a team and as a currency) "take the blame" for something that no one that was a part of Komodo in any official capacity even knew about. I find it almost as difficult as to stomach someone forking Komodo, bastardizing the code, and blaming Komodo because they didn't understand the Komodo code. It's a shitshow, to be sure, and I like to keep the record straight, both for posterity and because blaming Komodo for what was done is like blaming Bitcoin for an earthquake on Mars.
i spent a week reading about the cryptocurrency iota and i'm going to present a brief summary of my conclusions here. note that this was a free-time project for me and does not represent the views of anyone i work for.
Likes
181
So iota makes some sort of snapshots to secure their network
Sorry Neymar... Will Be uploading every day for the next month. Tags: ( ignore) World cup memes,neymar flop,neymar memes,World Cup funny,world cup,world cup ...
1
hardcoree11-Jul-18 02:54 PM
hello
1
i was wondering how DPow is implemented and how it can secure the chain from 51% attack
ComputerGenie11-Jul-18 02:57 PM
the short answer is that it acts like "checkpoints" in traditional chains
notaries take an accepted hash from the chain, record it on a "higher chain" (KMD for assets and the like, BTC for KMD), and then record that hash from the higher chain back on to the originating chain
since it happens frequently and notaries are able to block as a low difficulty, notaries don't have to "out hash" a chain in order to produce a block
jl777c11-Jul-18 02:59 PM
as long as the lag in getting the notarization done is less than the number of confirmations require, then it wont be possible to double spend against an exchange: https://komodostats.com/api/notary/summary.json
it isnt 100% protection against all possible 51% attacks, but is certainly much better than not having any notarizations at all. Think of it as "2FA for blockchain"
hardcoree11-Jul-18 03:10 PM
cant the attacker also apply the dpow?
ComputerGenie11-Jul-18 03:12 PM
no, because notary addresses are hard-coded into the protocol and as such only they are allowed (nodes will not accept "notary blocks" from non-notaries)
hardcoree11-Jul-18 03:13 PM
how many nodes are there?
and who controls the nodes?
ComputerGenie11-Jul-18 03:17 PM
64 and they are voted into position by anyone holding KMD coins
1/2 of the nodes 1 year and the other 1/2 the next
we decided against just selling notary spots. you need to be elected by the KMD holders and by and large we ended up with experienced server operators, most not having any large stake
the "collateral" is each operator's reputation and their chances in next year's election, the top half get automatically reelected and even if they arent the incumbents should win about half the spots
so there is strong incentive to do a good job, even if you are only motivated by money
if you are motivated by wanting to create a more secure KMD (as many notaries are), then the money is just a nice bonus
so by making the notaries a human element instead of just numbers, it gives us a qualitatively better group than some random number of masternodes (not that notary nodes are anything like masternodes)
hardcoree11-Jul-18 04:19 PM
How much money is given ? And how does the voting process work ?
jl777c11-Jul-18 04:21 PM
voting is free. a special coin was airdropped for voting. people sent the VOTE coin to their candidate of choice
CryptoHuff11-Jul-18 10:08 PM
I am selling BtcDude.com and BitcoinRoot.com domain names for 0.25 BTC.
[TPUX] Djith Wattignies11-Jul-18 10:11 PM
Who would buy it?
I want to contribute as a notary jl777 .. only hickup is the linux environment that i venture in now.. but it interest me very much.. might be a candidate in a year or so..
hardcoree11-Jul-18 10:32 PM
can i be a notery node?
ResoluteCrypto11-Jul-18 11:39 PM
If you get the votes next year and prove you can perform the job effectively yes. Anyone can
anonanon12-Jul-18 01:06 AM
"...30 notary nodes are automatically re-elected as a result of exemplary service in the previous year. " How exactly does this work? Is it like the top 30 by uptime or some other metric?
PTYX12-Jul-18 01:09 AM
The 30 that have the best track record of notarizations
30 notaries to rule them all.
anonanon12-Jul-18 01:11 AM
Ha ok cool, so it is a trustless selection by the protocol based on info from the chain. There's no person involved in selecting the top 30.
2
ComputerGenie12-Jul-18 01:20 AM
@Deleted User I think what he means to ask and assure himself of is that it's not like james or a handful of team members personally decide who the 30 are (based on likes, friendships, agreements, etc)
anonanon12-Jul-18 01:24 AM
Exactly, ComputerGenie. I think of steem or at least eos as being like that, and I was hoping it might be different with KMD.
anonanon12-Jul-18 01:38 AM
That makes sense. But then the other 30 that are exempt from votes, how does that part go? The dev team manually looks at the blockchain to see which nodes have the best track record of notarizations and then manually enters them into the code for the next fork?
awesome ty
1
so the top 30 performers there are added to the code on github by the devs along with the other 30 elected and 4 dev nodes. Then everybody forks on schedule and uses the updated list. And if there were shady business for whatever reason, it would be obvious because votes and node stats are public.
That all makes sense. Cool, thanks.
Still got one more.
How does KMD deal with a $5 wrench situation where the government tracks down node operators and forces them to do its bidding? 64 is not prohibitively large for something like that imo. Does the 25% POW mining make a notary node attack much more difficult? How many dishonest nodes would someone need to perform the equivalent of a 51% attack?
Sure, I mean I know it seems pretty unlikely.
Wow, interesting. I noticed on the stats page that nodes were pretty evenly distributed around the world.
1
How do we know where the nodes are located anyway?
huh I see.
anonanon12-Jul-18 02:05 AM
Ok, so nodes are elected/auto-chosen by their stats and distributed around the world. No lisk 'cartels', hard for governments to coordinate to take them all down. How about the number of dishonest nodes required to do something like the equivalent of a 51% attack?
anonanon12-Jul-18 02:24 AM
As an aside, I want to mention that I wish there were not official Komodo documentation instructing me on how to enter a Ledger seed phrase into the Agama wallet. Even with the disclaimers, I feel like it is just super taboo and people won't like that. I'm sure you get 'How do I get the rewards on a Ledger?' question all day every day, but I personally think directing them to enter their seed is a mistake.
PTYX12-Jul-18 02:29 AM
I made an official guide and it should be in confluence
We also made a video tutorial. I understand it's not an ideal solution but it is a solution for those who don't want to lose their rewards
The new offline tool can be downloaded here too chainzilla.github.io/kmd-paper-wallet
anonanon12-Jul-18 02:32 AM
That makes sense. Thank you for hearing me out and for your hard work on the project.(edited)
And ty Emmanuel too.
It's worth noting that the youtube comments under the tutorial are from people concerned about exposing the ledger seed. Anyway, I just think it looks bad.
PTYX12-Jul-18 02:48 AM
We appreciate and understand your concern. The ledger integration is a priority and I am working on an Electrum fork with ledger capacity for Komodo. However, that will take time, development, and funds.
I think it's easy to point out the problems but much harder to device the solutions. Since ledger didn't want to play ball we do have to go the route Neo went.
anonanon12-Jul-18 02:49 AM
Oh wow very awesome. I'm so glad to hear that, thank you.
 I am interested in the long term success of this project though, and I'm trying to learn more about how it works.
That's fantastic!
PTYX12-Jul-18 02:53 AM
We estimate to have working prototype in the next 2-3 monthsfor all chains but we did encounter some issues with the BTCP electrum fork. Once it's stable we will begin working on ledger which is already activated, but not tweaked for KMD yet.
anonanon12-Jul-18 02:53 AM
Great news, thank you.
1
PTYX12-Jul-18 02:55 AM
I strongly believe all the ecosystem projects need to come together and help us get these apps where they need to be
anonanon12-Jul-18 02:56 AM
apps like electrum and ledger?
PTYX12-Jul-18 02:57 AM
Yes, or for example even funding. We are now around 9 projects on Komodo
Utrum, monaize, ChainZilla, chainmakers, and so forth
If we combine resources we should be able to help the Komodo core team polish the apps rather quickly
anonanon12-Jul-18 02:58 AM
I like the sound of that
PTYX12-Jul-18 02:59 AM
That's why I decided to go after electrum first before we start working on Agama. It's something that benefits all of us and it's within our grasp
anonanon12-Jul-18 03:00 AM
very nice. I look forward to using it in a few months.


Classique - Jean Paul Gaultier
£46 - 50ml
Eau De Toilette
An oriental classic that harnesses a seductive vanilla with a blast of ginger.
Angel - Mugler
£34 - 50ml
Eau De Toilette
A delicious oriental gourmand that is reminiscent of a mouth-watering dessert.
Alien - Mugler
£56.99 - 50ml
Eau De Toilette
As if it landed from another planet, this woody and wonderful fragrance leaves a powerful, feminine trail.
Chance Eau Tendre - Chanel
£90 - 100ml
Eau De Toilette
Tender, delicate and feminine, Eau Tendre is a perfect more intimate fragrance.
Mon Guerlain - Guerlain
£58.50 - 50ml
Eau De Toilette
An oriental, creamy fragrance that features lavender, vanilla and australian sandalwood.
Gabrielle - Chanel
£62.00 - 50ml
Eau De Parfum
Floral, fruity with a musk that makes this fragrance stand out from the crowd.


--- layout: default ---
Fill out this form to submit a new benchmark result to the website. The data will be submitted via a pull-request on GitHub. Please go to {{ site.links.repo }} to view the pull-request. To upload a new benchmark result with a manual pull request, please follow the manual upload instructions . This form can be populated from an existing result by choosing a result from the table of uploads and then clicking on the "USE AS TEMPLATE FOR NEW SIMULATION" button.


My name is pranabesh kumar I'm a web developer.
Hey, I am a web-developer & a programmer who has an eagerness of learning new skills & tech on all walk of life. i'm an avid reader & learner , Car & bike enthusiast along being street food aficianado.
Download CV


Udacity II
Udacity HTML and CSS Lesson 3 covered:
- Grid-based design
- Building and applying a framework
- Responsive web pages
- Semantic structure
- Refinement
- Using percentages instead of fixed pixels to define column size
- Adding flexible box styles and overflow function
- Add media specific css ie @media to change css properties depending on device screen
- CSS resetting using normalize.css
- h1, h2, h3, h4...
- img
- form
Design and responsiveness
Grid-based design is a structural guide for web page layout that is made up of rows and columns. Understanding the way a page is divided into grids will help you build a framework; a collection of classes that will make page layout easier to implement!
You can have all the grids of a quad book, but they are not much use if people cannot view what you create on their device. Believing the hype on responsive design means acknowledging that people access information via a diverse range of devices. The Udacity lesson offers some suggestions to make a web page responsive:
Applying the framework
Semantic structure consists of semantic tags. 'Semantic' tags give meaning to web page content that both computer and humans understand. The semantic structure enables humans to understand the meaning of the content and structure. For example, nav and span tags offer no semantic meaning to content. However, the following semantic tags add structural meaning (semantics):
The Udacity lesson ended with fine tuning methods and also continous improvement tips. I appreciated the placeholder images and Google Fonts tips. The cycle of code, test, refine is a great image to keep in mind when building web pages.


KBS Entertainment Weekly picks BTS V's solo Singularity as the highlight of the Seoul concert
by newsforkpopThe ubiquitous K-pop band BTS recently concluded their last tour for their Speak Yourself tour in Seoul. It was a phenomenal successas usual, and all the performances were very much appreciated.

"Singularity" performed by Kim Taehyung aka BTS V was even more dazzling than usual. BTS V's outfit of black feathers coupled with his gorgeous visuals was so ethereal that k-netz gave him the nickname of "Black Swan".
His performance was so eye-catching that KBS new channel said that it was the highlight of Seoul concert.
The entertainment channel said that : "One of the best performances of the day was a solo performance by a member V. Unlike the previous stages,V wore a costume that reminded us of Black Swan and showed an alluring and seductive sophisticated dance, drawing attention from fans all over the world. When the stage was over, it caused an explosive reaction, ranking 9th in the real-time the U.S social networking services."
Korean portals TheQoo and instiz could not stop talking about his out-of-this world portrayal.
https://theqoo.net/square/1239...
He also gained the nicknames "Hades" (of Greek mythology) and "Howl" (from Howl's moving Castle)!
https://www.instiz.net/name_en...
With just one performance, BTS V captivated the hearts of millions. His charisma on stage is truly incomparable and his performance in these final stages were filled with not only his usual excellent dancing, but the way he actually infused his dance with his emotions and could bring out the pain that is there in the lyrics and could express that is remarkably astounding.
Kim Taehyung is genuinely one of a kind - he is the whole package a performer should be. We look forward with bated breath to see what new stage he will reveal in the future.


Depression Detected !!
Patient is Suffering from Depression
Depression is a treatable mental disorder but it also has a negative effect on your emotions and feelings, actions and thinking. It causes feelings of sadness or lack of interest in activities that once he enjoyed a lot. Moreover, it effects persons efficiency
at work as well as in person life, Person usually loses his interest in the activity that he enjoyed a lot. Loss of someone and ending of job and relationships have a bad experience for any person and It has normal to have a feeling of sadness,
but being sad is not considered as having depression. MDD is among the curable mental disorders. Approx. 85% to 90% of people respond well to the treatment and some medical conditions are responsible of depression e.g. Brain tumour or deficiency
of some vitamin.


JDZ
Twitter GitHub LinkedInTechnical Difficulties
Dealing With Distracting Technology
02/05/15
The major issue that the world of technology has to deal with today is the unbelivable distraction that it can be in our day-to-day lives.
Concentrating on tasks, especially those that have to be done through computers, are becoming harder and harder. Even now, I'm fighting the urge to go to youtube and watch funny cat videos.
How can a person be expected to write an essay on the same device that they watch their favorite tv show, or play their favorite game? Or, how can a person be expected to pay attention to the road, when they are making plans on their phone via text messages?
In these cases, technology not only becomes a hazard to getting work done, it also becomes a life-threatening distraction, all while supplying the most powerful tools for research, organization, and work.
So, how does one cope? Should we abandon the net, become ludites, use a payphone, and pretend to be living in a bygone era?
I would say no. One has to adapt to the new contexts in which we find ourselves doing work, commuting, and living our lives, or technology itself will need to insert itself into our lives in different ways.
We are already starting to see this happen. There are apps to block prevent texting while driving, voice texting, etc. As far as working on a computer goes, as far as I know, this requires self discipline and self awareness. It would be wonderful if you could set your computer and your phone to "work mode" so that it could anticipate what your needs will be, preventing distracting sites/advertisements/games from being used... or atleast making them harder to use.
But until that happens, we will struggle to get work done, and all the while resisting the urge to click a couple of buttons and experience hilarious cat videos! Well that's my two cents on the problems of technology today. Thanks for reading!


Error with modal
There seems to be an issue when opening a modal, could you please check it..
Henry Harrison, 3 days ago
2Action required
Your account is inactive for a long time and you have to confirm your email once again..
Carol Ray, 1 hour ago
1Website Released
Our new website is live, feel free to visit it and let us know what..
Sara Fields, 2 days ago
3New Photo Pack
Our new photo pack is now available to go live and we couldn’t be more excited..
Jack Greene, 3 min ago
9You have a new message
Hi there, please check your profile, there is a new message waiting for you.
David Fuller, 4 hours ago
6Best of last week
Last week has been full of new releases and products from indie developers.
Amber Harvey, 2 days ago


Using the search bar above, look for any day's significance and holiday. Please enter the date in the format "day-month" where the day is a Roman numeral and the month is abbreviated to the first three letters of the month's name. Example: January 1st = 1-Jan; March 24 = 24-Mar.
Want to learn more about *****
Here's a link!
Month Abbreviations:
January: Jan
February: Feb
March: Mar
April: Apr
May: May
June: Jun
July: Jul
August: Aug
September: Sep
October: Oct
November: Nov
December: Dec


--- layout: page title: "404" description: "Page not found" header-img: "/img/bg-shoes-with-ball.jpg" permalink: 404.html ---
There is nothing here.


1.125 Problem Statement 1
Submitted by: Saleha Siddique | 924451900 |<EMAIL_ADDRESS>1. How many city workers earn above $200,000 total salary ie with overtime?
Answer 1 will be inserted here by the script
2. How many police earn above $200,000 with overtime?
Answer 2 will be inserted here by the script
3. What is the total paid by the city to the police?
Answer 3 will be inserted here by the script


{% load staticfiles %} {% load bootstrap3 %}
Bring data in from these sources, into the local database cache:
Take the data cached locally and distribute it to the correct local We Vote db tables:
Back to home


--- layout: default title: Data Science Online Course Reviews excerpt: Here's what others have to say about our data science courses. Data science online course reviews. ---
Get the skills to find a job, become a data science consultant, or move up in your career.
Masatake learned how to create business-value using data science skills, which helped him land a data science role at a leading consulting firm.
Stephen says the course accommodates different learning styles and the instructor support helped him apply skills to his day-to-day work.
Deepsha found our courses comprehensive and has been able to apply what she learned to her day-to-day job.
Rodrigo is able to deliver data science consulting projects in half the time it used to take.
Michael mastered several data science techniques in just 3 weeks.
Adam immediately applied new data science skills to his work projects.
Ben found our courses different than the rest and worth the cost.


This example below shows how Mime can be used to mock and capture the Express global application object that is common in many Express-bases applications. Assume that you have broken each of your Express application route handlers into its own Node.js module that all access the global "app" symbol, then one line of code in your test file prior to requiring your test target module, will allow you to test all the routes that the module sets up as well as the callback(s) themselves.
// Create a Mime instance that will be used for capturing
global.app = new Mime();
// Require our test target
require('../../src/myExpressHandlers.js');
// Fetch the callback that was registered by the required module
handlerCallback = app._getCallArguments('all', 0)[1];
Mime instances do not need you to do any work for methods that take arguments but do not return any values. However, this will not work for all situations, sometimes you need one or more method that returns a value and/or you need attributes. Fortunately this is simple.
This example adds an attribute that has a value. In this instance, we are testing an Express callback that handles a POST request. The handler expects the http Request object to have a "query" attribute with the posted values as child attributes.
/* test.js */
// Creat our Mime instance
request = new Mime();
// Add the attributes
request.query = {
name: 'Dylan Barrell',
twitter: '@dylanbarrell'
};
This example shows how to add a method to an instance
/* test.js */
// Creat our Mime instance
newspaper = new Mime();
// Add the read method
newspaper.getContents = function() {
return 'somevalue';
};
There are two ways to use Mime to mock and capture dependencies of your test targets. The first mechanism, called Dependency Separation is to move all of your dependency requires into a separate file that you then combine with your code in a build step. You can then create Mime instances for each of the dependecies in your test files. The second mechanism, called Dependency Interception is where in your tests, when requiring a test target, you replace calls to the standard Node.js require with calls to a Mime instance's _sandboxRequire function. This allows Mime to generate and manage your test target's dependencies for you.
The advantage of the Dependency Interception is that it requires only a small change to the require call for each test target in your test files. The disadvantage of Dependency Separation is that it requires a build in order to run your application and it requires quite significant refactoring to retrofit an existing project.
/* dependency.js */
// In your module use Node.js's require
http = require('http', require);
// Then you use that dependency
...
http.setHeader('cache-control', 'no-cache');
...
/* test.js */
// In your test file, you use Mime.getMockedModuleMime to obtain a Mime object for the http module
// This is required so that Node.js's module caching will not get in the way of multiple
// modules requiring the same dependency
httpMime = Mime.getMockedModuleMime('http');
// Then tell the mime instance which symbols to export
httpMime._mockModule('http', ['setHeader', 'write', 'end']);
// Then require the module with the dependency
dependency = httpMime._sandboxRequire('../src/dependency.js', require);
// Now run the tests
...
/* dependencyIntro.js */
// In your module's intro file, you set up the variable that will be used by the module
http = require('http');
/* dependency.js */
// In your module, you simply use that variable
...
http.setHeader('cache-control', 'no-cache');
...
/* test.js */
// In your test file, you create a Mime instance with the same symbol name
http = new Mime();
// Then require the module with the dependency
dependency = require('../src/dependency.js');
// Now run the tests
...
If you are familiar with the mongoose.js example on the Mongoose.js home page, listed below, you will see a couple of problems that fall into the category of constructors and factories. the mongoose.model function is a class factory that returns a constructor that can be used to instantiate instances of a new class created by the factory.
/* mongooseExample.js */
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var Cat = mongoose.model('Cat', { name: String });
var kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {
if (err) // ...
console.log('meow');
});
To test such a file with Mime, we must first solve the dependency mocking problem. We will use Dependency Separation for this example.
/* mongooseExampleIntro.js */
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
/* mongooseExample.js */
var Cat = mongoose.model('Cat', { name: String });
var kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {
if (err) // ...
console.log('meow');
});
Now we use a combination of the Mime._spy function and the Mime._createClass function called within the captor. Creating a captor function like this allows us to define some specific behavior (in this case the class factory), assign it to the Mime instance and also capture the arguments in calls to that function.
var assert = require('assert');
require('node-mimejs');
global.mongoose = new Mime();
mongoose._spy('model', function(name, defn) {
return this._createClass(function() {
});
});
Now when we require our refactored test target file, then we can create tests that test the call to the factory, the call to the constructor(s) for the factory-created classes and the calls to the instance methods of those classes. We can also, having captured all arguments, test any callbacks in those arguments synchronously. In the example, if the callback passed into the "save" method did anything usefully testable, we could test that it works correctly too.
require('../../examplesrc/mongooseExample.js');
describe('mongooseExample.js', function () {
it('Should have created the model', function () {
assert.ok(mongoose._wasCalledWithArguments('model', 'Cat', { name : String }),
'Should have called model');
});
it('Should have called the "Cat" constructor', function () {
assert.equal(mongoose._getCallArguments('Class', 0)[0].name, 'Zildjian',
'Should have created a Zildjian cat');
});
it('Should have called the "save" method', function () {
assert.equal(typeof mongoose._getCallArguments('save', 0)[0], 'function',
'Should have called with a callback');
});
});


I don't know if this is relevant to anything but, maybe for those experiencing the same thing, they can reassured they're not the only ones. Well, the first time it happened was in 2004. I was extremely tired and I had eaten regularly. I layed down and listened to Slipknot an drifted into a light sleep, the kind where you have dreams though you're not really sleeping, not really awake. i dreamt I was in a car with my boyfriend and he looked over to me and his face deteriorated and we crashed off a bridge. I woke up instantly but, the weird thing was...I couldn't move anything but my eyes. I was definately freaking out. The room was dark and I have a slight fear of the dark so I clenched my eyes together tight. Slowly, I began to regain movement until I was completely normal. I stayed up a little longer then passed out.
I told my friends about it and one of my friends said she had a video that mentions that type of thing in it. It was a video documenting satanic happenings or something like that. There was a segment talking about waking up paralyzed and seeing dark figures. It was exactly what happened to me but then it carried on to talk about people being killed by the dark figures which kind of scared me, but I didn't dwell on it.
I didn't experience it again for awhile until I hadn't slept all night then went to a friend's house. We weren't doing much, just laying on his bed watching Family Guy so I drifted into a light sleep. I dreamt I was in a hotel room. But then it turned into a lucid dream and I wanted to walk into the hall and explore my dream manifestations. I walked out and I saw my great grandmother in a long dress. She died when I was 10 and I was really heartbroken over it so I chased her receding stance into a doctor's office and I dropped to my knees and started crying. I woke up crying and paralyzed. My friend was freaking out and all I could do was lay there until I regained control.
After that, I was afraid to go to sleep each night but then the fear of waking up paralyzed slowly diminished. Then, recently, it started happening alot. After the third time after the 'relapse' I tried doing different things when I woke up paralyzed like trying my HARDEST to move my fingers and I found out it helped quicken the return to normalcy. The last time it happened was with another friend and that time I tried making sounds and I could manage moans. It truly is a scary thing for me and I have no clue why I haven't gone to a doctor yet. Maybe the fact my parents don't care enough to schedule appointments for me unless I'm on the brink of death. Hopefully, I'll get to talk to a doctor about it and find out what's happening. Until then, I leave a nightlight on ;P
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Post talks with Gotabaya Rajapaksa, PM Modi announces $50 million aid to Sri Lanka to tackle terrorism
NEW DELHI: Prime Minister Narendra Modi on Friday announced a $50 million aid to Sri Lanka to tackle terrorism. The announcement was made after PM Modi and Sri
Lanka President Gotabaya Rajapaksa held ‘fruitful talks’.
Addressing a joint press conference, Modi said that he was confident that the new government in Sri Lanka will address all the issues relating to the Tamil community in the island nation.
The Prime Minister also announced a $400 million line of credit and hoped that it would further boost Sri Lanka’s development.
ALSO READ: India, Sri Lanka need to work together for welfare of people: Gotabaya Rajapaksa
Earlier in the day, Rajapaksa called on External Affairs Minister S Jaishankar. The newly-elected President said that India has always been a key partner in aiding anti-terror activities in the country.
“I thank Prime Minister Narendra Modi for the aid and hope that it will help to boost our intelligence and counter-terror capabilities,” Rajapaksa said.
He also invited Modi to visit the island nation.


A data visualisation project that detects uninvited guests in my living room.
Initial Diagram
I have friends who I gave the keys to my house to. Sometimes they show up uninvited. They usually stays in my living room downstairs while I stay upstairs. But times I live alone, I hear sounds and I am unsure if they are there or am I tripping. So I've always wanted to check if they are there without me needing to leave the safety of my room.
Hence, I thought why not use sensors like Infrared to check whether they are there. Using motion sensor to detect if they are human instead of just objects blocking. Microphone (which I can't find on tinkerCAD) to detect them talking. Photocell to detect if they turnt on the lights.
I ordered the sensors but discovered the mic doesn't work as it didn't come with an amplifier so I reordered another one and had to wait. But in the mean time, I tested the motion sensors and photocell. Originally I had an issue because the delay was 500 instead of 1200. After I got that fixed and got my new mics, I tested them out again but the mics sensors are still not working. The motion sensors and photocells are working though.
Bought Sensors
Replacing Sensors with Pot and Button
As my sensors are not working properly. I still needed to procede with the project so I replaced the sensors with potentiometers for the analog sensors like the mic and buttons for digital sensors for photocells and motion sensor.
I tried to visualisise the analog sensors to determine the position coordinates and button sensors to draw.
Dividing the different groups of magnitude with different colors
Differentiating the magnitude with the hue spectrum.
For week 3, I started off by changing the code to be simpler. I just wanted to draw paint drips. The pots will determine the coordinate and the button will draw it. However, the x coordinate seems to not be working. Only the y coordinate does. I tried to fix it but it doesn't work despite multiple unrecorded tries. This is where I end up with. I think in the future, I'll start by testing if the pots and the coordinates work before I code the entire interaction.
Final Outcome
This quote hits me really hard as I find myself constantly needing to be productive hence I try to take control of every aspect of my life. Yet the constant thought that I could be better was knawing on my self esteem. Yet somehow the action I'm taking to be more productive give me a sort of ego boost at the same time. Reading this made me realise what I'm essentially doing to myself and needing to come in terms with this fact made me also feel less tough on myself as I start to open my eyes towards things outside of my productive output to the economy.
After learning about how internet of things could be exploited, this quote made me realise why this problem persist in our society. Not gonna lie, it made me want to lose all hope in humanity but I feel like there might be a way out of this if we continue questioning and raising our expectations for these devices to be more responsible.
This quote make me realise how important data is and how it can be used maliciously once it is in the wrong hands. We can't guarantee whoever taking over our data isn't malicious in the future. Thus, we should start to worry the initial act of collecting data and question the purpose of it.


Poem today
October 13, 2009
They put us on a magnificent path
- writing poetry while walking in the rain
and reading a book
with the pages getting wet
Ten years in the making wasted
and they put us on it in school
to follow out many years
so that we may be experts with our language


<subjectref>
The <subjectref>
element identifies a subject to classify content. The
<subjectref>
can identify the subject with a @keyref
attribute (if the scheme has a <subjectdef>
with a @keys
attribute that assigns a key to the subject) or an @href
attribute (if the
scheme is not available and a topic exists that defines the subject).
Category: Classification domain elements


Home
Access
Media
COVID-19 Precaution
Promotional Video
Here is Bali promotional video
Copyright © 2021 - All Rights Reserved - Alvin Giovano


Table of contents:
This is an individual piece of coursework that is assessed. Plagiarism, including collusion, is penalized. For further information check the section Referencing and Academic Integrity in the BSc handbook.
By submitting your solution, you are stating that you are aware of the consequences, as summarized in the Declaration of Academic Honesty that you signed already, and that the solution provided for the worksheet is the result of your sole individual work.
Note that the fact that you are working with someone else in the lab sessions does not justify the co-submission of highly similar code.
The goal of this worksheet is to develop a functional feature for an online shop web application developed in Spring MVC and Java. The project containing the base code only implements a catalogue of products using the typical CRUD operations.
In this sprint, you are asked to implement a market strategy policy to the system so as to meet the requirements stated below.
The prototype must be deployed at server port 8090
.
The main (JSP) views have been implemented:
The system has to be completed by developing code for the business logic/validation requirements stated below in the following methods/classes:
isActive()
validate()
The JSP views MUST NOT be modified and they should be used to guide the development of the code (e.g. by using the names stated in the views).
The following navigation model (links between pages) must be implemented:
Users will be able to create two types of deals:
Open
: when no end date
is provided; andClosed
: when an end date
is provided.Take into account the following functional requirements:
A deal is created for a product in the catalogue by selecting it from a dropdown list box and by providing a discount
(0.10
means 10%
) and an start date
. If an end date
is not provided, the deal is assumed to be ongoing until it is closed (that is, until an end date is provided).
In this release, deals have to be stored in memory using the list of deals Store::dealList
.
When a deal with id N
, with a start date
equals or anterior to the system date but without and end date
, is closed (by clicking on the button CloseBtnN
), the system date eMarket.domain.EMarketApp::systemDate
is used as end date
for the deal. When the start date
is posterior to the system date, the action is ignored (that is, the system navigates to the same page without modifying the data).
When a deal with id N
, with a start date
equals or anterior to the system date and with an end date
, is closed again (by clicking on the button CloseBtnN
), the system date is used as the new end date
for the deal. When the start date
is posterior to the system date, the action is ignored (that is, the system navigates to the same page without modifying the data).
A deal is active if the interval defined by its start date and end date (if any) includes the system date. The system date is available from the property eMarket.domain.EMarketApp::systemDate
and it can be reset from the main page My basic marketplace
by entering a new date and clicking on the button Set
. The method Deal::isActive()
determines when a deal is active or not.
Every time a deal is published or closed, the list of deals that appears at the bottom of the page Product Deal Management
must be updated. The list of deals is to be ordered by deal identifier.
When submitting a new deal via the web form, the following validations have to be implemented:
dd/MM/yyyy
. The method Deal::getStartDateAsString()
can be used to obtain dates in that format.
startDate
.dd/MM/yyyy
. The method Deal::getEndDateAsString()
can be used to obtain dates in that format.
endDate
.productId
.discount
cannot be empty (with empty string).
discount
.discount
has to be different from 0.0
.
discount
.startDate
.endDate
.[begin-new [begin-existing end-new] ..
[begin-new [begin-existing end-existing]
[begin-new [begin-existing .. end-existing] end-new]
[begin-new [begin-existing .. end-new] end-existing]
Implement the connection of the controller and the JSP view in order to see the web page Product Deal Management
by:
productDeal
.Implement the business logic requirements in:
isActive()
Implement the validation requirements in:
validate()
sprint2/miniproject
so that you can find your file gradle.build
in sprint2/miniproject/gradle.build
./gradlew clean bootRun
(or equivalent command for MS Windows
).You may want to revise
Create a new release
Tag Version
as sprint2
(leave @ Target Master
)Release Title
as Sprint 2 submission
Publish Release
This assignment is worth 20% of the overall module mark and the mark is provided out of 100:
We are going to consider that the software infrastructure for the assignment is set up:
./gradlew bootRun
command can be executed without problems: 5 marksThe submitted project must compile and it must be executable as explained in the worksheet (e.g. there are compilation errors) with the command ./gradlew clean bootRun
. Otherwise, the submission will receive a mark of 0
(zero
).
The following aspects are going to be considered when marking your release submission:
The following marking guidelines correspond to the implementation of the business logic:
Product Deal Management
must be integrated within the code developed for the system to be marked, that is, no compilation errors are allowed.Deal::isActive()
is part of the exercise. This method will be marked by checking the method with deals that are active and with deals that are inactive.A more detailed breakdown of the mark for this component is as follows:
| requirement | marks |
|---|---|
Navigation: from My basic marketplace to Product Deal Management |
2.5 |
Navigation: from Product Deal Management to My basic marketplace |
2.5 |
| Logic: publish an open deal (no end date). | 3.75 |
| Logic: publish a closed deal. | 3.75 |
| Logic: close an open deal. | 3.75 |
| Logic: close a closed deal. | 3.75 |
| Logic: displaying when a deal is active, with respect to the system date. | 20 |
The following marking guidelines correspond to the implementation of the validation scenarios described above:
A more detailed breakdown of the mark for this component is as follows:
| requirement | marks | number of cases |
|---|---|---|
| Validation: checking correct overlaps between dates and reporting errors | 32.5 | to be split by the number of cases |
| Validation: checking other validation rules | 17.5 | 2.5 x 7 rules |
© Artur Boronat, 2017-18


Current Model
Files
Load ACT-R Tutorial Model
Unit
Load ACT-R Tutorial Experiment Code
Control
Stepper
Step All
Pause
Event Queue
Reset
Reload
Run
Show Running
-------
Current Data
Declarative
Procedural
Buffers
Visicon
Audicon
Miscellaneous
Connections & Commands
Open Experiment Window


Sheffield Marathon
Sheffield ENG
Website: www.sheffieldmarathon.com
Race Winners
(41 runnings)
02 May
2004
---
---
01 Jun
2003
2:27:42
3:17:38
28 Apr
2002
2:34:17
2:55:23
29 Apr
2001
2:30:17
3:06:47
16 Apr
2000
2:35:30
3:06:40
25 Apr
1999
2:29:06
2:59:39
26 Apr
1998
2:30:56
2:55:19
27 Apr
1997
2:28:37
2:58:13
28 Apr
1996
2:20:04
2:59:58
30 Apr
1995
2:27:14
2:58:44
19 Jun
1994
2:29:31
3:18:14
27 Jun
1993
2:24:36
2:58:23
28 Jun
1992
2:26:05
3:05:00
21 Jul
1991a
2:25:35
2:55:05
21 Jul
1991b
2:12:40
2:36:27
01 Jul
1990
2:26:16
2:49:05
18 Jun
1989
2:31:53
3:08:14
19 Jun
1988
2:26:01
3:04:52
07 Jun
1987
2:26:29
3:04:33
15 Jun
1986
2:26:09
3:25:01
16 Jun
1985
2:23:55
3:14:37
17 Jun
1984
2:26:21
3:16:34
19 Jun
1983
2:23:23
2:59:40
06 Jun
1982
2:29:49
3:01:41
1962-1981
---
03 Apr
1961
2:23:03
18 Apr
1960
2:19:23
30 Mar
1959
2:24:56
07 Apr
1958
2:26:25
22 Apr
1957
2:27:21.8
07 Apr
1956
2:33:19.4
11 Apr
1955
2:35:36.4
19 Apr
1954
2:30:45
06 Apr
1953
2:33:00
14 Apr
1952
2:41:24
26 Mar
1951
2:35:00
10 Apr
1950
2:49:24.2
18 Apr
1949
2:41:53
29 Mar
1948
2:47:40
08 Apr
1947
2:41:55.8
22 Apr
1946
2:50:16.2
1932-1945
---
06 Apr
1931
2:49:26
21 Apr
1930
2:43:26.6
01 Apr
1929
2:51:37.6
Year(s)
Type
S/F elevations (msl)
1929-30
loop
1931
loop
1946-59
pt/pt
29 m => 40 m
1960-61
pt/pt
29 m => 50 m
1982
2 x o/b
1983-90
2 x o/b
1991-92
2 x o/b
1993
2 x o/b
1994-2000
2 x o/b
2001-02
2 x o/b
Notes: 1929 was the inaugural year. In 1991, the World Student Games Marathon (b) was run in conjunction with the
Sheffield Marathon. This event was known as the Sheffield Independent Marathon for 1929-1931,as the Doncaster to
Sheffield Marathon for 1946-1961, and the Sheffield Marathon since 1982. The 1946-61 races were all held on the
Monday following Easter Sunday. Only the half marathon was run in 2004 and later years.
not held
not held
Tomas Abyu (ENG)
Sarah-Jane Heatley (ENG)
Darren Hale-3
Helen Burrell (ENG)
Darren Hale-2
Ruth Whitehead (ENG)
Darren Hale (ENG)
Sally Keigher (ENG)
Dennis Walmsley (ENG)
Eleanor Robinson-5
Richard Ironmonger (ENG)
Elizabeth Allott (ENG)
Andrew Weatherill (ENG)
Eleanor Robinson-4
Christopher Parkes (ENG)
Eleanor Robinson-3
Jonathan Hooper (ENG)
Eleanor Robinson-2
Dave Bond-3
Sarah Kriel (GBR)
John Andrew Boyes
Eleanor Robinson (ENG)
Dave Bond-2
Janet Kelly-2
Dave Bond (ENG)
Caroline Boyd-2
Yeong-Jo Hwang (KOR)
Miyako Iwai (JPN)
Ken Moss (ENG)
Janet Kelly (ENG)
Trevor Hawes-6
Caroline Boyd (ENG)
Trevor Hawes-5
Dora Hopkinson-2
Trevor Hawes-4
Pat Hudson (ENG)
Sam Carey (ENG)
Helen Diamantides (ENG)
Trevor Hawes-3
Dora Hopkinson (ENG)
Trevor Hawes-2
Dawn Harris-2
Trevor Hawes (WAL)
Dawn Harris (ENG)
Malcolm Martin (ENG)
Jenny Pearson (ENG)
not held
Peter Wilkinson-2
Arthur Keily-4
Peter Wilkinson (ENG)
Arthur Keily-3
Arthur Keily-2
Eric L Smith (ENG)
Eddie Kirkup (ENG)
Arthur Keily (ENG)
Robert William McMinnis (ENG)
Charles Ellick (ENG)
Bert Hemsley-2
Bert Hemsley (ENG)
Jack Holden-2
John Henning (ENG)
Jack Holden (ENG)
Horace Oliver (WAL)
not held
Harold Wood (ENG)
Alfred Kirk (ENG)
George Sutton (ENG)
Description
Barkers Pool => Rotherham => Wombwell => Chapletown =>Niagara
Sports Ground
.
Barkers Pool => Darnell Greyhound Track, basically the reverse of the
earlier loop
.
Chequer Rd in Doncaster => 6 mile loop => LNER Station in the centre
of Sheffield
Chequer Rd in Doncaster => 3 mile loop => track at Hillsborough Park
in Sheffield
Middlewood Rd => Hillsborough Park
.
Catch Bar Lane => Hillsborough Park
.
S/F at Don Valley stadium
.
Bramhall Lane => Sheffield Utd FC
.
S/F at Don Valley stadium
.
S/F at Don Valley stadium with T/A at Orgreave
.
Most Wins (1929-date)
Men
6
Trevor Hawes (WAL)
1983-85,1987-89
Women
5
Eleanor Robinson (ENG)
1993,1995-97,1999
Prize Money
(ADR qualified runners)
No prize money has been awarded according to available information.
Race Time Bias
(sec/km)
Insufficient data to calculate the race time bias.
Competitive Level
(1990-date)
Insufficient data to calculate the competitive level.
Quality Performances
Men <2:13 1 <2:14 1 <2:15 2 <2:16 2 <2:17 2 <2:18 3 <2:19 3 <2:20 5 Women <2:38 2 <2:40 3 <2:42 3 <2:44 4 <2:46 4 <2:48 4 <2:50 5
Finishers
Year #Fin S-F Temp 2003 263 2002 334 55-62F 2001 345 42-54F 2000 358 40-54F 1999 253 58-74F 1998 326 42-54F 1997 283 56-62F 1996 249 50-55F 1995 362 55-64F 1994 255 60-65F 1993 347 63-70F 1992 66-79F 1991 62-69F 1990 680 53-63F 1989 54-80F 1988 423 82-??F 1987 53F 1986 78-83F 1985 62F 1984 61-74F 1983 1,946 72-77F 1982 2,241 61-74F .... 1960 45 .... 1957 56 .... 1954 83 .... 1931 18 1930 33 1929 16
Last Updated on 08 Apr 2010
Contributors: Malcolm Douthwaite, Ian Thomas, Andy Milroy, Martin Rix


Comic Daemon
Comics
Template Comic Title
Updated:
Template Update Time
0
Page Title
Comic Daemon
Updated:
Click a comic to see the latest updates!
Contact: ComicDaemon@gmail.com


---
layout: default
permalink: /borders
category: utilities
category_page: Utilities
title: Borders
description: "Use the edge classes to quickly stylize the edges of an element.
Use the borders to add or remove the edges of an element."
---
Use edges on the same side.
Remove edges from the same side.