next.js, nginx, reverse-proxy, ssl
$ sudo apt-get update
$ sudo apt-get install nginx letsencrypt
function memorySizeOf(obj) { | |
var bytes = 0; | |
function sizeOf(obj) { | |
if(obj !== null && obj !== undefined) { | |
switch(typeof obj) { | |
case 'number': | |
bytes += 8; | |
break; | |
case 'string': |
/*------------------------------------------ | |
Responsive Grid Media Queries - 1280, 1024, 768, 480 | |
1280-1024 - desktop (default grid) | |
1024-768 - tablet landscape | |
768-480 - tablet | |
480-less - phone landscape & smaller | |
--------------------------------------------*/ | |
@media all and (min-width: 1024px) and (max-width: 1280px) { } | |
@media all and (min-width: 768px) and (max-width: 1024px) { } |
// Scrollbar with Hover Transition Effect | |
.container::-webkit-scrollbar { | |
width: 14px; | |
} | |
.container::-webkit-scrollbar-thumb { | |
background-clip: content-box; | |
border: 4px solid transparent; | |
border-radius: 7px; | |
box-shadow: inset 0 0 0 10px; | |
} |
//------- | |
public static final String BASE_URL = "https://lateralview.co"; | |
public static final String HEADER_CACHE_CONTROL = "Cache-Control"; | |
public static final String HEADER_PRAGMA = "Pragma"; | |
private Context mContext; | |
//------- |
import android.content.Context; | |
import android.graphics.Canvas; | |
import android.graphics.Paint; | |
import android.support.annotation.NonNull; | |
import android.support.annotation.Nullable; | |
import android.text.Editable; | |
import android.text.Spannable; | |
import android.text.TextWatcher; |
import android.content.Context; | |
import android.graphics.Canvas; | |
import android.graphics.drawable.Drawable; | |
import android.support.v7.widget.AppCompatEditText; | |
import android.util.AttributeSet; | |
import android.util.SparseArray; | |
import java.util.regex.Matcher; | |
import java.util.regex.Pattern; |
function objectToQuerystring (obj) { | |
return Object.keys.reduce(function (str, key, i) { | |
var delimiter, val; | |
delimiter = (i === 0) ? '?' : '&'; | |
key = encodeURIComponent(key); | |
val = encodeURIComponent(obj[key]); | |
return [str, delimiter, key, '=', val].join(''); | |
}, ''); | |
} |
# to generate your dhparam.pem file, run in the terminal | |
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048 |
function CSVToMatrix(csv,delimiter){ | |
let matrix = []; | |
csv.split('\n').map( l => { l.trim() == "" ? 0 : matrix.push(l.trim().split(delimiter).map(v=>v.trim())) }) | |
return matrix | |
} | |
function MatrixToJSON(matrix,from,to){ | |
let jsonResult = []; from = from||0; | |
matrix.map((a,i) => { | |
let obj = Object.assign({}, ...matrix[0].map((h, index) => ({[h]: matrix[i][index]}))) |