Wednesday, December 3, 2014
plato
Watching some videos from Reject JS I have learned about plato:
JavaScript source code visualization, static analysis, and complexity tool.
Since this is my area of interest (one of and currently) I have started a small project,
plato-reports and it took me several trials and errors to make a github hosted browsable copy here
analysing npm (and other packages) using this tool.
It produces some charts and metrics
(avg shell be histograms, and loading of large project shell be faster) but:
pictures are nice and metrics inspiring:
Friday, March 28, 2014
Wednesday, March 26, 2014
Dojo and usage of has()
Quote from: http://livedocs.dojotoolkit.org/dojo/has
Browser sniffing and feature inference are flawed techniques for detecting browser support in client side JavaScript.
So lets face the truth, dojo's own code base
and how many time has(something) is used
62 "ie" 14 "quirks" 14 "dojo-sync-loader" 12 "webkit" 11 "extend-dojo" 10 "opera" 9 "touch" 9 "host-browser" 7 "safari" 7 "mozilla" 7 "dojo-combo-api" 5 "mac" 5 "dom-addeventlistener" 5 "dojo-trace-api" 5 "bug-for-in-skips-shadowed" 4 "ios" 4 "highcontrast" 4 "dom" 4 "dojo-requirejs-api" 4 "config-deferredInstrumentation" 4 "chrome" 3 'activex' 3 "khtml" 3 "host-rhino" 3 "host-node" 3 "ff" 3 "dojo-v1x-i18n-Api" 3 "dojo-preload-i18n-Api" 3 "dojo-loader-eval-hint-url" 3 "dojo-loader" 3 "dojo-inject-api" 3 "dojo-config-api" 3 "config-useDeferredInstrumentation" 3 "config-dojo-loader-catches" 3 "android" 3 "air" 2 name 2 'native-xhr' 2 'config-dojoBlankHtmlUrl' 2 "trident" 2 "ie-event-behavior" 2 "dom-qsa2.1" 2 "dojo-unit-tests" 2 "dojo-undef-api" 2 "dojo-publish-privates" 2 "dojo-log-api" 2 "dojo-debug-messages" 2 "dojo-cdn" 2 "dojo-amd-factory-scan" 2 "array-extensible" 1 term 1 'script-readystatechange' 1 'native-xhr2' 1 'native-formdata' 1 'mozilla' 1 'host-node' 1 'host-browser' 1 'dom-qsa2.1' 1 'dom-parser' 1 'dojo-force-activex-xhr' 1 'config-useXDomain' 1 'config-requestProvider' 1 "wii" 1 "rtl-adjust-position-for-verticalScrollBar" 1 "position-fixed-support" 1 "native-xhr" 1 "json-stringify" 1 "json-parse" 1 "jscript" 1 "events-mousewheel" 1 "events-keypress-typed" 1 "event-stopimmediatepropagation" 1 "event-orientationchange" 1 "event-focusin" 1 "dom-quirks" 1 "dom-qsa3" 1 "dom-qsa" 1 "dom-parser" 1 "dom-matches-selector" 1 "dom-compliant-qsa" 1 "dom-attributes-specified-flag" 1 "dom-attributes-explicit" 1 "dojo-timeout-api" 1 "dojo-test-sniff" 1 "dojo-sniff" 1 "dojo-moduleUrl" 1 "dojo-modulePaths" 1 "dojo-has-api" 1 "dojo-guarantee-console" 1 "dojo-force-activex-xhr" 1 "dojo-fast-sync-require" 1 "dojo-enforceDefine" 1 "dojo-dom-ready-api" 1 "dojo-config-require" 1 "dojo-config-addOnLoad" 1 "dojo-built" 1 "css-user-select" 1 "config-tlmSiblingOfDojo" 1 "config-stripStrict" 1 "config-selectorEngine" 1 "config-publishRequireResult" 1 "config-_allow_leaks"
Tuesday, March 11, 2014
ios-driver
Using iOS version 7.1
iOS >= 6.0. Safari and hybrid apps are supported.
No they are not !!!
Sunday, January 5, 2014
jsPerf tests for split join replace
Today I have found this code in connect middleware:
exports.normalizeSlashes = function normalizeSlashes(path) {
return path.split(sep).join('/');
};
So I have immediately jumped to jsPerf and wanted to compare this to alternative methods (for speed).
Unlucky as always, I have run into several nonsense tests:
- http://jsperf.com/split-join-vs-replace-47 - Both revisions 1,2 are wrong not comparing the same things
- http://jsperf.com/regexp-vs-split-join2 - another treasure
BTW: there is enough room for fiddling elsewhere. On of the tips: "http://jsfiddle.net"
Of course split/join is much slower then intuitive replace. At least with browsers and JSPerf
Update 2013-01-06:
Irony: I have authored BUGGY TEST AS WELL: http://jsperf.com/normalizeslashes-split-join-vs-replace and I hope fixed version 2 is better ;-) http://jsperf.com/normalizeslashes-split-join-vs-replace/2Sunday, November 17, 2013
rvm and ruby for some beEF on OSX
There are many articles, some of them did not work for me
and may not work for you… This is what I have made to succeed:
# uninstall all previous trials of rvm (modify .bash_profile and remove)
rm -rf .rvm*
# latest stable in my time was 2.0.0-p247
curl -L https://get.rvm.io | bash -s stable --ruby
# obviously this install does not modify profile
source ~/.rvm/scripts/rvm
# just looking
rvm list known
ruby --version
# switch from apples version ruby 1.8.7 to "latest"
rvm use ruby-2.0.0-p247
#
rvm gemset create beef
rvm use ruby-2.0.0-p247@beef
# swich to cloned source
cd ~/beef/
# make ruby in this folder to be 2.0.0
echo 'rvm use ruby-2.0.0-p247@beef' > .rvmrc
# install
bundle install
# run
source ~/.rvm/scripts/rvm
rvmsudo ./beef
Monday, July 29, 2013
git whatever --recursive (submodules)
Git submodules are pain in the ...
some commands support --recursive
but not all.
In this case, this snipped can help:
git-recursive(){
git "$@"
git submodule foreach --recursive \
git "$@"
}
any improvements are welcomed ;-)
Subscribe to:
Posts (Atom)

