Elliptic-curve cryptography (ECC)
Posted by
Manish Panchmatia
on Sunday, December 10, 2017
Labels:
security
/
Comments: (0)
Full article...>>
Elliptic-curve cryptography (ECC)
finding the discrete logarithm of a random elliptic curve element with respect to a publicly known base point is infeasible: this is the "elliptic curve discrete logarithm problem" (ECDLP).
finding the discrete logarithm of a random elliptic curve element with respect to a publicly known base point is infeasible: this is the "elliptic curve discrete logarithm problem" (ECDLP).
Applicable for
- key agreement : elliptic curve Diffie–Hellman (ECDH)
- digital signatures : Elliptic Curve Digital Signature Algorithm (ECDSA) FIPS 186-3
- pseudo-random generators
- Integer Factorization algo. E.g. Lenstra elliptic-curve factorization.
- Encryption = key agreement + symmetric key encryption
ECC Key length comparison with RSA Key length.
RSA | ECC |
512 | 112 |
1024 | 160 |
2048 | 224 |
3072 | 256 |
7680 | 384 |
15360 | 512 |
Elliptic Curve
- Symmetric to X axis
- Straight line : intersect with 3 points
- y ^ 2 = x ^3 + a * x + b Weierstrass equation.
- No self-intersections,
- No isolated points
- R = P + Q : First, draw the line that intersects P and Q to curve then third point will be -R
- If line is tangent then also it interacts with one more curve.
- All vertical lines intersects the curve at infinity.
- Other algorithms
- Elliptic curve cryptography
- Elliptic-curve Diffie–Hellman (ECDH) Key agreement
- Elliptic Curve Digital Signature Algorithm (ECDCA)
- EdDSA : The Edwards-curve Digital Signature Algorithm (EdDSA) is based on Schnorr signatureand uses twisted Edwards curves,
- Dual_EC_DRBG
- Lenstra elliptic-curve factorization
- Elliptic curve primality proving
- Supersingular isogeny key exchange
ECC implementation
Module form https://en.wikipedia.org/wiki/Modular_form and Field arithmetic https://en.wikipedia.org/wiki/Field_arithmetic
* Software
Module form https://en.wikipedia.org/wiki/Modular_form and Field arithmetic https://en.wikipedia.org/wiki/Field_arithmetic
* Software
- ecclib : https://github.com/bluemurder/ecclib
- Microsoft MSR ECCLib : https://www.microsoft.com/en-us/download/details.aspx?id=52511
- Node.js https://www.npmjs.com/package/eccrypto
* Hardware
Advance Vector Extension : https://en.wikipedia.org/wiki/Advanced_Vector_Extensions
Public Key Cryptography
PKI (Public Key Infrastructure)
- CA (Certificate Authority) binds public key with identity. = TTP Trusted Third
- Party. E.g. Symantec, Comodo, GoDaddy
- OSCP Responder
- RA (Registration Authority) = subordinate CA in Microsoft PKI.
- VA (Validation Authority)
- Central Directory to store index keys
- Certificate Management System
- Certificate Policy
1. CA
2. Web of Trust. E.g. PGP (Pretty Good Privacy) and GnuPG
3. Simple Public Key Infrastructure (SPKI). Authorization loop : verifier = issuers
Open Source implementation of CA
- OpenSSL is the simplest CA and tool to build PKI enabled apps. C. Part of all major Linux distributions,
- EJBCA is a full featured, Enterprise grade, CA implementation. Java.
- OpenCA is a full featured CA implementation
- XCA is a graphical interface, and database.
- (Discontinued) TinyCA was a graphical interface for OpenSSL.
- XiPKI CA and OCSP responder. With SHA3 support, OSGi-based Java.
- IoT_pki is a simple PKI. Python cryptography library
- DogTag
- gnoMint
- EasyRSA, OpenVPN's command line CA utilities using OpenSSL.
- r509
- Boulder is an automated server that uses the Automated Certificate Management Environment (ACME) protocol.
- Windows Server : Active Directory Certificate Services.
- CAcert https://en.wikipedia.org/wiki/CAcert
- Let's Encrypt. https://en.wikipedia.org/wiki/Let%27s_Encrypt
Tools
- OpenSSL : https://www.feistyduck.com/books/openssl-cookbook/
- genrsa
- ssh-keygen
Standards
Public Key Cryptography Standards : https://en.wikipedia.org/wiki/PKCS
Cryptographic Message Syntax : https://en.wikipedia.org/wiki/Cryptographic_Message_Syntax and RFC 2315, RFC 2360, RFC 3369
Books
1. Introduction to cryptography and network security
2. Cryptography theory and practice
3. Field Arithmetic
4. Problems in the Theory of Modular Forms
Kubernates - practicals
Posted by
Manish Panchmatia
on Friday, December 8, 2017
Labels:
software
/
Comments: (1)
Full article...>>
To get more practical insight about internals of Kubernetes
https://github.com/kelseyhightower/kubernetes-the-hard-way
Learn Kubernetes using Interactive Browser-Based Scenarios
https://www.katacoda.com/courses/kubernetes
Handon with Minikube: single node kubernates cluster
To install Minikube :
https://gist.github.com/osowski/adce22b01fadd6e2bc3331c066d7d612
Then execute command:
minikube start
Now play around with Minicube with kubectl
Overview of kubectl
https://kubernetes.io/docs/reference/kubectl/overview/
ubectl Cheat Sheet
https://kubernetes.io/docs/reference/kubectl/cheatsheet/
istio
Posted by
Manish Panchmatia
on Tuesday, December 5, 2017
Labels:
security,
software
/
Comments: (0)
Full article...>>
istio
Micro-service mesh management framework
It provides a uniform way to connect, manage, and secure microservices. It supports managing traffic flows between microservices, enforcing access policies, and aggregating telemetry data, all without requiring changes to the microservice code.
Benifit
=======
* A/B testing,
* canary releases,
* failure recovery,
* metrics,
Key Capablity
* Traffic Management
* load balancing,
* rate limiting,
* Observability
* monitoring
* Policy Enforcement
* access control,
* load balancing,
* Servie identity and security
* service-to-service authentication,
* discovery of services,
* end-to-end authentication.
* Platform Support
* Cloud,
* on-premise,
* Kubernetes,
* Mesos
* Integration and Customization : integrate with existing solutions for
* ACLs,
* logging,
* monitoring,
* quotas,
* auditing
* etc.
Istio pre-configured addons
==========================
* Grafana : dashboard to visulize service mesh traffic data
* Prometheus : to query istio metrics
* ServiceGraph : generating and visualizing a graph of services within a mesh
* Zipkin : distributed tracing system
Architecture
============
1. Data plane :
set of intelligent proxy (Envoy)
2. Control plane :
manage and configure proxy
to route traffic
to enforce policy runtime.
1. Envoy : sidecar proxy in same pod with features :
dynamic service discovery,
load balancing,
TLS termination,
HTTP & gRPC proxying,
circuit breakers,
health checks,
staged rollouts with %-based traffic split,
fault injection,
rich metrics.
2. Mixer:
platform independant
flexible plugin model
with a variety of host environments and infrastructure backend
Tasks:
enforce access control
enforce usage policies
collect telemetry data from envoy
Mixer configuration for
attribute extractation
policy evaluation
3. Pilot
Tasks:
converts high level routing rules that control traffic behavior into Envoy-specific configurations
propagates Envoy-specific configurations to the sidecars at runtime
abstracts platform-specifc service discovery mechanisms
transalate service discovery to Envoy data plane API
Benefits
service discovery
traffic management
intelligent routing
A/B tests,
canary deployments
resiliency
timeouts,
retries,
circuit breakers,
etc.
multiple environments
Kubernetes,
Consul/Nomad
4. istio-Auth
Authentication using mutua TLS
Built-in identity + credentials management
enforce policy based on service identity
Micro-service mesh management framework
It provides a uniform way to connect, manage, and secure microservices. It supports managing traffic flows between microservices, enforcing access policies, and aggregating telemetry data, all without requiring changes to the microservice code.
Benifit
=======
* A/B testing,
* canary releases,
* failure recovery,
* metrics,
Key Capablity
* Traffic Management
* load balancing,
* rate limiting,
* Observability
* monitoring
* Policy Enforcement
* access control,
* load balancing,
* Servie identity and security
* service-to-service authentication,
* discovery of services,
* end-to-end authentication.
* Platform Support
* Cloud,
* on-premise,
* Kubernetes,
* Mesos
* Integration and Customization : integrate with existing solutions for
* ACLs,
* logging,
* monitoring,
* quotas,
* auditing
* etc.
Istio pre-configured addons
==========================
* Grafana : dashboard to visulize service mesh traffic data
* Prometheus : to query istio metrics
* ServiceGraph : generating and visualizing a graph of services within a mesh
* Zipkin : distributed tracing system
Architecture
============
1. Data plane :
set of intelligent proxy (Envoy)
2. Control plane :
manage and configure proxy
to route traffic
to enforce policy runtime.
1. Envoy : sidecar proxy in same pod with features :
dynamic service discovery,
load balancing,
TLS termination,
HTTP & gRPC proxying,
circuit breakers,
health checks,
staged rollouts with %-based traffic split,
fault injection,
rich metrics.
2. Mixer:
platform independant
flexible plugin model
with a variety of host environments and infrastructure backend
Tasks:
enforce access control
enforce usage policies
collect telemetry data from envoy
Mixer configuration for
attribute extractation
policy evaluation
3. Pilot
Tasks:
converts high level routing rules that control traffic behavior into Envoy-specific configurations
propagates Envoy-specific configurations to the sidecars at runtime
abstracts platform-specifc service discovery mechanisms
transalate service discovery to Envoy data plane API
Benefits
service discovery
traffic management
intelligent routing
A/B tests,
canary deployments
resiliency
timeouts,
retries,
circuit breakers,
etc.
multiple environments
Kubernetes,
Consul/Nomad
4. istio-Auth
Authentication using mutua TLS
Built-in identity + credentials management
enforce policy based on service identity
Kubernetes
Posted by
Manish Panchmatia
on Thursday, November 16, 2017
Labels:
Education,
software
/
Comments: (0)
Full article...>>
1. Design
=========
API -> Primitives (Building Blocks) for
1. deploy
2. maintain
3. scale
apps.
1.1 Pod
=======
* Scheduling unit
* Pod = 1+ co-located containers.
* Pod has unique IP within cluster.
* Can be managed by Kubernetes API or controller.
1.2 Labels & Selectors
======================
* Key-Value pair
* attached to pod and node
* grouping mechanism
1.3 Controllers
===============
* Manage a set of podes as per "Labels and Selector"
* reconciliation loop drive cluster state from actual to desirable
E.g
1. Replication controller: to scale up and down
2. Daemonset controller to run 1 pod on 1 machine,
3. Job controller
1.4 Services
============
* set of pods works together, E.g. tier in multi-tier
* set defined by labels & selector.
* service discovery by Kubernetes
2. Architecture
===============
* Master-slave
2.1 C-plane
===========
2.1.1 etcd
==========
* key value data store
* configuration data of cluster
* represent overall state of cluster
* other componenets monitors changed at etcd
2.1.2 API server
================
* JSON over HTTP
* Validate REST request and update API objects's state at etcd
* so client can configure workloads, containers across the worker nodes
2.1.3 Schedular
===============
* plugable
* match resource "supploy" to workload "demands"
* select nod to run pod
* inputs
- resource availability
- resource untilization
- resource requirement
- QoS
- afinity requirements
- anti-afinity requirements
- data locality
2.1.4 contoller manager
=======================
* process to run (1) Daemonset controller (2) Replication controller
* communicate with API server to create, update, delete (1) pod, (2) service end points (3) etc.
2.2 Kubernetes Node
===================
= Worker = Minion
* run container runtime. e.g Docker and below componenets
2.2.1 Kubelet
=============
* hearbeat for health of node.
2.2.2 Kube-proxy
================
* n/w proxy + load balancer
* route to container based on IP + port
2.2.3 cAdvisor
==============
Agent to collect resource usage.
Other alternatives
1. Docker Swarm
2. Apache Meos
=========
API -> Primitives (Building Blocks) for
1. deploy
2. maintain
3. scale
apps.
1.1 Pod
=======
* Scheduling unit
* Pod = 1+ co-located containers.
* Pod has unique IP within cluster.
* Can be managed by Kubernetes API or controller.
1.2 Labels & Selectors
======================
* Key-Value pair
* attached to pod and node
* grouping mechanism
1.3 Controllers
===============
* Manage a set of podes as per "Labels and Selector"
* reconciliation loop drive cluster state from actual to desirable
E.g
1. Replication controller: to scale up and down
2. Daemonset controller to run 1 pod on 1 machine,
3. Job controller
1.4 Services
============
* set of pods works together, E.g. tier in multi-tier
* set defined by labels & selector.
* service discovery by Kubernetes
2. Architecture
===============
* Master-slave
2.1 C-plane
===========
2.1.1 etcd
==========
* key value data store
* configuration data of cluster
* represent overall state of cluster
* other componenets monitors changed at etcd
2.1.2 API server
================
* JSON over HTTP
* Validate REST request and update API objects's state at etcd
* so client can configure workloads, containers across the worker nodes
2.1.3 Schedular
===============
* plugable
* match resource "supploy" to workload "demands"
* select nod to run pod
* inputs
- resource availability
- resource untilization
- resource requirement
- QoS
- afinity requirements
- anti-afinity requirements
- data locality
2.1.4 contoller manager
=======================
* process to run (1) Daemonset controller (2) Replication controller
* communicate with API server to create, update, delete (1) pod, (2) service end points (3) etc.
2.2 Kubernetes Node
===================
= Worker = Minion
* run container runtime. e.g Docker and below componenets
2.2.1 Kubelet
=============
* hearbeat for health of node.
2.2.2 Kube-proxy
================
* n/w proxy + load balancer
* route to container based on IP + port
2.2.3 cAdvisor
==============
Agent to collect resource usage.
Other alternatives
1. Docker Swarm
2. Apache Meos
Artificial Intelligence / Machine Learning : Videos
Posted by
Manish Panchmatia
on Tuesday, October 31, 2017
Labels:
ArtificialIntelligence,
Bookmark,
Education,
Innovation,
MachineLearning,
software
/
Comments: (5)
Full article...>>
1. Home AI Info
https://www.youtube.com/channel/UCWOC-Lp9ZpwDKlp6RylVuOg/playlists
https://www.youtube.com/channel/UCWOC-Lp9ZpwDKlp6RylVuOg
http://homeai.info/videos/
2. Intel Nervana
https://www.youtube.com/channel/UChQAxUd_onSPjBejB_Awk7Q
https://www.youtube.com/channel/UChQAxUd_onSPjBejB_Awk7Q/videos
https://www.youtube.com/channel/UChQAxUd_onSPjBejB_Awk7Q/playlists
3. sentdex
3.1 ML with Python :
https://www.youtube.com/watch?v=OGxgnH8y2NM&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v
3.2 Image Recognition
https://www.youtube.com/watch?v=hbL_FTEZSyY&list=PLQVvvaa0QuDffXBfcH9ZJuvctJV3OtB8A
3.3 ML for trading
https://www.youtube.com/watch?v=v_L9jR8P-54&list=PLQVvvaa0QuDe6ZBtkCNWNUbdaBo2vA4RO
4. Fast AI online courses
https://www.youtube.com/watch?v=Th_ckFbc6bI
5. NLP
https://www.youtube.com/watch?v=OQQ-W_63UgQ&list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6
https://www.youtube.com/channel/UCWOC-Lp9ZpwDKlp6RylVuOg/playlists
https://www.youtube.com/channel/UCWOC-Lp9ZpwDKlp6RylVuOg
http://homeai.info/videos/
2. Intel Nervana
https://www.youtube.com/channel/UChQAxUd_onSPjBejB_Awk7Q
https://www.youtube.com/channel/UChQAxUd_onSPjBejB_Awk7Q/videos
https://www.youtube.com/channel/UChQAxUd_onSPjBejB_Awk7Q/playlists
3. sentdex
3.1 ML with Python :
https://www.youtube.com/watch?v=OGxgnH8y2NM&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v
3.2 Image Recognition
https://www.youtube.com/watch?v=hbL_FTEZSyY&list=PLQVvvaa0QuDffXBfcH9ZJuvctJV3OtB8A
3.3 ML for trading
https://www.youtube.com/watch?v=v_L9jR8P-54&list=PLQVvvaa0QuDe6ZBtkCNWNUbdaBo2vA4RO
4. Fast AI online courses
https://www.youtube.com/watch?v=Th_ckFbc6bI
5. NLP
https://www.youtube.com/watch?v=OQQ-W_63UgQ&list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6
Machine Learning online courses
Posted by
Manish Panchmatia
Labels:
ArtificialIntelligence,
Bookmark,
Education,
Innovation,
MachineLearning,
software
/
Comments: (1)
Full article...>>
1. Machine Learning
https://www.coursera.org/learn/machine-learning
https://www.youtube.com/playlist?list=PLLssT5z_DsK-h9vYZkQkYNWcItqhlRJLN
https://www.youtube.com/playlist?list=PLLssT5z_DsK-h9vYZkQkYNWcItqhlRJLN
2. Deep Learning
3.
Convolutional Neural Network : CS231N
4.
Neural Networks for Machine Learning by Geoffrey Hinton
https://www.coursera.org/learn/neural-networks
https://www.youtube.com/playlist?list=PLoRl3Ht4JOcdU872GhiYWf6jwrk_SNhz9
https://www.youtube.com/playlist?list=PLLssT5z_DsK_gyrQ_biidwvPYCRNGI3iv
http://www.cs.toronto.edu/~hinton/nntut.html
http://www.cs.toronto.edu/~hinton/
https://www.coursera.org/learn/neural-networks
https://www.youtube.com/playlist?list=PLoRl3Ht4JOcdU872GhiYWf6jwrk_SNhz9
https://www.youtube.com/playlist?list=PLLssT5z_DsK_gyrQ_biidwvPYCRNGI3iv
http://www.cs.toronto.edu/~hinton/nntut.html
http://www.cs.toronto.edu/~hinton/
5. Deep Leaning for NLP :
CS224d
http://cs224d.stanford.edu/
https://www.quora.com/Are-the-video-lectures-of-the-CS224d-Deep-Learning-for-Natural-Language-Processing-Stanford-course-available-online
http://cs224d.stanford.edu/
https://www.quora.com/Are-the-video-lectures-of-the-CS224d-Deep-Learning-for-Natural-Language-Processing-Stanford-course-available-online
6. Intro to Machine Learning
7. Distributed Machine Learning with Apache Spark
Machine Learning
Posted by
Manish Panchmatia
on Friday, August 4, 2017
Labels:
ArtificialIntelligence,
Bookmark,
MachineLearning,
software
/
Comments: (2)
Full article...>>
Today, Let me share a list of website related to Machine Learning.This list is created by referring to dhilipsiva@gmail.com 's e-mails to BangML meetup group. Acknowledged.
- CycleGAN: Software that generates photos from paintings, turns horses into zebras, performs style transfer, and more (from UC Berkeley): https://github.com/junyanz/CycleGAN
- weld: a runtime and language for accelerating data analytics frameworks: https://github.com/weld-project/weld
- deform-conv: D eformable Convolution in TensorFlow / Keras: https://github.com/felixlaumon/deform-conv
- sact: Spatially Adaptive Computation Time for Residual Networks: https://github.com/mfigurnov/sact
- CLR: Cyclical Learning Rate: https://github.com/bckenstler/CLR
- seq2seq: A general-purpose encoder-decoder framework for Tensorflow: https://github.com/google/seq2seq
- deep-photo-styletransfer: Code and data for paper "Deep Photo Style Transfer": https://github.com/luanfujun/deep-photo-styletransfer
- DiscoGAN-pytorch: PyTorch implementation of "Learning to Discover Cross-Domain Relations with Generative Adversarial Networks": https://github.com/carpedm20/DiscoGAN-pytorch
- evolution-strategies-starter: Starter code for Evolution Strategies: https://github.com/openai/evolution-strategies-starter
- AdaIN-style: Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization: https://github.com/xunhuang1995/AdaIN-style
- TC-Bot: User Simulation for Task-Completion Dialogues: https://github.com/MiuLab/TC-Bot
- e2e-model-learning: Task-based end-to-end model learning: https://github.com/locuslab/e2e-model-learning
- csgm: Code to reproduce results from the paper: "Compressed Sensing using Generative Models": https://github.com/AshishBora/csgm
- rnnprop: RNNprop: https://github.com/vfleaking/rnnprop
- DeepSketchHashing: Deep Sketch Hashing: https://github.com/ymcidence/DeepSketchHashing
- tensorflow/models: Learning to Remember Rare Events: https://github.com/tensorflow/models/tree/master/learning_to_remember_rare_events
- ORB_SLAM2: Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities: https://github.com/raulmur/ORB_SLAM2
- rllab: is a framework for developing and evaluating reinforcement learning algorithms, fully compatible with OpenAI Gym: https://github.com/openai/rllab
- voxnet: 3D/Volumetric Convolutional Neural Networks with Theano+Lasagne: https://github.com/dimatura/voxnet
- dynamics: A Compositional Object-Based Approach to Learning Physical Dynamics: https://github.com/mbchang/dynamics
- CommAI-env - A platform for developing AI systems as described in A Roadmap towards Machine Intelligence: https://github.com/facebookresearch/CommAI-env
- rwa - Machine Learning on Sequential Data Using a Recurrent Weighted Average: https://github.com/jostmey/rwa
- MazeBase - Simple environment for creating very simple 2D games and training neural network models to perform tasks within them: https://github.com/facebook/MazeBase
- ontology - The Audio Set Ontology aims to provide a comprehensive set of categories to describe sound events: https://github.com/audioset/ontology
- mv3d - Multi-view 3D Models from Single Images with a Convolutional Network: https://github.com/mtatarchenko/mv3d
- universal - Universal adversarial perturbations: https://github.com/LTS4/universal
- prophet - Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth: https://github.com/facebookincubator/prophet
- faiss - A library for efficient similarity search and clustering of dense vectors: https://github.com/facebookresearch/faiss
- CausalImpact - An R package for causal inference in time series: https://github.com/google/CausalImpact
- GPflow - Gaussian processes in TensorFlow: https://github.com/GPflow/GPflow/
- optnet - Differentiable Optimization as a Layer in Neural Networks: https://github.com/locuslab/optnet
- RNN-based generative models for speech: https://github.com/sotelo/parrot
- An SSBM player based on Deep Reinforcement Learning: https://github.com/vladfi1/phillip
- Shake-Shake regularization of 3-branch residual networks: https://github.com/xgastaldi/shake-shake
- Benchmarking State-of-the-Art Deep Learning Software Tools: https://github.com/hclhkbu/dlbench
- Public repo for helpful scripts when using the YouTube Bounding Boxes dataset: https://github.com/mbuckler/youtube-bb
- AirSim - Open source simulator based on Unreal Engine for autonomous vehicles from Microsoft AI & Research: https://github.com/Microsoft/AirSim
- dlib - A toolkit for making real world machine learning and data analysis applications in C++: https://github.com/davisking/dlib/
- Cyclades - This repository contains code for Cyclades, a general framework for parallelizing stochastic optimization algorithms in a shared memory setting: https://github.com/amplab/cyclades
- Deep learning with dynamic computation graphs in TensorFlow: https://github.com/tensorflow/fold
- Starter code for working with the YouTube-8M dataset: https://github.com/google/youtube-8m
- Vid2speech: Speech Reconstruction from Silent Video: https://github.com/arielephrat/vid2speech
- PatchBatch - a Batch Augmented Loss for Optical Flow: https://github.com/DediGadot/PatchBatch
- Wasserstein GAN: https://github.com/martinarjovsky/WassersteinGAN
- Keras Implementation of Google's Inception-V4 Architecture: https://github.com/kentsommer/keras-inceptionV4
- Implementation of Meta-RL A3C algorithm: https://github.com/awjuliani/Meta-RL
- DeepPose implementation on TensorFlow: https://github.com/asanakoy/deeppose_tf
- Exact Soft Confidence-Weighted Learning: https://github.com/IshitaTakeshi/SoftConfidenceWeighted.jl
- DyNet: The Dynamic Neural Network Toolkit: https://github.com/clab/dynet
- ENet Training: https://github.com/e-lab/ENet-training
- Generic Foreground Segmentation in Images: https://github.com/suyogduttjain/pixelobjectness
- Plexus - Interactive Emotion Visualization based on Social Media: https://github.com/xavierwu2016/plexus
- Code for Residual and Plain Convolutional Neural Networks for 3D Brain MRI Classification paper: https://github.com/neuro-ml/resnet_cnn_mri_adni
- Image Compression with Neural Networks: https://github.com/tensorflow/models/tree/master/compression
- A library for probabilistic modeling, inference, and criticism. Deep generative models, variational inference: https://github.com/blei-lab/edward
- KOC University deep learning framework: https://github.com/denizyuret/Knet.jl
- Domain Transfer Network. Tensorflow implementation of unsupervised cross-domain image generation: https://github.com/yunjey/dtn-tensorflow
- Improving Convolutional Networks via Attention Transfer: https://github.com/szagoruyko/attention-transfer
- Open-Source Neural Machine Translation in Torch: https://github.com/OpenNMT/OpenNMT
- Texture Networks: Feed-forward Synthesis of Textures and Stylized Images: https://github.com/DmitryUlyanov/texture_nets
- The Predictron: End-To-End Learning and Planning: https://github.com/zhongwen/predictron
- Deluge Networks: https://github.com/xternalz/DelugeNets
- Learning from Simulated and Unsupervised Images through Adversarial Training (TensorFlow): https://github.com/carpedm20/simulated-unsupervised-tensorflow
- FastMask: Segment Multi-scale Object Candidates in One Shot: https://github.com/voidrank/FastMask
- Visual7W visual question answering models: https://github.com/yukezhu/visual7w-qa-models
- Language Modeling with Gated Convolutional Networks: https://github.com/DingKe/nn_playground/tree/master/gcnn
- Semantic JPEG image compression using deep convolutional neural network (CNN): https://github.com/iamaaditya/image-compression-cnn
- TextBoxes: A Fast Text Detector with a Single Deep Neural Network: https://github.com/MhLiao/TextBoxes
- Implementation of video captioning from the paper "Temporal Tessellation for Video Annotation and Summarization": https://github.com/dot27/temporal-tessellation
- TFLearn - Deep learning library featuring a higher-level API for TensorFlow: http://tflearn.org
C++
Posted by
Manish Panchmatia
on Saturday, July 15, 2017
Labels:
software
/
Comments: (0)
Full article...>>
Today Let's revise / refresh few aspects of C++ object oriented programming language
- A class has implicit members
- Default constructor
- Copy constructor. It cannot take object as argument. It always takes object reference as argument.
- Assignment operator
- Default destructor
- Now some specific points about constructor
- A class can have default constructor and explicit constructor. Explicit constructor force compiler for not to do implicit conversion
- However a constructor cannot be virtual
- The copy constructor is called in following cases
- If function return a object by value
- Function argument is object by value
- When we construct a object using another object
- Many times compiler generates temporary object
- Storage class
- auto
- register. Here '&' operator cannot be used
- static. The variable is initialize with value 0
- extern The variable is initialize with value 0
- Storage qualifier OR type qualifier
- volatile
- mutable
- restrict C99 standard. compiler optimization that avoid multiple loading of same variable.
- _Atomic . C99 standard
- const . In the context of pointer, const can be used 3 different ways
- int const * const x
- int const * x
- int * const x
- As we know for member function of class "this" pointer is passed by default. It is always passed as constant pointer.
- The following operator cannot be overloaded
- sizeof
- "."
- ".*"
- typeid
- "::"
- "?:"
- alignof
- Now about type casting of variables
- dynamic_cast . Runtime type check. It is used to case
- base class pointer to derived class pointer
- derive class pointer to another derive class pointer of same base class as parent.
- reinterpret_cast : cast to unrelated object
- static cast. compile time type check. for related object
- const_cast
- duration cast from chrono library
- C++ has specific features like
- Class
- Inline function
- Default argument
- Exception
- Namespace
- Boolean type
- Object Oriented Programming features
- Abstraction
- Encapsulation (information hiding)
- Inheritance
- Polymorphism
- Something about Inheritance
- Virtual inheritance is used to avoid diamond problem
- Inheritance applications are (1) code reuse and (2) overriding base class implementaiton
- 5 types of inheritance
- Single
- Multiple
- Multilevel
- Hierarchical
- Hybrid
- Something about polymorphism
- Static polymorphism
- Function overloading is also called ad-hoc polymorphism
- Templates is also called parametric polymorphism
- Dynamic polymorphism
- Subtyping is also called inclusion polymorphism
- C++ implements virtual table with single dispatch only. No multiple dispatch
Service-Oriented Architecture
Posted by
Manish Panchmatia
on Sunday, June 4, 2017
Labels:
software
/
Comments: (0)
Full article...>>
Service-oriented architecture is a buzzword. It is all about 1. Loose coupling 2. Modular programme 3. connected components using various protocols over IP. SOA is the philosophy of encapsulating application logic in services with a uniformly defined interface and making these publicly available via discovery mechanism. Let's look at some more aspects about SOA
Core Values
Core Values
- More focus on 'business value' compare to 'technical strategy'
- So more focus on 'strategic goal' compare to 'project benifits'
- The components should have 'intrinsic inter-operability'
- More importance to 'shared services' compare to 'implementation for specific purpose'
- Flexibility is more important compare to optimisation
- Here, 'Evolution refinement' is more important compare to 'initial perfection'
SOA is similar to 1. Modular programming 2. Distributed computing 3. mashups 4. SaaS and 5. Cloud computing. Still it is different. SOA has 11 principals.
1. The service contract should be standardized. That includes functional expressions may be using WSDL. Data model may be using XML schema and 3. Policy document.
2. Reference autonomy standardization : The other components are merely aware about presence of other service component. It fosters the loose coupling
3. Service Location Transparency : Service can be executed, deployed anywhere.
4. Service Longevity : Service should run for ever. It also means backward compatible implementation.
5. Service Abstraction means the service is jut a black box. (1) The functional aspects of service (2) Technical information (3) Logic / Algorithm and (2) Quality of service, all these are hidden.
6. Service autonomy : It means, service should be more predictable, reliable and less depends on external environment. Run time service autonomy achieved by dedicated CPU and memory so external environment has lesser impact. Design time service autonomy means, service can be evolve and re-design without impacting consumers. More applicable to entity service and utility service.
7. Service statelessness: The service is implemented as stateless. However it can take support for other system to maintain state. Service may need to maintain state about (1) Context data (2) Business data and (3) Session data.
8. Service granularity define the scope of service. It impacts performance and message size for the service.
9. Service normalization is trade off between redundancy and performance
10. Service composability A service can play two role here (1) Service controller and (2) Service member
11. Service discovery : Using service discovery protocol
12. Service re-usability : The service, which is part of multiple business processes is more reusable. The service with extra functionality will be reusable in future.
13. Service encapsulation: The service not part of SOA, initially.
Each SOA building block plays any of the three roles
1. Service provider
2. Service broker = service registry = service repository
3. Service consumer = service requester
Implementation
SOA can be implemented in multiple ways
1. SOA can be implemented using any service based technology. It can be web services using SOAP+WSDL or RESTful protocol. It can be using (1) Jini and JBI (2) CORBA (3) REST (4) WCF
2. Messaging technology can be used (1) ActiveMQ (2) JMS (3) RabbitMQ
3. OPC-UA is a M2M protocol. It can be web service oriented. It can be binary protocol over TCP/IP. It can by hybrid approach of binary protocol over SOAP.
4. Apache Thrift is a RPC based framework by FaceBook. It provides IDL and binary protocol.
5. SORCER is Java based distributed computing platform, for service oriented computing environment.
6. The programming language like C# .Net, Java, BPEL also has support for SOA
7. WS-CDL and WS-Coordination Specifications extend SOA further for workflows and business process.
Service Oriented Modelling
In SOA framework, Service Oriented Modelling identifies various disciplines to conceptualize, analyze, design, and architect service-oriented assets. Here three approaches are identified
1. SDDM: Service-oriented design and development methodology
2. SOMA: Service-oriented modeling and architecture
3. SOMF: Service-oriented modeling framework. It is about what to do.
Extension and variants
SOA can be further extended with various variants
1. SOA 2.0 is combination of SOA and EDA. Event Driven Architecture. It has three components. (1) Event emitters (agents) (2) Event consumers (sinks OR event processing engine) (3) Event channel. It can be (3.1) message oriented middleware or (2) TCP/IP link (3) File: XML, flat file, or even e-mail.
2. Web 2.0 has same philosophy as SOA, but it serves different user needs.
3. Microservices : (1) Fine grained services may be a process of OSGi Bundle (2) Light weight protocol may be HTTP or shared memory. Results in continuous software development process. Jolie programming language allows to think and program in terms of microservices. The complexity moves to network as (1) network latency (2) message format (3) load balancing and (4) fault tolerance
I hope, the readers like this overview of SOA.
I hope, the readers like this overview of SOA.