/
DIScover Release Notes
Version 7.3(Beta)
August 2001
Contents
DIScover 7.3
DIScover 7.3
Hardware and Software Requirements
Customer Support
Problems Fixed
DIScover 7.3
DIScover 7.3 is the latest version of the DIScover product family.
New features in DIScover 7.3 include:
|
C/C++/Java parser improvements |
Realize a 30% improvement in build time on small models and up to 60% on larger models |
|
Impact analysis |
Additional tools for understanding the impact of change to software Assists developers in reviewing the points of concern related to a given change Additional tools for understanding the impact of change to software Assists developers in reviewing the points of concern related to a given change New reporting capabilities Documentation explaining the different ways the impact of a change is tracked |
|
Change Phase I, GUI, wizards, etc. |
Create Tree Pattern Matching expressions with new graphical assistant (representation of syntax tree) Smart listing of available attributes Ability to convert text selection to expression "Apply" feature for testing new expressions Save and restore expressions Assistance in node marking for transformation |
|
Licensing (use license key manager) |
Choose between named-user licensing, concurrent (floating) license, or site license options when purchasing DIScover. Flexible licensing allows organizations to choose licensing model that best suits their needs Improved ease of deployment Minimal contact required to evaluate product Facilitate volume distribution |
|
Context sensitive help facility |
Gain information on the task at hand without having to read the entire manual |
|
Model build Project editor |
Improved ease of evaluation and use Opens up the product to all Java code Modify imported flags Small to midsize projects may now be configured by hand |
|
Basic SIS support (c-i, c-o, re-sync) |
Provides the convenience of checking source in and out from DIScover |
|
ClearMake support |
Improved integration into ClearCase environment for building models |
|
Bundling demo model in distribution |
Provide users with a sample model to quickly try out the product without having to use their own code Provide users with firewall difficulty a way to easily evaluate the product Provide a base model for sales/training material |
|
Build Model in batch mode |
New ability to run model builds in background Helps ensure the model will be always up to date |
DIScover 7.3
DIScover 7.3 is the latest version of the DIScover product family.
New features in DIScover 7.3 include:
|
C/C++/Java parser improvements |
Realize a 30% improvement in build time on small models and up to 60% on larger models |
|
Trends |
Track changes in various metrics over time Align processes with SEI CMM New graphing mechanism New ability to export to html and Microsoft Excel Improved documentation and new context sensitive help |
|
Licensing (use license key manager) |
Choose between named-user licensing, concurrent (floating) license, or site license options when purchasing DIScover. Flexible licensing allows organizations to choose licensing model that best suits their needs Improved ease of deployment Minimal contact required to evaluate product Facilitate volume distribution |
|
Context sensitive help facility |
Gain information on the task at hand without having to read the entire manual |
|
Model build Project editor |
Improved ease of evaluation and use Opens up the product to all Java code Modify imported flags Small to midsize projects may now be configured by hand |
|
Java quality filters |
Initial Java-specific offering |
|
Basic SIS support (c-i, c-o, re-sync) |
Provides the convenience of checking source in and out from Source Analysis |
|
ClearMake support |
Improved integration into ClearCase environment for building models |
|
Bundling demo model in distribution |
Provide users with a sample model to quickly try out the product without having to use their own code Provide users with firewall difficulty a way to easily evaluate the product Provide a base model for sales/training material |
|
Caliper driver re-implementation |
Significantly improved performance for QAR and Trends products |
Hardware and Software Requirements
DIScover works on the following platforms:
Windows NT
Windows 2000
This version of DIScover has the following minimum system requirements:
Pentium 200 with 128 megs of memory
Microsoft Visual C++, version 5.x, 6.x, or 7.x
Editor support:
Microsoft Visual C++
Emacs
VIM
JBuilder 3.5, 4.0, 5.0
Customer Support
Problems Fixed
The table below document issues that were fixed in the DIScover 7.3 release.
For convenience, the following abbreviations are used in this table
ROVER — DIScover Browser
QC — DIScover Tools
PARSER/PBMB –DIScover modelbuild
All Closed and Submitted bugs reported by customers
|
Problem |
Status |
Subsystem |
Description |
|
19214 |
[closed] |
PBMB |
Client fails with 4GB free |
|
19251 |
[closed] |
QC |
QAR Cannot adjust threshold for Inline function XLOC |
|
19254 |
[closed] |
PARSER |
duplicate parameter names not accepted by our PARSER |
|
19284 |
[closed] |
PARSER |
PARSER error - problem with type inference |
|
19309 |
[closed] |
ROVER |
Cannot change CM button until mode set to transform |
|
19321 |
[closed] |
PARSER |
No flags currently to handle these template parsing errors |
|
19337 |
[closed] |
PARSER |
support for # pragma ASM directives |
|
19343 |
[closed] |
PBMB |
GUI for creating PDF |
|
19377 |
[closed] |
PARSER |
#pragma pack 4 issues error |
|
19408 |
[closed] |
PARSER |
qualified name not allowed std vector |
|
19418 |
[closed] |
PARSER |
template problem |
|
19536 |
[closed] |
PARSER |
gcc PARSER accepts structure declared without fields. EDG does not |
|
19619 |
[closed] |
PARSER |
Gcc PARSER accepts declaring arrays of 0 lenght |
|
19643 |
[closed] |
PBMB |
Scandsp doesn't get CPP configuration. |
|
19644 |
[closed] |
PARSER |
GCC treats std and global namespaces identically |
|
19666 |
[closed] |
PARSER |
IF generation error |
|
19671 |
[closed] |
PARSER |
Namespacing aliasing not supported by IF generation |
|
19675 |
[closed] |
ROVER |
BETA Selection not preserved when backing up a query and returning to original guery |
|
19695 |
[closed] |
ROVER |
BETA User built 2 models. No matter which model he chooses he gets the same one |
|
19701 |
[closed] |
ROVER |
Warn before overwriting model with new build |
|
19702 |
[closed] |
ROVER |
BETA 50% of time 1st model is started instead of 2nd |
|
19703 |
[closed] |
ROVER |
BETA Model contains files that VC doesn't build |
|
20210 |
[submit] |
PARSER |
Not able to parse an sql file |
|
20212 |
[submit] |
PBMB |
pset_server crashes if you specify model directory wil a // e.g C/temp//model |
|
20229 |
[submit] |
ROVER |
Need to be able to parse external makefiles |
|
20329 |
[submit] |
ROVER |
Discover depends on $HOME, $HOMEDRIVE, $HOMEPATH |
|
20337 |
[submit] |
ROVER |
Printing to text driver truncates filenames |
|
20358 |
[submit] |
ROVER |
Want way to export group to file |
|
20369 |
[submit] |
ROVER |
progress_bar_log_out_of_sync |
|
20370 |
[submit] |
QC |
QFS filter - Conversion loses const qualifier - is giving unexpected results |
|
20390 |
[submit] |
PARSER |
MSVC ignores extra token in <class FOO T> template parameter |
|
20405 |
[submit] |
PARSER |
PARSER error - #pragma pack 4 and Sub check fails |
|
20423 |
[submit] |
PARSER |
#pragma pack 4 issues error |
|
20435 |
[submit] |
PARSER |
Including .c file from other .c file problems |
|
20436 |
[submit] |
PARSER |
bogus "uses" relations |
|
20472 |
[submit] |
PBMB |
Update pass fails |
|
20477 |
[submit] |
PARSER |
Problem with one or more enums with the same name |
|
20478 |
[submit] |
ROVER |
Template not in Model |
|
20516 |
[submit] |
ROVER |
Please remove 500KLOC limitation |
|
20547 |
[submit] |
ROVER |
Interface Stops at 33% |
|
20556 |
[submit] |
ROVER |
Parse Errors not in log file |
|
20558 |
[submit] |
ROVER |
Code ROVER - publish model from one location to another |
|
20559 |
[submit] |
PBMB |
Build Performance is horrible on codeROVER/nt |
|
20560 |
[submit] |
ROVER |
Search does not find all |
|
20561 |
[submit] |
PBMB |
Incremental model build for codeROVER /discover |
|
20562 |
[submit] |
ROVER |
Horizontal scrollbar in browser |
|
20564 |
[submit] |
PBMB |
scandsp fails on DSW file |
|
20567 |
[submit] |
PARSER |
incomplete type parse error |
|
20573 |
[submit] |
PARSER |
Intermittent PARSER Crash |
|
20581 |
[submit] |
ROVER |
"Cannot connect to the server" |
|
20583 |
[submit] |
ROVER |
need to view instantiations of template |
|
20592 |
[submit] |
PBMB |
support for #import statements in CodeROVER for C++ is missing |
|
20594 |
[submit] |
PARSER |
parse error for template declaration |
|
20615 |
[submit] |
PARSER |
crash during IF generation |
|
20725 |
[submit] |
ROVER |
Parse summary doesn't show files not built with catastrophic errors |
|
20739 |
[submit] |
PARSER |
EDG PARSER gives error which sparc compiler handler |
Opened bugs reported by customers
|
Problem |
Status |
Subsystem |
Description |
|
19732 |
[open] |
ROVER |
BETA Right panel not updating properly |
|
19733 |
[open] |
ROVER |
BETA Source code window not positioned properly |
|
19741 |
[open] |
ROVER |
BETA Remove NIF array messages from build display/log |
|
19794 |
[open] |
ROVER |
BETA build target relies on CFG setting in DSP |
|
19795 |
[open] |
ROVER |
Model messaging reports parsing DSP when DSW was selected |
|
19797 |
[open] |
ROVER |
BETA When user double clicks on function or class name, please display the entity's code at the top of DevStudio window |
|
19801 |
[open] |
PBMB |
Environment vars not expanded in /I's. |
|
19803 |
[open] |
ROVER |
TYPE coulumn should be changed to return type |
|
19816 |
[open] |
ROVER |
Select a row and the total rows vanishes at the bottom |
|
19818 |
[open] |
PBMB |
parse fails with env var 'include' |
|
19819 |
[open] |
ROVER |
Page up/page down don't work in source view until click in source |
|
19909 |
[open] |
ROVER |
The back button loses its selection |
|
19913 |
[open] |
ROVER |
class or struct? |
|
19915 |
[open] |
PBMB |
Only one codeROVER startup GUI should appear at a time |
|
19916 |
[open] |
PARSER |
Problem with constuctor initialization |
|
19917 |
[open] |
PARSER |
Function return problem |
|
19929 |
[open] |
PARSER |
Crash when you try parse a file - At end of source internal error Dignal received |
|
19930 |
[open] |
PARSER |
Does not build a file because of a link |
|
19940 |
[open] |
PARSER |
With the -I- flag the edg PARSER does not look at the current directory |
|
19960 |
[open] |
PARSER |
need -I- to do less |
|
19961 |
[open] |
PBMB |
/Tp option not handled |
|
19962 |
[open] |
ROVER |
Decreasing performance, 'out of memory' message, CodeROVER crashes |
|
19975 |
[open] |
ROVER |
Not able to install codeROVER as he has no Dev Studio |
|
19989 |
[open] |
PARSER |
Macro expansion problem |
|
20006 |
[open] |
PARSER |
occasional slowness |
|
20016 |
[open] |
PARSER |
IF generation error - 1 unmatched statement levels in block statement |
|
20021 |
[open] |
PARSER |
Catastrophic PARSER error |
|
20035 |
[open] |
ROVER |
Install procedure problem if jbuilder is not there |
|
20055 |
[open] |
ROVER |
Will not build if the variable CODE_ROVER_HOME has a trailing slash |
|
20059 |
[open] |
ROVER |
Warn Integrity users of not enough info if they try to pick locked Integrity tab |
|
20060 |
[open] |
PARSER |
Rowcount with a variable problem |
|
20065 |
[open] |
PARSER |
hang in preprocessing |
|
20068 |
[open] |
PBMB |
PARSER failed for the project with 2 spaces in it's path |
|
20099 |
[open] |
PARSER |
IF screwy for bad function decls |
|
20111 |
[open] |
ROVER |
CodeROVER has problems with UNC paths |
|
20141 |
[open] |
ROVER |
pmod_server.exe, nameserve.exe and qar_driver.exe remain after CodeRover is shutdown |
|
20179 |
[open] |
ROVER |
JBuilder did not install integration jar properly for JBuilder4 |
Closed Internal bugs that exist in previous product
|
Problem |
Status |
Subsystem |
Description |
|
19493 |
[submit] |
ROVER |
Source works incorrectly if the computer has small available disk space. |
|
19555 |
[submit] |
PBMB |
Automatic expansion of trees with errors bad during parsing |
|
19569 |
[submit] |
ROVER |
Code Rover makes new request, when I add any attribute. |
|
19631 |
[submit] |
PBMB |
Cancel button not aligned |
|
19677 |
[submit] |
ROVER |
Need to prohibit "Append selection" to group if nothing is selected. |
|
19694 |
[closed] |
ROVER |
Edit/Search for text mode. |
|
19713 |
[closed] |
QC |
QA Caliper doesn't work with Browser selection. |
|
19714 |
[submit] |
QC |
"Del" button should be grayed if user can't edit selected attribute. |
|
19783 |
[closed] |
PBMB |
QA tab not available if you do not select checkbox on build. |
|
19812 |
[submit] |
ROVER |
CM does not understand filename with the spaces. |
|
19920 |
[submit] |
ROVER |
Profusion of packages is perplexing |
|
19943 |
[closed] |
ROVER |
<JAVA> "struct" as result of "Info" query for external java classes in the editors |
|
19947 |
[closed] |
QC |
"Edit" menu stays active for empty policy in QA Administrator. |
|
19970 |
[closed] |
ROVER |
<JAVA> "Where referenced" query works incorrectly for <anonymous> functions and classes |
|
19971 |
[closed] |
ROVER |
<JAVA> Incorrect "Inheritance" view for <anonymous> classes. |
|
19973 |
[closed] |
ROVER |
<JAVA> "Show nested classes" works incorrectly. |
|
20018 |
[closed] |
QC |
"Error generating report" if we have "New Folder","New Query" after "Statistics". |
|
20034 |
[submit] |
PBMB |
<JAVA> Sometimes parser incorrectly recognizes functions. |
|
20040 |
[submit] |
PBMB |
<JAVA> "Where declared" for interface's method should return the interface |
|
20069 |
[closed] |
ROVER |
When you install caliper the start menu says browser |
|
20112 |
[submit] |
ROVER |
connecting to models throws java.lang.OutofMemoryError |


Discover people and events that match your interests.
Persice will never share your data or post on your behalf.


New version failing to scrobble to Last.fm?
-
Steveo
hello. since upgrading to the newest version (3.1.3), it seems like it isn't effectively audioscrobbling my songs played to Last.fm. I can't tell if this is an issue with Synergy or with the Last.fm service, which you never seem to know if it's working properly or not... Has anyone else had this issue? thanks.
-
Greg Hurrell
Nobody has reported any issues. To investigate the problem further you should try turning on Audioscrobbler logging as described here:
http://lists.wincent.com/pipermail/synergy-beta/2006-November/000003.html
You can also rule out possible local causes by performing some of the basic troubleshooting hints mentioned here:
-
Yaniv
mine stopped scrobbling as well. ok, i turned on scrobbler logging... what now, wincent? thanks
-
Greg Hurrell
Well, look at the Console and see if any errors are reported. The Console can be found at /Applications/Utilities/Console
-
Yaniv
ha! it's working again! i guess it was only an extra-long hiccup of the last.fm servers... thanks anyway.
-
tinsun
I often have trouble when the computer has been sleeping overnight, since 3.1.3 it seems to happen more often, but it may have to do with the unresponsive last.fm servers. What do you think?
2007-06-26 13:26:41.721 Synergy[2352] Audioscrobbler: Enqueuing object: {
WOAlbum = "Pebbles & Ripples"; WOArtist = "Bonnie \"Prince\" Billy"; WODate = "2007-06-26 11:26:41"; WOLength = 299; WOMBID = ""; WOTrack = "Babylon System";
} 2007-06-26 13:26:41.721 Synergy[2352] Audioscrobbler: Number of items currently on the queue: 45 2007-06-26 13:26:41.721 Synergy[2352] Audioscrobbler: Queue was non-empty, last attempt failed: processing item 2007-06-26 13:26:41.721 Synergy[2352] Audioscrobbler: Will handle next item on the queue after delay (Audioscrobbler specified delay in seconds: 1) 2007-06-26 13:26:42.721 Synergy[2352] Audioscrobbler: Submission previously failed, will retry 2007-06-26 13:26:42.722 Synergy[2352] Audioscrobbler: Will perform submission using URL: http://<IP_ADDRESS>:80/protocol_1.1 2007-06-26 13:26:42.722 Synergy[2352] Audioscrobbler: Submission as URL-encoded string is: u=username_removed&s=ea9b601fd2e88b2bb64327bb552386bc&a[0]=Schoolly%20D&t[0]=Here%20We%20Go%20Again&b[0]=Smoke%20Some%20Kill&m[0]=&l[0]=167&i[0]=2007-06-25%2019%3A25%3A36 2007-06-26 13:26:42.722 Synergy[2352] Audioscrobbler: Submission as data is: <753d7375 6767615f 61766472 61672673 3d656139 62363031 66643265 38386232 62623634 33323762 62353532 33383662 6326615b 305d3d53 63686f6f 6c6c7925 32304426 745b305d 3d486572 65253230 57652532 30476f25 32304167 61696e26 625b305d 3d536d6f 6b652532 30536f6d 65253230 4b696c6c 266d5b30 5d3d266c 5b305d3d 31363726 695b305d 3d323030 372d3036 2d323525 32303139 25334132 35253341 3336> 2007-06-26 13:26:42.722 Synergy[2352] Audioscrobbler: Starting connection attempt 2007-06-26 13:26:42.722 Synergy[2352] Audioscrobbler: Waiting for submission response 2007-06-26 13:27:57.725 Synergy[2352] NSURLConnection for URL http://<IP_ADDRESS>:80/protocol_1.1 returned error: timed out
-
Greg Hurrell
Looks like the connection is timing out, which is an indication of a network connectivity problem somewhere between your machine and the last.fm servers. There's nothing much you can do about this, other than wait; Synergy will keep retrying and eventually the queued-up tracks will be submitted.
Reply
This topic is now closed.


val product: String?
The user’s Spotify subscription level: “premium”, “free”, etc. (The subscription level “open” can be considered the same as “free”.) This field is only available when the current user has granted access to the SpotifyScope.USER_READ_PRIVATE scope.
product
- The user’s Spotify subscription level: “premium”, “free”, etc.
(The subscription level “open” can be considered the same as “free”.) This field is only available when the
current user has granted access to the SpotifyScope.USER_READ_PRIVATE scope.


Introduction
All the demos for Simone can be found on this page. There are currently two types of demos: functional and technical.
Functional demos shows some basic functionalities, where technical demos serves more as a tutorials for some advanced functionalities and API usage.
Demo list
Writing demos
If you think new demos are required or some demos are missing, you can add them.
Writing new demos requires general knowledge about contributing code. You might like to discuss your changes to get sure they won't get rejected.
There is currently onle one general template for new demos:
Upon creating new demo, copy template file into relevant directory, rename it to match it's planned content, and then follow the instructions in template to get you started. After you're done with setting up the file, add it to the file manifest. It's structure is pretty self-explanatory—it's used on this page to build demo lists.
When writing new demos, try to keep lines under 80 chars (4 spaces for tab), so vertical scrollbars won't appear on windows holding demo code.

When you're done with new demo, make a pull request on GitHub.


Day 2: Dive! 🚣♂
Let's start from the title. Last year titles were all two words, with today's title
(Dive!) we break this recent tradition (in the past there were longer titles).
Were there other days with single word titles in the past? Is there a list
of titles used? The best I could come up with is
miran's repo collection,
but it seems he is also breaking tradition this year and not adding the title
to his usual nice table.
Today the problem involved parsing, as we would all expect.
But do we really need to parse stuff?
The small bible for parsing in Nim for Advent of Code is again from miran.
You would think he would have covered all methods for parsing,
but in fact today I discovered there are two more:
- one is scanTuple,
which is
scanf
without the need of predeclaring the variables.
Why does miran's bible misses on that?
does he have beef with beef?
Well, the reason is more likely to be that it was implemented after the post was written
and in fact it is another new shiny thing from 1.6, a hidden gem that
was not even mentioned in the release notes
- the second apocriphal way of doing parsing is even more magic since
you do not actually do the parsing and let a good old friend do it.
It dawned on me during breakfast while I was looking at the puzzle input
and thinking about an implementation 🤯!
What is it? follow along to find out!
Part 1
[...] the submarine can take a series of commands like forward 1, down 2, or up 3:
- forward X increases the horizontal position by X units.
- down X increases the depth by X units.
- up X decreases the depth by X units.
Note that since you're on a submarine, down and up affect your depth, and so they have the opposite result of what you might expect.
The submarine seems to already have a planned course (your puzzle input). You should probably figure out where it's going. For example:
template testInput =
forward 5
down 5
forward 8
up 3
down 8
forward 2
Your horizontal position and depth both start at 0.
[...] After following these instructions, you would have a horizontal position of 15 and a depth of 10. (Multiplying these together produces 150.)
Calculate the horizontal position and depth you would have after following the planned course. What do you get if you multiply your final horizontal position by your final depth?
Can you see now what is the magic trick and the old friend?
Did the template above give it away?
Well, the trick is that the old friend that will do that parsing is
Nim compiler and I will just have to include
the input (which I have saved in a nim file):
var
solution: int
template solve = solution = pos.x*pos.d
var pos: tuple[x, d: int]
template down(n: int) = pos.d += n
template up(n: int) = pos.d -= n
template forward(n: int) = pos.x += n
template reset = pos = (0, 0)
testInput
solve
assert solution == 150
reset
include input02
solve
echo solution
2322630
That's the right answer! You are one gold star closer to saving your vacation.
Part 2
Based on your calculations, the planned course doesn't seem to make any sense. You find the submarine manual and discover that the process is actually slightly more complicated.
In addition to horizontal position and depth, you'll also need to track a third value, aim, which also starts at 0. The commands also mean something entirely different than you first thought:
- down X increases your aim by X units.
- up X decreases your aim by X units.
- forward X does two things:
- It increases your horizontal position by X units.
- It increases your depth by your aim multiplied by X.
[...] Now, the above example [...] you would have a horizontal position of 15 and a depth of 60. (Multiplying these produces 900.)
Using this new interpretation of the commands, calculate the horizontal position and depth you would have after following the planned course. What do you get if you multiply your final horizontal position by your final depth?
var pos: tuple[x, d, a: int]
template down(n: int) = pos.a += n
template up(n: int) = pos.a -= n
template forward(n: int) =
pos.x += n
pos.d += pos.a*n
template reset = pos = (0, 0, 0)
testInput
solve
assert solution == 900
reset
include input02
solve
echo solution
2105273490
That's the right answer! You are one gold star closer to saving your vacation.
Note that in nimib I can limit the scope of the code to a single block
with nbCodeInBlock
, which is what I am doing here to be able to redefine same stuff
for part 2 (but solution
, solve
and testInput
are in a nbCode
block
so that they can be available for both parts).
highlights of the day
- as I suspect I was not the only to have thought about the
include
parsing trick,
checkout MichalMarsalek repo
which has also a great setup specific for aoc.
- pmunch shared his repo and is back streaming for another year! 🥳
from subreddit:
I would also have wanted to do a visualization with nanim
but did not have yet time, maybe I will add it later, stay tuned and happy Advent of Nim! 🎄👑
import nimib, animu
nbInit(theme=useAdventOfNim)
nbText: """## Day 2: [Dive!](https://adventofcode.com/2021/day/2) 🚣♂
Let's start from the _title_. Last year titles were all two words, with today's title
(Dive!) we break this recent tradition (in the past there were longer titles).
Were there other days with _single word_ titles in the past? Is there a list
of titles used? The best I could come up with is
[miran's repo collection](https://github.com/narimiran/AdventOfCode2020),
but it seems he is also breaking tradition this year and not adding the title
to his usual nice table.
Today the problem involved _parsing_, as we would all expect.
But do we really need to parse stuff?
The [small bible for parsing in Nim for Advent of Code](https://narimiran.github.io/2021/01/11/nim-parsing.html) is again from miran.
You would think he would have covered all methods for parsing,
but in fact today I discovered there are two more:
- one is [scanTuple](https://nim-lang.org/docs/strscans.html#scanTuple.m%2Cuntyped%2Cstatic%5Bstring%5D%2Cvarargs%5Buntyped%5D),
which is `scanf` without the need of predeclaring the variables.
Why does miran's bible misses on that?
does he have beef with [beef](https://github.com/nim-lang/Nim/pull/16300)?
Well, the reason is more likely to be that it was implemented after the post was written
and in fact it is another new shiny thing from 1.6, a hidden gem that
was not even mentioned in the [release notes](https://nim-lang.org/blog/2021/10/19/version-160-released.html)
- the second apocriphal way of doing parsing is even more _magic_ since
_you do not actually do the parsing_ and let a _good old friend_ do it.
It dawned on me during breakfast while I was _looking at the puzzle input_
and thinking about _an implementation_ 🤯!
What is it? follow along to find out!
### Part 1
> [...] the submarine can take a series of commands like forward 1, down 2, or up 3:
>
> - forward X increases the horizontal position by X units.
> - down X _increases_ the depth by X units.
> - up X _decreases_ the depth by X units.
> Note that since you're on a submarine, down and up affect your _depth_, and so they have the opposite result of what you might expect.
>
> The submarine seems to already have a planned course (your puzzle input). You should probably figure out where it's going. For example:
"""
nbCode:
template testInput =
forward 5
down 5
forward 8
up 3
down 8
forward 2
nbText: """
> Your horizontal position and depth both start at 0.
>
> [...] After following these instructions, you would have a horizontal position of 15 and a depth of 10. (Multiplying these together produces 150.)
>
> Calculate the horizontal position and depth you would have after following the planned course. What do you get if you multiply your final horizontal position by your final depth?
Can you see now what is the magic trick and the old friend?
Did the _template_ above give it away?
Well, the trick is that the old friend that will do that parsing is
Nim compiler and I will just have to `include` the input (which I have saved in a nim file):
"""
nbCode:
var
solution: int
template solve = solution = pos.x*pos.d
nbCodeInBlock:
var pos: tuple[x, d: int]
template down(n: int) = pos.d += n
template up(n: int) = pos.d -= n
template forward(n: int) = pos.x += n
template reset = pos = (0, 0)
testInput
solve
assert solution == 150
reset
include input02
solve
echo solution
gotTheStar
assert solution == 2322630
nbText: """### Part 2
> Based on your calculations, the planned course doesn't seem to make any sense. You find the submarine manual and discover that the process is actually slightly more complicated.
>
> In addition to horizontal position and depth, you'll also need to track a third value, _aim_, which also starts at 0. The commands also mean something entirely different than you first thought:
>
> - down X _increases_ your aim by X units.
> - up X _decreases_ your aim by X units.
> - forward X does two things:
> - It increases your horizontal position by X units.
> - It increases your depth by your aim _multiplied by_ X.
>
> [...] Now, the above example [...] you would have a horizontal position of 15 and a depth of 60. (Multiplying these produces _900_.)
>
> Using this new interpretation of the commands, calculate the horizontal position and depth you would have after following the planned course. _What do you get if you multiply your final horizontal position by your final depth?_
"""
nbCodeInBlock:
var pos: tuple[x, d, a: int]
template down(n: int) = pos.a += n
template up(n: int) = pos.a -= n
template forward(n: int) =
pos.x += n
pos.d += pos.a*n
template reset = pos = (0, 0, 0)
testInput
solve
assert solution == 900
reset
include input02
solve
echo solution
gotTheStar
assert solution ==<PHONE_NUMBER>
nbText: """
Note that in nimib I can limit the scope of the code to a single block
with `nbCodeInBlock`, which is what I am doing here to be able to redefine same stuff
for part 2 (but `solution`, `solve` and `testInput` are in a `nbCode` block
so that they can be available for both parts).
### highlights of the day
- as I suspect I was not the only to have thought about the `include` parsing trick,
checkout [MichalMarsalek repo](https://github.com/MichalMarsalek/Advent-of-code/tree/master/2021/Nim)
which has also a great setup specific for aoc.
- [pmunch](https://github.com/PMunch/aoc2021) shared his repo and is back streaming for another year! 🥳
from [subreddit](https://www.reddit.com/r/adventofcode/):
- a [fake day 3](https://www.reddit.com/r/adventofcode/comments/r77mkv/these_problems_are_harder_than_i_remembered/) about _wreath numbers_
- a crazy [Unreal engine rendering of first day](https://www.reddit.com/r/adventofcode/comments/r71sss/2021_day_1_ue4_short_intro_video/)
- a [solution in Piet](https://www.reddit.com/r/adventofcode/comments/r6v23p/day_1_part_1_a_solution_in_piet_a_language_where/)
an esoteric language where programs look like abstract paintings
I would also have wanted to do a visualization with [nanim](https://github.com/EriKWDev/nanim)
but did not have yet time, maybe I will add it later, stay tuned and happy Advent of Nim! 🎄👑
"""
nbSave


The story of Dead Code, Vulture and scavenging
May 30, 2018
It isn’t uncommon for software developers to encounter some code that they had written in the past and reflecting on it - the most common reaction would probably be “It must be the most horrible thing I wrote”. But sometimes, there’s that aha moment where you find something and you are instantly gratified and proud of yourself, “Oh, this is so beautiful, no wonder it took so many sleepless nights”. However glamorous it may sound, but it is indeed a difficult task to write and maintain such code, and this is where automatic tools come in to the picture. Let’s discuss about one such tool - Vulture, which helps discover unused stuff in Python code.
So, today we present to you the voodoo which throws out unused code.
The obvious TODO - Find things which aren’t used and remove them
Before, we let ourselves dive in the nitty gritty details of Vulture, let me first tell you a story from my childhood.
Being a young, fearless and curious lad I was, whenever I used to visit someone’s house, I was very interested in some of the stuff they had in their, ahmm, store room - All those cool worn out CFL Bulbs, game boards, extension chords and all other kinds of circuitry you can imagine and just so it happened, people would readily give me any of those items I asked for. And guess what, I used to take away all of that with me (my mom was kind enough to let me play with it, obviously as long as she didn’t see all of it :D). There were two main reasons I used to collect these ‘things’ - One, I wanted to understand how such wonders could actually happen, and second and more importantly, I thought that if I become a circuit wizard some day, I might need some of this ‘equipment’ in my toolbox. Now, while learning this wizardry, of course, I had to deal with new tools as well, so I bought some things for myself, and more and more. On one fine day, it so happened that I came up with this wonderful idea to create a local fax machine (a different story for a different day), and I desperately needed a couple of (working) bulbs to fit into it, but I couldn’t find one in my stash - none of them would light up, although I knew that I bought a few earlier and had them somewhere here. That was a painful experience and that’s when it hit me - How important it is not to keep things which aren’t/can’t being used anymore or at the very least, storing them away. Anyways, I had a hard time testing every piece and dumping the ones which couldn’t be used anymore.
PS: It later turned out that I didn’t actually had any bulbs, the ones’ I had bought were already martyred in my brother’s quest to see what would happen to the filament if we crack the glass open, genius it was!
Later, when I found Vulture, I realised the worth of a tool which could do such fumigation for me.
Introduction
By now, it must’ve been pretty clear what exactly does Vulture do - it cleans up stuff, chops dead code. But, this statement begs the question that what exactly is dead code?
What is dead code?
In simple terms, dead code is that code which is never ever run by your program. Some examples of dead code:
- A variable/function/class which is defined, but is never utilised by your program.
- Code after return statement in a function/method.
- Code inside an
if False:
statement. (:facepalm:)
Why on holy Earth would I write dead code in my own software?
For the same reason you introduce bugs in it ;-)
Dead code isn’t intentionally introduced into the source code, instead it just crawls in through tiny sieves of carelessness and lack of attention, which is completely humane. Some of the most common causes of dead code are:
- Refactoring - Many a times, programmers delete some legacy code which used to call a function (or use an import) and rewrite it in a different manner. Thus, eliminating the need of those old functions/imports. Now, these unused functions/imports are dead.
- Misspellings - Was it
increase_temperature
ortemperatur_increase
??? Hmmm, let’s go withincrease_temperature
- If both of these names are already defined in your codebase, and you used the wrong one, not only have you introduced dead code, but also a bug into your program. Luckily, Vulture would help you catch those bugs. - During debugging - As humans, we tend to be lazy and that is why instead
of using debugger checkpoints, we tend to use debug strings like
"Reached here"
and"Here2"
and obscurely placedreturn
&break
statements. If not paid attention, these changes can be committed and would again introduce bugs alongside dead code.
By now, it must be evident that having dead code is evil - it causes bugs, confusion for newcomers and unnecessarily increases your program size and that you should absolutely remove it. It also helps improve maintainability and code quality of your program.
In the next post, I would continue with how to install Vulture and how to use it.


--- layout: default title: Game Nights ---
Every week in the RiiConnect24 Discord server, we pick a Wii and DS/3DS game to play on Wiimmfi with other Discord users. 3DS games are played on Friday, and
Wii games are played on Saturday.
We like to play more obscure gems that are fun to play but don't get a lot of attention.
To participate in Game Nights, join the Discord server, go to #random, and type in `/roleme Wii Game Night`
and/or `/roleme DS/3DS Game Night`.


{{ /* This shortcode is used to apply a "right-align" css class to a paragraph. */ }} {{ $text := .Get 0 }}
{{ $text | markdownify }}


PRESENCE is made up of modern nomads & visionaries on a mission to share the healing vibrational medicine of musical affirmations, healing prayers, and meditation mantras, knows as SACRED SINGING.
SACRED SINGING are musical mantras, sacred chants, and prayers set to music that create a meditative, calming, nourishing and healing atmosphere. Participants sing aloud simple affirmations. Songs of gratitude, joy, love and forgiveness charge the atmosphere with powerful, positive energy, attracting blessings, and facilitating wholeness, peace, harmony and grace.
The Sacred Singing “Celestial Choir” is available to sing at bedside, including for those on hospice, in hospitals, elderly care and veteran care facilities, free of charge.
In addition to Sacred Singing “satsongs” and the Sacred Singing community bedside “celestial choir”, PRESENCE is also a cover band and has performed at seminars, festivals, conventions, weddings, birthdays, anniversaries, workshops, funerals, private parties, etc. worldwide!


|
Polycode
|
A network server, accepting incoming connections and keeping track of connected clients. More...
Inherits Polycode::Peer.
Public Member Functions | |
| Server (unsigned int port, unsigned int rate, ServerWorld *world=NULL) | |
| Constructor. More... | |
| void | handleEvent (Event *event) |
| This method gets called by an EventDispatcher that the handler is listening to if the dispatching event's code matches the code that handler is listening for. More... | |
| ServerClient * | getConnectedClient (PeerConnection *connection) |
| Get a connected client from its associated peer connection, if any. More... | |
| void | sendReliableDataToClient (ServerClient *client, char *data, unsigned int size, unsigned short type) |
| void | sendReliableDataToAllClients (char *data, unsigned int size, unsigned short type) |
| Public Member Functions inherited from Polycode::Peer | |
| Peer (unsigned int port) | |
| Create a peer. More... | |
| void | sendData (const Address &target, char *data, unsigned int size, unsigned short type) |
| Send raw binary data to the target address. More... | |
| void | sendReliableData (const Address &target, char *data, unsigned int size, unsigned short type) |
| Send raw binary data to the target address, making sure it arrives in the right order. More... | |
| void | sendReliableDataToAll (char *data, unsigned int size, unsigned short type) |
| Broadcast raw binary data to all connected peers, making sure it arrives in the right order. More... | |
| void | sendDataToAll (char *data, unsigned int size, unsigned short type) |
| Broadcast raw binary data to all connected peers. More... | |
| Public Member Functions inherited from Polycode::EventDispatcher | |
| EventDispatcher () | |
| Default constructor. | |
| void | removeAllHandlers () |
| Removes all current event handlers from this dispatcher. | |
| void | removeAllHandlersForListener (EventHandler *handler) |
| Removes all current event handlers from this dispatcher for a specific event listener. More... | |
| void | addEventListener (EventHandler *handler, int eventCode) |
| Adds an event listener for a specific event code. More... | |
| void | removeEventListener (EventHandler *handler, int eventCode) |
| Removes a listener for a specific handler and event code. More... | |
| virtual void | dispatchEvent (Event *event, int eventCode) |
| Dispatches an event to all handlers listening for the event code specified. More... | |
| Public Member Functions inherited from Polycode::EventHandler | |
| EventHandler () | |
| Default constructor. | |
A network server, accepting incoming connections and keeping track of connected clients.
As the Peer class already provides all connectivity functionality required, the Server class merely provides another abstraction layer to treat clients separately from mere connections.
The Server will send the data provided by the ServerWorld class to all clients at defined rate and dispatch events when clients connect, disconnect and send data.
| Server::Server | ( | unsigned int | port, |
| unsigned int | rate, | ||
| ServerWorld * | world = NULL |
||
| ) |
Constructor.
| port | The local port to listen for client connections on. |
| rate | How many times per second to send out server data to clients. |
| world | An instance of the server data provider. |
| ServerClient * Server::getConnectedClient | ( | PeerConnection * | connection | ) |
Get a connected client from its associated peer connection, if any.
| connection | The PeerConnection through which we're communicating with the client to obtain. |
|
virtual |
This method gets called by an EventDispatcher that the handler is listening to if the dispatching event's code matches the code that handler is listening for.
Typically, you subclass EventHandler and implement the handleEvent method to handle specific events.
Reimplemented from Polycode::Peer.
| void Server::sendReliableDataToAllClients | ( | char * | data, |
| unsigned int | size, | ||
| unsigned short | type | ||
| ) |
| void Server::sendReliableDataToClient | ( | ServerClient * | client, |
| char * | data, | ||
| unsigned int | size, | ||
| unsigned short | type | ||
| ) |


Mötley Crüe reunites, plans tour with Def Leppard and Poison
Break out the mascara and the hairspray
by Ed Payne(Gray News) – It seems farewell isn’t forever.
Mötley Crüe is reuniting four years after completing what was billed as their final tour. The band even made the point of signing a “cessation of touring” agreement to prove their point before hitting the road in 2014-2015.
“Mötley Crüe is back!!!” their social media accounts trumpeted Monday, complete with a video of the agreement being blown to bits.
“Almost 6 years after signing a cessation of touring agreement, the contract is off the table because a whole new generation of Crüeheads are relentlessly demanding for the band to come back together,” the band’s website said.
The Crüe is planning a U.S. stadium tour with Def Leppard and Poison in 2020, according to Rolling Stone.
Specific dates and venues haven’t been announced yet.
Mötley Crüe is hardly the first band or artist to go back on a promise never to tour again. The long list includes Cher, Kiss, Phish and Tina Turner.
Most famously, the Eagles split for more than a decade.
 It took 14 years, but the Eagles reunited and called their first album back “Hell Freezes Over.”
Copyright 2019 Gray Media Group, Inc. All rights reserved.


Debug Symbol Store : Added [PATH]
Date : [DATETIME] : [TIMEZONE]
Drop Location : [MODULENAME]
Store Location : [DROPFOLDER]
Log:


1 Listen to something else about the Colchians, in which they are like the Egyptians: they and the Egyptians alone work linen and have the same way of working it, a way peculiar to themselves; and they are alike in all their way of life, and in their speech. Linen has two names: the Colchian kind is called by the Greeks Sardonian ; that which comes from Egypt is called Egyptian.


authored backend design for new endpoint in Square Kitchen Display Service (KDS) after working with design and product to determine desired functionality
implemented design by building end to end endpoint to display aggregate counts of unfulfilled items on open KDS tickets
conducted social experiment to analyze college student security behavior by leaving parking tickets with link to survey around campus whenever computer was left unlocked
determined that many college students had limited awareness of good security hygiene and/or had too much security fatigue/user resistance to prioritize security protocols
wrote program to inspect PCAP files for port scanning with TCP packets or Nikto
examined network stream to alert for instances of plaintext credentials sent via HTTP or FTP and analyzed metadata to garner information about source IPs
discovered security vulnerability in BEVI machine allowing access to admin settings and potentially corporate wifi networks via console with bluetooth, wifi, ethernet, and USB capabilities
relayed findings to BEVI to improve their software security configurations
comp 40: machine structure and assembly language programming
c
designed and implemented interfaces for converting RGB color space to component video color space, using the discrete cosine transform, and quantizing chroma
wrote bitpacking module to condense pixel information into 64 bit words


SCIAMACHY_L2_NADIR_UV5_SO2
Variables
The table below lists the variables that are present in the HARP product that results from an ingestion of SCIAMACHY_L2_NADIR_UV5_SO2
data.
field name |
type |
dimensions |
unit |
description |
|---|---|---|---|---|
datetime_start |
double |
{time} |
[seconds since 2000-01-01] |
measurement start time |
datetime_length |
double |
{time} |
[s] |
measurement integration time |
orbit_index |
int32 |
absolute orbit number |
||
latitude |
double |
{time} |
[degree_north] |
center latitude for each nadir pixel |
longitude |
double |
{time} |
[degree_east] |
center longitude for each nadir pixel |
latitude_bounds |
double |
{time, 4} |
[degree_north] |
corner latitudes for each nadir pixel |
longitude_bounds |
double |
{time, 4} |
[degree_east] |
corner longitudes for each nadir pixel |
solar_zenith_angle |
double |
{time} |
[degree] |
solar zenith angle at top of atmosphere |
viewing_zenith_angle |
double |
{time} |
[degree] |
line of sight zenith angle at top of atmosphere |
relative_azimuth_angle |
double |
{time} |
[degree] |
relative azimuth angle at top of atmosphere |
scan_direction_type |
int8 |
{time} |
scan direction for each measurement; enumeration values: forward (0), backward (1), mixed (2) |
|
SO2_column_number_density |
double |
{time} |
[molec/cm^2] |
SO2 vertical column density |
SO2_column_number_density_uncertainty |
double |
{time} |
[molec/cm^2] |
error on the SO2 vertical column density |
SO2_column_number_density_validity |
int32 |
{time} |
flag describing the SO2 vertical column density |
|
cloud_fraction |
double |
{time} |
[] |
average cloud fraction of footprint |
index |
int32 |
{time} |
zero-based index of the sample within the source product |
Ingestion options
The table below lists the available ingestion options for SCIAMACHY_L2
products.
option name |
legal values |
description |
|---|---|---|
dataset |
nad_uv0_o3, nad_uv1_no2, nad_uv3_bro, nad_uv4_h2co, nad_uv5_so2, nad_uv6_oclo, nad_uv7_so2, nad_uv8_h2o, nad_uv9_chocho, nad_ir0_h2o, nad_ir1_ch4, nad_ir2_n2o, nad_ir3_co, nad_ir4_co2, lim_uv0_o3, lim_uv1_no2, lim_uv3_bro, clouds_aerosol |
the dataset of the L2 product to ingest; each dataset is a combination of nadir/limb choice, retrieval window, and main quantity; option values are ‘nad_uv0_o3’ (default), ‘nad_uv1_no2’, ‘nad_uv3_bro’, ‘nad_uv4_h2co’, ‘nad_uv5_so2’, ‘nad_uv6_oclo’, ‘nad_uv7_so2’, ‘nad_uv8_h2o’, ‘nad_uv9_chocho’, ‘nad_ir0_h2o’, ‘nad_ir1_ch4’, ‘nad_ir2_n2o’, ‘nad_ir3_co’, ‘nad_ir4_co2’, ‘lim_uv0_o3’, ‘lim_uv1_no2’, ‘lim_uv3_bro’, ‘clouds_aerosol’ |
This definition is only applicable when: dataset=nad_uv5_so2
Mapping description
The table below details where and how each variable was retrieved from the input product.
field name |
mapping description |
|
|---|---|---|
datetime_start |
path |
/nad_uv5_so2[]/dsr_time |
datetime_length |
path |
/nad_uv5_so2[]/integr_time |
orbit_index |
path |
/mph/abs_orbit |
latitude |
condition |
No co-adding needed |
path |
/geolocation_nadir[]/cen_coor_nad/latitude |
|
description |
center latitude for each nadir pixel |
|
condition |
Co-adding needed and all N geolocations are within a single scan (N is not divisible by 5) |
|
path |
/geolocation_nadir[]/cor_coor_nad[] |
|
description |
the latitude of the geographic average of cor_coor_nad[2] and cor_coor_nad[3] of the N/2-th pixel |
|
condition |
Co-adding needed of both forward and backward scan pixels (N is divisible by 5) |
|
path |
/geolocation_nadir[]/cen_coor_nad, /geolocation_nadir[]/cor_coor_nad[] |
|
description |
the latitude of the geographic average of 1: the geographic average of cor_coor_nad[2] and cor_coor_nad[3] of the second pixel and 2: cen_coor_nad of the N-th pixel |
|
longitude |
condition |
No co-adding needed |
path |
/geolocation_nadir[]/cen_coor_nad/longitude |
|
description |
center longitude for each nadir pixel |
|
condition |
Co-adding needed and all N geolocations are within a single scan (N is not divisible by 5) |
|
path |
/geolocation_nadir[]/cor_coor_nad[] |
|
description |
the longitude of the geographic average of cor_coor_nad[2] and cor_coor_nad[3] of the N/2-th pixel |
|
condition |
Co-adding needed of both forward and backward scan pixels (N is divisible by 5) |
|
path |
/geolocation_nadir[]/cen_coor_nad, /geolocation_nadir[]/cor_coor_nad[] |
|
description |
the longitude of the geographic average of 1: the geographic average of cor_coor_nad[2] and cor_coor_nad[3] of the second pixel and 2: cen_coor_nad of the N-th pixel |
|
latitude_bounds |
condition |
No co-adding needed |
path |
/geolocation_nadir[]/cor_coor_nad[]/latitude |
|
description |
corners are rearranged in the following way: 0,2,3,1 |
|
condition |
Co-adding needed and all N geolocations are within a single scan (N is not divisible by 5) |
|
path |
/geolocation_nadir[]/cor_coor_nad[] |
|
description |
cor_coor_nad[0] and cor_coor_nad[1] are taken from the first pixel and cor_coor_nad[2] and cor_coor_nad[3] are taken from the N-th pixel; corners are rearranged in the following way: 0,2,3,1 |
|
condition |
Co-adding needed of both forward and backward scan pixels (N is divisible by 5) |
|
path |
/geolocation_nadir[]/cor_coor_nad[] |
|
description |
cor_coor_nad[0] is taken from the first pixel, cor_coor_nad[2] is taken from the fourth pixel, cor_coor_nad[1] is taken from cor_coor_nad[3] of the N-th pixel, and cor_coor_nad[3] is taken from cor_coor_nad[1] from the N-th pixel; corners are rearranged in the following way: 0,2,3,1 |
|
longitude_bounds |
condition |
No co-adding needed |
path |
/geolocation_nadir[]/cor_coor_nad[]/longitude |
|
description |
corners are rearranged in the following way: 0,2,3,1 |
|
condition |
Co-adding needed and all N geolocations are within a single scan (N is not divisible by 5) |
|
path |
/geolocation_nadir[]/cor_coor_nad[] |
|
description |
cor_coor_nad[0] and cor_coor_nad[1] are taken from the first pixel and cor_coor_nad[2] and cor_coor_nad[3] are taken from the N-th pixel; corners are rearranged in the following way: 0,2,3,1 |
|
condition |
Co-adding needed of both forward and backward scan pixels (N is divisible by 5) |
|
path |
/geolocation_nadir[]/cor_coor_nad[] |
|
description |
cor_coor_nad[0] is taken from the first pixel, cor_coor_nad[2] is taken from the fourth pixel, cor_coor_nad[1] is taken from cor_coor_nad[3] of the N-th pixel, and cor_coor_nad[3] is taken from cor_coor_nad[1] from the N-th pixel; corners are rearranged in the following way: 0,2,3,1 |
|
solar_zenith_angle |
condition |
No co-adding needed |
path |
/geolocation_nadir[]/sol_zen_angle_toa[1] |
|
condition |
Co-adding needed and all N geolocations are within a single scan (N is not divisible by 5) |
|
path |
/geolocation_nadir[]/sol_zen_angle_toa[2] |
|
description |
the value at end of integration time of the N/2-th geolocation |
|
condition |
Co-adding needed of both forward and backward scan pixels (N is divisible by 5) |
|
path |
/geolocation_nadir[]/sol_zen_angle_toa[1], /geolocation_nadir[]/sol_zen_angle_toa[2] |
|
description |
the average of the value at end of integration time of the second record and the value at middle of integration time of the N-th record |
|
viewing_zenith_angle |
condition |
No co-adding needed |
path |
/geolocation_nadir[]/los_zen_angle_toa[1] |
|
condition |
Co-adding needed and all N geolocations are within a single scan (N is not divisible by 5) |
|
path |
/geolocation_nadir[]/los_zen_angle_toa[2] |
|
description |
the value at end of integration time of the N/2-th geolocation |
|
condition |
Co-adding needed of both forward and backward scan pixels (N is divisible by 5) |
|
path |
/geolocation_nadir[]/los_zen_angle_toa[1], /geolocation_nadir[]/los_zen_angle_toa[2] |
|
description |
the average of the value at end of integration time of the second record and the value at middle of integration time of the N-th record |
|
relative_azimuth_angle |
condition |
No co-adding needed |
path |
/geolocation_nadir[]/rel_azi_angle_toa[1] |
|
condition |
Co-adding needed and all N geolocations are within a single scan (N is not divisible by 5) |
|
path |
/geolocation_nadir[]/rel_azi_angle_toa[2] |
|
description |
the value at end of integration time of the N/2-th geolocation |
|
condition |
Co-adding needed of both forward and backward scan pixels (N is divisible by 5) |
|
path |
/geolocation_nadir[]/rel_azi_angle_toa[1], /geolocation_nadir[]/rel_azi_angle_toa[2] |
|
description |
the average of the value at end of integration time of the second record and the value at middle of integration time of the N-th record |
|
scan_direction_type |
path |
/geolocation_nadir[]/corner_coord[], /geolocation_nadir[]/dsr_time |
description |
When the integration time is higher than 1s we are dealing with a mixed (2) pixel, otherwise the scan direction is based on the corner coordinates of the first ground pixel of the measurement. The first geolocation pixel is a backscan (1) pixel if the inproduct of the unit vector of the third corner with the outproduct of the unit vector of the first corner and the unit vector of the second corner is negative (otherwise it is part of a forward (0) scan) |
|
SO2_column_number_density |
path |
/nad_uv5_so2[]/vcd[0] |
SO2_column_number_density_uncertainty |
path |
/nad_uv5_so2[]/vcd_err[0], /nad_uv5_so2[]/vcd[0] |
description |
relative error is converted to absolute error by multiplying with measured value |
|
SO2_column_number_density_validity |
path |
/nad_uv5_so2[]/flag_vcd_flags |
cloud_fraction |
path |
/clouds_aerosol[]/cl_frac |
description |
in case of co-adding, the average of all values within the integration time is taken |


Probably the most modern and sophisticated insecure web application
The most trustworthy online shop out there (@dschadow) — The best juice shop on the whole internet! (@shehackspurple)Presentation by Björn Kimminich / @bkimminich
The Open Web Application Security Project (OWASP) is a 501(c)(3) worldwide not-for-profit charitable organization focused on improving the security of software.
Translating "dump" or "useless outfit" into German yields "Saftladen" which is a compound word from "Saft" and "Laden". This reverse-translates into "juice" and "shop". Hence the project name.
That the initials "JS" match with those of "JavaScript" was purely coincidental!
Unsuspectingly browse the Juice Shop like Average Joe!
Covering various vulnerabilities and serious design flaws
OWASP Juice Shop covers all vulnerabilities from the latest OWASP Top 10 and more.
There's something to do for beginners and veterans alike
Challenge progress is tracked on server-side
Solved challenges are announced as push notifications
Auto-saves your hacking progress and restores on server restart
Some challenges come with an embedded interactive tutorial
Flag codes can optionally be displayed for solved challenges
All participants use individual Juice Shop instances anywhere, sharing only the flag code-ctfKey
and a central score server.
Utility project to help you host a hacking event on CTFd, FBCTF or RootTheBox
Locally via npm i -g juice-shop-ctf-cli
or as Docker container
Run juice-shop-ctf
on the command line and let a wizard create a data-dump to conveniently import into CTFd, FBCTF or RootTheBox
Run juice-shop-ctf --config myconfig.yml
to use non-interactive mode passing in configuration via YAML file
ctfFramework: CTFd | FBCTF | RootTheBox
juiceShopUrl: https://juice-shop.herokuapp.com
ctfKey: https://raw.githubusercontent.com/bkimminich/juice-shop/master/ctf.key
countryMapping: https://raw.githubusercontent.com/bkimminich/juice-shop/master/config/fbctf.yml
insertHints: none | free | paid
insertHintUrls: none | free | paid
Your CTF score server instance will be ready-to-play in <5min
3rd party project to run separate Juice Shop instances for training or CTF participants on a central Kubernetes cluster
Restricts number of users to team members and protects against illicit cross-team instance access
Fully customizable business context and look & feel
Customize the application via a simple YAML
file
application:
domain: juice-sh.op
name: 'OWASP Juice Shop'
logo: JuiceShop_Logo.png
favicon: favicon_v2.ico
numberOfRandomFakeUsers: 0
showChallengeSolvedNotifications: true
showCtfFlagsInNotifications: false
showChallengeHints: true
showVersionNumber: true
theme: bluegrey-lightgreen
gitHubRibbon: true
twitterUrl: 'https://twitter.com/owasp_juiceshop'
facebookUrl: 'https://www.facebook.com/owasp.juiceshop'
slackUrl: 'http://owaspslack.com'
[...]
challenges:
safetyOverride: false
The YAML
configuration allows you to override all products
products:
-
name: 'Product Name'
price: 100
description: 'Product Description'
image: '(https://somewhe.re/)image.png'
useForProductTamperingChallenge: false
useForChristmasChallenge: false
fileForRetrieveBlueprintChallenge: ~
reviews:
- { text: 'Customer review', author: jim }
-
name: 'Product with Lorem Ipsum description, filler image and random price'
Your config is validated on server startup to prevent broken or unsolvable challenges!
Hide origin & notifications for 0% distraction in awareness trainings
Simply start application with NODE_ENV=quiet
environment variable defined!
 Click on the following totall inconspicious link to claim your prize now!
CLICK HER NOW! FREE STUFF!  All logos and icons of which none is even in this lousy attempt of a phishing mail are registered trademarks of Juice Shop Inc. and finally we are throwing in an outdated Copyright (c) 2018 Juice Shop Inc.
Do you dare to click the link above? (Requires shake-logger
to run locally!)
JavaScript/TypeScript all the way from UI to REST API
Comes with cloud, local and containerized run options
Crowd-sourced UI translations for 30+ languages
Crowd-sourced translations available from v9.1.0
onward
Maximizing Test Automation & Code Coverage
Automated Build, CI/CD & Code Analysis
If FAQ & README don't help, ask for help in the chat. Please refrain from using GitHub issues for support requests.
Yes, definitely! Use whatever pentesting tools you like the most!
Proxies like OWASP ZAP or BurpSuite Free Edition can definitely be useful. Automatic tools like Arachni or Nikto might find some vulnerabilities but will obviously not be able to get the Score Board to 100% for you.
No! The code from GitHub would spoiler all challenge solutions!
You can of course use everything that the application hands to you in the browser, so use its DevTools
!
Yes! Feel free to look for ideas, clues & hints everywhere!
Again: Except for the application's own GitHub repository & the logs of its Travis-CI build jobs!
Please carefully follow the instructions in the README
If Setup & Troubleshooting docs don't help, you can always ask the community or open an issue!
The application is cleanly reset on every startup
Your Score Board progress is saved automatically and will restore after server restart!
Find more hints in the free official companion guide on Leanpub
The eBook can also be read online. You can always ask for hints in the community chat as well!
Please report untracked vulnerabilities by opening an issue
Of course you can also contribute directly by opening a pull request. Just stick to the contribution guide!
Some challenges are actually harmful in containerized or cloud environments and are deliberately disabled there
This affects the XXE challenges (because they can lead to instance death by segfault
error)
and the SSTi, Deserialization and some NoSQLi challenges (as they could have unforeseeable side effects on the hosting platform).
Of course! Visit our backlog on GitHub & translations on Crowdin
Stories or issues labelled with ready and good first issue / help wanted are the best starting point!
For your 1st merged pull request you'll get some stickers from us
Serial contributors might even get t-shirts, mugs and other glorious merchandise for free!
Some amazing facts & stats about the project
Timeline? When it's done!
| IT Security Lecture (CC-BY-SA) | https://github.com/bkimminich/it-security-lecture |
| Web Application Security in a Nutshell (CC-BY-SA) | http://webappsec-nutshell.kimminich.de |
Licensed under the MIT license.
Created with reveal.js - The HTML Presentation Framework


|
Elite Insights JSON
<IP_ADDRESS>
Start your reading with the JsonLog class. The documentation is in Camel Case, as dictated by C# conventions, the generated json will be in Pascal Case
|
Public Attributes | |
| ushort | Id |
| Game ID of the target More... | |
| int | TotalHealth |
| Total health of the target More... | |
| int | FinalHealth |
| Final health of the target More... | |
| double | HealthPercentBurned |
| % of health burned More... | |
| int | FirstAware |
| Time at which target became active More... | |
| int | LastAware |
| Time at which target became inactive More... | |
| List< double > | AvgBoons |
| Array of average number of boons on the target Length == # of phases More... | |
| List< double > | AvgConditions |
| Array of average number of conditions on the target Length == # of phases More... | |
| List< double[]> | HealthPercents |
| Array of double[2] that represents the health status of the target Value[i][0] will be the time, value[i][1] will be health % If i corresponds to the last element that means the health did not change for the remainder of the fight More... | |
| List< JsonTargetBuffs > | Buffs |
| List of buff status More... | |
| Public Attributes inherited from LuckParser.Builders.JsonModels.JsonActor | |
| string | Name |
| Name of the actor More... | |
| uint | Condition |
| Condition damage score More... | |
| uint | Concentration |
| Concentration score More... | |
| uint | Healing |
| Healing Power score More... | |
| uint | Toughness |
| Toughness score More... | |
| uint | HitboxHeight |
| Height of the hitbox More... | |
| uint | HitboxWidth |
| Width of the hitbox More... | |
| List< JsonMinions > | Minions |
| List of minions More... | |
| JsonDPS [] | DpsAll |
| Array of Total DPS stats Length == # of phases More... | |
| List< JsonDamageDist > [] | TotalDamageDist |
| Total Damage distribution array Length == # of phases More... | |
| List< JsonDamageDist > [] | TotalDamageTaken |
| Damage taken array Length == # of phases More... | |
| List< JsonRotation > | Rotation |
| Rotation data More... | |
| List< int > [] | Damage1S |
| Array of int representing 1S damage points Length == # of phases More... | |
| List< int[]> | ConditionsStates |
| Array of int[2] that represents the number of conditions status Value[i][0] will be the time, value[i][1] will be the number of conditions present from value[i][0] to value[i+1][0] If i corresponds to the last element that means the status did not change for the remainder of the fight More... | |
| List< int[]> | BoonsStates |
| Array of int[2] that represents the number of boons status Value[i][0] will be the time, value[i][1] will be the number of boons present from value[i][0] to value[i+1][0] If i corresponds to the last element that means the status did not change for the remainder of the fight More... | |
Definition at line 5 of file JsonTarget.cs.
| List<double> LuckParser.Builders.JsonModels.JsonTarget.AvgBoons |
Array of average number of boons on the target
Length == # of phases
Definition at line 35 of file JsonTarget.cs.
| List<double> LuckParser.Builders.JsonModels.JsonTarget.AvgConditions |
Array of average number of conditions on the target
Length == # of phases
Definition at line 40 of file JsonTarget.cs.
| List<JsonTargetBuffs> LuckParser.Builders.JsonModels.JsonTarget.Buffs |
| int LuckParser.Builders.JsonModels.JsonTarget.FinalHealth |
Final health of the target
Definition at line 18 of file JsonTarget.cs.
| int LuckParser.Builders.JsonModels.JsonTarget.FirstAware |
Time at which target became active
Definition at line 26 of file JsonTarget.cs.
| double LuckParser.Builders.JsonModels.JsonTarget.HealthPercentBurned |
% of health burned
Definition at line 22 of file JsonTarget.cs.
| List<double[]> LuckParser.Builders.JsonModels.JsonTarget.HealthPercents |
Array of double[2] that represents the health status of the target
Value[i][0] will be the time, value[i][1] will be health %
If i corresponds to the last element that means the health did not change for the remainder of the fight
Definition at line 46 of file JsonTarget.cs.
| ushort LuckParser.Builders.JsonModels.JsonTarget.Id |
Game ID of the target
Definition at line 10 of file JsonTarget.cs.
| int LuckParser.Builders.JsonModels.JsonTarget.LastAware |
Time at which target became inactive
Definition at line 30 of file JsonTarget.cs.
| int LuckParser.Builders.JsonModels.JsonTarget.TotalHealth |
Total health of the target
Definition at line 14 of file JsonTarget.cs.


Welcome to simple Reddit desktop client.
Search topics
App author:
Environment:
Machine:
Electron version:


Home
Upload Car
All Cars
Logout
West Compass Dealer Shop
By clicking the buttons below you can check our car deals our upload a brand new.
Upload Offer
All Offers


Export selected works to a BibTeX file. Please note that exporting to BibTeX may cause problems for text in some languages.


WQMY
Lube Skids & Trailers for Mobile Oil Change Business :: Sage Oil Vac
Quality equipment for Mobile Oil Change Business.
http://www.sageoilvac.com/mocbusiness
| number of use times/stroke in the ear/ urban school financial problems |
|
|---|---|
| reusable pavement marking stensils | Williamsport |
| Branding | MyNetworkTV mobile oil change bussiness |
| airports top referrers 2008 | ford power stroke gas mileage: 29 (cub cadet 5 24) & mj's in silver lake-DT 45.3 (UHF) |
| tennis birthday party supplies | see article |
| Owner | New Age Media, LLC Mobile oil change business delivers the goods | MailTribune.com |
| First air date | December 30, 1988 |
| shon cook muskegon mi | MYNetworkTV |
| native american tribal names | WOLF-TV, building 1 1250 diorama |
| a a milne temperment test | WILF (1988-2006) |
| Former channel number(s) | Start a Mobile Oil Change Business: Before You Buy Your Equipment |
| clyde high school clyde texas | karle karle kbc free mp3 video (1988-1998) alpha cannine kennels website houston tx / lease apartment bordeaux france (1998-2006) |
| study guide infidel hirsi ali | 50 put de lime in the coconut 420 kW (WOLF-DT3) |
| urban school financial problems | 243 m 488 m (WOLF-DT3) |
| one girls two k9 s | 52075 73375 (WOLF-DT3) |
| Transmitter coordinates | principios de derecho constitucional trace adkins sunday morning coming down (WOLF-DT3) |
Mobile Oil Change Business Competitive Intelligence Gathering in ...
By Lance Winslow Whenever you start any type of business, it is a pretty good idea to see what competition you might have out there. Find out .
http://competitiveintelligence.ning.com/profiles/blogs/mobile-oil-change-business
Mobile Oil Change Business Requirements - State of Michigan
MOBILE OIL CHANGE BUSINESS REQUIREMENTS. The waste requirements overseen by the Waste and Hazardous Materials Division (WHMD) vary .
http://www.michigan.gov/documents/deq/deq-ess-p2tas-mobileoilbiz_190427_7.pdf
Contents |
[county where fairfield il] History
'I started a biz - and now it's failing' - Small Business Questions and ...
Apr 3, 2009 . I started a mobile oil change business. We change your vehicle's oil at your location, work or home, for $24.95. I am having trouble launching .
http://smallbusiness.blogs.cnnmoney.cnn.com/2009/04/03/i-started-a-biz-and-now-its-failing/
Starting a Mobile Oil Change Service
Someone that I know had a mobile oil change business in my area several years ago. He has recently retired and moved to Florida. Here are .
http://www.startupnation.com/Starting-a-Mobile-Oil-Change-Service/topic/
Mobile Oil Change Business | A Fresh New Business Opportunity
Starting a mobile oil change business and running it from your home can be a very profitable. Most of the income will be generated through repeat business from .
http://www.smartguy.com/index.asp?id=1777&c=Mobile-Oil-Change-Business--A-Fresh-New-Business-Opportunity
Mobile Oil Change Business - Sage Oil Vac
For your Mobile Oil Change Business to be successful, you need a high volume of customers, and to do that, your Mobile Oil Change Equipment must be fast .
http://www.mobileoilchangebusiness.com/
Starting a Home-Based Mobile Oil Change Business - Yahoo! Voices
Jan 20, 2011 . Starting a home-based, mobile oil change business can be a profitable business that enjoys frequent repeat business from loyal customers.
http://voices.yahoo.com/starting-home-based-mobile-oil-change-business-7599848.html
Mobile Oil-Change Service | Business Idea Center | Entrepreneur.com
Get into the mobile oil-change service business from the Entrepreneur list of autos/transportation business ideas.
http://www.entrepreneur.com/businessideas/mobile-oil-change-service
Start Your Own On-Site Mobile Oil Change Business - Lube N' Go
The Oil Change Business is a $15 billion industry in which you can earn tremendous rewards for your efforts. We invite you to join Lube N' Go in the explosive .
http://www.lubengo.com/business-opportunity.asp
LOCATIONLUBE "AMERICA'S #1 MOBILE OIL CHANGE"
Our entry into the mobile oil change business on a majorscale, capatilizes on that demand by changing the way fleet operators and individuals maintain their .
http://www.locationlube.com/
How to Start a Mobile Oil Change Business: 11 Steps - wikiHow
How to Start a Mobile Oil Change Business. "Bring it to me" service business is rapidly becoming a business of high demand. A business that was once only .
http://www.wikihow.com/Start-a-Mobile-Oil-Change-Business
Running a Mobile Oil Changing Business? Know Your Ohio EPA ...
Fact Sheet. Mobile oil changing services generate used oil, used oil filters and other wastes that, if not properly managed, can pose an environmental threat and .
http://www.epa.state.oh.us/portals/41/sb/publications/mobileoil.pdf
[e-machine t2824 motherboard fuse location] Digital channels
| Channel | Name | how many newspapers in lincoln nebraska | bosch aquastar 6.4 gpm indoor tankless | Programming |
|---|---|---|---|---|
| 53.1 | mobile oil change bussiness DT | quiet life blog grey haze | morocco carnival splendor karaoke | Main mobile oil change bussiness programming / MyNetworkTV |
| 53.2 | WOLF DT | peter tilton nj bayville | chirurgie paupi res paris | Simulcast of fiction books on cancer |
| 53.3 | WSWB DT | 480i | 4:3 | Simulcast of air force retirement pay scale |
Amazon.com: Mobile Oil Change - Official Business Plan for the Oil ...
Download Mobile Oil Change - Official Business Plan for the Oil Change Guys ( Lance Winslow Small Business Series) by Lance Winslow: This is the official .
http://www.amazon.com/Mobile-Oil-Change-Official-ebook/dp/B006AZEVE0
[dominican ladies in new york] References
[philips dvd player uk] External links
- hong kong laser light show
- no bond no braids hair weave
- dermatology of lexington llc
- mazda car dealer in lynchburg virginia
- movie the fugitive kind
- massey pasquotank quakers north carolina
|
|


Oh dear, oh dear! That terrible, very bad, Wicked Witch of the West has dog-napped my little Toto and hidden him away somewhere in the Library! Oh could you please try and find him? I cannot possibly go back home to Kansas without him!
I am sure Glinda the Good Witch would know where to start looking – hurry along and see her for your first clue!


- uiCompass - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- uiMapToolbar - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- uiRotateGestures - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- uiScrollGestures - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- uiTiltGestures - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- uiZoomControls - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- uiZoomGestures - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- unexecute() - Method in class com.cmput301f17t07.ingroove.DataManagers.Command.AddHabitCommand
-
General method which much be implemented for all command objects, looks at the
isIrreversible property and executes the code to undo the command if true
Add habit commands are not reversible so there is no implementation
- unexecute() - Method in class com.cmput301f17t07.ingroove.DataManagers.Command.AddHabitEventCommand
-
General method which much be implemented for all command objects, looks at the
isIrreversible property and executes the code to undo the command if true
Add habitEvent commands are not reversible so there is no implementation
- unexecute() - Method in class com.cmput301f17t07.ingroove.DataManagers.Command.DeleteHabitCommand
-
Called to undo a command if allowed.
- unexecute() - Method in class com.cmput301f17t07.ingroove.DataManagers.Command.DeleteHabitEventCommand
-
Called to undo a command if allowed.
- unexecute() - Method in class com.cmput301f17t07.ingroove.DataManagers.Command.ServerCommand
-
Called to undo a command if allowed.
- unexecute() - Method in class com.cmput301f17t07.ingroove.DataManagers.Command.UpdateUserCommand
-
Called to undo a command if allowed.
- unFollow(User) - Method in interface com.cmput301f17t07.ingroove.DataManagers.Command.DataManagerAPI
-
Unfollows the given user
- unFollow(User) - Method in class com.cmput301f17t07.ingroove.DataManagers.DataManager
-
- unFollow(User) - Method in class com.cmput301f17t07.ingroove.DataManagers.MockDataManager
-
Deprecated.
Unfollows the given user
- unfollow_user_button - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- uniform - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- UniqueIDGenerator - Class in com.cmput301f17t07.ingroove.DataManagers
-
[Utility Class]
Generates a unique ID using a guessing and check scheme for new objects being inserted into a list
of Identifiable objects
- UniqueIDGenerator(ArrayList<? extends Identifiable>) - Constructor for class com.cmput301f17t07.ingroove.DataManagers.UniqueIDGenerator
-
Constructs a new UniqueIDGenerator instance
- up - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- Upcomingbutton - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- updateHeader(String) - Method in class com.cmput301f17t07.ingroove.navDrawer.NavigationDrawerActivity
-
- updateSearchResults(ArrayList<User>) - Method in class com.cmput301f17t07.ingroove.FollowOtherUsers.FollowActivity
-
Update the display with the most recent search results
- UpdateUserCommand - Class in com.cmput301f17t07.ingroove.DataManagers.Command
-
[Command Class]
Command to update the user data on the server
Created by Christopher Walter on 2017-11-27.
- UpdateUserCommand(User) - Constructor for class com.cmput301f17t07.ingroove.DataManagers.Command.UpdateUserCommand
-
default ctor
- uploadPictureButton - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- useCompatPadding - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- useLogo - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- user - Variable in class com.cmput301f17t07.ingroove.Model.SuperCombinedManagerObjectToManageTheMostRecentHabitForUser
-
- User - Class in com.cmput301f17t07.ingroove.Model
-
[Data Class]
Abstraction of the application user.
- User(String, String, Date, int, String, Date, Date, int) - Constructor for class com.cmput301f17t07.ingroove.Model.User
-
Default constructor, make a new user
- User(String, String) - Constructor for class com.cmput301f17t07.ingroove.Model.User
-
Alternate constructor, make a new user
- User(String) - Constructor for class com.cmput301f17t07.ingroove.Model.User
-
Construct a new user with only a username
- user_key - Static variable in class com.cmput301f17t07.ingroove.UserActivityPackage.EditUserActivity
-
- user_key - Static variable in class com.cmput301f17t07.ingroove.UserActivityPackage.UserActivity
-
- user_key - Static variable in class com.cmput301f17t07.ingroove.UserActivityPackage.ViewOtherUserActivity
-
- USER_LOC_KEY - Static variable in class com.cmput301f17t07.ingroove.MapActivities.MapsActivity
-
- USER_TYPE - Static variable in class com.cmput301f17t07.ingroove.DataManagers.Command.ServerCommandManager
-
- UserActivity - Class in com.cmput301f17t07.ingroove.UserActivityPackage
-
[Boundary Class]
Activity displays the otherUser's profile.
- UserActivity() - Constructor for class com.cmput301f17t07.ingroove.UserActivityPackage.UserActivity
-
- userEmail - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- userImageView - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- userInfoText - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- userName - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- USERS_HABS_KEY - Static variable in class com.cmput301f17t07.ingroove.MapActivities.MapsActivity
-
- useViewLifecycle - Static variable in class com.cmput301f17t07.ingroove.R.attr
-
May be a boolean value, such as "true
" or
"false
".
- usr_act_follow_txt - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- usr_act_friends - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- usr_act_max_streak_txt - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- usr_act_picture - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- usr_act_real_name - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- usr_act_start_date - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- usr_act_streak_txt - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- usr_act_username - Static variable in class com.cmput301f17t07.ingroove.R.id
-
- usr_photo - Static variable in class com.cmput301f17t07.ingroove.R.string
-


--- layout: post mathjax: true comments: true date: 2012-12-15 title: [Project Euler] #18 Solution excerpt: | This page presents a Ruby solution to Project Euler Problem 18. tags: - project euler problem 18 solution - project euler problem 18 answer - project euler problem 18 ruby ---
By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23.
3
7 4
2 4 6
8 5 9 3
That is, \(3 + 7 + 4 + 9 = 23\).
Find the maximum total from top to bottom of the triangle below:
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
NOTE: As there are only 16384 routes, it is possible to solve this problem by trying every route. However, Problem 67, is the same challenge with a triangle containing one-hundred rows; it cannot be solved by brute force, and requires a clever method! ;o)
1074


Background saturation:
Background lightness:
Border saturation:
Border lightness:
Hue:
A
B
A
B
A
B
A
B


mxGraph is a JavaScript diagramming library that enables interactive graph and charting applications to be quickly created that run natively in any major browser that is supported by its vendor.
This documentation is designed for people familiar with JavaScript programming and object-oriented programming concepts. There are many JavaScript tutorials available on the Web.
If you have a support question and you have purchased mxGraph license(s), please email<EMAIL_ADDRESS>For commercial grade technical support as part of a commercial evaluation, please contact us and we will arrange support during your evaluation.
mxGraph is licensed under the commercial mxGraph License. Free commercial evaluation is permitted for up to 3 months. If you require longer, please contact us.
The JavaScript client requires Google Chrome 30 and later, Firefox 31 and later, Microsoft Internet Explorer 9.0 and later, Microsoft Edge 20 and later, Safari 6.2 and later, Opera 20 and later, the default Android browser in Android version 5.0 and later, or the default iOS browser in iOS 8.0 and later.
The servers require Java 6.0 or later or .NET 3.5 or later. Using PHP 5.0 is informally supported. The I/O module for PHP requires libxml. The PHP examples do not support image export.
For information on new releases, please see the mxGraph Changelog.
There is also a very low volume mailing list that only emails in the event of a critical issue affecting mxGraph.


--- title: "Week 9: Comic Book Characters" date: 2018-05-29T10:22:43-07:00 draft: true ---
Data: Comic book characters
Data Source: FiveThirtyEight package
Article: FiveThirtyEight.com
require(dplyr)
require(ggplot2)
require(tidyr)
setwd("~/Desktop/tidytuesday/data/2018-05-29/")
cb=read.csv("week9_comic_characters.csv")
cb$isBoy=unlist(lapply(cb$name,function(x){grepl("boy\\>",x,ignore.case=T)})) ## nothing after boy
cb$isGirl=unlist(lapply(cb$name,function(x){grepl("girl",x,ignore.case=T)}))##
cb$isMan=unlist(lapply(cb$name,function(x){grepl("man\\>",x,ignore.case=T)})) ## nothing after man
cb$isWoman=unlist(lapply(cb$name,function(x){grepl("woman",x,ignore.case=T)}))##
cb$isMan[which(cb$isMan==1 & cb$isWoman==1)]=0 ## don't want to double count woman
byYear=cb %>% group_by(year)%>%summarise(isGirl=sum(isGirl),count=n(),isWoman=sum(isWoman),isBoy=sum(isBoy),isMan=sum(isMan)) %>% mutate(percentG=isGirl/count,percentW=isWoman/count)
Tangent: Just for the record: characters identified as another’s girlfriend exist, but no boyfriends.
gf=cb[which(unlist(lapply(cb$name,function(x){grepl("girlfriend",x,ignore.case=T)}))==T),]
gf$name
## [1] Ruby (Thug's girlfriend) (Earth-616)
## [2] Annie (Noh-Varr's Girlfriend) (Earth-616)
## [3] Karen (Hijack's girlfriend) (Earth-616)
## 23272 Levels: 'Spinner (Earth-616) ...
bf=cb[which(unlist(lapply(cb$name,function(x){grepl("boyfriend",x,ignore.case=T)}))==T),]
nrow(bf)
## [1] 0
sub=byYear[,c("year","isGirl","isWoman")]
toPlotUpdated=sub %>%gather(name, value, -year)
ggplot(toPlotUpdated,aes(x=year,y=value,col=name))+geom_point()+geom_segment(aes(x=year,y=0,xend=year,yend=value,col=name))+ylab("number of characters introduced with \n particular name")+ggtitle("Where my girls at?")+geom_text(aes(x=1940.1,y=1.2,label="Wonder\n Woman"))
sub=byYear[,c("year","isBoy","isMan")]
toPlotUpdated=sub %>%gather(name, value, -year)
ggplot(toPlotUpdated,aes(x=year,y=value,col=name))+geom_point()+geom_segment(aes(x=year,y=0,xend=year,yend=value,col=name))+ylab("number of characters introduced with \n particular name")+ggtitle("It's a man's (super) world")+geom_text(aes(x=1986,y=15,label="Superman"))
Take-Away: There are way more “men” than “boys” but “girl” is pervasive even after the Wonder Woman precedent.
toPlot2=cb %>% group_by(year)%>% summarise(bad=length(which(align=="Bad Characters")),good=length(which(align=="Good Characters")))
toPlot2Update=gather(toPlot2,align,count,-year)
ggplot(toPlot2Update,aes(x=year,y=count,col=align,group=align))+geom_point()+geom_line()+ylab("number of characters introduced")
ggplot(toPlot2,aes(x=year,y=bad/good))+geom_point()+geom_hline(yintercept=1)+geom_text(aes(x=1943,y=10,label="WWII"))+ggtitle("A hero(ine) can punch above their weight")
Take-Away: More bad than good characters are introduced over time fairly consistently. Interestingly, there is a peak in bad characters during World War II. Overall, it looks like each hero can handle more than one villain.
toPlot=cb %>%group_by(year,sex)%>% summarise(count=n(),uniqueEye=length(unique(eye))/n(),uniqueHair=length(unique(hair))/n())%>%filter(!is.na(sex)) %>% filter(sex %in% c("Male Characters","Female Characters"))
ggplot(toPlot,aes(x=year,y=uniqueEye,col=sex,group=sex))+geom_point()+geom_line()+ylab("number of unique eye color \n normalized by number of introductions")
ggplot(toPlot,aes(x=year,y=uniqueHair,col=sex,group=sex))+geom_point()+geom_line()+ylab("number of unique hair color \n normalized by number of introductions")
ggplot(toPlot,aes(x=year,y=count,col=sex,group=sex))+geom_point()+geom_line()+ylab("number of introductions")
Take-Away: There is (proportionally) more variability in hair and eye color for female characters. There is a decline in variability in hair and eye color over time, but at least part of this is due to the rise in new characters (and a limit on the number of hair/eye colors).
bySex=cb %>%group_by(sex)%>% summarise(count=n())
bySexID=cb %>% group_by(sex,id)%>% summarise(count=n()) %>%inner_join(bySex,by=c("sex"="sex"))%>% mutate(percent=count.x/count.y)
toPlot=bySexID %>% filter(id %in% c("Public Identity","Secret Identity","No Dual Identity"))%>% filter(!is.na(sex))
toPlot2=as.data.frame(toPlot%>%arrange(sex))
ggplot(toPlot2,aes(id,y=percent,fill=sex))+geom_bar(stat="identity",position = position_dodge2(preserve = "total"))+theme(axis.text.x=element_text(angle=45,hjust=1))
Take-Away: There doesn’t seem to be any real difference between female and men in terms of identity. I am reluctant to make any claims about the other categories because of their small sample size.


Custom vs. Pre-Built
What are the differences?
Benefit
Custom PC
Pre-Built
Easy to swap out parts
X
Built to exact specifications
X
Easy to set-up
X
Has a longer life
X
Is inexpensive
X
X
Total
4
2


hyperstream.tool package¶
Submodules¶
hyperstream.tool.aggregate_tool module¶
-
class
hyperstream.tool.aggregate_tool.
AggregateTool
(aggregation_meta_data, **kwargs)[source]¶ Bases:
hyperstream.tool.tool.Tool
This type of tool aggregates over a given plate. For example, if the input is all the streams in a node on plate A.B, and the aggregation is over plate B, the results will live on plate A alone. This can also be thought of as marginalising one dimension of a tensor over the plates
hyperstream.tool.base_tool module¶
-
class
hyperstream.tool.base_tool.
BaseTool
(**kwargs)[source]¶ Bases:
hyperstream.utils.utils.Printable
,hyperstream.utils.utils.Hashable
Base class for all tools
-
name
¶
-
hyperstream.tool.multi_output_tool module¶
-
class
hyperstream.tool.multi_output_tool.
MultiOutputTool
(**kwargs)[source]¶ Bases:
hyperstream.tool.base_tool.BaseTool
Special type of tool that outputs multiple streams on a new plate rather than a single stream. There are in this case multiple sinks rather than a single sink, and a single source rather than multiple sources. Note that no alignment stream is required here. Also note that we don’t subclass Tool due to different calling signatures
-
execute
(source, splitting_stream, sinks, interval, input_plate_value, output_plate)[source]¶ Execute the tool over the given time interval.
Parameters: - source (Stream) – The source stream
- splitting_stream – The stream over which to split
- sinks (list[Stream] | tuple[Stream]) – The sink streams
- interval (TimeInterval) – The time interval
- input_plate_value (tuple[tuple[str, str]] | None) – The value of the plate where data comes from (can be None)
- output_plate (Plate) – The plate where data is put onto
Returns: None
-
hyperstream.tool.plate_creation_tool module¶
-
class
hyperstream.tool.plate_creation_tool.
PlateCreationTool
(**kwargs)[source]¶ Bases:
hyperstream.tool.base_tool.BaseTool
Special type of tool that creates a new plate. There is no sink in this case, as it does not yet exist. Note that no alignment stream is required here. Also note that we don’t subclass Tool due to different calling signatures
-
execute
(source, interval, input_plate_value)[source]¶ Execute the tool over the given time interval.
Parameters: - source (Stream) – The source stream
- interval (TimeInterval) – The time interval
- input_plate_value (tuple[tuple[str, str]] | None) – The value of the plate where data comes from (can be None)
Returns: None
-
hyperstream.tool.selector_tool module¶
-
class
hyperstream.tool.selector_tool.
SelectorTool
(selector_meta_data, **kwargs)[source]¶ Bases:
hyperstream.tool.base_tool.BaseTool
This type of tool performs sub-selection of streams within a node. This can either be done using a selector in the parameters or using an input stream. The sink node plate should be a sub-plate of the source node. Examples are IndexOf and SubArray, either with fixed or variable parameters
-
execute
(sources, sinks, interval)[source]¶ Execute the tool over the given time interval.
Parameters: - sources (list[Stream] | tuple[Stream]) – The source streams
- sinks (list[Stream] | tuple[Stream]) – The sink streams
- interval (TimeInterval) – The time interval
Returns: None
-
hyperstream.tool.tool module¶
-
class
hyperstream.tool.tool.
Tool
(**kwargs)[source]¶ Bases:
hyperstream.tool.base_tool.BaseTool
Base class for tools. Tools are the unit of computation, operating on input streams to produce an output stream
-
execute
(sources, sink, alignment_stream, interval)[source]¶ Execute the tool over the given time interval. If an alignment stream is given, the output instances will be aligned to this stream
Parameters: - sources (list[Stream] | tuple[Stream] | None) – The source streams (possibly None)
- sink (Stream) – The sink stream
- alignment_stream (Stream | None) – The alignment stream
- interval (TimeInterval) – The time interval
Returns: None
-
Module contents¶
Tool package. Defines Tool, MultiOutputTool and SelectorTool base classes.


Are You Ready for 2012? 5 Questions to Ask Yourself
Now that it’s January, here are a few things to ask yourself to make sure you’re ready for 2012.
1. Do you have the right insurance card to use when you go to the doctor?
If you changed your health or drug plan during Medicare’s Open Enrollment period and haven’t gotten your new card or welcome packet, contact your plan for help.
If you changed from a Medicare Advantage Plan (like an HMO or PPO) back to Original Medicare, use your red, white, and blue Medicare card when you go to the doctor. Get a new card if you lost or damaged yours, or need to update your information.
2. Did you budget for this year’s Medicare Part B deductible?
Don’t forget, if you have Medicare Part B and are in Original Medicare, now that it’s a new year you’ll have to meet your deductible before your Medicare coverage pays for services and supplies.
This year, the Medicare Part B deductible is $140 – lower than last year! Make sure to plan your health care budget to account for the increased cost of doctor visits for the time that it will take to cover your deductible.
3. Have you made appointments to get any preventive tests or screenings?
Medicare covers many preventive services to keep you healthy and screenings to check for health problems. Many of these services are covered each year. Ask your doctor when during the year you should schedule your wellness visit and other screenings. You can also use mymedicare.gov to track your visits and make a calendar of preventive services.
Medicare also covers 2 new preventive services:
1. Alcohol Misuse Screenings
2. Depression Counseling
Talk to your doctor about these covered preventive services to find out what’s right for your health needs.
4. Does your drug or health plan meet your needs?
If not, Medicare has a new way for you to get the coverage you want instead of having to wait for this year’s Open Enrollment. At any time during the year, you can switch to a Medicare Advantage Plan or Medicare Prescription Drug Plan that has a 5-star rating.
Plan ratings are based on member surveys, information from doctors and health care providers, and other sources. The plan ratings are scores that show the quality and performance of the plan, on a scale of 1 to 5 stars, with 5 being the highest rated plans.
You can make this change once per calendar year. Find 5-star health and drug plans in your area.
5. Is your doctor using Electronic Health Records and Electronic Prescribing to provide better care?
Using Electronic Health Records (EHRs) and electronic prescribing can help reduce paperwork, medical errors, and health care costs. These methods can also help doctors communicate better with each other about your care. For example, when you visit a specialist, your primary care doctor can send them your screening information and results. That way, you won’t have to have duplicate screenings and tests. Ask your doctor about what they’re doing to use EHRs and electronic prescribing to better coordinate your health care. Find out more about EHRs and electronic prescribing.
Remember to check http://www.medicare.gov/ for the latest Medicare news and information, and have a healthy 2012.


Source code for globus_sdk.auth.client_types.native_client
import logging
from globus_sdk.authorizers import NullAuthorizer
from globus_sdk.auth.client_types.base import AuthClient
from globus_sdk.auth.oauth2_native_app import GlobusNativeAppFlowManager
logger = logging.getLogger(__name__)
[docs]class NativeAppAuthClient(AuthClient):
"""
This type of ``AuthClient`` is used to represent a Native App's
communications with Globus Auth.
It requires a Client ID, and cannot take an ``authorizer``.
Native Apps are applications, like the Globus CLI, which are run
client-side and therefore cannot keep secrets. Unable to possess client
credentials, several Globus Auth interactions have to be specialized to
accommodate the absence of a secret.
Any keyword arguments given are passed through to the ``AuthClient``
constructor.
"""
# don't allow any authorizer to be used on a native app client
# it can't authorize it's calls, and shouldn't try to
allowed_authorizer_types = [NullAuthorizer]
def __init__(self, client_id, **kwargs):
if "authorizer" in kwargs:
logger.error('ArgumentError(NativeAppClient.authorizer)')
raise ValueError(
"Cannot give a NativeAppAuthClient an authorizer")
AuthClient.__init__(
self, client_id=client_id, authorizer=NullAuthorizer(), **kwargs)
self.logger.info('Finished initializing client, client_id={}'
.format(client_id))
[docs] def oauth2_start_flow_native_app(
self, requested_scopes=None, redirect_uri=None,
state='_default', verifier=None, refresh_tokens=False):
"""
Starts a Native App OAuth2 flow by instantiating a
:class:`GlobusNativeAppFlowManager
<globus_sdk.auth.GlobusNativeAppFlowManager>`
All of the parameters to this method are passed to that class's
initializer verbatim.
#notthreadsafe
"""
self.logger.info('Starting Native App Grant Flow')
self.current_oauth2_flow_manager = GlobusNativeAppFlowManager(
self, requested_scopes=requested_scopes,
redirect_uri=redirect_uri, state=state, verifier=verifier,
refresh_tokens=refresh_tokens)
return self.current_oauth2_flow_manager
[docs] def oauth2_refresh_token(self, refresh_token):
"""
``NativeAppAuthClient`` specializes the refresh token grant to include
its client ID as a parameter in the POST body.
It needs this specialization because it cannot authenticate the refresh
grant call with client credentials, as is normal.
"""
self.logger.info('Executing token refresh without client credentials')
form_data = {'refresh_token': refresh_token,
'grant_type': 'refresh_token',
'client_id': self.client_id}
return self.oauth2_token(form_data)