Skip to content

Instantly share code, notes, and snippets.

View m-manu's full-sized avatar

Manu Manjunath m-manu

View GitHub Profile
@m-manu
m-manu / parse_csv_file.php
Last active April 24, 2024 17:33
Useful CSV Parser for PHP 5.2
<?php
/*
Copyright (c) 2013, Manu Manjunath
All rights reserved.
Redistribution and use of this program in source/binary forms, with or without modification are permitted.
Link to this gist is preferred, but not a condition for redistribution/use.
*/
function parse_csv_file($csvfile) {
@m-manu
m-manu / mail_with_attachments.php
Last active May 23, 2016 09:24
PHP function to send e-mail with attachments
<?php
/*
Copyright (c) 2012, Manu Manjunath
All rights reserved.
Redistribution and use of this program in source/binary forms, with or without modification are permitted.
Link to this gist is preferred, but not a condition for redistribution/use.
*/
function mail_with_attachments($to, $subject, $message, Array $filepaths, $from = null, $replyto = null) {
@m-manu
m-manu / date_with_micro.php
Created August 16, 2013 10:26
Quick replacement to PHP's date() function to handle the 'u' format specifier (for microseconds)
<?php
/**
* Quick replacement to date() function to handle the 'u' format specifier (for microseconds)
* @param string $format Date format string - the same format string you would pass to date() function
* @param float $timestamp [optional] Unix timestamp with microseconds - Typically output of <b>microtime(true)</b>
* @return string Formatted string
*/
function date_with_micro($format, $timestamp = null) {
if (is_null($timestamp) || $timestamp === false) {
$timestamp = microtime(true);
@m-manu
m-manu / stock
Last active November 21, 2017 07:56
Command-line utility to get stock price from Nasdaq and display it in INR (or any other currency). This script is created only for academic purpose. Please check terms and conditions Yahoo! Finance and Google Finance APIs before using this.
#!/usr/bin/python
'''
Command-line script to get stock price (in USD and local currency)
Prerequisite:
Python 2.7
Installation:
Copy this script to /usr/bin or /bin.
Usage:
$ stock ZNGA
This will get you stock price for company with stock symbol 'ZNGA'
@m-manu
m-manu / email-verify
Last active July 18, 2017 19:15
Command-line utility to reliably verify an e-mail address. (Python)
#!/usr/bin/python
"""
Description:
Command-line tool to validate an email address.
After verifying e-mail address by pattern matching, checks the validity with the SMTP server.
Usage:
./email-verify somebody@example.com
# (c) 2013 Manu Manjunath
@m-manu
m-manu / rss_to_html.php
Last active December 23, 2015 19:49
Script to convert an RSS feed string to clean, cross-browser HTML string (Output will be XHTML compliant if the feed source is XHTML compliant)
<?php
/**
* Converts an RSS feed string to clean, cross-browser HTML string
* (Output will be XHTML compliant if the feed source is XHTML compliant)
* @param string $rss_feed_xml_str RSS feed (XML) string
* @return string HTML string on success, <b>false</b> on failure.
*/
function rss_to_html($rss_feed_xml_str) {
$feed_html = false;
$feed = simplexml_load_string($rss_feed_xml_str, null, LIBXML_NOCDATA);
@m-manu
m-manu / ssh-known-hosts-optimize
Last active December 28, 2015 07:09
This script consolidates your "~/.ssh/known_hosts" file. All the aliases and internal/external IP addresses for a node will be merged into one line of the file.
#!/usr/bin/python
import os
import sys
import csv
home = os.getenv("HOME")
known_hosts_path = home+'/.ssh/known_hosts'
known_hosts_optimized_path = home+'/.ssh/known_hosts_optimized'
d = {}
csvfile = open(known_hosts_path, 'r')
@m-manu
m-manu / url_get_contents.php
Last active December 28, 2015 07:09
Read entire contents of a URL into one string. Allows you to pass parameters or raw data. Supports GET/POST. More convenient and feature-rich compared to file_get_contents if you're using it on URLs!
<?php
/**
* Read entire contents of given URL as a string. Optionally, get headers as well in an easily accessible array.
* @param string $url URL to fetch data from
* @param mixed $params Parameters to the URL, typically an array. In case of POST, can be a string
* @param string $method HTTP method - can be 'GET' (default) or 'POST'
* @param bool $include_headers Should response headers be included?
* @return mixed Contents of the webpage as a string. Returns <i>false</i> in case of failure. If parameter <b>$include_headers</b> is <i>true</i>, returns an <i>array</i> containing response code, response headers and response body.
*/
@m-manu
m-manu / google_oauth2_auth.php
Last active January 3, 2016 20:38
Switch from your custom implementation of authentication (storing usernames and passwords in your data store) to a "Login using Google" in no-time. Below is an ultra-light authorization using Google OAuth 2.0. Visit https://cloud.google.com/console/project >> APIs & auth >> Credentials
<?php
define('GOOGLE_OAUTH2_CLIENT_ID', 'client id'); // this will be of form "<number>.apps.googleusercontent.com"
define('GOOGLE_OAUTH2_CLIENT_SECRET', 'client secret'); // this will be a base64 string
define('GOOGLE_OAUTH2_REDIRECT_URI', 'redirect url'); // This URL should be registered under "Redirect URIs"
define('YOUR_DOMAIN', 'your domain'); // your domain
define('OAUTH2_SESSION_DURATION', 90); //in seconds
require __DIR__ . "/url_get_contents.php"; // Use https://gist.github.com/m-manu/7462652
@m-manu
m-manu / ScoredSet.java
Last active January 25, 2016 06:55
Implementation of a "sorted set", a type of set in which elements are sorted according to their 'scores'. Worst-case time complexity: O(1) for retrieval of score, O(log(n)) for addition/removal of elements, O(log(n)) for changes to scores, O(k) for getting top k or bottom k elements.
package manu.sandbox.utils;
import java.util.Set;
public interface ScoredSet<T extends Comparable<T>> extends Set<T>, Cloneable {
interface ElementWithScore<T> {
T getElement();
Double getScore();
}