Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View mewben's full-sized avatar

Melvin Soldia mewben

View GitHub Profile
@mewben
mewben / building-sync-systems.md
Created December 15, 2023 15:37 — forked from pesterhazy/building-sync-systems.md
Building an offline realtime sync engine

So you want to write a sync system for a web app with offline and realtime support? Good luck. You might find the following resources useful.

Overview articles

@mewben
mewben / flutter_icon_rotate.dart
Created October 30, 2019 07:03
Flutter: Rotate Icon by 90 degrees
import 'package:flutter/material.dart';
import 'dart:math';
class RotatedIcon extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Transform.rotate(
angle: 90 * pi/180,
child: Icon(Icons.flight),
);
@mewben
mewben / remove_documents_mongodb.js
Created February 13, 2019 13:10 — forked from Stoffo/remove_documents_mongodb.js
Remove Documents older than x days in MongoDB
var date = new Date();
var daysToDeletion = 120;
var deletionDate = new Date(date.setDate(date.getDate() - daysToDeletion));
printjson(deletionDate);
var db = db.getSiblingDB('db')
db.getMongo().setSlaveOk();
printjson(db.messages.find({insertDate : {$lt : deletionDate}}).count());
@mewben
mewben / nodejs-delay.js
Created October 12, 2018 05:09
Adding delay in nodejs api
const someFunction = async () => {
try {
// wait 5 sec before sending the response
await new Promise(resolve => setTimeout(() => resolve(), 5000));
return res.json({response: 'here'})
} catch (error) {
// return error
}
}
@mewben
mewben / query-with-count-mongoose.js
Created October 5, 2018 01:35
Query with $lookup count
Site.aggregate()
.lookup({
from: 'pages',
localField: '_id',
foreignField: 'siteID',
as: 'pages',
})
.addFields({ pageCount: { $size: '$pages' } }) // add pageCount field
.project({ pages: 0 }) // exclude pages array
.exec();
@mewben
mewben / rounding.java
Created August 23, 2018 15:55 — forked from aslakhellesoy/rounding.java
Rounding up and down to nearest multiple
/** round n down to nearest multiple of m */
long roundDown(long n, long m) {
return n >= 0 ? (n / m) * m : ((n - m + 1) / m) * m;
}
/** round n up to nearest multiple of m */
long roundUp(long n, long m) {
return n >= 0 ? ((n + m - 1) / m) * m : (n / m) * m;
}
@mewben
mewben / webdev_online_resources.md
Created July 17, 2018 13:31 — forked from bradtraversy/webdev_online_resources.md
Online Resources For Web Developers (No Downloading)
@mewben
mewben / esnextbin.md
Created August 4, 2016 01:52
esnextbin sketch
package main
import (
"net/http"
"github.com/labstack/echo"
"github.com/labstack/echo/engine/fasthttp"
)
func main() {
@mewben
mewben / Makefile
Created October 7, 2015 05:10 — forked from lantins/Makefile
"Auto build & serve" of golang code :)
#
# Makefile to perform "live code reloading" after changes to .go files.
#
# n.b. you must install fswatch (OS X: `brew install fswatch`)
#
# To start live reloading run the following command:
# $ make serve
#
# binary name to kill/restart