About metric_fu 2.0.1
Metric_fu is a set of rake tasks that make it easy to generate metrics reports. It uses
Saikuro,
Flog,
Flay,
Rcov,
Reek,
Roodi,
Churn,
RailsBestPractices,
Subversion,
Git, and
Rails
built-in stats task to create a series of reports. It's designed to integrate easily with
CruiseControl.rb
by placing files in the Custom Build Artifacts folder.
In 2.0.0 the big new feature is Hotspots. The Hotspots report combines Flog, Flay, Rcov, Reek, Roodi, and Churn numbers into one report so you see parts of your code that have multiple problems like so:
That is one terrible method.
Big thanks to Dan Mayer and Ben Brinckerhoff for the Hotspots code and for helping me integrate it with RCov.
In 1.5.0 I re-wrote the Flog parsing engine to use Flog programmatically instead of parsing the command line output. This will hopefully stop minor changes in Flog's output from breaking metric_fu. Check the HISTORY file for complete details.
New in metric_fu 1.4.0 is integration with the rails_best_practices gem (Richard Huang), Rails stats now have graphing (Josh Cronemeyer), parameterized filetypes for flay so it can look at other file types (bfabry), along with many bug fixes.
Installation:
gem install metric_fu
Then in your Rakefile:
require 'metric_fu'
Output:
Usage:
Out of the box metric_fu provides this tasks:- rake metrics:all # Generate coverage, cyclomatic complexity, flog, flay, reek, roodi, stats...
I recommend using CruiseControl.rb to set up a metrics build. See the CruiseControl.rb online docs for more info on how to set up cc.rb and, once you've got that figured out, change the cruise_config.rb file inside your project to have these lines:
project.rake_task = 'metrics:all'
project.scheduler.polling_interval = 24.hours
Which will check for updates every 24 hours and run all the metric_fu rake tasks (migrating your test db first). The output will be visible from an individual build's detail page.
Configuration:
The definitive source for configuration is, of course, the source: lib/base/configuration.rb
Metric_fu can be customized to your liking by altering the defaults in your Rakefile:
MetricFu::Configuration.run do |config| #define which metrics you want to use config.metrics = [:churn, :saikuro, :stats, :flog, :flay] config.graphs = [:flog, :flay, :stats] # ... endNote: if you don't want one of the metrics to run (like rcov), make sure you don't try to graph it (which will explode). Set config.graphs to exactly the graphs you want. Set config.graphs to an empty array (config.graphs = []) if you want no graphing at all.
Graphing
MetricFu uses Bluff for graphing (a Javascript library) by default. If you'd rather use Google Charts you can set 'config.graph_engine = :gchart' in the config. You'll have to install the googlecharts gem, of course.
Notes on Rails 3
If you use RSpec, you'll need to add this to one of your rake files:require 'metric_fu' MetricFu::Configuration.run do |config| config.rcov[:test_files] = ['spec/**/*_spec.rb'] config.rcov[:rcov_opts] << "-Ispec" # Needed to find spec_helper endIf you're using default Rails testing, then you can do this:
require 'metric_fu' MetricFu::Configuration.run do |config| config.rcov[:rcov_opts] << "-Itest" # Needed to find test_helper end
Notes on metrics:coverage
When creating a coverage report, metric_fu runs all the tests in the test folder and specs in spec folder using Rcov. You can configure what files it should run and the RAILS_ENV (by setting 'environment') it runs under. Default config for rcov:config.rcov = { :environment => 'test', :test_files => ['test/**/*_test.rb', 'spec/**/*_spec.rb'], :rcov_opts => ["--sort coverage", "--no-html", "--text-coverage", "--no-color", "--profile", "--rails", "--exclude /gems/,/Library/,/usr/,spec"], :external => nil }By far, Rcov is the most troublesome report in metric_fu. This is not because of Rcov itself, but because the Rcov report has to actually execute your tests and test suites can be very tricky things. MetricFu naively shells out to the command line, runs rcov on your tests/specs, and captures the output. This does not always work well. If you are having problems with metric_fu, try turning off Rcov (see the above Configuration section).
Notes on metrics:saikuro
Saikuro measures cyclomatic complexity for Ruby. Default config for Saikuro:config.saikuro = { :output_directory => 'tmp/metirc_fu/saikuro', :input_directory => ['app', 'lib'], :cyclo => "", :filter_cyclo => "0", :warn_cyclo => "5", :error_cyclo => "7", :formater => "text"}
Notes on metrics:flay
Flay analyzes ruby code for structural similarities. You can configure which directories need to be flayed. The defaults are 'lib' for non Rails projects and ['app', 'lib'] for Rails projects. By default, metric_fu ignores scores under 100. You can configure the minimum_score. Default config for Flay:config.flay ={:dirs_to_flay => ['app', 'lib'], :minimum_score => 100, :filetypes => ['rb'] }
Notes on metrics:flog
Flog is another way of measuring complexity (or tortured code as the Flog authors like to put it). You should check out the awesome, and a little scary, Flog website for more info. Default config for Flog:
config.flog = { :dirs_to_flog => ['app', 'lib'] }
Notes on metrics:reek
Reek detects common code smells in ruby code. You can configure which directories need to be checked. The defaults are 'lib' for non Rails projects and ['app', 'lib'] for Rails projects. Default config for Reek:config.reek = { :dirs_to_reek => ['app', 'lib'] }
Notes on metrics:roodi
Roodi parses your Ruby code and warns you about design issues you have based on the checks that is has configured. You can configure which directories need to be checked. The defaults are 'lib' for non Rails projects and ['app', 'lib'] for Rails projects. Default config for Roodi:config.roodi = { :dirs_to_roodi => ['app', 'lib'] }
Notes on metrics:rails_best_practices
Rails Best Practices checks your rails files for violations of... Well the name says it all. The gem was inspired by ihower's presentation Rails Best Practices
Notes on metrics:stats
This is just 'rake stats' put into a file. On my projects I like to be able to look at CruiseControl and get stats about the app at different points in time.
Notes on metrics:churn
Files that change a lot in your project may be bad a sign. This task uses svn or git's log to identify those files and put them in a report.Metric_fu began its life as a plugin for Rails that generated code metrics reports. As of version 0.7.0, metric_fu is a gem (owing to the excellent work done by Sean Soper) and is hosted on GitHub at http://github.com/jscruggs/metric_fu.
Questions?
Use the Google Group: http://groups.google.com/group/metric_fu


In essence, influencer marketing is planning your marketing strategy around key individuals who influence your potential buyers.


Community Education Entreprenuership
There are gaps between tech education, tech entrepreneurship, and tech industry. We are here to fill these gaps.
"No place to apply what I've learned"
"There's no community"
"I have a cool idea but I don't know where to start"
We collaboratively learn and hack together.
We bridge the gap between tech education, entrepreneurship and industry.
We build a technopreneurial culture in our community


Changelog
Features
- Added while loop (break and continue keywords supported)
- Compilation is stopped now if there are syntax errors
- Added IterationStatementNotInLoopError (break, continue)
- Added UdeclaredIdentifierError support for const assignment
- Added TooBigArrayIndexError
- Added ArrayIndexOutOfRangeError
- Added TooBigArraySizeError
- Added NotValidClassOrPrototypeError
- Added RedefinitionError
- Added UnableToEvaluateConstError
- Added KeywordUsedAsNameError
- Changed '//supresss WARNING_CODE' comment format to '//! suppress WARNING_CODE'


About the company
Gamer X Hub is a New York based online gaming store. We're here to make gaming for accesible for everyone by selling quality products for cheaper
917-535-1747
<EMAIL_ADDRESS>NY Queens 10523
Gamer X Hub is a New York based online gaming store. We're here to make gaming for accesible for everyone by selling quality products for cheaper
917-535-1747
gamerxhub@gmail.com


I am an Electrical Engineer.
I garduated from Albalqa'a Applied University in 2013.
I have 6 years' experience in Designing Electric Systems for buildings.
I am now Trying to learn something new and curious about, Software Developing.
These are my Top Ten Books and Novels so far, it will remain Changeable as long as I read:
- The 7 Habits of Highly Effective People(Steven Covey).
- The Da Vinci Code(Dan Brown).
- Man's Search for Meaning (Viktor E. Frankl)
- Rich Dad Poor Dad(Robert T. Kiyosaki ).
- You are Mine(Muna Almarshoud).
- With the Prophet(Adham Sharqawi).
- Ma'amoon AlQanouni(Deek AlJinn).
- I Missed a Prayer(Islam Jamal).
- Garanada (Radwa Aashour).
- The Third Alternative (Steven Covey).


Kenny Stafford's role in West final hinges on health of receiver Shaq Evans
Kenny Stafford is ready to go if Saskatchewan Roughriders' receiver Shaq Evans isn't for Sunday's West final against the Blue Bombers.
by Murray McCormickKenny Stafford’s role in Sunday’s West Division final remains to be determined.
The Saskatchewan Roughriders could ask Stafford to fill in for Shaq Evans, the team’s leading receiver, who remains a game-time decision with a foot injury as Sunday’s matchup with the Winnipeg Blue Bombers looms.
If Evans is available, Stafford would likely be relegated to bench duty.
“If I don’t get the call, I will be the best teammate I can be,” said Stafford, who has yet to dress for a regular-season game with the Riders since being acquired from the Edmonton Eskimos on Aug. 5.
“I will be getting the fans loud. Whatever the players see, I will talk to the coaches and translate it to them.”
Stafford, a veteran of seven CFL seasons, has approached preparations with the mindset of a starter.
“You’re always prepared to play so you don’t have to get ready when you need to be ready,” he said.


You can construct Hello World by moving the PRINT piece over to the other side. PRINT outputs to the console.


This topic is a very serious one, and many people in the world are aware it exists, at the very least. If you aren't one of them, here's the rundown. Sexual assault is when anyone, and I mean anyone, is treated in a way that violates their boundaries sexually. Sometimes it is because it isn't consensual, but the victim is ready for sexual actions in a consensual case, and other times because the victim isn't ready for sexual actions in general. In any case, sexual assault is no laughing matter. Even out of those who know it exists, many shrug it off as a far less serious problem. When boys or men are sexually assaulted, it is often not taken as seriously, because people don't understand, and say that the victim should have been glad they could 'get laid'.  In almost all cases, it affects the victim's life forever. In some cases, and almost all the cases publicly known, the assault goes as far as rape, however, sexual assault is not just rape.
Even catcalling at a middle school can be considered a minor form of sexual harassment. Even that much can be enough to make people uncomfortable, yet they are told to get over it, ignore it, etc. But that advice isn't typically the right advice. It's hard to ignore, can make someone feel threatened,especially considering the cases of people being raped or killed, and it can cause them to resent society, or maybe even become depressed. All in all, sexual assault is a serious issue perpetuated in modern day society that must be dealt with. On this website, you'll find resources, information, surveys to help those with knowledge on this topic figure out what they need to be educating people about, and even recommendations on what to do to help, or what to do if you are a victim.
To ensure this issue is taken seriously, and not thought of as a joke, I'll put forth the most alarming statistics first. Each day, over 570 people, human beings like everyone else on this planet, who did nothing to deserve it, experience sexual violence in the United States alone. That's right, almost 600 human beings experience sexual violence at the hands of others of the same species every day, in one country alone. How many experience this every day in the world? Surely many more. As if this isn't troubling enough, ninety-nine percent of sexual violence perpetrators will walk free after committing the crime of sexual violence. Over half of trans people will be the victims of sexual violence of some kind in their lives.


splitstackshape: Stack and Reshape Datasets After Splitting Concatenated Values
Online data collection tools like Google Forms often export
multiple-response questions with data concatenated in cells. The
concat.split (cSplit) family of functions splits such data into separate
cells. The package also includes functions to stack groups of columns and
to reshape wide data, even when the data are "unbalanced"—something
which reshape (from base R) does not handle, and which melt and dcast from
reshape2 do not easily handle.
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=splitstackshape
to link to this page.


| 11 | | Some examples: |
| 12 | | * Tickets: '''!#1''' or '''!ticket:1''' |
| 13 | | * Reports: '''!{1}''' or '''!report:1''' |
| 14 | | * Changesets: '''!r1''', '''![1]''' or '''!changeset:1''' |
| 15 | | * Revision log: '''!r1:3''', '''![1:3]''' or '''!log:#1:3''' |
| 16 | | * Wiki pages: '''CamelCase''' or '''!wiki:CamelCase''' |
| 17 | | * Milestones: '''!milestone:1.0''' |
| 18 | | * Attachment: '''!attachment:ticket:944:attachment.1073.diff''' |
| 19 | | * Files: '''!source:trunk/COPYING''' |
| 20 | | * A specific file revision: '''!source:/trunk/COPYING#200''' |
| 21 | | Display: |
| 22 | | * Tickets: #1 or ticket:1 |
| 23 | | * Reports: {1} or report:1 |
| 24 | | * Changesets: r1, [1] or changeset:1 |
| 25 | | * Differences: r1:3, [1:3] or log:#1:3 |
| 26 | | * Wiki pages: CamelCase or wiki:CamelCase |
| 27 | | * Milestones: milestone:1.0 |
| 28 | | * Files: source:trunk/COPYING |
| 29 | | * Attachment: attachment:ticket:944:attachment.1073.diff |
| 30 | | * A specific file revision: source:/trunk/COPYING#200 |
| 31 | | |
| 32 | | '''Note:''' The wiki:CamelCase form is rarely used, but it can be convenient to refer to |
| 33 | | pages whose names do not follow WikiPageNames rules, i.e., single words, |
| 34 | | non-alphabetic characters, etc. |
| 35 | | |
| 36 | | Trac links using the full (non-shorthand) notation can also be given a custom |
| 37 | | link title like this: |
| 38 | | |
| 39 | | {{{ |
| 40 | | [ticket:1 This is a link to ticket number one]. |
| 41 | | }}} |
| 42 | | |
| 43 | | Display: [ticket:1 This is a link to ticket number one]. |
| 44 | | |
| 45 | | If the title is be omitted, only the id (the part after the colon) is displayed: |
| 46 | | |
| 47 | | {{{ |
| 48 | | [ticket:1] |
| 49 | | }}} |
| 50 | | |
| 51 | | Display: [ticket:1] |
| 52 | | |
| 53 | | It might seem a simple enough concept at a glance, but actually allows quite a complex network of information. In practice, it's very intuitive and simple to use, and we've found the "link trail" extremely helpful to better understand what's happening in a project or why a particular change was made. |
| 54 | | |
| 55 | | == attachement: links == |
| 56 | | |
| 57 | | The link syntax for attachments is as follows: |
| 58 | | * !attachment:the_file.txt creates a link to the attachment the_file.txt of the current object |
| 59 | | * !attachment:wiki:MyPage:the_file.txt creates a link to the attachment the_file.txt of the !MyPage wiki page |
| 60 | | * !attachment:ticket:753:the_file.txt creates a link to the attachment the_file.txt of the ticket 753 !attachment:wiki:MyPage:the_file.txt |
| 61 | | |
| 62 | | == source: links == |
| 63 | | |
| 64 | | The default behavior for a source:/some/path link is to open the directory browser |
| 65 | | if the path points to a directory and otherwise open the log view. |
| 66 | | It's also possible to link directly to a specific revision of a file like this: source:/some/file@123 |
| 67 | | or like this to link to the latest revision: source:/some/file@latest. |
| 68 | | If the revision is specified, one can even link to a specific line number: !source:/some/file@123#L10 |
| 69 | | [[comment(TODO: remove the ! when Edgewall Trac is upgraded with the support for the line syntax)]] |
| 70 | | |
| 71 | | == Quoting space in TracLinks == |
| 72 | | |
| 73 | | The usual syntax for quoting space is: |
| 74 | | |
| 75 | | * !attachment:'the file.txt' or |
| 76 | | * !attachment:"the file.txt" |
| 77 | | |
| 87 | | == Escaping Links == |
| | 19 | == Overview == |
| | 20 | |
| | 21 | ||= Wiki Markup =||= Display =|| |
| | 22 | {{{#!td |
| | 23 | Wiki pages :: `CamelCase` or `wiki:CamelCase` |
| | 24 | Parent page :: `[..]` |
| | 25 | Tickets :: `#1` or `ticket:1` |
| | 26 | Ticket comments :: `comment:1:ticket:2` |
| | 27 | Reports :: `{1}` or `report:1` |
| | 28 | Milestones :: `milestone:1.0` |
| | 29 | Attachment :: `attachment:example.tgz` (for current page attachment), `attachment:attachment.1073.diff:ticket:944` (absolute path) |
| | 30 | Changesets :: `r1`, `[1]`, `changeset:1` or (restricted) `[1/trunk]`, `changeset:1/trunk` |
| | 31 | Revision log :: `r1:3`, `[1:3]` or `log:@1:3`, `log:trunk@1:3`, `[2:5/trunk]` |
| | 32 | Diffs :: `diff:@1:3`, `diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default` |
| | 33 | or `diff:trunk/trac@3538//sandbox/vc-refactoring@3539` |
| | 34 | Files :: `source:trunk/COPYING`, `source:/trunk/COPYING@200` (at version 200), `source:/trunk/COPYING@200#L25` (at version 200, line 25) |
| | 35 | }}} |
| | 36 | {{{#!td |
| | 37 | Wiki pages :: CamelCase or wiki:CamelCase |
| | 38 | Parent page :: [..] |
| | 39 | Tickets :: #1 or ticket:1 |
| | 40 | Ticket comments :: comment:1:ticket:2 |
| | 41 | Reports :: {1} or report:1 |
| | 42 | Milestones :: milestone:1.0 |
| | 43 | Attachment :: attachment:example.tgz (for current page attachment), attachment:attachment.1073.diff:ticket:944 (absolute path) |
| | 44 | Changesets :: r1, [1], changeset:1 or (restricted) [1/trunk], changeset:1/trunk |
| | 45 | Revision log :: r1:3, [1:3] or log:@1:3, log:trunk@1:3, [2:5/trunk] |
| | 46 | Diffs :: diff:@1:3, diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default |
| | 47 | or diff:trunk/trac@3538//sandbox/vc-refactoring@3539 |
| | 48 | Files :: source:trunk/COPYING, source:/trunk/COPYING@200 (at version 200), source:/trunk/COPYING@200#L25 (at version 200, line 25) |
| | 49 | }}} |
| | 50 | |
| | 51 | '''Note:''' The wiki:CamelCase form is rarely used, but it can be convenient to refer to |
| | 52 | pages whose names do not follow WikiPageNames rules, i.e., single words, |
| | 53 | non-alphabetic characters, etc. See WikiPageNames for more about features specific |
| | 54 | to links to Wiki page names. |
| | 55 | |
| | 56 | |
| | 57 | {{{#!table class="" |
| | 58 | |||| Trac links using the full (non-shorthand) notation can also be given a custom link title like this: || |
| | 59 | {{{#!td |
| | 60 | {{{ |
| | 61 | [ticket:1 This is a link to ticket number one] or |
| | 62 | [[ticket:1|This is another link to ticket number one]]. |
| | 63 | }}} |
| | 64 | }}} |
| | 65 | {{{#!td |
| | 66 | [ticket:1 This is a link to ticket number one] or |
| | 67 | [[ticket:1|This is another link to ticket number one]]. |
| | 68 | }}} |
| | 69 | |-------------------------------------------------------------------------------------- |
| | 70 | |||| If the title is omitted, only the id (the part after the colon) is displayed: || |
| | 71 | {{{#!td |
| | 72 | {{{ |
| | 73 | [ticket:1] or [[ticket:2]] |
| | 74 | }}} |
| | 75 | }}} |
| | 76 | {{{#!td |
| | 77 | [ticket:1] or [[ticket:2]] |
| | 78 | }}} |
| | 79 | |-------------------------------------------------------------------------------------- |
| | 80 | |||| `wiki` is the default if the namespace part of a full link is omitted: || |
| | 81 | {{{#!td |
| | 82 | {{{ |
| | 83 | [SandBox the sandbox] or |
| | 84 | [[SandBox|the sandbox]] |
| | 85 | }}} |
| | 86 | }}} |
| | 87 | {{{#!td |
| | 88 | [SandBox the sandbox] or |
| | 89 | [[SandBox|the sandbox]] |
| | 90 | }}} |
| | 91 | |-------------------------------------------------------------------------------------- |
| | 92 | |||| The short form ''realm:target'' can also be wrapped within a <...> pair, [[br]] which allow for arbitrary characters (i.e. anything but >) || |
| | 93 | {{{#!td |
| | 94 | {{{ |
| | 95 | <wiki:Strange(page@!)> |
| | 96 | }}} |
| | 97 | }}} |
| | 98 | {{{#!td |
| | 99 | <wiki:Strange(page@!)> |
| | 100 | }}} |
| | 101 | }}} |
| | 102 | |
| | 103 | TracLinks are a very simple idea, but actually allow quite a complex network of information. In practice, it's very intuitive and simple to use, and we've found the "link trail" extremely helpful to better understand what's happening in a project or why a particular change was made. |
| | 104 | |
| | 105 | |
| | 106 | == Advanced use of TracLinks == |
| | 107 | |
| | 108 | === Relative links === |
| | 109 | |
| | 110 | To create a link to a specific anchor in a page, use '#': |
| | 111 | {{{ |
| | 112 | [#Relativelinks relative links] or [[#Relativelinks|relative links]] |
| | 113 | }}} |
| | 114 | Displays: |
| | 115 | [#Relativelinks relative links] or [[#Relativelinks|relative links]] |
| | 116 | |
| | 117 | Hint: when you move your mouse over the title of a section, a '¶' character will be displayed. This is a link to that specific section and you can use this to copy the `#...` part inside a relative link to an anchor. |
| | 118 | |
| | 119 | To create a link to a [trac:SubWiki SubWiki]-page just use a '/': |
| | 120 | {{{ |
| | 121 | WikiPage/SubWikiPage or ./SubWikiPage |
| | 122 | }}} |
| | 123 | |
| | 124 | To link from a [trac:SubWiki SubWiki] page to a parent, simply use a '..': |
| | 125 | {{{ |
| | 126 | [..] or [[..]] |
| | 127 | }}} |
| | 128 | [..] or [[..]] |
| | 129 | |
| | 130 | To link from a [trac:SubWiki SubWiki] page to a [=#sibling sibling] page, use a '../': |
| | 131 | {{{ |
| | 132 | [../Sibling see next sibling] or [[../Sibling|see next sibling]] |
| | 133 | }}} |
| | 134 | [../Sibling see next sibling] or [[../Sibling|see next sibling]] |
| | 135 | |
| | 136 | But in practice you often won't need to add the `../` prefix to link to a sibling page. |
| | 137 | For resolving the location of a wiki link, it's the target page closest in the hierarchy |
| | 138 | to the page where the link is written which will be selected. So for example, within |
| | 139 | a sub-hierarchy, a sibling page will be targeted in preference to a toplevel page. |
| | 140 | This makes it easy to copy or move pages to a sub-hierarchy by [[WikiNewPage#renaming|renaming]] without having to adapt the links. |
| | 141 | |
| | 142 | In order to link explicitly to a [=#toplevel toplevel] Wiki page, |
| | 143 | use the `wiki:/` prefix. |
| | 144 | Be careful **not** to use the `/` prefix alone, as this corresponds to the |
| | 145 | [#Server-relativelinks] syntax and with such a link you will lack the `/wiki/` |
| | 146 | part in the resulting URL. |
| | 147 | |
| | 148 | ''(Changed in 0.11)'' Note that in Trac 0.10, using e.g. `[../newticket]` may have worked for linking to the `/newticket` top-level URL, but since 0.11, such a link will stay in the wiki namespace and therefore link to a sibling page. |
| | 149 | See [#Server-relativelinks] for the new syntax. |
| | 150 | |
| | 151 | === InterWiki links === |
| | 152 | |
| | 153 | Other prefixes can be defined freely and made to point to resources in other Web applications. The definition of those prefixes as well as the URLs of the corresponding Web applications is defined in a special Wiki page, the InterMapTxt page. Note that while this could be used to create links to other Trac environments, there's a more specialized way to register other Trac environments which offers greater flexibility. |
| | 154 | |
| | 155 | === InterTrac links === |
| | 156 | |
| | 157 | This can be seen as a kind of InterWiki link specialized for targeting other Trac projects. |
| | 158 | |
| | 159 | Any type of Trac link can be written in one Trac environment and actually refer to resources in another Trac environment. All that is required is to prefix the Trac link with the name of the other Trac environment followed by a colon. The other Trac environment must be registered on the InterTrac page. |
| | 160 | |
| | 161 | A distinctive advantage of InterTrac links over InterWiki links is that the shorthand form of Trac links (e.g. `{}`, `r`, `#`) can also be used. For example if T was set as an alias for Trac, links to Trac tickets can be written #T234, links to Trac changesets can be written [trac 1508]. |
| | 162 | See InterTrac for the complete details. |
| | 163 | |
| | 164 | === Server-relative links === |
| | 165 | |
| | 166 | It is often useful to be able to link to objects in your project that |
| | 167 | have no built-in Trac linking mechanism, such as static resources, `newticket`, |
| | 168 | a shared `/register` page on the server, etc. |
| | 169 | |
| | 170 | To link to resources inside the project, use either an absolute path from the project root, |
| | 171 | or a relative link from the URL of the current page (''Changed in 0.11''): |
| | 172 | |
| | 173 | {{{ |
| | 174 | [/newticket Create a new ticket] or [[//newticket|Create a new ticket]] |
| | 175 | [/ home] or [[/|home]] |
| | 176 | }}} |
| | 177 | |
| | 178 | Display: [/newticket Create a new ticket] or [[//newticket|Create a new ticket]] |
| | 179 | [/ home] or [[/|home]] |
| | 180 | |
| | 181 | To link to another location on the server (possibly outside the project but on the same host), use the `//` prefix (''Changed in 0.11''): |
| | 182 | |
| | 183 | {{{ |
| | 184 | [//register Register Here] or [[//register|Register Here]] |
| | 185 | }}} |
| | 186 | |
| | 187 | Display: [//register Register Here] or [[//register|Register Here]] |
| | 188 | |
| | 189 | === Quoting space in TracLinks === |
| | 190 | |
| | 191 | Immediately after a TracLinks prefix, targets containing space characters should |
| | 192 | be enclosed in a pair of quotes or double quotes. |
| | 193 | Examples: |
| | 194 | * !wiki:"The whitespace convention" |
| | 195 | * !attachment:'the file.txt' or |
| | 196 | * !attachment:"the file.txt" |
| | 197 | * !attachment:"the file.txt:ticket:123" |
| | 198 | |
| | 199 | Note that by using [trac:WikiCreole] style links, it's quite natural to write links containing spaces: |
| | 200 | * ![[The whitespace convention]] |
| | 201 | * ![[attachment:the file.txt]] |
| | 202 | |
| | 203 | === Escaping Links === |
| | 215 | |
| | 216 | === Parameterized Trac links === |
| | 217 | |
| | 218 | Many Trac resources have more than one way to be rendered, depending on some extra parameters. For example, a Wiki page can accept a `version` or a `format` parameter, a report can make use of dynamic variables, etc. |
| | 219 | |
| | 220 | Trac links can support an arbitrary set of parameters, written in the same way as they would be for the corresponding URL. Some examples: |
| | 221 | - `wiki:WikiStart?format=txt` |
| | 222 | - `ticket:1?version=1` |
| | 223 | - `[/newticket?component=module1 create a ticket for module1]` |
| | 224 | - `[/newticket?summary=Add+short+description+here create a ticket with URL with spaces]` |
| | 225 | |
| | 226 | |
| | 227 | == TracLinks Reference == |
| | 228 | The following sections describe the individual link types in detail, as well as notes on advanced usage of links. |
| | 229 | |
| | 230 | === attachment: links === |
| | 231 | |
| | 232 | The link syntax for attachments is as follows: |
| | 233 | * !attachment:the_file.txt creates a link to the attachment the_file.txt of the current object |
| | 234 | * !attachment:the_file.txt:wiki:MyPage creates a link to the attachment the_file.txt of the !MyPage wiki page |
| | 235 | * !attachment:the_file.txt:ticket:753 creates a link to the attachment the_file.txt of the ticket 753 |
| | 236 | |
| | 237 | Note that the older way, putting the filename at the end, is still supported: !attachment:ticket:753:the_file.txt. |
| | 238 | |
| | 239 | If you'd like to create a direct link to the content of the attached file instead of a link to the attachment page, simply use `raw-attachment:` instead of `attachment:`. |
| | 240 | |
| | 241 | This can be useful for pointing directly to an HTML document, for example. Note that for this use case, you'd have to allow the web browser to render the content by setting `[attachment] render_unsafe_content = yes` (see TracIni#attachment-section). Caveat: only do that in environments for which you're 100% confident you can trust the people who are able to attach files, as otherwise this would open up your site to [wikipedia:Cross-site_scripting cross-site scripting] attacks. |
| | 242 | |
| | 243 | See also [#export:links]. |
| | 244 | |
| | 245 | === comment: links === |
| | 246 | |
| | 247 | When you're inside a given ticket, you can simply write e.g. !comment:3 to link to the third change comment. |
| | 248 | It is possible to link to a comment of a specific ticket from anywhere using one of the following syntax: |
| | 249 | - `comment:3:ticket:123` |
| | 250 | - `ticket:123#comment:3` (note that you can't write `#123#!comment:3`!) |
| | 251 | It is also possible to link to the ticket's description using one of the following syntax: |
| | 252 | - `comment:description` (within the ticket) |
| | 253 | - `comment:description:ticket:123` |
| | 254 | - `ticket:123#comment:description` |
| | 255 | |
| | 256 | === query: links === |
| | 257 | |
| | 258 | See TracQuery#UsingTracLinks and [#ticket:links]. |
| | 259 | |
| | 260 | === search: links === |
| | 261 | |
| | 262 | See TracSearch#SearchLinks |
| | 263 | |
| | 264 | === ticket: links === |
| | 265 | ''alias:'' `bug:` |
| | 266 | |
| | 267 | Besides the obvious `ticket:id` form, it is also possible to specify a list of tickets or even a range of tickets instead of the `id`. This generates a link to a custom query view containing this fixed set of tickets. |
| | 268 | |
| | 269 | Example: |
| | 270 | - `ticket:5000-6000` |
| | 271 | - `ticket:1,150` |
| | 272 | |
| | 273 | ''(since Trac 0.11)'' |
| | 274 | |
| | 275 | === timeline: links === |
| | 276 | |
| | 277 | Links to the timeline can be created by specifying a date in the ISO:8601 format. The date can be optionally followed by a time specification. The time is interpreted as being UTC time, but alternatively you can specify your local time, followed by your timezone if you don't want to compute the UTC time. |
| | 278 | |
| | 279 | Examples: |
| | 280 | - `timeline:2008-01-29` |
| | 281 | - `timeline:2008-01-29T15:48` |
| | 282 | - `timeline:2008-01-29T15:48Z` |
| | 283 | - `timeline:2008-01-29T16:48+01` |
| | 284 | |
| | 285 | ''(since Trac 0.11)'' |
| | 286 | |
| | 287 | === wiki: links === |
| | 288 | |
| | 289 | See WikiPageNames and [#QuotingspaceinTracLinks quoting space in TracLinks] above. |
| | 290 | |
| | 291 | === Version Control related links === |
| | 292 | |
| | 293 | It should be noted that multiple repository support works by creating a kind of virtual namespace for versioned files in which the toplevel folders correspond to the repository names. Therefore, in presence of multiple repositories, a ''/path'' specification in the syntax of links detailed below should start with the name of the repository. If omitted, the default repository is used. In case a toplevel folder of the default repository has the same name as a repository, the latter "wins". One can always access such folder by fully qualifying it (the default repository can be an alias of a named repository, or conversely, it is always possible to create an alias for the default repository, ask your Trac administrator). |
| | 294 | |
| | 295 | For example, `source:/trunk/COPYING` targets the path `/trunk/COPYING` in the default repository, whereas `source:/projectA/trunk/COPYING` targets the path `/trunk/COPYING` in the repository named `projectA`. This can be the same file if `'projectA'` is an alias to the default repository or if `''` (the default repository) is an alias to `'projectA'`. |
| | 296 | |
| | 297 | ==== source: links ==== |
| | 298 | ''aliases:'' `browser:`, `repos:` |
| | 299 | |
| | 300 | The default behavior for a source:/some/path link is to open the browser in that directory directory |
| | 301 | if the path points to a directory or to show the latest content of the file. |
| | 302 | |
| | 303 | It's also possible to link directly to a specific revision of a file like this: |
| | 304 | - `source:/some/file@123` - link to the file's revision 123 |
| | 305 | - `source:/some/file@head` - link explicitly to the latest revision of the file |
| | 306 | |
| | 307 | If the revision is specified, one can even link to a specific line number: |
| | 308 | - `source:/some/file@123#L10` |
| | 309 | - `source:/tag/0.10@head#L10` |
| | 310 | |
| | 311 | Finally, one can also highlight an arbitrary set of lines: |
| | 312 | - `source:/some/file@123:10-20,100,103#L99` - highlight lines 10 to 20, and lines 100 and 103. |
| | 313 | ''(since 0.11)'' |
| | 314 | |
| | 315 | Note that in presence of multiple repositories, the name of the repository is simply integrated in the path you specify for `source:` (e.g. `source:reponame/trunk/README`). ''(since 0.12)'' |
| | 316 | |
| | 317 | ==== export: links ==== |
| | 318 | |
| | 319 | To force the download of a file in the repository, as opposed to displaying it in the browser, use the `export` link. Several forms are available: |
| | 320 | * `export:/some/file` - get the HEAD revision of the specified file |
| | 321 | * `export:123:/some/file` - get revision 123 of the specified file |
| | 322 | * `export:/some/file@123` - get revision 123 of the specified file |
| | 323 | |
| | 324 | This can be very useful for displaying XML or HTML documentation with correct stylesheets and images, in case that has been checked in into the repository. Note that for this use case, you'd have to allow the web browser to render the content by setting `[browser] render_unsafe_content = yes` (see TracIni#browser-section), otherwise Trac will force the files to be downloaded as attachments for security concerns. |
| | 325 | |
| | 326 | If the path is to a directory in the repository instead of a specific file, the source browser will be used to display the directory (identical to the result of `source:/some/dir`). |
| | 327 | |
| | 328 | ==== log: links ==== |
| | 329 | |
| | 330 | The `log:` links are used to display revision ranges. In its simplest form, it can link to the latest revisions of the specified path, but it can also support displaying an arbitrary set of revisions. |
| | 331 | - `log:/` - the latest revisions starting at the root of the repository |
| | 332 | - `log:/trunk/tools` - the latest revisions in `trunk/tools` |
| | 333 | - `log:/trunk/tools@10000` - the revisions in `trunk/tools` starting from revision 10000 |
| | 334 | - `log:@20788,20791:20795` - list revision 20788 and the revisions from 20791 to 20795 |
| | 335 | - `log:/trunk/tools@20788,20791:20795` - list revision 20788 and the revisions from 20791 to 20795 which affect the given path |
| | 336 | |
| | 337 | There are short forms for revision ranges as well: |
| | 338 | - `[20788,20791:20795]` |
| | 339 | - `[20788,20791:20795/trunk/tools]` |
| | 340 | - `r20791:20795` (but not `r20788,20791:20795` nor `r20791:20795/trunk`) |
| | 341 | |
| | 342 | Finally, note that in all of the above, a revision range can be written either as `x:y` or `x-y`. |
| | 343 | |
| | 344 | In the presence of multiple repositories, the name of the repository should be specified as the first part of the path, e.g. `log:repos/branches` or `[20-40/repos]`. |
| | 345 | |


While at an IT Conf in Fall Creek Falls and at the recent Educause Conf in Denver, there were a lot of sessions on Second Life and i was curious enough to attend one just to see what Higher Ed is trying to accomplish through it. A couple of years back, i created an account to check out Second Life out just to see what all the buzz was about. I never wrote down what i thought but at some point i had a tweet that said:
“Feels like the virtual is integrating with the real. So why spend time building a virtual world”
I woke up today thinking about it for some reason (think it was all that time spent on Modern Warfare 2 and how realistic the maps looked) and while surfing on slashdot and i found the proper wording: Augmented Reality . The idea is about adding virtual objects to our reality thus augmenting it. That’s been my argument against Second Life and its supporters. We don’t gain anything by building a virtual world based on the real world. Why do i need to see some virtual campus when i could get on google and see the real campus? With AR (Augmented Reality) you’d have an extra layer on top of the real. So, i think the next challenge would be who controls that new “virtuality”?


Beacon Example
by
Request Metrics
References
Beacon spec
MDN: sendBeacon
MDN: Blobs
Safari Beacon issues
MDN: Page Hide
Why We Can't Send application/json


In this sample we learn how to create a Kendo UI Builder custom component from an Angular component.
Sample available at custom-hello-world-ang-comp
See this blog for more details Custom Component from Angular Component
See for installing templates


{{+bindTo:partials.standard_nacl_api}}
All members are expressed in network byte order.
IPv4 address.
Port number.


Harry Potter Characters
Find a minimum spanning tree of the "closest" relationships between 65 Harry Potter characters!


Data sources include: Box Office Mojo,
Rotten Tomatoes, CinemaScore.
All datasets (and the magical scripts used to find the data) are freely available here.
Contact the author if you have any questions/ideas :)
The shade of red indicates when the movie was released, the earliest movies are a light red and later ones darker.
This can help distinguish between the phases.
You can also hide data from particular movies by clicking the box next to the movie name in the legend.


Before we discuss verbs in more detail, let me point out that the colon character (:), which you have seen used mostly as a suffix to create new primitives, has its own meaning when it is used alone or as the first character of a primitive: : is a conjunction, and so are :. and :: . The dot (.) also has a meaning but we won't be discussing it for a while. If you want . or : not to be treated as a suffix, make sure you precede it by a space: 3 : 'y' defines a verb, while 3: 'y' applies the verb 3: to the noun 'y' producing the result 3 .
What really happens during m :n and verb define
Now that you're getting older it's time we had a little talk. About where verbs come from. Up till now the verb-definition sequence has been exotic and peculiar, with a unique form; a possessor of great power but shrouded in mystery. We know only that it somehow breathes life into lines of text:
name =: verb define
verb definition
)
or
name =: verb : 'verb definition'
leaving name a verb.
With a layer of cosmetics scrubbed off it is more approachable. In both cases the conjunction m :n is at work. m must be a number, and n may be either a character string or the special number 0 (a list of boxed strings is also possible but we ignore that, considering it a curiosity). m :n executes the conjunction : with the arguments m and n; as with any conjunction, the result of this execution is an entity which can be any of the primary parts of speech (noun, adverb, conjunction, verb). m indicates the part of speech of the resulting entity: m=0 means noun, 1 means adverb, 2 means conjunction, 3 means verb, 4 means dyadic verb; 13 is also possible and you will learn about it when you study Tacit Programming. You can remember the numbers 0-2 because nouns take no operands, adverbs 1, and conjunctions 2; verbs are last in the precedence order so they get number 3, and dyadic verbs with their extra operand get number 4. If n is a character string, it supplies the text of the entity (which, again, is given the part of speech indicated by m); if n is 0, the interpreter interrupts the execution of the : conjunction and reads lines from its input source until it finds one that contains only the word ')'; execution of the interrupted sentence then continues, with the text of those lines becoming the right argument to : and thence the text of the defined noun/adverb/conjunction/verb. If the verb is defined in a script file, the input source (for lines to satisfy m :0) is the script file; otherwise the input source is the keyboard.
So what's with this 'verb define' lingo? Simple: when you start J, you get a few names defined automatically, and verb and define are two of them--as you can see by asking the interpreter what their values are:
verb
3
define
:0
--so when you use verb define you are really executing 3 :0 to produce a verb; similarly dyad : 'one-line definition' is the same as 4 : 'one-line definition' which executes the : conjunction to produce a dyadic-verb result.
The point to note is that a verb-definition sequence is just an instance of a compound verb produced by a conjunction, and the resulting verb can appear anywhere a verb is allowed; when the resulting verb is executed, it operates by interpreting the text of the definition one line at a time. You may assign the verb to a name but that's not required. Here are some examples showing how a definition is just an ordinary part of a sentence:
addrow =: monad : '+/y' "1
We define the verb, using the : conjunction, and then we use the " conjunction to create a verb with rank 1. This is a principle to live by: Always make sure any verb you define has the proper rank. Following this rule will save you untold trouble by guaranteeing that the verb is applied to the rank of cell that you intended. The verb produced by the : conjunction has infinite rank; here, we expect to apply addrow to lists, so we create a rank-1 verb that we then assign to the name addrow .
(3 : '+/y') i. 6
15
See? we define a verb, then we execute it. It doesn't have to be assigned to a name. The distinction between code and data is not sharp as it is in C.
a =. '+/';'*/'
b =. (0{::a),'y'
(3 : b) 1 2 3 4 5 6
21
b is '+/y' so we can use it as the text of a verb which we then execute.
b =. (1{::a),'y'
(3 : b) 1 2 3 4 5 6
720
Here b is '*/y' . In a later chapter we will explore the delights that result from being able to change the text of a program while you are executing it.
Remember: make sure the verbs you define have the proper rank.
Compound Verbs Can Be Assigned
Since we now understand that verb define is just a conjunction producing a verb result, and we know that we can assign its result to a name, we wonder whether we are allowed to assign any compound verb to a name. Yes indeed, we can, as we saw in the assignment to addrow in the previous section. Any verb can be assigned to a name:
dotprod =:
+/@:*"1
Dot-product of two lists is the sum of the products of respective pairs of elements in the lists.
1 2 3 dotprod 1 2 3
14
dotprod takes the dot-product.
veclength =: %:@:(dotprod~)"1
The length of a vector is the square root of its dot-product with itself.
veclength 1 2 3
3.74166
Dual-Valence verbs: u :v
u :v also defines a verb of infinite rank but it is completely different from m :n . The defined verb is u if it is used monadically, but v if used dyadically:
bv =. (monad : '+/y') : (dyad : 'y - x')
bv i. 7
21
2 bv i. 7
_2 _1 0 1 2 3 4
You can see that the appropriate valence was chosen based on whether the verb was executed as a dyad or as a monad.
u :v is often used to assign a default left operand to a dyadic verb:
pwr =: 2&pwr : (dyad : 'x^y')
If you execute pwr as a dyad you get x^y . If you execute it as a monad you get 2 pwr y which is then executed (using the dyadic valence of pwr) to become 2 ^ y :
3 pwr 4
81
pwr 4
16
The verb [: fails if it is executed. Use it as one side of u :v to produce a verb that fails if it is used with the wrong valence. Example:
i. 100 110 120 130
|out of memory
| i.100 110 120 130
Oops, we thought we were looking those values up in a list. We're lucky that we just ran out of memory--sometimes using the wrong valence of a verb can have catastrophic consequences. To prevent it, use
dyadi =: [: : i.
dyadi 100 110 120 130
|domain error: dyadi
| dyadi 100 110 120 130
100 130 150 dyadi 100 110 120 130
0 3 3 1
[: also has a special meaning when it appears in a fork, which we will encounter later.
Multi-Line Comments Using 0 :0
We know that all comments in J start with NB. and go only to the end of the line. There is no way to extend a comment to more than one line, but there is a way to put a series of non-executing lines into a script without having to have NB. in each of them. You simply define a noun using 0 :0 and put your comment inside the noun:
0 :0
This is the first line of a comment.
The lines of the comment will become a noun; but,
since the noun is not assigned to anything, it simply
disappears.
)
Remember: make sure the verbs you define have the proper rank.


Your browser does not support CSS container queries. Please open this
demo in Chrome Canary with the experimental
#enable-container-queries flag turned on.
Mon
Tue
Wed
Thu
Fri
Sat
Sun
01
Project overview
9:00am - 11:00am
Lunch Date with Billy
12:00pm - 2:00pm
02
Lunch with work
12:00pm - 1:15pm
03
Weekly standup
9:00am - 9:15am
Crazy Doctor
3:00pm - 4:30pm
Work catchup
4:30pm - 5:00pm
Dinner with the family
6:00pm - 8:30pm
04
You have nothing on
05
Workout
12:00pm - 1:00pm
06
Waters with Billy
2:00pm - 10:30pm
07
Fill out paperwork for next project
2:30pm - 3:30pm
08
Project overview
9:00am - 11:00am
Lunch Date with Billy
12:00pm - 2:00pm
09
Lunch with work
12:00pm - 1:15pm
10
Weekly standup
9:00am - 9:15am
Work catchup
4:30pm - 5:00pm
Dinner with the family
6:00pm - 8:30pm
11
05
Workout
12:00pm - 1:00pm
12
Waters with Billy
2:00pm - 10:30pm
13
Fill out paperwork for next project
2:30pm - 3:30pm
14
Project overview
9:00am - 11:00am
Lunch Date with Billy
12:00pm - 2:00pm
15
Lunch with work
12:00pm - 1:15pm
16
Weekly standup
9:00am - 9:15am
Work catchup
4:30pm - 5:00pm
Dinner with the family
6:00pm - 8:30pm
17
Crazy Doctor
3:00pm - 4:30pm
18
Workout
12:00pm - 1:00pm
19
Waters with Billy
2:00pm - 10:30pm
20
Fill out paperwork for next project
2:30pm - 3:30pm
21
Project overview
9:00am - 11:00am
Lunch Date with Billy
12:00pm - 2:00pm
22
Lunch with work
12:00pm - 1:15pm
23
Weekly standup
9:00am - 9:15am
Work catchup
4:30pm - 5:00pm
Dinner with the family
6:00pm - 8:30pm
24
You have nothing on
25
Workout
12:00pm - 1:00pm
26
Waters with Billy
2:00pm - 10:30pm
27
Fill out paperwork for next project
2:30pm - 3:30pm
28
Project overview
9:00am - 11:00am
Lunch Date with Billy
12:00pm - 2:00pm
29
Lunch with work
12:00pm - 1:15pm
30
Weekly standup
9:00am - 9:15am
Crazy Doctor
3:00pm - 4:30pm
Work catchup
4:30pm - 5:00pm
Dinner with the family
6:00pm - 8:30pm
31
You have nothing on


Ekaadhikar is a secure online voting platform that makes it easy to run elections at a fraction of the usual cost. We're the leading provider of ranked choice elections, which help achieve more democratic outcomes by better representing the will of your voters.
Send your voters an email with secure, single-use voting links that ensure only authorized voters can vote, once.
Create a personalized poll that anyone can vote on, and publicize it using your website, email, or social media.
Count ranked ballots that you've already collected (using e.g., paper ballots or your own vote collection software).
Elect your organization's steering committee, employee representatives, student body leaders, condominum board members, etc. using the voting method of your choice.
Maximize your chances of seeing grassroots action by having your political party's members surface the candidates they're most willing to back.
Streamline your formal board or committee meetings. Use them to officially record what has already been pre-discussed and voted on ahead of time by email.
Discreetly and inexpensively check if your union's members would like to strike before holding a formal assembly or sending an expensive 'legal' postal ballot.
We make it super easy for you to set up an election and for your voters to cast their votes.
When your election starts, each of your voters will receive an email with a secret, single-use voting link. Your voter then just clicks that link to be immediately taken to the voting page. Because our process is so easy for voters, we get a higher percentage of voters to actually vote.
Our interface allows both regular (check box) voting and (drag and drop) ranked choice voting. You can try the voting interface in the example ballots that follow or by casting a vote in our demonstration poll.
We support most well known counting methods. Ekaadhikar lets you do a Traditional election voters select a single candidate, Ranked-choice voting (e.g., STV, IRV, or Condorcet, approval voting, or more than one contest with any combination of methods.
We also support weighted voting, to accomodate scenarios where some of your voters are more equal than others - based on their number of shares, their property's surface, etc.
Our prices are low and easy to understand, with no commitments or hidden fees:
Voters:
Candidates:
Price: $0
One of the hardest aspects of running online elections is delivering the voting emails. Our reporting tools update you in real time so that you know which voters have received emails, opened them, visited your voting page, and voted. You get an explanation (e.g., mailbox full) for emails that are not delivered and can drill down to resend them.
Ekaadhikar also has backup email delivery. We automatically detect when emails get mislabeled as spam (about 1%) and resend them using a different service. This gives us very high deliverability with no effort on your part.
Last but not least you can send periodic reminders to voters who haven't voted yet. This helps you maximize voter participation and is a client favorite.
Voters love the clear and transparent results Ekaadhikar will enable you to provide them with. At the end of your election, you'll get the raw ballots as well as a detailed report with counts automatically done for you. The step by step explanation of these counts are based on the voting method you used, and interactive graphics allow you can see the fine-grained details at each step.
Ekaadhikar makes it super easy to combine having on-site and offsite voters in your election.
<<<<<<< HEADBy using single-use code voters (which also come in handy when spouses share the same email address), you can have voters who can't reach upto ypur venue, make it cast their vote by email on their own devices. Once the voting ends, Ekaadhikar will provide you with the final count directly, without any manual steps on your part.
=======By using single-use code voters (which also come in handy when spouses share the same email address), you can have voters who can make it to your venue(s) cast their vote in booths using PCs or tablets, and voters who can't make it cast their vote by email on their own devices. Once the voting ends, OpaVote will provide you with the final count directly, without any manual steps on your part.
>>>>>>> b326e1666f9c4b644116e0254462ca3f2c9eaa9dOur voting pages are encrypted so your voters can enjoy complete security and priva
We offer the strongest possible guarantee of voter anonymity: we simply do not track who votes for what; only who votes, and what the vote is.
We do not use or share your voters' email addresses for any purposes outside of your el
We're an independent third-party with no stakes in your election, and we've built Ekaadhikar so it can only operate like a non-biaised and uninterested referee that you and your voters can trust.
You and your voters can thus rest assured that no one in your election - not even yourself - can tamper with or improperly influence your election's results.


JavaScript Algorithms and Data Structures
This repository contains JavaScript based examples of many popular algorithms and data structures.
Each algorithm and data structure has its own separate README with related explanations and links for further reading (including ones to YouTube videos).
Read this in other languages: 简体中文, 繁體中文
Data Structures
A data structure is a particular way of organizing and storing data in a computer so that it can be accessed and modified efficiently. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data.
- Linked List
- Queue
- Stack
- Hash Table
- Heap
- Priority Queue
- Trie
- Tree
- Graph (both directed and undirected)
- Disjoint Set
Algorithms
An algorithm is an unambiguous specification of how to solve a class of problems. It is a set of rules that precisely define a sequence of operations.
Algorithms by Topic
- Math
- Factorial
- Fibonacci Number
- Primality Test (trial division method)
- Euclidean Algorithm - calculate the Greatest Common Divisor (GCD)
- Least Common Multiple (LCM)
- Integer Partition
- Sieve of Eratosthenes - finding all prime numbers up to any given limit
- Is Power of Two - check if the number is power of two (naive and bitwise algorithms)
- Sets
- Cartesian Product - product of multiple sets
- Power Set - all subsets of a set
- Permutations (with and without repetitions)
- Combinations (with and without repetitions)
- Fisher–Yates Shuffle - random permutation of a finite sequence
- Longest Common Subsequence (LCS)
- Longest Increasing subsequence
- Shortest Common Supersequence (SCS)
- Knapsack Problem - "0/1" and "Unbound" ones
- Maximum Subarray - "Brute Force" and "Dynamic Programming" (Kadane's) versions
- Strings
- Levenshtein Distance - minimum edit distance between two sequences
- Hamming Distance - number of positions at which the symbols are different
- Knuth–Morris–Pratt Algorithm - substring search
- Rabin Karp Algorithm - substring search
- Longest Common Substring
- Searches
- Sorting
- Bubble Sort
- Selection Sort
- Insertion Sort
- Heap Sort
- Merge Sort
- Quicksort - in-place and non-in-place implementations
- Shellsort
- Counting Sort
- Radix Sort
- Trees
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Graphs
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Dijkstra Algorithm - finding shortest path to all graph vertices
- Bellman-Ford Algorithm - finding shortest path to all graph vertices
- Detect Cycle - for both directed and undirected graphs (DFS and Disjoint Set based versions)
- Prim’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph
- Kruskal’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph
- Topological Sorting - DFS method
- Articulation Points - Tarjan's algorithm (DFS based)
- Bridges - DFS based algorithm
- Eulerian Path and Eulerian Circuit - Fleury's algorithm - Visit every edge exactly once
- Hamiltonian Cycle - Visit every vertex exactly once
- Strongly Connected Components - Kosaraju's algorithm
- Travelling Salesman Problem - shortest possible route that visits each city and returns to the origin city
- Uncategorized
Algorithms by Paradigm
An algorithmic paradigm is a generic method or approach which underlies the design of a class of algorithms. It is an abstraction higher than the notion of an algorithm, just as an algorithm is an abstraction higher than a computer program.
- Brute Force - look at all the possibilities and selects the best solution
- Maximum Subarray
- Travelling Salesman Problem - shortest possible route that visits each city and returns to the origin city
- Greedy - choose the best option at the current time, without any consideration for the future
- Unbound Knapsack Problem
- Dijkstra Algorithm - finding shortest path to all graph vertices
- Prim’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph
- Kruskal’s Algorithm - finding Minimum Spanning Tree (MST) for weighted undirected graph
- Divide and Conquer - divide the problem into smaller parts and then solve those parts
- Binary Search
- Tower of Hanoi
- Euclidean Algorithm - calculate the Greatest Common Divisor (GCD)
- Permutations (with and without repetitions)
- Combinations (with and without repetitions)
- Merge Sort
- Quicksort
- Tree Depth-First Search (DFS)
- Graph Depth-First Search (DFS)
- Dynamic Programming - build up a solution using previously found sub-solutions
- Fibonacci Number
- Levenshtein Distance - minimum edit distance between two sequences
- Longest Common Subsequence (LCS)
- Longest Common Substring
- Longest Increasing subsequence
- Shortest Common Supersequence
- 0/1 Knapsack Problem
- Integer Partition
- Maximum Subarray
- Bellman-Ford Algorithm - finding shortest path to all graph vertices
- Backtracking - similarly to brute force, try to generate all possible solutions, but each time you generate next solution you test
if it satisfies all conditions, and only then continue generating subsequent solutions. Otherwise, backtrack, and go on a
different path of finding a solution. Normally the DFS traversal of state-space is being used.
- Hamiltonian Cycle - Visit every vertex exactly once
- N-Queens Problem
- Knight's Tour
- Branch & Bound - remember the lowest-cost solution found at each stage of the backtracking search, and use the cost of the lowest-cost solution found so far as a lower bound on the cost of a least-cost solution to the problem, in order to discard partial solutions with costs larger than the lowest-cost solution found so far. Normally BFS traversal in combination with DFS traversal of state-space tree is being used.
How to use this repository
Install all dependencies
npm install
Run all tests
npm test
Run tests by name
npm test -- -t 'LinkedList'
Playground
You may play with data-structures and algorithms in ./src/playground/playground.js
file and write
tests for it in ./src/playground/__test__/playground.test.js
.
Then just simply run the following command to test if your playground code works as expected:
npm test -- -t 'playground'
Useful Information
References
▶ Data Structures and Algorithms on YouTube
Big O Notation
Order of growth of algorithms specified in Big O notation.
Source: Big O Cheat Sheet.
Below is the list of some of the most used Big O notations and their performance comparisons against different sizes of the input data.
| Big O Notation | Computations for 10 elements | Computations for 100 elements | Computations for 1000 elements |
|---|---|---|---|
| O(1) | 1 | 1 | 1 |
| O(log N) | 3 | 6 | 9 |
| O(N) | 10 | 100 | 1000 |
| O(N log N) | 30 | 600 | 9000 |
| O(N^2) | 100 | 10000 | 1000000 |
| O(2^N) | 1024 | 1.26e+29 | 1.07e+301 |
| O(N!) | 3628800 | 9.3e+157 | 4.02e+2567 |
Data Structure Operations Complexity
| Data Structure | Access | Search | Insertion | Deletion | Comments |
|---|---|---|---|---|---|
| Array | 1 | n | n | n | |
| Stack | n | n | 1 | 1 | |
| Queue | n | n | 1 | 1 | |
| Linked List | n | n | 1 | 1 | |
| Hash Table | - | n | n | n | In case of perfect hash function costs would be O(1) |
| Binary Search Tree | n | n | n | n | In case of balanced tree costs would be O(log(n)) |
| B-Tree | log(n) | log(n) | log(n) | log(n) | |
| Red-Black Tree | log(n) | log(n) | log(n) | log(n) | |
| AVL Tree | log(n) | log(n) | log(n) | log(n) |
Array Sorting Algorithms Complexity
| Name | Best | Average | Worst | Memory | Stable | Comments |
|---|---|---|---|---|---|---|
| Bubble sort | n | n^2 | n^2 | 1 | Yes | |
| Insertion sort | n | n^2 | n^2 | 1 | Yes | |
| Selection sort | n^2 | n^2 | n^2 | 1 | No | |
| Heap sort | n log(n) | n log(n) | n log(n) | 1 | No | |
| Merge sort | n log(n) | n log(n) | n log(n) | n | Yes | |
| Quick sort | n log(n) | n log(n) | n^2 | log(n) | No | |
| Shell sort | n log(n) | depends on gap sequence | n (log(n))^2 | 1 | No | |
| Counting sort | n + r | n + r | n + r | n + r | Yes | r - biggest number in array |
| Radix sort | n * k | n * k | n * k | n + k | Yes | k - length of longest key |


Lead Product Designer responsible for Sumo Logic's metrics query and dashboard creation experience.
Sumo Logic is a cloud-native real-time machine data analytics platform that empowers teams around the world to make data-driven decisions.
Let’s break it down further. Assume that you work at a large airline company and encounter co-workers named Andre and Kathy. Both of them use Sumo Logic but they have different usecases in mind.
As a Software Engineer on the Infrastructure Team, Andre's usecase involves making sure that the systems are up and running as soon as possible whenever the airline's check-in infrastructure goes down.
He uses Sumo to monitor the health of the server infrastructure, to get notified of system failures, and to troublshoot the root cause of problems and fix them quickly.
On the other hand, Kathy who heads the Business Operation team is responsible for expanding operations in certain regions of the world by analyzing airline's passenger traffic and travel patterns.
She uses Sumo to create dashboards that give her rich insights about her team's target for the quarter, understand popular routes and trends, build strategy and product roadmaps along with key stakeholders and business partners.
While both these users use Sumo Logic to solve their respective problems, there is a problem. Users are lost trying to figure out how to write a query.
We followed the Double-Diamond process to gather research insights and uncover user needs, scoped the problem at hand keeping in mind the product release timelines, designed prototypes of varying fidelities, tested them with our users and delivered designs throughout the solution phase. This project was possible due to the close collaboration of teams across the world (we hopped on calls with teams in Poland and India).
As the lead designer on this project, I scoped out the specifics of the problem by collaborating with UX Research, Product Management and Engineering.
Based on qualitative data from our user interview research sessions and Nielsen-Norman's Heuristic Principles, we were able to identify 4 major themes.
Both Kathy and Andre found it hard to write metric queries during critical times. By understanding the semantics of the query language and observing how users grouped data, we broke down a query into four broad categories: Metric, Filter, Aggregation, Group By.
Neither Kathy nor Andre knew what to start typing. While they wanted some level of guidance, they also wanted the flexibility to gather unique insights. Through user interviews and query writing observations, we realised the need for an autocomplete component.
While Andre wanted to monitor the server health of us-east and us-west regions, Kathy was interested in popular travel places/times from San Francisco and New York City. Deciding the level of freedom that users should have when using a structured query builder was the core question.
After multiple iterations, based on user feedback, implementation constraints and timelines, the degree of freedom was decided. Two menus would be shown depending on whether a user is just starting off with the search for either a key/value or picking a value after a key is selected.
With the introduction of the structured query builder, there were key concerns that had to be addressed - "How do we switch to the other one? Does this tool handle all kinds of queries? I want to be able to modify queries using the query language too!"
While this was an essential function, the users neither wanted it to stand out explicitly or be hidden within menus. This led to finer interaction design questions.
Andre who was an expert user pointed out nuances and edge-cases that had to be addressed. For instance, Andre often leveraged multiple complex queries to get to the root cause of his bug. He wrote a second query to take in results from the first and feed it to the third.
Error handling and accessibility were other factors that we looked into at this point.
Both Andre and Kathy were able to easily use the new query builder to gather insights about their respective problems and solve those faster. This new solution reduced the query writing time by half and improved satisfaction scores, thereby leading to happy users.
This product was released as a part of the larger Kubernetes initiative at the company's user conference.
With the help of the new solution, Kathy was able to successfully create dashboards that informed her product strategy using data about trending tourism spots, social media tags and her airline's passenger traffic throughout the year. On the other hand, Andre was able to single-handedly pinpoint what led to the system breakdown and get the systems up and running without having to alert another soul.
We used HEART Metrics to measure the success of this product and we found that users were extremely happy that they needn't learn a new query language and could complete writing queries a lot faster.


An Exploritary Data Analysis of the US Population by Jeric Ortillo
Note: Use Chrome for the best experience
The United States is one of the biggest and fastest growing countries in the world.
In this data story, we will be exploring the United States population.
In the year 2000, the United States Population was around 280 million.
The population steadily grew to about 327 million in the year 2018.
The United States population has grew about 47 million since the past 2 decades!
From looking at the choropleth map, California has stayed the #1 most populated state, going from about 34 million to 39 million.
Texas stayed the #2 most populated state and New York stayed at #3 throughout the past 2 decades.
From looking at the choropleth map over time, we see usually that the more populated states grew signifcantly while the least populated states barely grew.
From 2000 to 2018, California grew about 5 million, Texas grew about 8 million, and Florida grew about 5 million,
while the least populated states such as Alaska grew about 100 thousand, Vermont grew about 20 thousand and etc.
Now that we took a look at the United States population, let's see how it compares to the world!
Comparing the United States to other countries in the world in the year 2018, we see that the United States is the 3rd most populated country,
falling behind China and India and coming after Indonesia and Pakistan.
The United States, is a very diverse country. Many people of different race lives in the United States.
We will be looking at the United States population categorized by race.
From looking at the pie chart, it seems like the population is mostly white dominant.
However, it seems like as time goes on, it seems like the population becomes less white dominant,
as other races grow in population and the United States become more diverse.
Now that we look through the United States population over time, let's see how the population will grow in the future.
Note: Line chart breaks if previously interacted with US Choropleth Map Visualization, refresh to fix.
From looking at the projection, its seems like the United States is steadily growing about 10 million every 10 years.
When the year 2060 reaches, the United States population is projected to be around 400 million, which is about a 70 million increase since 2018!


9 - Enemies and Basic AI
EditWhat would a dungeon game be without enemies? Let's add some!
This should be second nature by now - add a new entity type in your Ogmo project:
Make sure you add the
etype
value.
Then scatter some enemies around the map. Make all but one of them have an
etype
value of0
, and the other one be1
.So we want to have 2 different enemies in our game. We'll need spritesheets for both of them, with 16x16 pixel frames and the same animation frames as our player. Name them
enemy-0.png
andenemy-1.png
and put them in theassets/images
folder. You can use these, if you want (thanks, again, Vicky!):Note: make sure that your enemy sprites are functionally the same - they should have the same number of frames for each
facing
animation.Let's add a new
Enemy
class. This class is going to look a lot like ourPlayer
class, with a few changes:class Enemy extends FlxSprite { public var speed:Float = 140; public var etype(default, null):Int; public function new(X:Float=0, Y:Float=0, EType:Int) { super(X, Y); etype = EType; loadGraphic("assets/images/enemy-" + etype + ".png", true, 16, 16); setFacingFlip(FlxObject.LEFT, false, false); setFacingFlip(FlxObject.RIGHT, true, false); animation.add("d", [0, 1, 0, 2], 6, false); animation.add("lr", [3, 4, 3, 5], 6, false); animation.add("u", [6, 7, 6, 8], 6, false); drag.x = drag.y = 10; width = 8; height = 14; offset.x = 4; offset.y = 2; } override public function draw():Void { if ((velocity.x != 0 || velocity.y != 0 ) && touching == FlxObject.NONE) { if (Math.abs(velocity.x) > Math.abs(velocity.y)) { if (velocity.x < 0) facing = FlxObject.LEFT; else facing = FlxObject.RIGHT; } else { if (velocity.y < 0) facing = FlxObject.UP; else facing = FlxObject.DOWN; } switch (facing) { case FlxObject.LEFT, FlxObject.RIGHT: animation.play("lr"); case FlxObject.UP: animation.play("u"); case FlxObject.DOWN: animation.play("d"); } } super.draw(); } }
The main difference is that we have a new
etype
variable, which we will use to figure out which enemy sprite to load, and which one we're dealing with, etc.Next, we'll make a
FlxGroup
in ourPlayState
to hold our enemies, and load them into the map, very much the same way we did our coins.At the top of our class, add:
private var _grpEnemies:FlxTypedGroup<Enemy>;
In the create function, right after we add our coin group:
_grpEnemies = new FlxTypedGroup<Enemy>(); add(_grpEnemies);
and at the end of our if/else statement in placeEntities:
else if (entityName == "enemy") { _grpEnemies.add(new Enemy(x + 4, y, Std.parseInt(entityData.get("etype")))); }
Go ahead and test out your game to make sure the enemies are added properly.
Now let's give them some brains.
In order to let our enemies 'think', we're going to utilize a very simple Finite-state Machine (FSM). Basically, the FSM works by saying that a given machine (or entity) can only be in one state at a time. For our enemies, we're going to give them 2 possible states: Idle
and Chase
. When they can't 'see' the player, they will be Idle
- wandering around aimlessly. Once the player is in view, however, they will switch to the Chase
state and run towards the player.
Shouldn't be that hard! First, we'll make our
FSM
class:class FSM { public var activeState:Void->Void; public function new(?InitState:Void->Void):Void { activeState = InitState; } public function update():Void { if (activeState != null) activeState(); } }
Next, we'll change our
Enemy
class a little.We need to define these variables at the top of the class:
private var _brain:FSM; private var _idleTmr:Float; private var _moveDir:Float; public var seesPlayer:Bool = false; public var playerPos(default, null):FlxPoint;
At the end of the constructor, add:
_brain = new FSM(idle); _idleTmr = 0; playerPos = FlxPoint.get();
And then add the following functions:
public function idle():Void { if (seesPlayer) { _brain.activeState = chase; } else if (_idleTmr <= 0) { if (FlxG.random.bool(1)) { _moveDir = -1; velocity.x = velocity.y = 0; } else { _moveDir = FlxG.random.int(0, 8) * 45; velocity.set(speed * 0.5, 0); velocity.rotate(FlxPoint.weak(), _moveDir); } _idleTmr = FlxG.random.int(1, 4); } else _idleTmr -= FlxG.elapsed; } public function chase():Void { if (!seesPlayer) { _brain.activeState = idle; } else { FlxVelocity.moveTowardsPoint(this, playerPos, Std.int(speed)); } } override public function update(elapsed:Float):Void { _brain.update(); super.update(elapsed); }
The way this is going to work is that each enemy will start in the
Idle
state. In thePlayState
we will have each enemy check to see if it can see the player or not. If it can, it will switch to theChase
state, until it can't see the player anymore. While in theIdle
state, every so often (in random intervals) it will choose a random direction to move in for a little while (with a small chance to just stand still). While in theChase
state, they will move directly towards the player.Let's jump over to the
PlayState
to add our player's vision logic. Inupdate()
, under the overlap and collision checks, add:FlxG.collide(_grpEnemies, _mWalls); _grpEnemies.forEachAlive(checkEnemyVision);
Next, add the
checkEnemyVision()
function:private function checkEnemyVision(e:Enemy):Void { if (_mWalls.ray(e.getMidpoint(), _player.getMidpoint())) { e.seesPlayer = true; e.playerPos.copyFrom(_player.getMidpoint()); } else e.seesPlayer = false; }
That's all there is to it! Try out your game and make sure it works!
Next, we'll add some UI to the game, and add our RPG-style combat so you can fight the enemies!


We build websites, mobile apps and backend systems (without corporatespeak of goals and synergies). If you need one of these, and wish to read no further, always happy to discuss requirements by email or phone.
Full stack developement of the
Laravel, Lumen, Silex, Rails
Vue, AngularJS, jQuery
JSON APIs: Google, Twitter, Twilio...
Best to get this right .
Stripe
Braintree
Paypal site integration
WordPress can be used to build any type of website. Blogs, simple company websites, extensive ecommerce sites, and even web applications.
WooCommerce
Venmo
15 years in the internet business - and before that another 15 years in proper computing - now based on the south coast of the UK, between Newhaven and Seaford.


National Park Explorer
Search National Parks by State
Enter 2-Character State:
Start Search!
Park
Park Amenities
Park Forecast


Toggle navigation
Enhanced Learning Using Muse
About Us
Time Remaining:
Haben
To Have
Mussen
Must
Machen
To Do
Kommen
To Come
Wollen
To Want
Wissen
To Know
Lassen
To Let
Finden
To FInd
Liegen
To lie
Denken
To think
Tun
To do
Glauben
To believe
Nennen
To call/span>
Ziegen
To show
Sprechen
To speak
Leben
To live
Meinen
To think
Kennen
To Know
Stellen
To place
Arbeiten
To work
Folgen
To follow
Bestehen
To exist
Setzen
To set
Beginnen
To begin
Versuchen
To try
Laufen
To run
Entsprechen
To correspond
Ziehen
To pull
Fallen
To fall
Entsehen
To originate
Next


COMMUNICATE
In this course you will...
the clarity of professional writing, the precision of technical writing, and the expressiveness of creative writing. Attention to narrative power of visual imagery as well as text; emphasis on authentic writing, writing as a method of prototyping, and technology translation. Students learn to communicate the benefit, the uniqueness, and the credibility of a concept. Students work with innovators to explore and translate the benefits of technical and specialized ideas to a target audience.


Welcome to Slate for Chrome
To set up, enter your API key below
How do I find my API key?
Go to
slate.host
and log in. From the main menu, select API and either generate a new key or copy an existing one.
Your API key has been added!
Get started
Sign up for Slate
Take the tour
Click on a site below to test drive Slate
Upload from
Unsplash
Upload from
Public Domain Vectors
Upload from
Internet Archive


Luca Trapanese, 41, from Naples, said his daughter Alba brought immediate ‘joy’ to his life when he adopted her at 13 days old.
The Italian national was desperate to become a dad but was aware that social services in his country don’t usually grant custody to single gay men.
He claims they told him that he would only be able to adopt a child with special needs or behavioural issues because of his homosexuality.
But this did not deter Luca, who has volunteered and worked with people with disabilities since his teens.
He told Bored Panda: ‘Since I was 14 years old, I have volunteered and worked with the disabled so I felt I had the right knowledge and experience to do it.
Advertisement Advertisement
‘She brought me happiness and a sense of fulfillment. I am proud to be her dad. I wanted her to be my daughter.’
Luca spent his teens visiting his best friend Diego in hospital, helping him with his homework as he battled terminal cancer.
He says this inspired him to dedicate his life to helping others.
He said: ‘Diego’s death left me with a profound awareness of what living with an illness meant, that’s why I started volunteering with a church in Naples to help critically ill people and kids with disabilities’.
After his friend passed away, Luca and his then partner founded a charity to help people with disabilities.
The pair were together for 11 years and spoke of adopting, but the relationship broke down before they could become dads.
Luca said: ‘Unfortunately a few years ago we broke up. I moved into a house by myself and it was really challenging because I still wanted to become a father, but at the time in Italy it wasn’t possible for a single parent to adopt.
‘Then things changed and at the beginning of 2017 I was able to apply for adoption, I was told I would only be given a child with problems.’
He wrote on his application form that he was happy to adopt a child regardless of their health conditions and was paired with Alba in July.
Advertisement Advertisement
The 41-year-old, who has published a book on his life with Alba, revealed she has a strong personality and loves being around people.
He has been hailed as an ‘inspiration to man kind’ for the unconditional love he has for his daughter.
Got a story for Metro.co.uk?
Get in touch with our news team by emailing us at<EMAIL_ADDRESS>For more stories like this, check our news page.


Contact, Comment, Feedback
This website is a subjective product from my learning prospective. The information here is a partial demonstration of my software engineering knowledge. As such, I invite any and all feedback, comments corrections or any other interest. Replies are welcome.
Skills, Projects, Experience
The contents of this website embody 8th months of programming learning from a variety of resources. For more a specific overview of my Skills, Projects, Experience, and Education check out my resume with the button below.
Spread, Share, Enjoy
This website contains information I have acquired in my software engineer learning process and represents the culmination of my understanding. The website is an on-going library of programming information. Please Spread, Share and Enjoy!


Simple UI
TextNowSipJsPhone (ctxSip) is a Javascript based SIP client that uses WebRTC and WebSockets to connect to TextNow SIP server.
The UI is designed to be launched as a popup from within your application.
Features
Hold / Resume, Mute, multiple call support.
No plugins required.
Intuitive interface makes it easy for users.
Designed for a business environment, features are limited to what is needed.
Easy to Implement
Call logs are saved to localStorage
Easy to configure and integrate into your project.
Uses SIP.js, Bootstrap, jQuery, and other common tools of the trade.
Browser Support
Standards based browsers will just work. No plugins-necessary. Support requires: WebSockets & WebRTC.
Supported Browsers
Google Chrome
Mozilla Firefox
Code
SIP.js Does all the heavy lifting.
/scripts/app.js
is where the client code resides.When the client is launched, the user's configuration can be in a JS variable called
user
or it will look in localStorage for a JSON encoded objectSIPCreds
Contribute
Have an idea or find a bug? Submit an Issue.
Have a new feature? Submit a Pull Request.
© 2020 Gornostay25


Add to Cydia
Which icons are themed in Stencil?
See the
Stencil themed icons spreadsheet
or
look at this dazzling montage
Icon not there?
Fill in the Stencil icon request form


Plugin Information |
|---|
View Storable Configs on the plugin site for more information. |
The current version of this plugin may not be safe to use. Please review the following warnings before use:
This plugin allows you to save and load set of job parameters.
Hudson 1.366 or later.
This plugin was created for Hudson 1.366. It might not work with earlier versions of Hudson.
User guide
This plugin saves and loads job parameters (Boolean value, String parameter, ScriptSelectionTaskDefinition and etc.).
1. Select job. In menu there is button "Storable configs". Press this button.
2. You should see the following page with empty configuration list.
3. For saving current job parameters you need to enter the filename and to press "Save settings" button. Plugin will save all job parameters in HUDSON_HOME\jobs\job_name\storable-configs\filename.xml . This file will appear in "Load configuration" section. You may view all available configuration files.
4. For loading parameters you need to choose one file from the list and to press "Change settings" button.
Changelog
Version 1.0 (February 28, 2011)
- Initial release.


---
layout: archive
title: Lean Prover Zulip Chat Archive
permalink: 113488general/44794isopenxxuinU.html
---
The archive URL format has changed. Please find this page at:
https://leanprover-community.github.io/archive/stream/113488-general/topic/is_open.20.7Bx.20.7C.20x.20.2B.20u.20.5Cin.20U.7D.html


Floating-point precision workaround
Because JavaScript is a dynamically-typed language, there is no specific
floating-point number type (i.e. Decimal in C#). Fractions such as 1/5 or 1/10
will not round "cleanly", like they will in a floating-point data type.
For example, in JavaScript, 0.1 + 0.2 = 0.30000000000000004, instead of the
expected 0.3. To work around this, rather than implementing a library such as
Decimal.js, I implemented
a very basic workaround - which is to multiply each number value in an
expression by 10, evaluate the expression, then divide the total by 10.
This works in most scenarios (at least in this simple application), but in a
real-world situation, I would use a JavaScript library that has been tested thoroughly.
You can find more info on this issue here: http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
TL;DR
If you start getting unexpected answers with this calculator, i.e. tons of
extra decimal places, try the workaround!
I created this calculator while using the Windows 10 Calculator app as a model. Almost everything I've done in terms of layout and functionality is based on that. I don't plan on adding more complex functionality, such as memory, scientific functions, etc., since I just created this project to get some practice in with JavaScript.
Keyboard Shortcuts
0-9: Numbers 0-9
Numpad 0-9: Numbers 0-9
Numpad /: Divide
Numpad *: Multiply
Numpad -: Subtract
Numpad +: Add
Numpad Enter: Equals
Enter/Return: Equals
Esc: Clear All (C Button)
Del: Clear Last (CE Button)
Backspace: Backspace (BACK Button)
F9: Negate (+/- Button)


The Dormant is a Subversion repository for Commons components that
have had little recent development activity and no individual or group
of individual committers has emerged to champion its ultimate
promotion to Commons Proper.
If you wish to use any of these components, you must build them
yourselves. It is best to assume that these components will not be
released in the near future.
| Dormant |
|
| Attributes |
Runtime API to metadata attributes such as doclet tags. |
| Betwixt |
Services for mapping JavaBeans to XML documents, and vice versa. |
| Cache |
Cache provides object caching services. |
| Clazz |
Clazz focuses on introspection and class manipulation. |
| Contract |
This component makes all the nice features available to the java programming language that come along with contract based programming. |
| Convert |
Commons-Convert aims to provide a single library dedicated to the task of converting an object of one type to another. |
| EL |
Interpreter for the Expression Language defined by the JSP 2.0 specification. |
| Discovery |
Tools for locating resources by mapping service/reference names to resource names. |
| Events |
Commons-Events provides additional classes for firing and handling events. It focusses on the Java Collections Framework, providing decorators to other collections that fire events. |
| Feedparser |
A Java RSS/Atom parser designed to elegantly support all versions of RSS (0.9, 0.91, 0.92, 1.0, and 2.0), Atom 0.5 (and future versions) as well as easy ad hoc extension and RSS 1.0 modules capability. |
| JJar |
Jakarta JAR Archive Repository |
| Launcher |
Cross platform Java application launcher. |
| Latka |
Commons-Latka is an HTTP functional testing suite for automated QA, acceptance and regression testing. |
| Mapper |
Mapper is a thin abstraction layer around a project's chosen data mapping technology (a.k.a. DAO pattern). |
| Messenger |
Messenger is an easy to use and lightweight framework for working with JMS in the web tier. |
| Modeler |
Mechanisms to create Model MBeans compatible with JMX specification. |
| Primitives |
Smaller, faster and easier to work with types supporting Java primitive types. |
| Resources |
Resources provides a lightweight framework for defining and looking up internationalized message strings keyed by a java.util.Locale and a message key. |
| Scaffold |
Scaffold is a toolkit for building web applications. |
| ThreadPool |
ThreadPool is a simple component for asynchronously dispatching work to another thread in a pool for simple multi threaded programming. |
| Transaction |
Implementations for multi level locks, transactional collections and transactional file access. |
| Workflow |
Workflow provides a framework for building workflow management systems. |
| XMLIO |
Simple and fast importer for XML configuration or import files. |


Computer Science & IT Engineer
Silchar - Assam - India
<EMAIL_ADDRESS>Skills
C Programming, Python, OTCL, HTML, CSS
Teaching
Accounting Tally9.0
NS2, Packet Tracer, Ettercap, Wireshark, Configuration Networking Devices, MS Office
Languages
Hindi, Bhojpuri
English
Assamese, Bengali
Taking IT classes, Campus Network Maintainance, Students & Staff Biometrics Maintainance, Hardware & Software installations and troubleshooting, Updating Databases, Preparing syllabus.
Teaching Assistant in the lab classes of C Programming and Computer Fundamentals. Also deal with Lab Hardwares, PC maintainace and Troubleshooting, Configuring Networking Devices like Switches, Access Points and Routers.
Taught subjects like C programming, Database, Networking, Tally9.0, MS Office.
Pursuing M.Tech in Computer Networks
B.Tech in Computer Science Engineering. Class: First
HS(+2) in Sciece Stream. Assam Higher Secondary Education Coucil (AHSEC). Division: First
Class-10. HSLC Secondary Education Board of Assam (SEBA). Division: First
Diploma in Account and Finance. Tally9.0. Division-First
Abhilash Singh, Kausthav Pratim Kalita, Sweta Bhadra, " An Efficient Entropy Based Approach for the Detection of DDOS Attack", International Journal of Scientific Research in Science, Engineering and Technology(IJSRSET), Print ISSN : 2395-1990, Online ISSN : 2394-4099, Volume 4 Issue 4, pp.13-17, March-April 2018. URL:http://ijsrset.com/IJSRSET1738102.php
"Abhilash Singh, Kausthav Pratim Kalita, Smriti Priya Medhi", Published at 12th INDIACom 2018, 5th International Conference On Computing For Sustainable Global Development (14th – 16th March, 2018) Technically Sponsored by IEEE Delhi Section
"Abhilash Singh", Published at 12th INDIACom 2018, 5th International Conference On Computing For Sustainable Global Development (14th – 16th March, 2018) Technically Sponsored by IEEE Delhi Section


Opinionations
Record an article. Voice your opinion!
Created by Edoe Cohen, Mike Yao and Jordan Gardiner
Opinionations.co
People love sharing their opinions...
...but don't have time to create a podcast
Market Size
- 75m / month - podcast listeners
- 20% of Americans listen to podcasts
- 240m / week - radio listeners
Primary target markets
Opinionated politicos
Secondary Target Market
Opinionated techies and sporties
Source: XKCD
Opinionations
Record an article. Voice your opinion!
Created by Edoe Cohen, Mike Yao and Jordan Gardiner
Opinionations.co


Every piece of information in the problem statement is just a joke. There is no intention of insulting. Please disregard it if you feel it uncomfortable or disturbing.
HanoiLUG, aka Hanoi's most Lazy, Ugly, and Gross-y, is a group of geeks, nerds, gits, otakus, self-obsessed, ... (well, you name it) people staying, living, and working in Hanoi, the Capital of Vietnam. Though everyone is in the same group, they don't speak the same language. This leads to lots of misunderstandings in communication.
In one beautiful day, Y@ (or "Wyatt", his last name is "Earp" probably), an ugly-silly-parenthesis-obsessed member of HanoiLUG, has a dream. He doesn't dream about HanoiLUG speaking the same language but using the same system of numbers. In his dream, they use the usual decimal system with a few exceptions: when writing numbers, the word Fizz is used instead of numbers divisible by 3, the word Buzz is used instead of numbers divisible by 5, and the word FizzBuzz is used instead of numbers divisible by both 3 and by 5.
After a while thinking about this, he decides to do some research about this sort of system. The problem he states is: given an integer N whose value does not exceed 100. Figure out how many Fizz and how many Buzz he would find if he writes down all the number from 0 to N. He makes this the entrance exam for anyone who wants to be a HanoiLUG member.
 All languages are acceptable, including all Elvish dialects (Sindarin, Quenya, ..., and their writing system Tengwar), Vulcan's Klingon, etc.
Example: With N = 10, the answer is 6 Fizz es and 4 Buzz es. The sequence we have is:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz
Original link [1] from Paris Dojo catalogue [2]. Modified by Dương "Yang" ヤン Hà Nguyễn<EMAIL_ADDRESS>This text is distributed under Creative Commons License Share-Alike version 2.5. For the full text of the license, please visit the CC-SA 2.5 full license page [3].


--- title: a NOSQL Summer -- the Reading List layout: post ---
A NOSQL Summer is made possible by the generosity and inventiveness of participants, organizers & sponsors around the world.
The initiative was set in motion by Tim Anglade and put in pixels with unmistakable aplomb by Stefano J. Attardi.Question? Problem? Contact us.
Awesome list of DB/distributed system papers.


Copyright© 2005 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
The RDF Data Access Working Group normatively defines the SPARQL Protocol for RDF via a Web Services Description Language version 2.0 (WSDL 2.0) definition. This document presents a non-normative WSDL 1.1 document defining the same protocol.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
In order to gain implementation experience with the SOAP bindings for the SPARQL protocol while WSDL 2.0 tools are not yet widely available, members of the RDF Data Access Working Group have developed a non-normative WSDL 1.1 analog to the normative WSDL 2.0 specification of the SPARQL protocol. We have also seeded a community-writeable wiki topic on code examples and techniques and such.
The target status for this document Working Group Note. Until this document is updated to Working Group Note status, time, the RDF Data Access Working Group invites comments to<EMAIL_ADDRESS>(a mailing list with public archive) and intends to respond to them on a best-effort basis.
This is a First Public Working Draft. The RDF Data Access Working Group is part of the W3C Semantic Web Activity.
This document was produced under the 5 February 2004 W3C Patent Policy. The Working Group maintains a public list of patent disclosures relevant to this document; that page also includes instructions for disclosing [and excluding] a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy.
Per section 4 of the W3C Patent Policy, Working Group participants have 150 days from the title page date of this document to exclude essential claims from the W3C RF licensing requirements with respect to this document series. Exclusions are with respect to the exclusion reference document, defined by the W3C Patent Policy to be the latest version of a document in this series that is published no later than 90 days after the title page date of this document.
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
The SPARQL Protocol for RDF [SPARQL-PROT] is described abstractly via a WSDL 2.0 [WSDL20] document that defines the relevant interface, types, faults, and operations, along with HTTP and SOAP bindings. However, as of the time of the publication of this Note, most Web Services toolkits that are WSDL-aware produce and/or consume only WSDL 1.1 [WSDL11]. The RDF Data Access Working Group has decided therefore to publish this supplementary Note presenting a WSDL 1.1 version of the SPARQL Protocol. It is the intention of the Working Group that the interfaces, types, faults, and operations defined non-normatively in this WSDL 1.1 document are equivalent to those normatively defined in WSDL 2.0 by the SPARQL Protocol. In particular, it is intended that clients and endpoints based either on the WSDL 2.0 definition or the WSDL 1.1 definition contained herein should interoperate.
While the WSDL 2.0 definition of the SPARQL Protocol includes bindings for both SOAP-over-HTTP and also for HTTP GET and POST, this WSDL 1.1 document mirrors only the SOAP-over-HTTP bindings. It is the experience of the authors of this Note that toolkits which consume WSDL 1.1 documents do not make use of non-SOAP bindings.
The WSDL 1.1 document is included here and can also be downloaded.
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://www.w3.org/2005/08/sparql-protocol-query/#" xmlns:tns="http://www.w3.org/2005/08/sparql-protocol-query/#" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:st="http://www.w3.org/2005/09/sparql-protocol-types/#" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xs="http://www.w3.org/2001/XMLSchema" schemaLocation="http://www.w3.org/2004/08/wsdl" > <wsdl:types> <xs:schema targetNamespace="http://www.w3.org/2005/08/sparql-protocol-query/#"> <xs:import namespace="http://www.w3.org/2005/09/sparql-protocol-types/#" schemaLocation="http://www.w3.org/2001/sw/DataAccess/proto-wd/sparql-protocol-types.xsd" /> </xs:schema> </wsdl:types> <wsdl:message name="queryRequest"> <wsdl:part name="query" element="st:query-request"/> </wsdl:message> <wsdl:message name="queryResponse"> <wsdl:part name="response" element="st:query-result"/> </wsdl:message> <wsdl:message name="malformedQueryFault"> <wsdl:part name="malformedQueryFaultPart" element="st:malformed-query"/> </wsdl:message> <wsdl:message name="queryRequestRefusedFault"> <wsdl:part name="queryRequestRefusedFaultPart" element="st:query-request-refused"/> </wsdl:message> <wsdl:portType name="SparqlQueryInterface"> <wsdl:operation name="query"> <wsdl:input message="tns:queryRequest"/> <wsdl:output message="tns:queryResponse"/> <wsdl:fault message="tns:malformedQueryFault" name="malformedQueryFault" /> <wsdl:fault message="tns:queryRequestRefusedFault" name="queryRequestRefusedFault" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="QuerySoapBinding" type="tns:SparqlQueryInterface"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="query"> <soap:operation style="document" /> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> <wsdl:fault name="malformedQueryFault"> <soap:fault use="literal"/> </wsdl:fault> <wsdl:fault name="queryRequestRefusedFault"> <soap:fault use="literal"/> </wsdl:fault> </wsdl:operation> </wsdl:binding> </wsdl:definitions>
The Working Group has chosen to use a Wiki page to share and develop code examples [WSDL11-WIKI] of using the WSDL 1.1 to implement the SPARQL Protocol for RDF, either as a service endpoint or as a client.
This document is the work of the RDF Data Access Working Group.
Members of the Working Group are (at the time of writing, and by alphabetical order): Dave Beckett (University of Bristol), Jeen Broekstra, Kendall Clark (Maryland Information and Network Dynamics Lab at the University of Maryland), Dirk Colaert (Agfa-Gevaert N. V.), Dan Connolly (W3C), Souripriya Das (Oracle Corporation), Jos De Roo (Agfa-Gevaert N. V.), Lee Feigenbaum (IBM Corporation), Enrico Franconi (Free University of Bozen-Bolzano), Yoshio Fukushige (Matsushita Electric Industrial Co., Ltd. (MEI)), Stephen Harris (University of Southampton), Pat Hayes, Howard Katz, Farrukh Najmi (Sun Microsystems, Inc.), Bijan Parsia (Maryland Information and Network Dynamics Lab at the University of Maryland), Eric Prud'hommeaux (W3C), Alberto Reggiori (Asemantics S.R.L.), Janne Saarela (Profium Ltd.), Hiroyuki Sato (Nippon Telegraph & Telephone Corp. (NTT)), Andy Seaborne (Hewlett Packard Company), Bryan Thompson (Hicks & Associates, Inc.), Elias Torres (IBM Corporation), Dirk-Willem van Gulik (Asemantics S.R.L.), Timo Westkämper (Profium Ltd.), Kevin Wilkinson (Hewlett Packard Company), Rachel Yager (FSTC (Financial Services Technology Consortium)).
Previous members were: Tom Adams (Tucana), Jeff Pollock (Network Inference), Simon Raboczi (Tucana), Rob Shearer (Network Inference).
The people who have contributed to<EMAIL_ADDRESS>are also gratefully acknowledged.


--- redirect_from: /ru/DosBox.html title: "ConEmu | DosBox integration" breadcrumbs: - url: TableOfContents.html#launch-apps title: Launch Apps ---
How to run old DOS applications (games) in 64-bit OS (Windows 7 x64 for example)?
It's easy now: install DosBox, ConEmu 110306 (or higher) and now, You can start DOS applications from yours favorite console file manager: Far, DN2, cmd ;), or directly from ConEmu. DosBox works in 32 or 64bit OS (Win2k, WinXP, and so on).
DosBox direct link download: http://sourceforge.net/projects/dosbox/files/dosbox/0.74/DOSBox0.74-win32-installer.exe/download
In the current version of ConEmu there is no DosBox configuration interface, so:


Database & Geospatial Web Developer | weather.gc.ca
OpenLayers
QGIS
PHP
PostgreSQL
HTML
CSS
JavaScript
jQuery
Ubuntu
Web Experience Toolkit
Responsive Design
WAI-ARIA
- OpenLayers Web Mapping
- Web Mapping Prototypes
- Website Bug Fixing, Maintenance
- WAI-ARIA Support, Responsive Design Support
Software Developer | sstwireless.com
ASP.NET MVC 4
C#
SQL Server 2012
HTML
CSS
JavaScript
jQuery
Bootstrap
Radio Frequency
Tire Pressure Monitoring System | sstwireless.com
- Web Interface for TPMS
- Remote Customer Debugging
- Bug Fixing, Maintenance, Technical Support
- Automated Mailers


This is the resize view.
This page will be accessed via responsive menu. The responsive menu is displayed once a certain browser width is set.