Skip to content

Instantly share code, notes, and snippets.

albulescu / coordinates_distance.js
Last active March 9, 2023 03:49
Distance between two coordinates
View coordinates_distance.js
function distance(lon1, lat1, lon2, lat2) {
const R = 6371e3; // metres
const Q1 = lat1 * Math.PI / 180;
const Q2 = lat2 * Math.PI / 180;
const DP = (lat2 - lat1) * Math.PI / 180;
const DA = (lon2 - lon1) * Math.PI / 180;
const a = Math.sin(DP / 2) * Math.sin(DP / 2) +
Math.cos(Q1) * Math.cos(Q2) *
albulescu / example.js
Created February 16, 2020 02:00 — forked from dasblitz/example.js
React createFetcher explained
View example.js
// This gist aims to explain how it's possible that async functions inside React
// using createFetcher(Promise).next(key) can work.
// A possible implementation of the new createFetcher function
// as shown by
// @param method, should be a function returning a Promise.
// @returns an object with a property 'read', used to read values from the resolved 'cache'.
const createFetcher = function(method) {
// First create a Map for the resolved values.
const resolved = new Map()

Refactoring Proposal


  • Decouple backend from meteor and create new application
  • Rewrite front-end functionality using new designs
  • Continous deploy for live preview
    • Frontend on
    • Backend on
  • Focus on things from MVP and what is already done

Code Audit:

Meteor drawbacks:

I. You're stick to the "normal" way of Meteor development and you can't work how you want without installing a package that do some job. That also might be no problem because packages do more than what you want and this increase filesize and this will increase the loading time of the app.

II. Its hard to debug, when there are problems. Its very hard to investigate and find a solution and this increase development time

III. The current app is bound to unnecessary external services like

View EventBus
selector: 'wpci-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.less']
export class HeaderComponent implements OnInit {
ngOnInit() {}
albulescu / localstorage_property.ts
Created December 15, 2016 21:53
Local Storage Property Binding
View localstorage_property.ts
export function LocalStorageProperty(property:string) {
return function(target: any, propertyKey: string | symbol) {
var _ref_ = window['Reflect'];
var meta, type;
if(_ref_.getMetadata) {
meta = _ref_.getMetadata('design:type', target, propertyKey);
var result = /^function\s+([\w\$]+)\s*\(/.exec( meta.toString() )
var fnName = result ? result[ 1 ] : '';
if(fnName && fnName.length) {
View gist:d7bfb070b0f908913b8efa42ead565c1
<td md-cell>
<div ng-if="!result.osd.csmInstruction || result.enableFlag">
<md-select ng-if="!$ctrl.cp" name="status" ng-init="result.enableFlag='true'" ng-model="result.osd.csmInstruction" aria-label="status" placeholder="Select">
<md-option value="">Select</md-option>
<md-option value="Hold for Decision">Hold for Decision</md-option>
<span ng-if="$ctrl.cp">
{{result.status | na}}
albulescu /
Last active March 2, 2023 18:40
Yamaha Protocol