Programs & Examples On #Protocol handler

How do I create my own URL protocol? (e.g. so://...)

The portion with the HTTP://,FTP://, etc are called URI Schemes

You can register your own through the registry.

    (Default)    "URL:your-protocol-name Protocol"
    URL Protocol ""
          (Default) PathToExecutable


change PATH permanently on Ubuntu


export PATH=$PATH:/home/me/play

to your ~/.profile and execute

source ~/.profile 

in order to immediately reflect changes to your current terminal instance.

What does numpy.random.seed(0) do?

I hope to give a really short answer:

seed make (the next series) random numbers predictable. You can think every time after you call seed, it pre-defines series numbers and numpy random keeps the iterator of it, then every time you get a random number it just gonna call get next.


np.random.randn(2) # array([-0.41675785, -0.05626683])
np.random.randn(1) # array([-1.24528809])

np.random.randn(1) # array([-0.41675785])
np.random.randn(2) # array([-0.05626683, -1.24528809])

You can notice when I set the same seed, no matter how many random number you request from numpy each time, it always gives the same series of numbers, in this case which is array([-0.41675785, -0.05626683, -1.24528809]).

List View Filter Android

Add an EditText on top of your listview in its .xml layout file. And in your activity/fragment..

lv = (ListView) findViewById(;
    inputSearch = (EditText) findViewById(;

// Adding items to listview
adapter = new ArrayAdapter<String>(this, R.layout.list_item,,    products);
inputSearch.addTextChangedListener(new TextWatcher() {

    public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
        // When user changed the Text

    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { }

    public void afterTextChanged(Editable arg0) {}

The basic here is to add an OnTextChangeListener to your edit text and inside its callback method apply filter to your listview's adapter.


To get filter to your custom BaseAdapter you"ll need to implement Filterable interface.

class CustomAdapter extends BaseAdapter implements Filterable {

    public View getView(){
    public Integer getCount()

    public Filter getFilter() {

        Filter filter = new Filter() {

            protected void publishResults(CharSequence constraint, FilterResults results) {

                arrayListNames = (List<String>) results.values;

            protected FilterResults performFiltering(CharSequence constraint) {

                FilterResults results = new FilterResults();
                ArrayList<String> FilteredArrayNames = new ArrayList<String>();

                // perform your search here using the searchConstraint String.

                constraint = constraint.toString().toLowerCase();
                for (int i = 0; i < mDatabaseOfNames.size(); i++) {
                    String dataNames = mDatabaseOfNames.get(i);
                    if (dataNames.toLowerCase().startsWith(constraint.toString()))  {

                results.count = FilteredArrayNames.size();
                results.values = FilteredArrayNames;
                Log.e("VALUES", results.values.toString());

                return results;

        return filter;

Inside performFiltering() you need to do actual comparison of the search query to values in your database. It will pass its result to publishResults() method.

How can I install packages using pip according to the requirements.txt file from a local directory?

pip install --user -r requirements.txt 


pip3 install --user -r requirements.txt 

How do I return a char array from a function?

As you're using C++ you could use std::string.

Change a Nullable column to NOT NULL with Default Value

I think you will need to do this as three separate statements. I've been looking around and everything i've seen seems to suggest you can do it if you are adding a column, but not if you are altering one.


UPDATE MyTable SET Created = GetDate() where Created IS NULL

ALTER TABLE dbo.MyTable 

Eclipse won't compile/run java file

Your project has to have a builder set for it. If there is not one Eclipse will default to Ant. Which you can use you have to create an Ant build file, which you can Google how to do. It is rather involved though. This is not required to run locally in Eclipse though. If your class is run-able. It looks like yours is, but we can not see all of it.

If you look at your project build path do you have an output folder selected? If you check that folder have the compiled class files been put there? If not the something is not set in Eclpise for it to know to compile. You might check to see if auto build is set for your project.

Recording video feed from an IP camera over a network

about 3 years ago i needed cctv. I found zoneminder, tried to edit it to my liking, but found i was fixing it more than editing it.

Not to mention mp4 recording feature isn't actually part of the master branch (which is kind of lol, since its a cctv program and its already been about 3 years or more since it was suggested). Its literally just adapting the ffmpeg command lol.

So i found the solution!

If you want something done right, do it yourself.

I present to you Shinobi! Shinobi : The Open Source CCTV Platform

enter image description here

JavaScript loop through json array?

A bit late but i hope i may help others :D

your json needs to look like something Niklas already said. And then here you go:

for(var key in currentObject){
        if(currentObject.hasOwnProperty(key)) {
 + ': ' + currentObject[key]);

if you have an Multidimensional array, this is your code:

for (var i = 0; i < multiDimensionalArray.length; i++) {
    var currentObject = multiDimensionalArray[i]
    for(var key in currentObject){
            if(currentObject.hasOwnProperty(key)) {
     + ': ' + currentObject[key]);

Default visibility for C# classes and members (fields, methods, etc.)?

By default is private. Unless they're nested, classes are internal.

Can I make a function available in every controller in angular?

You basically have two options, either define it as a service, or place it on your root scope. I would suggest that you make a service out of it to avoid polluting the root scope. You create a service and make it available in your controller like this:

<!doctype html>
<html ng-app="myApp">
    <script src=""></script>
    <script src=""></script>
    <script type="text/javascript">
    var myApp = angular.module('myApp', []);

    myApp.factory('myService', function() {
        return {
            foo: function() {
                alert("I'm foo!");

    myApp.controller('MainCtrl', ['$scope', 'myService', function($scope, myService) {
        $scope.callFoo = function() {
<body ng-controller="MainCtrl">
    <button ng-click="callFoo()">Call foo</button>

If that's not an option for you, you can add it to the root scope like this:

<!doctype html>
<html ng-app="myApp">
    <script src=""></script>
    <script src=""></script>
    <script type="text/javascript">
    var myApp = angular.module('myApp', []);$rootScope) {
        $rootScope.globalFoo = function() {
            alert("I'm global foo!");

    myApp.controller('MainCtrl', ['$scope', function($scope){

<body ng-controller="MainCtrl">
    <button ng-click="globalFoo()">Call global foo</button>

That way, all of your templates can call globalFoo() without having to pass it to the template from the controller.

Switch between python 2.7 and python 3.5 on Mac OS X

I already had python3 installed(via miniconda3) and needed to install python2 alongside in that case brew install python won't install python2, so you would need brew install python@2 .

Now alias python2 refers to python2.x from /usr/bin/python

and alias python3 refers to python3.x from /Users/ishandutta2007/miniconda3/bin/python

and alias python refers to python3 by default.

Now to use python as alias for python2, I added the following to .bashrc file

alias python='/usr/bin/python'.

To go back to python3 as default just remove this line when required.

Understanding timedelta

why do I have to pass seconds = uptime to timedelta

Because timedelta objects can be passed seconds, milliseconds, days, etc... so you need to specify what are you passing in (this is why you use the explicit key). Typecasting to int is superfluous as they could also accept floats.

and why does the string casting works so nicely that I get HH:MM:SS ?

It's not the typecasting that formats, is the internal __str__ method of the object. In fact you will achieve the same result if you write:

print datetime.timedelta(seconds=int(uptime))

PHP check if file is an image

The getimagesize() should be the most definite way of working out whether the file is an image:

    $image = true;
} else {
    $image = false;

because this is a sample getimagesize() output:

Array (
[0] => 800
[1] => 450
[2] => 2
[3] => width="800" height="450"
[bits] => 8
[channels] => 3
[mime] => image/jpeg)

How to force a view refresh without having it trigger automatically from an observable?

I have created a JSFiddle with my bindHTML knockout binding handler here:

First, save the binding handler into its own (or a common) file and include after Knockout.

If you use this switch your bindings to this:

<div data-bind="bindHTML: htmlValue"></div>


<!-- ko bindHTML: htmlValue --><!-- /ko -->

How do I check if a given Python string is a substring of another one?

Try using in like this:

>>> x = 'hello'
>>> y = 'll'
>>> y in x

What is a good practice to check if an environmental variable exists or not?

In case you want to check if multiple env variables are not set, you can do the following:

import os


    if var not in os.environ:
        raise EnvironmentError("Failed because {} is not set.".format(var))

Select first occurring element after another element

For your literal example you'd want to use the adjacent selector (+).

h4 + p {color:red}//any <p> that is immediately preceded by an <h4>

<h4>Some text</h4>
<p>I'm red</p>
<p>I'm not</p>

However, if you wanted to select all successive paragraphs, you'd need to use the general sibling selector (~).

h4 ~ p {color:red}//any <p> that has the same parent as, and comes after an <h4>

<h4>Some text</h4>
<p>I'm red</p>
<p>I am too</p>

It's known to be buggy in IE 7+ unfortunately.

Where can I download english dictionary database in a text format?

The Gutenberg Project hosts Webster's Unabridged English Dictionary plus many other public domain literary works. Actually it looks like they've got several versions of the dictionary hosted with copyright from different years. The one I linked has a 2009 copyright. You may want to poke around the site and investigate the different versions of Webster's dictionary.

How do I pass multiple parameter in URL?

You can pass multiple parameters as "?param1=value1&param2=value2"

But it's not secure. It's vulnerable to Cross Site Scripting (XSS) Attack.

Your parameter can be simply replaced with a script.

Have a look at this article and article

You can make it secure by using API of StringEscapeUtils

static String   escapeHtml(String str) 
          Escapes the characters in a String using HTML entities.

Even using https url for security without above precautions is not a good practice.

Have a look at related SE question:

Is URLEncoder.encode(string, "UTF-8") a poor validation?

Content-Disposition:What are the differences between "inline" and "attachment"?

If it is inline, the browser should attempt to render it within the browser window. If it cannot, it will resort to an external program, prompting the user.

With attachment, it will immediately go to the user, and not try to load it in the browser, whether it can or not.

Adding asterisk to required fields in Bootstrap 3

This CSS worked for me:

   color: red;
   content: "*";
   position: absolute;
   margin-left: -10px;

and this HTML:

<div class="form-group required control-label">
  <label for="emailField">Email</label>
  <input type="email" class="form-control" id="emailField" placeholder="Type Your Email Address Here" />

PHP - Fatal error: Unsupported operand types

$total_ratings is an array, which you can't use for a division.

From above:

$total_ratings = mysqli_fetch_array($result);

How can I add a vertical scrollbar to my div automatically?

You need to assign some height to make the overflow: auto; property work.
For testing purpose, add height: 100px; and check.
and also it will be better if you give overflow-y:auto; instead of overflow: auto;, because this makes the element to scroll only vertical but not horizontal.

overflow-y: auto;
height: 100px;

If you don't know the height of the container and you want to show vertical scrollbar when the container reaches a fixed height say 100px, use max-height instead of height property.

For more information, read this MDN article.

How to find out what the date was 5 days ago?

Simply do this...hope it help

$fifteendaysago = date_create('15 days ago');
echo date_format($fifteendaysago, 'Y-m-d');

Onclick on bootstrap button

Just like any other click event, you can use jQuery to register an element, set an id to the element and listen to events like so:

$('#myButton').on('click', function(event) {
  event.preventDefault(); // To prevent following the link (optional)

You can also use inline javascript in the onclick attribute:

<a ... onclick="myFunc();">..</a>

Session variables not working php

I had the same issue for a while and had a very hard time figuring it out. My problem was that I had the site working for a while with the sessions working right, and then all of the sudden everything broke.

Apparently, your session_save_path(), for me it was /var/lib/php5/, needs to have correct permissions (the user running php, eg www-data needs write access to the directory). I accidentally changed it, breaking sessions completely.

Run sudo chmod -R 700 /var/lib/php5/ and then sudo chown -R www-data /var/lib/php5/ so that the php user has access to the folder.

How to run console application from Windows Service?

I've done this before successfully - I have some code at home. When I get home tonight, I'll update this answer with the working code of a service launching a console app.

I thought I'd try this from scratch. Here's some code I wrote that launches a console app. I installed it as a service and ran it and it worked properly: cmd.exe launches (as seen in Task Manager) and lives for 10 seconds until I send it the exit command. I hope this helps your situation as it does work properly as expected here.

    using (System.Diagnostics.Process process = new System.Diagnostics.Process())
        process.StartInfo = new System.Diagnostics.ProcessStartInfo(@"c:\windows\system32\cmd.exe");
        process.StartInfo.CreateNoWindow = true;
        process.StartInfo.ErrorDialog = false;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.RedirectStandardInput = true;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        //// do some other things while you wait...
        System.Threading.Thread.Sleep(10000); // simulate doing other things...
        process.StandardInput.WriteLine("exit"); // tell console to exit
        if (!process.HasExited)
            process.WaitForExit(120000); // give 2 minutes for process to finish
            if (!process.HasExited)
                process.Kill(); // took too long, kill it off

XPath Query: get attribute href from a tag

For the following HTML document:

    <a href="">Example</a> 
    <a href="">SO</a> 

The xpath query /html/body//a/@href (or simply //a/@href) will return:

To select a specific instance use /html/body//a[N]/@href,

    $ /html/body//a[2]/@href

To test for strings contained in the attribute and return the attribute itself place the check on the tag not on the attribute:

    $ /html/body//a[contains(@href,'example')]/@href

Mixing the two:

    $ /html/body//a[contains(@href,'com')][2]/@href

How to hide console window in python?

If all you want to do is run your Python Script on a windows computer that has the Python Interpreter installed, converting the extension of your saved script from '.py' to '.pyw' should do the trick.

But if you're using py2exe to convert your script into a standalone application that would run on any windows machine, you will need to make the following changes to your '' file.

The following example is of a simple python-GUI made using Tkinter:

from distutils.core import setup
import py2exe
setup (console = ['tkinter_example.pyw'],
       options = { 'py2exe' : {'packages':['Tkinter']}})

Change "console" in the code above to "windows"..

from distutils.core import setup
import py2exe
setup (windows = ['tkinter_example.pyw'],
       options = { 'py2exe' : {'packages':['Tkinter']}})

This will only open the Tkinter generated GUI and no console window.

How to initialize/instantiate a custom UIView class with a XIB file in Swift

Universal way of loading view from xib:


let myView = Bundle.loadView(fromNib: "MyView", withType: MyView.self)


extension Bundle {

    static func loadView<T>(fromNib name: String, withType type: T.Type) -> T {
        if let view = Bundle.main.loadNibNamed(name, owner: nil, options: nil)?.first as? T {
            return view

        fatalError("Could not load view with type " + String(describing: type))

Get last n lines of a file, similar to tail

Here is my answer. Pure python. Using timeit it seems pretty fast. Tailing 100 lines of a log file that has 100,000 lines:

>>> timeit.timeit('tail.tail(f, 100, 4098)', 'import tail; f = open("log.txt", "r");', number=10)
>>> timeit.timeit('tail.tail(f, 100, 4098)', 'import tail; f = open("log.txt", "r");', number=100)
>>> timeit.timeit('tail.tail(f, 100, 4098)', 'import tail; f = open("log.txt", "r");', number=1000)
>>> timeit.timeit('tail.tail(f, 100, 4098)', 'import tail; f = open("log.txt", "r");', number=10000)
>>> timeit.timeit('tail.tail(f, 100, 4098)', 'import tail; f = open("log.txt", "r");', number=100000)

Here is the code:

import os

def tail(f, lines=1, _buffer=4098):
    """Tail a file and get X lines from the end"""
    # place holder for the lines found
    lines_found = []

    # block counter will be multiplied by buffer
    # to get the block size from the end
    block_counter = -1

    # loop until we find X lines
    while len(lines_found) < lines:
   * _buffer, os.SEEK_END)
        except IOError:  # either file is too small, or too many lines requested
            lines_found = f.readlines()

        lines_found = f.readlines()

        # we found enough lines, get out
        # Removed this line because it was redundant the while will catch
        # it, I left it for history
        # if len(lines_found) > lines:
        #    break

        # decrement the block counter to get the
        # next X bytes
        block_counter -= 1

    return lines_found[-lines:]

View stored procedure/function definition in MySQL


Returns the text of a previously defined stored procedure that was created using the CREATE PROCEDURE statement. Swap PROCEDURE for FUNCTION for a stored function.

Submitting a multidimensional array via POST with php

I made a function which handles arrays as well as single GET or POST values

function subVal($varName, $default=NULL,$isArray=FALSE ){ // $isArray toggles between (multi)array or single mode

    $retVal = "";
    $retArray = array();

    if($isArray) {
        if(isset($_POST[$varName])) {
            foreach ( $_POST[$varName] as $var ) {  // multidimensional POST array elements

    elseif (isset($_POST[$varName]) )  {  // simple POST array element
        $retVal = $_POST[$varName];

    else {
        if (isset($_GET[$varName]) ) {
            $retVal = $_GET[$varName];    // simple GET array element
        else {
            $retVal = $default;

    return $retVal;



$curr_topdiameter = subVal("topdiameter","",TRUE)[3];
$user_name = subVal("user_name","");

Visual Studio debugger error: Unable to start program Specified file cannot be found

I had the same problem :) Verify the "Source code" folder on the "Solution Explorer", if it doesn't contain any "source code" file then :

Right click on "Source code" > Add > Existing Item > Choose the file You want to build and run.

Good luck ;)

Convert an integer to a byte array

Adding this option for dealing with basic uint8 to byte[] conversion

foo := 255 // 1 - 255
ufoo := uint16(foo) 
far := []byte{0,0}
binary.LittleEndian.PutUint16(far, ufoo)
bar := int(far[0]) // back to int
fmt.Println("foo, far, bar : ",foo,far,bar)

output : foo, far, bar : 255 [255 0] 255

Get URL of ASP.Net Page in code-behind

Do you want the server name? Or the host name?

Request.Url.Host ala Stephen

Dns.GetHostName - Server name

Request.Url will have access to most everything you'll need to know about the page being requested.

How to "select distinct" across multiple data frame columns in pandas?

You can use the drop_duplicates method to get the unique rows in a DataFrame:

In [29]: df = pd.DataFrame({'a':[1,2,1,2], 'b':[3,4,3,5]})

In [30]: df
   a  b
0  1  3
1  2  4
2  1  3
3  2  5

In [32]: df.drop_duplicates()
   a  b
0  1  3
1  2  4
3  2  5

You can also provide the subset keyword argument if you only want to use certain columns to determine uniqueness. See the docstring.

how to get current datetime in SQL?

NOW() returns 2009-08-05 15:13:00

CURDATE() returns 2009-08-05

CURTIME() returns 15:13:00

How to set the text color of TextView in code?

TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));

Above code is working on my side. Here text is a TextView on which color is needed to be set.

How to get option text value using AngularJS?

The best way is to use the ng-options directive on the select element.


function Ctrl($scope) {
  // sort options
  $scope.products = [{
    value: 'prod_1',
    label: 'Product 1'
  }, {
    value: 'prod_2',
    label: 'Product 2'


<select ng-model="selected_product" 
        ng-options="product as product.label for product in products">           

This will bind the selected product object to the ng-model property - selected_product. After that you can use this:

<p>Ordered by: {{selected_product.label}}</p>


How to remove margin space around body or clear default css styles

try to ad the following in your CSS:

body, html{

Print values for multiple variables on the same line from within a for-loop

Try out cat and sprintf in your for loop.


cat(sprintf("\"%f\" \"%f\"\n", df$r, df$interest))

See here

failed to open stream: HTTP wrapper does not support writeable connections

it is because of using web address, You can not use http to write data. don't use : http:// or https:// in your location for upload files or save data or somting like that. instead of of using $_SERVER["HTTP_REFERER"] use $_SERVER["DOCUMENT_ROOT"]. for example :

wrong :




How to add external JS scripts to VueJS Components

I have downloaded some HTML template that comes with custom js files and jquery. I had to attach those js to my app. and continue with Vue.

Found this plugin, it's a clean way to add external scripts both via CDN and from static files

// local files
// you have to put your scripts into the public folder. 
// that way webpack simply copy these files as it is.

// cdn

Difference between break and continue in PHP?

I am not writing anything same here. Just a changelog note from PHP manual.

Changelog for continue

Version Description

7.0.0 - continue outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   continue 0; is no longer valid. In previous versions it was interpreted the same as continue 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; continue $num;) as the numerical argument.

Changelog for break

Version Description

7.0.0   break outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.

5.4.0   break 0; is no longer valid. In previous versions it was interpreted the same as break 1;.

5.4.0   Removed the ability to pass in variables (e.g., $num = 2; break $num;) as the numerical argument.

Displaying one div on top of another

Use CSS position: absolute; followed by top: 0px; left 0px; in the style attribute of each DIV. Replace the pixel values with whatever you want.

You can use z-index: x; to set the vertical "order" (which one is "on top"). Replace x with a number, higher numbers are on top of lower numbers.

Here is how your new code would look:

  <div id="backdrop" style="z-index: 1; position: absolute; top: 0px; left: 0px;"><img alt="" src='/backdrop.png' /></div>
  <div id="curtain" style="z-index: 2; position: absolute; top: 0px; left: 0px; background-image:url(/curtain.png);background-position:100px 200px; height:250px; width:500px;">&nbsp;</div>

Ways to save enums in database

We never store enumerations as numerical ordinal values anymore; it makes debugging and support way too difficult. We store the actual enumeration value converted to string:

public enum Suit { Spade, Heart, Diamond, Club }

Suit theSuit = Suit.Heart;

szQuery = "INSERT INTO Customers (Name, Suit) " +
          "VALUES ('Ian Boyd', %s)".format(;

and then read back with:

Suit theSuit = Suit.valueOf(reader["Suit"]);

The problem was in the past staring at Enterprise Manager and trying to decipher:

Name                Suit
==================  ==========
Shelby Jackson      2
Ian Boyd            1


Name                Suit
==================  ==========
Shelby Jackson      Diamond
Ian Boyd            Heart

the latter is much easier. The former required getting at the source code and finding the numerical values that were assigned to the enumeration members.

Yes it takes more space, but the enumeration member names are short, and hard drives are cheap, and it is much more worth it to help when you're having a problem.

Additionally, if you use numerical values, you are tied to them. You cannot nicely insert or rearrange the members without having to force the old numerical values. For example, changing the Suit enumeration to:

public enum Suit { Unknown, Heart, Club, Diamond, Spade }

would have to become :

public enum Suit { 
      Unknown = 4,
      Heart = 1,
      Club = 3,
      Diamond = 2,
      Spade = 0 }

in order to maintain the legacy numerical values stored in the database.

How to sort them in the database

The question comes up: lets say i wanted to order the values. Some people may want to sort them by the enum's ordinal value. Of course, ordering the cards by the numerical value of the enumeration is meaningless:

ORDER BY SuitID; --where SuitID is integer value(4,1,3,2,0)


That's not the order we want - we want them in enumeration order:

    WHEN 4 THEN 0 --Unknown first
    WHEN 1 THEN 1 --Heart
    WHEN 3 THEN 2 --Club
    WHEN 2 THEN 3 --Diamond
    WHEN 0 THEN 4 --Spade
    ELSE 999 END

The same work that is required if you save integer values is required if you save strings:

ORDER BY Suit; --where Suit is an enum name


But that's not the order we want - we want them in enumeration order:

    WHEN 'Unknown' THEN 0
    WHEN 'Heart'   THEN 1
    WHEN 'Club'    THEN 2
    WHEN 'Diamond' THEN 3
    WHEN 'Space'   THEN 4
    ELSE 999 END

My opinion is that this kind of ranking belongs in the user interface. If you are sorting items based on their enumeration value: you're doing something wrong.

But if you wanted to really do that, i would create a Suits dimension table:

| Suit       | SuitID       | Rank          | Color  |
| Unknown    | 4            | 0             | NULL   |
| Heart      | 1            | 1             | Red    |
| Club       | 3            | 2             | Black  |
| Diamond    | 2            | 3             | Red    |
| Spade      | 0            | 4             | Black  |

This way, when you want to change your cards to use Kissing Kings New Deck Order you can change it for display purposes without throwing away all your data:

| Suit       | SuitID       | Rank          | Color  | CardOrder |
| Unknown    | 4            | 0             | NULL   | NULL      |
| Spade      | 0            | 1             | Black  | 1         |
| Diamond    | 2            | 2             | Red    | 1         |
| Club       | 3            | 3             | Black  | -1        |
| Heart      | 1            | 4             | Red    | -1        |

Now we are separating an internal programming detail (enumeration name, enumeration value) with a display setting meant for users:

SELECT Cards.Suit 
FROM Cards
   INNER JOIN Suits ON Cards.Suit = Suits.Suit
ORDER BY Suits.Rank, 

AWK: Access captured group from line pattern

That was a stroll down memory lane...

I replaced awk by perl a long time ago.

Apparently the AWK regular expression engine does not capture its groups.

you might consider using something like :

perl -n -e'/test(\d+)/ && print $1'

the -n flag causes perl to loop over every line like awk does.

Function or sub to add new row and data to table

I needed this same solution, but if you use the native ListObject.Add() method then you avoid the risk of clashing with any data immediately below the table. The below routine checks the last row of the table, and adds the data in there if it's blank; otherwise it adds a new row to the end of the table:

Sub AddDataRow(tableName As String, values() As Variant)
    Dim sheet As Worksheet
    Dim table As ListObject
    Dim col As Integer
    Dim lastRow As Range

    Set sheet = ActiveWorkbook.Worksheets("Sheet1")
    Set table = sheet.ListObjects.Item(tableName)

    'First check if the last row is empty; if not, add a row
    If table.ListRows.Count > 0 Then
        Set lastRow = table.ListRows(table.ListRows.Count).Range
        For col = 1 To lastRow.Columns.Count
            If Trim(CStr(lastRow.Cells(1, col).Value)) <> "" Then
                Exit For
            End If
        Next col
    End If

    'Iterate through the last row and populate it with the entries from values()
    Set lastRow = table.ListRows(table.ListRows.Count).Range
    For col = 1 To lastRow.Columns.Count
        If col <= UBound(values) + 1 Then lastRow.Cells(1, col) = values(col - 1)
    Next col
End Sub

To call the function, pass the name of the table and an array of values, one value per column. You can get / set the name of the table from the Design tab of the ribbon, in Excel 2013 at least: enter image description here

Example code for a table with three columns:

Dim x(2)
x(0) = 1
x(1) = "apple"
x(2) = 2
AddDataRow "Table1", x

Javascript: best Singleton pattern

function SingletonClass() 
    // demo variable
    var names = [];

    // instance of the singleton
    this.singletonInstance = null;

    // Get the instance of the SingletonClass
    // If there is no instance in this.singletonInstance, instanciate one
    var getInstance = function() {
        if (!this.singletonInstance) {
            // create a instance
            this.singletonInstance = createInstance();

        // return the instance of the singletonClass
        return this.singletonInstance;

    // function for the creation of the SingletonClass class
    var createInstance = function() {

        // public methodes
        return {
            add : function(name) {
            names : function() {
                return names;

    // wen constructed the getInstance is automaticly called and return the SingletonClass instance 
    return getInstance();

var obj1 = new SingletonClass();
// prints: ["Jim"]

var obj2 = new SingletonClass();
// Ralph is added to the singleton instance and there for also acceseble by obj1
// prints: ["Jim", "Ralph"]
// prints: ["Jim", "Ralph"]

// prints: ["Jim", "Ralph", "Bart"]

How do I find a list of Homebrew's installable packages?

brew help will show you the list of commands that are available.

brew list will show you the list of installed packages. You can also append formulae, for example brew list postgres will tell you of files installed by postgres (providing it is indeed installed).

brew search <search term> will list the possible packages that you can install. brew search post will return multiple packages that are available to install that have post in their name.

brew info <package name> will display some basic information about the package in question.

You can also search or (both sites do basically the same thing)

What does "./" (dot slash) refer to in terms of an HTML file path location?

You can use the following list as quick reference:

   /   = Root directory
   .   = This location
   ..  = Up a directory
   ./  = Current directory
   ../ = Parent of current directory
   ../../ = Two directories backwards

Useful article:

php error: Class 'Imagick' not found

Debian 9

I just did the following and everything else needed got automatically installed as well.

sudo apt-get -y -f install php-imagick
sudo /etc/init.d/apache2 restart

Python TypeError: not enough arguments for format string

Note that the % syntax for formatting strings is becoming outdated. If your version of Python supports it, you should write:

instr = "'{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}'".format(softname, procversion, int(percent), exe, description, company, procurl)

This also fixes the error that you happened to have.

Get device token for push notification

Following code is use for the retrive the device token.

    // Prepare the Device Token for Registration (remove spaces and < >)
    NSString *devToken = [[[[deviceToken description] 
                           stringByReplacingOccurrencesOfString:@">" withString:@""] 
                          stringByReplacingOccurrencesOfString: @" " withString: @""];

    NSString *str = [NSString 
                     stringWithFormat:@"Device Token=%@",devToken];
    UIAlertView *alertCtr = [[[UIAlertView alloc] initWithTitle:@"Token is " message:devToken delegate:self cancelButtonTitle:nil otherButtonTitles: nil] autorelease];
    [alertCtr show];
    NSLog(@"device token - %@",str);

Difference between os.getenv and os.environ.get

See this related thread. Basically, os.environ is found on import, and os.getenv is a wrapper to os.environ.get, at least in CPython.

EDIT: To respond to a comment, in CPython, os.getenv is basically a shortcut to os.environ.get ; since os.environ is loaded at import of os, and only then, the same holds for os.getenv.

Gnuplot line types

Until version 4.6

The dash type of a linestyle is given by the linetype, which does also select the line color unless you explicitely set an other one with linecolor.

However, the support for dashed lines depends on the selected terminal:

  1. Some terminals don't support dashed lines, like png (uses libgd)
  2. Other terminals, like pngcairo, support dashed lines, but it is disables by default. To enable it, use set termoption dashed, or set terminal pngcairo dashed ....
  3. The exact dash patterns differ between terminals. To see the defined linetype, use the test command:


set terminal pngcairo dashed
set output 'test.png'
set output


enter image description here

whereas, the postscript terminal shows different dash patterns:

set terminal postscript eps color colortext
set output 'test.eps'
set output

enter image description here

Version 5.0

Starting with version 5.0 the following changes related to linetypes, dash patterns and line colors are introduced:

  • A new dashtype parameter was introduced:

    To get the predefined dash patterns, use e.g.

    plot x dashtype 2

    You can also specify custom dash patterns like

    plot x dashtype (3,5,10,5),\
         2*x dashtype '.-_'
  • The terminal options dashed and solid are ignored. By default all lines are solid. To change them to dashed, use e.g.

    set for [i=1:8] linetype i dashtype i
  • The default set of line colors was changed. You can select between three different color sets with set colorsequence default|podo|classic:

enter image description here

Get source JARs from Maven repository

To download any artifact use

mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier

For Groovy sources this would be

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources

For Groovy's javadoc you would use

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc

This puts the given artifact into your local Maven repository, i.e. usually $HOME/.m2/repository.

dependency:sources just downloads the project dependencies' sources, not the plugins sources nor the sources of dependencies defined inside plugins.

oracle plsql: how to parse XML and insert into table

You can load an XML document into an XMLType, then query it, e.g.:

  x XMLType := XMLType(
    '<?xml version="1.0" ?> 
           <City>Los angeles</City>
           <City>Los angeles</City>
  FOR r IN (
    SELECT ExtractValue(Value(p),'/row/name/text()') as name
          ,ExtractValue(Value(p),'/row/Address/State/text()') as state
          ,ExtractValue(Value(p),'/row/Address/City/text()') as city
    FROM   TABLE(XMLSequence(Extract(x,'/person/row'))) p
    ) LOOP
    -- do whatever you want with, r.state,

Programmatically Creating UILabel

here is how to create UILabel Programmatically..

1) Write this in .h file of your project.

UILabel *label;

2) Write this in .m file of your project.

label=[[UILabel alloc]initWithFrame:CGRectMake(10, 70, 50, 50)];//Set frame of label in your viewcontroller.
[label setBackgroundColor:[UIColor lightGrayColor]];//Set background color of label.
[label setText:@"Label"];//Set text in label.
[label setTextColor:[UIColor blackColor]];//Set text color in label.
[label setTextAlignment:NSTextAlignmentCenter];//Set text alignment in label.
[label setBaselineAdjustment:UIBaselineAdjustmentAlignBaselines];//Set line adjustment.
[label setLineBreakMode:NSLineBreakByCharWrapping];//Set linebreaking mode..
[label setNumberOfLines:1];//Set number of lines in label.
[label.layer setCornerRadius:25.0];//Set corner radius of label to change the shape.
[label.layer setBorderWidth:2.0f];//Set border width of label.
[label setClipsToBounds:YES];//Set its to YES for Corner radius to work.
[label.layer setBorderColor:[UIColor blackColor].CGColor];//Set Border color.
[self.view addSubview:label];//Add it to the view of your choice. 

Sql Server return the value of identity column after insert statement


after the insert statement

Please refer the following links

Angular2: Cannot read property 'name' of undefined

In order to avoid this, you could as well initialize the selectedHero member of your component to an empty object (instead of leaving it undefined).

In your example code, that would give something like this :

export class AppComponent {
  title = 'Tour of Heroes';
  heroes = HEROES;
  selectedHero:Hero = new Hero();

  onSelect(hero: Hero):void{
      this.selectedHero = hero;

Default text which won't be shown in drop-down list

Kyle's solution worked perfectly fine for me so I made my research in order to avoid any Js and CSS, but just sticking with HTML. Adding a value of selected to the item we want to appear as a header forces it to show in the first place as a placeholder. Something like:

<option selected disabled>Choose here</option>

The complete markup should be along these lines:

    <option selected disabled>Choose here</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
    <option value="5">Five</option>

You can take a look at this fiddle, and here's the result:

enter image description here

If you do not want the sort of placeholder text to appear listed in the options once a user clicks on the select box just add the hidden attribute like so:

    <option selected disabled hidden>Choose here</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">Four</option>
    <option value="5">Five</option>

Check the fiddle here and the screenshot below.

enter image description here

Here is the solution:

    <option style="display:none;" selected>Select language</option>
    <option>Option 1</option>
    <option>Option 2</option>

Node.js - get raw request body using Express

Edit 2: Release 1.15.2 of the body parser module introduces raw mode, which returns the body as a Buffer. By default, it also automatically handles deflate and gzip decompression. Example usage:

var bodyParser = require('body-parser');

app.get(path, function(req, res) {
  // req.body is a Buffer object

By default, the options object has the following default options:

var options = {
  inflate: true,
  limit: '100kb',
  type: 'application/octet-stream'

If you want your raw parser to parse other MIME types other than application/octet-stream, you will need to change it here. It will also support wildcard matching such as */* or */application.

Note: The following answer is for versions before Express 4, where middleware was still bundled with the framework. The modern equivalent is the body-parser module, which must be installed separately.

The rawBody property in Express was once available, but removed since version 1.5.1. To get the raw request body, you have to put in some middleware before using the bodyParser. You can also read a GitHub discussion about it here.

app.use(function(req, res, next) {
  req.rawBody = '';

  req.on('data', function(chunk) { 
    req.rawBody += chunk;

  req.on('end', function() {

That middleware will read from the actual data stream, and store it in the rawBody property of the request. You can then access the raw body like this:'/', function(req, res) {
  // do something with req.rawBody
  // use req.body for the parsed body

Edit: It seems that this method and bodyParser refuse to coexist, because one will consume the request stream before the other, leading to whichever one is second to never fire end, thus never calling next(), and hanging your application.

The simplest solution would most likely be to modify the source of bodyParser, which you would find on line 57 of Connect's JSON parser. This is what the modified version would look like.

var buf = '';
req.on('data', function(chunk){ buf += chunk });
req.on('end', function() {
  req.rawBody = buf;
  var first = buf.trim()[0];

You would find the file at this location:


jQuery: Check if button is clicked

jQuery(':button').click(function () {
    if ( == 'button1') {
        alert('Button 1 was clicked');
    else if ( == 'button2') {
        alert('Button 2 was clicked');

EDIT:- This will work for all buttons.

Where to place the 'assets' folder in Android Studio?

follow these steps 

 there are multiple options like
      aidl folder
      assets folder
      jni folder
2) choose options assets folder
3) then there is option to change path of assets folder if you 
    want to change then check otherwise left that checkbox of cahnge folder location
4) click on finish 

How to make an image center (vertically & horizontally) inside a bigger div

I would set your larger div with position:relative; then for your image do this:


This only works because you know the dimensions of both the image and the containing div. This will also let you have other items within the containing div... where solutions like using line-height will not.

EDIT: Note... your margins are negative half of the size of the image.

Simulate a button click in Jest

I needed to do a little bit of testing myself of a button component. These tests work for me ;-)

import { shallow } from "enzyme";
import * as React from "react";
import Button from "../button.component";

describe("Button Component Tests", () => {
    it("Renders correctly in DOM", () => {
            <Button text="Test" />
    it("Expects to find button HTML element in the DOM", () => {
        const wrapper = shallow(<Button text="test"/>)

    it("Expects to find button HTML element with className test in the DOM", () => {
        const wrapper = shallow(<Button className="test" text="test"/>)

    it("Expects to run onClick function when button is pressed in the DOM", () => {
        const mockCallBackClick = jest.fn();
        const wrapper = shallow(<Button onClick={mockCallBackClick} className="test" text="test"/>);

Fatal error: Maximum execution time of 30 seconds exceeded

You can remove the restriction by seting it to zero by adding this line at the top of your script:

<?php ini_set('max_execution_time', '0'); ?>

When to use CouchDB over MongoDB and vice versa

The answers above all over complicate the story.

  1. If you plan to have a mobile component, or need desktop users to work offline and then sync their work to a server you need CouchDB.
  2. If your code will run only on the server then go with MongoDB

That's it. Unless you need CouchDB's (awesome) ability to replicate to mobile and desktop devices, MongoDB has the performance, community and tooling advantage at present.

A reference to the dll could not be added

You can add .dll file manually. For example if you want to add a dll file in your WPF application, and you are unable to refer it in your project

(Getting error :A reference to the "....dll" could not be added.Please make sure that the file is accessible and that it is a valid assembly or COM component) ,

then COPY that dll file and PASTE in the INSTALLER PROJECT (in application folder).

Reading Space separated input in python

for j in range(3):
    a.append([int(i) for  i in input().split()])

In this above code the given input i.e Mike 18 Kevin 35 Angel 56, will be stored in an array 'a' and gives the output as [['Mike', '18'], ['Kevin', '35'], ['Angel', '56']].

Set default syntax to different filetype in Sublime Text 2

In the current version of Sublime Text 2 (Build: 2139), you can set the syntax for all files of a certain file extension using an option in the menu bar. Open a file with the extension you want to set a default for and navigate through the following menus: View -> Syntax -> Open all with current extension as... ->[your syntax choice].

Updated 2012-06-28: Recent builds of Sublime Text 2 (at least since Build 2181) have allowed the syntax to be set by clicking the current syntax type in the lower right corner of the window. This will open the syntax selection menu with the option to Open all with current extension as... at the top of the menu.

Updated 2016-04-19: As of now, this also works for Sublime Text 3.

Pass array to MySQL stored routine

Simply use FIND_IN_SET like that:

mysql> SELECT FIND_IN_SET('b','a,b,c,d');
        -> 2

so you can do:

select * from Fruits where FIND_IN_SET(fruit, fruitArray) > 0

How can I generate a 6 digit unique number?

$file = 'count.txt';

//get the number from the file
$uniq = file_get_contents($file);

//add +1
$id = $uniq + 1 ;

// add that new value to text file again for next use
file_put_contents($file, $id);

// your unique id ready
echo $id;

i hope this will work fine. i use the same technique in my website.

dataframe: how to groupBy/count then filter on count in Scala

When you pass a string to the filter function, the string is interpreted as SQL. Count is a SQL keyword and using count as a variable confuses the parser. This is a small bug (you can file a JIRA ticket if you want to).

You can easily avoid this by using a column expression instead of a String:

  .filter($"count" >= 2)

SQL Not Like Statement not working

I just came across the same issue, and solved it, but not before I found this post. And seeing as your question wasn't really answered, here's my solution (which will hopefully work for you, or anyone else searching for the same thing I did;

Instead of;




Basically moving the "NOT" the other side of the field I was evaluating worked for me.

Hide scroll bar, but while still being able to scroll

Just set the width of the child's width to 100%, padding to 15 pixels, overflow-x to scroll and overflow:hidden for the parent and whatever width you want.

It works perfectly on all major browsers, including Internet Explorer and Edge with the exception of Internet Explorer 8 and lower.

Convert list of ints to one number?

Two solutions:

>>> nums = [1, 2, 3]
>>> magic = lambda nums: int(''.join(str(i) for i in nums)) # Generator exp.
>>> magic(nums)
>>> magic = lambda nums: sum(digit * 10 ** (len(nums) - 1 - i) # Summation
...     for i, digit in enumerate(nums))
>>> magic(nums)

The map-oriented solution actually comes out ahead on my box -- you definitely should not use sum for things that might be large numbers:

Timeit Comparison

import collections
import random
import timeit

import matplotlib.pyplot as pyplot

FUNS = []
def test_fun(fun):
    return fun

def with_map(nums):
    return int(''.join(map(str, nums)))

def with_interpolation(nums):
    return int(''.join('%d' % num for num in nums))

def with_genexp(nums):
    return int(''.join(str(num) for num in nums))

def with_sum(nums):
    return sum(digit * 10 ** (len(nums) - 1 - i)
        for i, digit in enumerate(nums))

def with_reduce(nums):
    return int(reduce(lambda x, y: x + str(y), nums, ''))

def with_builtins(nums):
    return int(filter(str.isdigit, repr(nums)))

def with_accumulator(nums):
    tot = 0
    for num in nums:
        tot *= 10
        tot += num
    return tot

def time_test(digit_count, test_count=10000):
    :return: Map from func name to (normalized) microseconds per pass.
    print 'Digit count:', digit_count
    nums = [random.randrange(1, 10) for i in xrange(digit_count)]
    stmt = 'to_int(%r)' % nums
    result_by_method = {}
    for fun in FUNS:
        setup = 'from %s import %s as to_int' % (__name__, fun.func_name)
        t = timeit.Timer(stmt, setup)
        per_pass = t.timeit(number=test_count) / test_count
        per_pass *= MICROSECONDS_PER_SECOND
        print '%20s: %.2f usec/pass' % (fun.func_name, per_pass)
        result_by_method[fun.func_name] = per_pass
    return result_by_method

if __name__ == '__main__':
    pass_times_by_method = collections.defaultdict(list)
    assert_results = [fun([1, 2, 3]) for fun in FUNS]
    assert all(result == 123 for result in assert_results)
    digit_counts = range(1, 100, 2)
    for digit_count in digit_counts:
        for method, result in time_test(digit_count).iteritems():
    for method, pass_times in pass_times_by_method.iteritems():
        pyplot.plot(digit_counts, pass_times, label=method)
    pyplot.legend(loc='upper left')
    pyplot.xlabel('Number of Digits')

mean() warning: argument is not numeric or logical: returning NA

From R 3.0.0 onwards mean(<data.frame>) is defunct (and passing a data.frame to mean will give the error you state)

A data frame is a list of variables of the same number of rows with unique row names, given class "data.frame".

In your case, result has two variables (if your description is correct) . You could obtain the column means by using any of the following

lapply(results, mean, na.rm = TRUE)
sapply(results, mean, na.rm = TRUE)
colMeans(results, na.rm = TRUE)

Why does Python code use len() function instead of a length method?

There is a len method:

>>> a = 'a string of some length'
>>> a.__len__()
>>> a.__len__
<method-wrapper '__len__' of str object at 0x02005650>

Change the Right Margin of a View Programmatically?

EDIT: A more generic way of doing this that doesn't rely on the layout type (other than that it is a layout type which supports margins):

public static void setMargins (View v, int l, int t, int r, int b) {
    if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
        ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
        p.setMargins(l, t, r, b);

You should check the docs for TextView. Basically, you'll want to get the TextView's LayoutParams object, and modify the margins, then set it back to the TextView. Assuming it's in a LinearLayout, try something like this:

TextView tv = (TextView)findViewById(;
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();
params.setMargins(0, 0, 10, 0); //substitute parameters for left, top, right, bottom

I can't test it right now, so my casting may be off by a bit, but the LayoutParams are what need to be modified to change the margin.


Don't forget that if your TextView is inside, for example, a RelativeLayout, one should use RelativeLayout.LayoutParams instead of LinearLayout.LayoutParams

How can I generate a list of consecutive numbers?

Note :- Certainly in python-3x you need to use Range function It works to generate numbers on demand, standard method to use Range function to make a list of consecutive numbers is

print (x)
#Output_is_ [0,1,2,3,4,5,6,7,8,9]

Also if you want to make an function to generate a list of consecutive numbers by using Range function watch this code !

def  consecutive_numbers(n) :
    list=[i for i in range(n)]
    return (list)

Good Luck!

How to delete only the content of file in python

How to delete only the content of file in python

There is several ways of set the logical size of a file to 0, depending how you access that file:

To empty an open file:

def deleteContent(pfile):

To empty a open file whose file descriptor is known:

def deleteContent(fd):
    os.ftruncate(fd, 0)
    os.lseek(fd, 0, os.SEEK_SET)

To empty a closed file (whose name is known)

def deleteContent(fName):
    with open(fName, "w"):

I have a temporary file with some content [...] I need to reuse that file

That being said, in the general case it is probably not efficient nor desirable to reuse a temporary file. Unless you have very specific needs, you should think about using tempfile.TemporaryFile and a context manager to almost transparently create/use/delete your temporary files:

import tempfile

with tempfile.TemporaryFile() as temp:
     # do whatever you want with `temp`

# <- `tempfile` guarantees the file being both closed *and* deleted
#     on exit of the context manager

In Java, what purpose do the keywords `final`, `finally` and `finalize` fulfil?

The meaning of final in java is: -applied to a variable means that the respective variable once initialized can no longer be modified

private final double numer = 12;

If you try to modify this value, you will get an error.

-applied to a method means that the respective method can't be override

 public final void displayMsg()
        System.out.println("I'm in Base class - displayMsg()");

But final method can be inherited because final keyword restricts the redefinition of the method.

-applied to a class means that the respective class can't be extended.

class Base

    public void displayMsg()
        System.out.println("I'm in Base class - displayMsg()");

The meaning of finally is :

class TestFinallyBlock{  
  public static void main(String args[]){  
   int data=25/5;  
  catch(NullPointerException e){System.out.println(e);}  
  finally{System.out.println("finally block is always executed");}  
  System.out.println("rest of the code...");  

in this exemple even if the try-catch is executed or not, what is inside of finally will always be executed. The meaning of finalize:

class FinalizeExample{  
public void finalize(){System.out.println("finalize called");}  
public static void main(String[] args){  
FinalizeExample f1=new FinalizeExample();  
FinalizeExample f2=new FinalizeExample();  

before calling the Garbage Collector.

Git Clone - Repository not found

For me the problems occurs because I have my old username/password settings saved for gitlab, so that I need to remove those credentials. I run the following command on my mac:

sudo su
git config --system --unset credential.helper

and do the clone again, enter the username and password. And everything is fine.

How to set the UITableView Section title programmatically (iPhone/iPad)?

I don't know about past versions of UITableView protocols, but as of iOS 9, func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? is part of the UITableViewDataSource protocol.

   class ViewController: UIViewController {

      @IBOutlet weak var tableView: UITableView!

      override func viewDidLoad() {
         tableView.dataSource = self

   extension ViewController: UITableViewDataSource {
      func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
         return "Section name"

You don't need to declare the delegate to fill your table with data.

npm install -g less does not work: EACCES: permission denied

Another option is to download and install a new version using an installer.

Get the position of a spinner in Android

    final int[] positions=new int[2]; 
    Spinner sp=findViewByID(;

    sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
            Toast.makeText( arg2....);

        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub


SmtpException: Unable to read data from the transport connection: net_io_connectionclosed

Prepare: 1. HostA is SMTP virtual server with default port 25 2. HostB is a workstation on which I send mail with SmtpClient and simulate unstable network I use clumsy

Case 1 Given If HostB is 2008R2 When I send email. Then This issue occurs.

Case 2 Given If HostB is 2012 or higher version When I send email. Then The mail was sent out.

Conclusion: This root cause is related with Windows Server 2008R2.

Convert a file path to Uri in Android

Normal answer for this question if you really want to get something like content//media/external/video/media/18576 (e.g. for your video mp4 absolute path) and not just file///storage/emulated/0/DCIM/Camera/20141219_133139.mp4:

          new String[] { file.getAbsolutePath() }, null,
          new MediaScannerConnection.OnScanCompletedListener() {
      public void onScanCompleted(String path, Uri uri) {
          Log.i("onScanCompleted", uri.getPath());

Accepted answer is wrong (cause it will not return content//media/external/video/media/*)

Uri.fromFile(file).toString() only returns something like file///storage/emulated/0/* which is a simple absolute path of a file on the sdcard but with file// prefix (scheme)

You can also get content uri using MediaStore database of Android

TEST (what returns Uri.fromFile and what returns MediaScannerConnection):

File videoFile = new File("/storage/emulated/0/video.mp4");

Log.i(TAG, Uri.fromFile(videoFile).toString());

MediaScannerConnection.scanFile(this, new String[] { videoFile.getAbsolutePath() }, null,
        (path, uri) -> Log.i(TAG, uri.toString()));


I/Test: file:///storage/emulated/0/video.mp4

I/Test: content://media/external/video/media/268927

Eclipse Java Missing required source folder: 'src'

If you are facing an error with the folder, such as src/test/java or src/test/resources, just do a right click on the folder and then create a a new folder with the name being src/test/java. This should solve your problem.

Timestamp conversion in Oracle for YYYY-MM-DD HH:MM:SS format

VALUES(TO_DATE('2012-03-28 11:10:00','yyyy/mm/dd hh24:mi:ss'));!4/22115/1

How do I use valgrind to find memory leaks?

You can create an alias in .bashrc file as follows

alias vg='valgrind --leak-check=full -v --track-origins=yes --log-file=vg_logfile.out'

So whenever you want to check memory leaks, just do simply

vg ./<name of your executable> <command line parameters to your executable>

This will generate a Valgrind log file in the current directory.

Escaping quotes and double quotes

In Powershell 5 escaping double quotes can be done by backtick (`). But sometimes you need to provide your double quotes escaped which can be done by backslash + backtick (\`). Eg in this curl call:

C:\Windows\System32\curl.exe -s -k -H "Content-Type: application/json" -XPOST localhost:9200/index_name/inded_type -d"{\`"velocity\`":3.14}"

Drag and drop elements from list into separate blocks

Dragging an object and placing in a different location is part of the standard of HTML5. All the objects can be draggable. But the Specifications of below web browser should be followed. API Chrome Internet Explorer Firefox Safari Opera Version 4.0 9.0 3.5 6.0 12.0

You can find example from below:

gcc/g++: "No such file or directory"

Your compiler just tried to compile the file named Upon hitting line number line, the compiler finds:

#include "bar"


#include <bar>

The compiler then tries to find that file. For this, it uses a set of directories to look into, but within this set, there is no file bar. For an explanation of the difference between the versions of the include statement look here.

How to tell the compiler where to find it

g++ has an option -I. It lets you add include search paths to the command line. Imagine that your file bar is in a folder named frobnicate, relative to (assume you are compiling from the directory where is located):

g++ -Ifrobnicate

You can add more include-paths; each you give is relative to the current directory. Microsoft's compiler has a correlating option /I that works in the same way, or in Visual Studio, the folders can be set in the Property Pages of the Project, under Configuration Properties->C/C++->General->Additional Include Directories.

Now imagine you have multiple version of bar in different folders, given:

// A/bar
std::string which() { return "A/bar"; }

// B/bar
std::string which() { return "B/bar"; }

// C/bar
std::string which() { return "C/bar"; }

#include "bar"
#include <iostream>

int main () {
    std::cout << which() << std::endl;

The priority with #include "bar" is leftmost:

$ g++ -IA -IB -IC
$ ./a.out

As you see, when the compiler started looking through A/, B/ and C/, it stopped at the first or leftmost hit.

This is true of both forms, include <> and incude "".

Difference between #include <bar> and #include "bar"

Usually, the #include <xxx> makes it look into system folders first, the #include "xxx" makes it look into the current or custom folders first.


Imagine you have the following files in your project folder:



#include "list"

For this, your compiler will #include the file list in your project folder, because it currently compiles and there is that file list in the current folder.

But with

#include <list>

and then g++, your compiler will look into the system folders first, and because <list> is a standard header, it will #include the file named list that comes with your C++ platform as part of the standard library.

This is all a bit simplified, but should give you the basic idea.

Details on <>/""-priorities and -I

According to the gcc-documentation, the priority for include <> is, on a "normal Unix system", as follows:


For C++ programs, it will also look in /usr/include/c++/version, first. In the above, target is the canonical name of the system GCC was configured to compile code for; [...].

The documentation also states:

You can add to this list with the -Idir command line option. All the directories named by -I are searched, in left-to-right order, before the default directories. The only exception is when dir is already searched by default. In this case, the option is ignored and the search order for system directories remains unchanged.

To continue our #include<list> / #include"list" example (same code):

g++ -I.


int main () { std::list<int> l; }

and indeed, the -I. prioritizes the folder . over the system includes and we get a compiler error.

How to get a value from a Pandas DataFrame and not the index and object type

Nobody mentioned it, but you can also simply use loc with the index and column labels.

df.loc[2, 'Letters']
# 'C'

Or, if you prefer to use "Numbers" column as reference, you can also set is as an index.

df.set_index('Numbers').loc[3, 'Letters']

dynamic_cast and static_cast in C++

static_cast< Type* >(ptr)

static_cast in C++ can be used in scenarios where all type casting can be verified at compile time.

dynamic_cast< Type* >(ptr)

dynamic_cast in C++ can be used to perform type safe down casting. dynamic_cast is run time polymorphism. The dynamic_cast operator, which safely converts from a pointer (or reference) to a base type to a pointer (or reference) to a derived type.

eg 1:

#include <iostream>
using namespace std;

class A
    virtual void f(){cout << "A::f()" << endl;}

class B : public A
    void f(){cout << "B::f()" << endl;}

int main()
    A a;
    B b;
    a.f();        // A::f()
    b.f();        // B::f()

    A *pA = &a;   
    B *pB = &b;   
    pA->f();      // A::f()
    pB->f();      // B::f()

    pA = &b;
    // pB = &a;      // not allowed
    pB = dynamic_cast<B*>(&a); // allowed but it returns NULL

    return 0;

For more information click here

eg 2:

#include <iostream>

using namespace std;

class A {
    virtual void print()const {cout << " A\n";}

class B {
    virtual void print()const {cout << " B\n";}

class C: public A, public B {
    void print()const {cout << " C\n";}

int main()

    A* a = new A;
    B* b = new B;
    C* c = new C;

    a -> print(); b -> print(); c -> print();
    b = dynamic_cast< B*>(a);  //fails
    if (b)  
       b -> print();  
       cout << "no B\n";
    a = c;
    a -> print(); //C prints
    b = dynamic_cast< B*>(a);  //succeeds
    if (b)
       b -> print();  
       cout << "no B\n";

Converting string format to datetime in mm/dd/yyyy

You can change the format too by doing this

string fecha = DateTime.Now.ToString(format:"dd-MM-yyyy");

// this change the "/" for the "-"

Open application after clicking on Notification

Please use below code for complete example of simple notification, in this code you can open application after clicking on Notification, it will solve your problem.

public class AndroidNotifications extends Activity {
    public void onCreate(Bundle savedInstanceState) {

        Button notificationButton = (Button) findViewById(;

        notificationButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Timer timer = new Timer();
                timer.schedule(new TimerTask() {
                    public void run() {
                        // Notification Title and Message
                        Notification("Dipak Keshariya (Android Developer)",
                                "This is Message from Dipak Keshariya (Android Developer)");
                }, 0);

    // Notification Function
    private void Notification(String notificationTitle,
            String notificationMessage) {
        NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notification = new
                R.drawable.ic_launcher, "Message from Dipak Keshariya! (Android Developer)",

        Intent notificationIntent = new Intent(this, AndroidNotifications.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
                notificationIntent, 0);

                notificationTitle, notificationMessage, pendingIntent);
        notificationManager.notify(10001, notification);

And see below link for more information.

Simple Notification Example

Check if instance is of a type

if(c is TFrom)
   // Do Stuff

or if you plan on using c as a TForm, use the following example:

var tForm = c as TForm;
if(tForm != null)
   // c is of type TForm

The second example only needs to check to see if c is of type TForm once. Whereis if you check if see if c is of type TForm then cast it, the CLR undergoes an extra check. Here is a reference.

Edit: Stolen from Jon Skeet

If you want to make sure c is of TForm and not any class inheriting from TForm, then use

if(c.GetType() == typeof(TForm))
   // Do stuff cause c is of type TForm and nothing else

How to install all required PHP extensions for Laravel?

Laravel Server Requirements mention that BCMath, Ctype, JSON, Mbstring, OpenSSL, PDO, Tokenizer, and XML extensions are required. Most of the extensions are installed and enabled by default.

You can run the following command in Ubuntu to make sure the extensions are installed.

sudo apt install openssl php-common php-curl php-json php-mbstring php-mysql php-xml php-zip

PHP version specific installation (if PHP 7.4 installed)

sudo apt install php7.4-common php7.4-bcmath openssl php7.4-json php7.4-mbstring

You may need other PHP extensions for your composer packages. Find from links below.

PHP extensions for Ubuntu 20.04 LTS (Focal Fossa)

PHP extensions for Ubuntu 18.04 LTS (Bionic)

PHP extensions for Ubuntu 16.04 LTS (Xenial)

Installing Homebrew on OS X

Not sure why nobody mentioned this : when you run the installation command from the official site, in the final lines you would see something like below, and you need to follow the ==> Next steps:

==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
No analytics data has been sent yet (or will be during this `install` run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:

==> Next steps:
- Add Homebrew to your PATH in /Users/{YOUR USER NAME}/.bash_profile:
    echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/{YOUR USER NAME}/.bash_profile
    eval $(/opt/homebrew/bin/brew shellenv)

This is for bash shell. You will see different steps for every different shell, but the source of the steps are same.

Powershell Get-ChildItem most recent file in directory

You could try to sort descending "sort LastWriteTime -Descending" and then "select -first 1." Not sure which one is faster

Can two applications listen to the same port?

Another way is use a program listening in one port that analyses the kind of traffic (ssh, https, etc) it redirects internally to another port on which the "real" service is listening.

For example, for Linux, sslh:

member names cannot be the same as their enclosing type C#

Method names which are same as the class name are called constructors. Constructors do not have a return type. So correct as:

private Flow()
   X = x;
   Y = y;

Or rename the function as:

private void DoFlow()
   X = x;
   Y = y;

Though the whole code does not make any sense to me.

Reading and writing binary file

It can be done with simple commands in the following snippet.

Copies the whole file of any size. No size constraint!

Just use this. Tested And Working!!

using namespace std;
int main()
  ifstream infile;"source.pdf",ios::binary|ios::in);

  ofstream outfile;"temppdf.pdf",ios::binary|ios::out);

  int buffer[2];
  while( *)&buffer,sizeof(buffer)))
      outfile.write((char *)&buffer,sizeof(buffer));

  return 0;

Having a smaller buffer size would be helpful in copying tiny files. Even "char buffer[2]" would do the job.

How to check internet access on Android? InetAddress never times out

Its so great to have more then one way to code. Here is my example.

ConnectivityManager icheck = getSystemService(Context.CONNECTIVITY_SERVICE);

TextView tv = findViewById(;

boolean wifi = icheck.getActiveNetworkInfo() != null;
        if(wifi) {
        tv.setText("Internet is on.");  
        } else {
             tv.setText("Internet is off.");    

Good luck.

What can cause a “Resource temporarily unavailable” on sock send() command

Let'e me give an example:

  1. client connect to server, and send 1MB data to server every 1 second.

  2. server side accept a connection, and then sleep 20 second, without recv msg from client.So the tcp send buffer in the client side will be full.

Code in client side:

#include <arpa/inet.h>
#include <sys/socket.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#define exit_if(r, ...)                                                                          \
    if (r) {                                                                                     \
        printf(__VA_ARGS__);                                                                     \
        printf("%s:%d error no: %d error msg %s\n", __FILE__, __LINE__, errno, strerror(errno)); \
        exit(1);                                                                                 \

void setNonBlock(int fd) {
    int flags = fcntl(fd, F_GETFL, 0);
    exit_if(flags < 0, "fcntl failed");
    int r = fcntl(fd, F_SETFL, flags | O_NONBLOCK);
    exit_if(r < 0, "fcntl failed");

void test_full_sock_buf_1(){
    short port = 8000;
    struct sockaddr_in addr;
    memset(&addr, 0, sizeof addr);
    addr.sin_family = AF_INET;
    addr.sin_port = htons(port);
    addr.sin_addr.s_addr = INADDR_ANY;

    int fd = socket(AF_INET, SOCK_STREAM, 0);
    exit_if(fd<0, "create socket error");

    int ret = connect(fd, (struct sockaddr *) &addr, sizeof(struct sockaddr));
    exit_if(ret<0, "connect to server error");

    printf("connect to server success");

    const int LEN = 1024 * 1000;
    char msg[LEN];  // 1MB data
    memset(msg, 'a', LEN);

    for (int i = 0; i < 1000; ++i) {
        int len = send(fd, msg, LEN, 0);
        printf("send: %d, erron: %d, %s \n", len, errno, strerror(errno));


int main(){

    return 0;

Code in server side:

    #include <arpa/inet.h>
    #include <sys/socket.h>
    #include <stdio.h>
    #include <errno.h>
    #include <fcntl.h>
    #include <stdlib.h>
    #include <string.h>
    #define exit_if(r, ...)                                                                          \
        if (r) {                                                                                     \
            printf(__VA_ARGS__);                                                                     \
            printf("%s:%d error no: %d error msg %s\n", __FILE__, __LINE__, errno, strerror(errno)); \
            exit(1);                                                                                 \
void test_full_sock_buf_1(){

    int listenfd = socket(AF_INET, SOCK_STREAM, 0);
    exit_if(listenfd<0, "create socket error");

    short port = 8000;
    struct sockaddr_in addr;
    memset(&addr, 0, sizeof addr);
    addr.sin_family = AF_INET;
    addr.sin_port = htons(port);
    addr.sin_addr.s_addr = INADDR_ANY;

    int r = ::bind(listenfd, (struct sockaddr *) &addr, sizeof(struct sockaddr));
    exit_if(r<0, "bind socket error");

    r = listen(listenfd, 100);
    exit_if(r<0, "listen socket error");

    struct sockaddr_in raddr;
    socklen_t rsz = sizeof(raddr);
    int cfd = accept(listenfd, (struct sockaddr *) &raddr, &rsz);
    exit_if(cfd<0, "accept socket error");

    sockaddr_in peer;
    socklen_t alen = sizeof(peer);
    getpeername(cfd, (sockaddr *) &peer, &alen);

    printf("accept a connection from %s:%d\n", inet_ntoa(peer.sin_addr), ntohs(peer.sin_port));

    printf("but now I will sleep 15 second, then exit");

Start server side, then start client side.

server side may output:

accept a connection from
but now I will sleep 15 second, then exit
Process finished with exit code 0

enter image description here

client side may output:

connect to server successsend: 1024000, erron: 0, Success 
send: 1024000, erron: 0, Success 
send: 1024000, erron: 0, Success 
send: 552190, erron: 0, Success 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 11, Resource temporarily unavailable 
send: -1, erron: 104, Connection reset by peer 
send: -1, erron: 32, Broken pipe 
send: -1, erron: 32, Broken pipe 
send: -1, erron: 32, Broken pipe 
send: -1, erron: 32, Broken pipe 
send: -1, erron: 32, Broken pipe 

enter image description here

You can see, as the server side doesn't recv the data from client, so when the client side tcp buffer get full, but you still send data, so you may get Resource temporarily unavailable error.

Formula to determine brightness of RGB color

Please define brightness. If you're looking for how close to white the color is you can use Euclidean Distance from (255, 255, 255)

Find if a textbox is disabled or not using jquery

.prop('disabled') will return a Boolean:

var isDisabled = $('textbox').prop('disabled');

Here's the fiddle:

Laravel whereIn OR whereIn

$query = DB::table('dms_stakeholder_permissions');
$query->select(DB::raw('group_concat(dms_stakeholder_permissions.fid) as fid'),'dms_stakeholder_permissions.rights');
$query->orWhere(function($subquery)  use ($stakeholderId){

 $result = $query->get();

return $result;

// OUTPUT @input $stakeholderId = 1

//select group_concat(dms_stakeholder_permissions.fid) as fid, dms_stakeholder_permissionss.rights from dms_stakeholder_permissions where dms_stakeholder_permissions.stakeholder_id = 4 or (dms_stakeholder_permissions.stakeholder_id = 1 and dms_stakeholder_permissions.rights in (1, 2, 3))

android.view.InflateException: Binary XML file: Error inflating class fragment

Are android:name and class: interchangeable?

Presumably, yes. I have only used class, and that seems to be what most of Google's examples use, but I do see where they use android:name in some samples. Unfortunately, there is no formal and complete documentation for fragment.


class = "com.fragment.NavigationDrawerFragment"

insted of


That seemingly means that program looks "class" attribute first. And on fail looks "name" attribute. So as far as it's true using "class" if more efficient

How can I get the ID of an element using jQuery?

Maybe useful for others that find this thread. The code below will only work if you already use jQuery. The function returns always an identifier. If the element doesn't have an identifier the function generates the identifier and append this to the element.

var generatedIdCounter = 0;

$ = function() {
    var identifier = this.attr('id');

    if(!identifier) {
        identifier = 'isGenerated_' + generatedIdCounter;

        this.attr('id', identifier);

    return identifier;

How to use:



How to declare strings in C

This link should satisfy your curiosity.

Basically (forgetting your third example which is bad), the different between 1 and 2 is that 1 allocates space for a pointer to the array.

But in the code, you can manipulate them as pointers all the same -- only thing, you cannot reallocate the second.

SQL Query Where Field DOES NOT Contain $x

What kind of field is this? The IN operator cannot be used with a single field, but is meant to be used in subqueries or with predefined lists:

-- subquery
-- predefined list
SELECT a FROM x WHERE x.b NOT IN (1, 2, 3, 6);

If you are searching a string, go for the LIKE operator (but this will be slow):

-- Finds all rows where a does not contain "text"
SELECT * FROM x WHERE x.a NOT LIKE '%text%';

If you restrict it so that the string you are searching for has to start with the given string, it can use indices (if there is an index on that field) and be reasonably fast:

-- Finds all rows where a does not start with "text"

Getting an odd error, SQL Server query using `WITH` clause

In some cases this also occurs if you have table hints and you have spaces between WITH clause and your hint, so best to type it like:

INNER JOIN Table2 t2 WITH(NOLOCK) ON t1.Column1 = t2.Column1

And not:

INNER JOIN Table2 t2 WITH (NOLOCK) ON t1.Column1 = t2.Column1

Google Maps API v3: InfoWindow not sizing correctly

I was having the same problem with IE and tried many of the fixes detailed in these responses, but was unable to remove the vertical scrollbars in IE reliably.

What worked best for me was to switch to fixed font sizes inside the infowindow -- 'px'... I was using ems. By fixing the font size I no longer needed to explicitly declare the infowindow width or height and the scrollbars were gone for good.

Difference between "module.exports" and "exports" in the CommonJs Module System

module is a plain JavaScript object with an exports property. exports is a plain JavaScript variable that happens to be set to module.exports. At the end of your file, node.js will basically 'return' module.exports to the require function. A simplified way to view a JS file in Node could be this:

var module = { exports: {} };
var exports = module.exports;

// your code

return module.exports;

If you set a property on exports, like exports.a = 9;, that will set module.exports.a as well because objects are passed around as references in JavaScript, which means that if you set multiple variables to the same object, they are all the same object; so then exports and module.exports are the same object.
But if you set exports to something new, it will no longer be set to module.exports, so exports and module.exports are no longer the same object.

Auto-fit TextView for Android

From June 2018 Android officially support this feature for Android 4.0 (API level 14) and higher.
With Android 8.0 (API level 26) and higher:

setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, 
        int autoSizeStepGranularity, int unit);

Android versions prior to Android 8.0 (API level 26):

TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(TextView textView,
int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)

Check out my detail answer.

Writing List of Strings to Excel CSV File in Python

I know I'm a little late, but something I found that works (and doesn't require using csv) is to write a for loop that writes to your file for every element in your list.

# Define Data
RESULTS = ['apple','cherry','orange','pineapple','strawberry']

# Open File
resultFyle = open("output.csv",'w')

# Write data to file
for r in RESULTS:
    resultFyle.write(r + "\n")

I don't know if this solution is any better than the ones already offered, but it more closely reflects your original logic so I thought I'd share.

Fetch the row which has the Max value for a column

This should be as simple as:

SELECT UserId, Value
FROM Users u
WHERE Date = (SELECT MAX(Date) FROM Users WHERE UserID = u.UserID)

Encrypting & Decrypting a String in C#

You may be looking for the ProtectedData class, which encrypts data using the user's logon credentials.

Best way to clear a PHP array's values

Use array_splice to empty an array and retain the reference:

array_splice($myArray, 0);

How can I get the data type of a variable in C#?

Its Very simple


it will return your datatype of your variable

Selecting multiple classes with jQuery

I use $('.myClass.myOtherClass').removeClass('theclass');

How to add number of days to today's date?

If the times in the Date are not needed, then you can simply use the date object's methods to extract the Month,Year and Day and add "n" number of days to the Day part.

var n=5; //number of days to add. 
var today=new Date(); //Today's Date
var requiredDate=new Date(today.getFullYear(),today.getMonth(),today.getDate()+n)

Ref:Mozilla Javascript GetDate

Edit: Ref: Mozilla JavaScript Date

Span inside anchor or anchor inside span or doesn't matter?

It will work both, but personally I'd prefer option 2 so the span is "around" the link.

Easiest way to flip a boolean value?

Clearly you need a factory pattern!

KeyFactory keyFactory = new KeyFactory();
KeyObj keyObj = keyFactory.getKeyObj(wParam);

class VK_F11 extends KeyObj {
   boolean val;
   public void doStuff() {
      val = !val;

class VK_F12 extends KeyObj {
   boolean val;
   public void doStuff() {
      val = !val;

class KeyFactory {
   public KeyObj getKeyObj(int param) {
      switch(param) {
         case VK_F11:
            return new VK_F11();
         case VK_F12:
            return new VK_F12();
      throw new KeyNotFoundException("Key " + param + " was not found!");



Change color of Label in C#

You can try this with Color.FromArgb:

Random rnd = new Random();
lbl.ForeColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255));

Zip folder in C#

using DotNetZip (available as nuget package):

public void Zip(string source, string destination)
    using (ZipFile zip = new ZipFile
        CompressionLevel = CompressionLevel.BestCompression
        var files = Directory.GetFiles(source, "*",
            Where(f => Path.GetExtension(f).
                ToLowerInvariant() != ".zip").ToArray();

        foreach (var f in files)
            zip.AddFile(f, GetCleanFolderName(source, f));

        var destinationFilename = destination;

        if (Directory.Exists(destination) && !destination.EndsWith(".zip"))
            destinationFilename += $"\\{new DirectoryInfo(source).Name}-{DateTime.Now:yyyy-MM-dd-HH-mm-ss-ffffff}.zip";


private string GetCleanFolderName(string source, string filepath)
    if (string.IsNullOrWhiteSpace(filepath))
        return string.Empty;

    var result = filepath.Substring(source.Length);

    if (result.StartsWith("\\"))
        result = result.Substring(1);

    result = result.Substring(0, result.Length - new FileInfo(filepath).Name.Length);

    return result;


Zip(@"c:\somefolder\subfolder\source", @"c:\somefolder2\subfolder2\dest");


Zip(@"c:\somefolder\subfolder\source", @"c:\somefolder2\subfolder2\dest\");

Can I pass parameters by reference in Java?

Can I pass parameters by reference in Java?


Why ? Java has only one mode of passing arguments to methods: by value.


For primitives this is easy to understand: you get a copy of the value.

For all other you get a copy of the reference and this is called also passing by value.

It is all in this picture:

enter image description here

How to get the url parameters using AngularJS

Simple and easist way to get url value

First add # to url (e:g -  test.html#key=value)

url in browser (https://stackover.....king-angularjs-1-5#?brand=stackoverflow)

var url = window.location.href 

(output: url = "https://stackover.....king-angularjs-1-5#?brand=stackoverflow")

output "stackoverflow"

How to use Redirect in the new react-router-dom of Reactjs

Simply call it inside any function you like.


API Gateway CORS: no 'Access-Control-Allow-Origin' header

In my case, since I was using AWS_IAM as the Authorization method for API Gateway, I needed to grant my IAM role permissions to hit the endpoint.

How to find the path of Flutter SDK

To find the Flutter SDK path [ used Windows10 ]

  1. In your Android Studio home page on the bottom right click on Configure
  2. Then Click on SDK Manager
  3. Then on System Settings
  4. Then on AndroidSDK

You will see the path at the top

Calculate the center point of multiple latitude/longitude coordinate pairs

Thanks! Here is a C# version of OP's solutions using degrees. It utilises the System.Device.Location.GeoCoordinate class

    public static GeoCoordinate GetCentralGeoCoordinate(
        IList<GeoCoordinate> geoCoordinates)
        if (geoCoordinates.Count == 1)
            return geoCoordinates.Single();

        double x = 0;
        double y = 0;
        double z = 0;

        foreach (var geoCoordinate in geoCoordinates)
            var latitude = geoCoordinate.Latitude * Math.PI / 180;
            var longitude = geoCoordinate.Longitude * Math.PI / 180;

            x += Math.Cos(latitude) * Math.Cos(longitude);
            y += Math.Cos(latitude) * Math.Sin(longitude);
            z += Math.Sin(latitude);

        var total = geoCoordinates.Count;

        x = x / total;
        y = y / total;
        z = z / total;

        var centralLongitude = Math.Atan2(y, x);
        var centralSquareRoot = Math.Sqrt(x * x + y * y);
        var centralLatitude = Math.Atan2(z, centralSquareRoot);

        return new GeoCoordinate(centralLatitude * 180 / Math.PI, centralLongitude * 180 / Math.PI);

How to convert char to int?

An extension of some other answers that covers hexadecimal representation:

public int CharToInt(char c) 
    if (c >= '0' && c <= '9') 
        return c - '0';
    else if (c >= 'a' && c <= 'f') 
        return 10 + c - 'a';
    else if (c >= 'A' && c <= 'F') 
        return 10 + c - 'A';

    return -1;

Why do we not have a virtual constructor in C++?

Virtual functions in C++ are an implementation of run-time polymorphism, and they will do function overriding. Generally the virtual keyword is used in C++ when you need dynamic behavior. It will work only when object exists. Whereas constructors are used to create the objects. Constructors will be called at the time of object creation.

So if you create the constructor as virtual, as per the virtual keyword definition, it should have existing object to use, but constructor is used to to create the object, so this case will never exist. So you should not use the constructor as virtual.

So, if we try to declare virtual constructor compiler throw an Error:

Constructors cannot be declared virtual

Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

Cause: The error occurred since hibernate is not able to connect to the database.
1. Please ensure that you have a database present at the server referred to in the configuration file eg. "hibernatedb" in this case.
2. Please see if the username and password for connecting to the db are correct.
3. Check if relevant jars required for the connection are mapped to the project.

Merge two (or more) lists into one, in C# .NET

In the special case: "All elements of List1 goes to a new List2": (e.g. a string list)

List<string> list2 = new List<string>(list1);

In this case, list2 is generated with all elements from list1.

How to set background color in jquery

Try this for multiple CSS styles:

    "background-color": 'red',
    "color" : "white"

Best way to log POST data in Apache?

You can also use the built-in forensic log feature.

Android Studio Checkout Github Error "CreateProcess=2" (Windows)


1) Download git for windows

2) Install downloaded git with default setup

3) From Android Studio close if any project is open then Click on Configure -> Settings -> Version Control -> Git

4) Change Path to Git executable : git.exe to C:\Program Files\Git\cmd\git.exe

5) Apply and Ok

6) Try to clone from Check out project from Version Control

7) Done

enter image description here

How to get the total number of rows of a GROUP BY query?

It's a little memory-inefficient but if you're using the data anyway, I use this frequently:

$rows = $q->fetchAll();
$num_rows = count($rows);

Simple DateTime sql query

You can execute below code

SELECT Time FROM [TableName] where DATEPART(YYYY,[Time])='2018' and DATEPART(MM,[Time])='06' and DATEPART(DD,[Time])='14

Convert an int to ASCII character

This is how I converted a number to an ASCII code. 0 though 9 in hex code is 0x30-0x39. 6 would be 0x36.

unsigned int temp = 6;
or you can use unsigned char temp = 6;
unsigned char num;
 num = 0x30| temp;

this will give you the ASCII value for 6. You do the same for 0 - 9

to convert ASCII to a numeric value I came up with this code.

unsigned char num,code;
code = 0x39; // ASCII Code for 9 in Hex
num = 0&0F & code;

How to check if string input is a number?

If you specifically need an int or float, you could try "is not int" or "is not float":

user_input = ''
while user_input is not int:
        user_input = int(input('Enter a number: '))
    except ValueError:
        print('Please enter a valid number: ')

print('You entered {}'.format(a))

If you only need to work with ints, then the most elegant solution I've seen is the ".isdigit()" method:

a = ''
while a.isdigit() == False:
    a = input('Enter a number: ')

print('You entered {}'.format(a))

Android 8.0: java.lang.IllegalStateException: Not allowed to start service Intent

it's actually happening because the phone is on offscreen, or you pressed the power button while starting the service. solution for this which worked for me is to start an activity and when it will go in onResume then start the service. in my case, it was booting up and starting a service.

How can I return two values from a function in Python?

def test():
    r1 = 1
    r2 = 2
    r3 = 3
    return r1, r2, r3

x,y,z = test()
print x
print y
print z


Case insensitive string as HashMap key

I like using ICU4J’s CaseInsensitiveString wrap of the Map key because it takes care of the hash\equals and issue and it works for unicode\i18n.

HashMap<CaseInsensitiveString, String> caseInsensitiveMap = new HashMap<>();
caseInsensitiveMap.put("tschüß", "bye");
caseInsensitiveMap.containsKey("TSCHÜSS"); # true

How to sleep the thread in node.js without affecting other threads?

If you are referring to the npm module sleep, it notes in the readme that sleep will block execution. So you are right - it isn't what you want. Instead you want to use setTimeout which is non-blocking. Here is an example:

setTimeout(function() {
  console.log('hello world!');
}, 5000);

For anyone looking to do this using es7 async/await, this example should help:

const snooze = ms => new Promise(resolve => setTimeout(resolve, ms));

const example = async () => {
  console.log('About to snooze without halting the event loop...');
  await snooze(1000);


How to check if another instance of the application is running

Want some serious code? Here it is.

var exists = System.Diagnostics.Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location)).Count() > 1;

This works for any application (any name) and will become true if there is another instance running of the same application.

Edit: To fix your needs you can use either of these:

if (System.Diagnostics.Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location)).Count() > 1) return;

from your Main method to quit the method... OR

if (System.Diagnostics.Process.GetProcessesByName(System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location)).Count() > 1) System.Diagnostics.Process.GetCurrentProcess().Kill();

which will kill the currently loading process instantly.

You need to add a reference to System.Core.dll for the .Count() extension method. Alternatively, you can use the .Length property.

Please add a @Pipe/@Directive/@Component annotation. Error

Not a solution to the concrete example above, but there may be many reasons why you get this error message. I got it when I accidentally added a shared module to the module declarations list and not to imports.

In app.module.ts:

import { SharedModule } from './modules/shared/shared.module';

  declarations: [
     // Should not have been added here...
  imports: [

How do I validate a date string format in python?

From mere curiosity, I timed the two rivalling answers posted above.
And I had the following results:

dateutil.parser (valid str): 4.6732222699938575
dateutil.parser (invalid str): 1.7270505399937974
datetime.strptime (valid): 0.7822393209935399
datetime.strptime (invalid): 0.4394566189876059

And here's the code I used (Python 3.6)

from dateutil import parser as date_parser
from datetime import datetime
from timeit import timeit

def is_date_parsing(date_str):
        return bool(date_parser.parse(date_str))
    except ValueError:
        return False

def is_date_matching(date_str):
        return bool(datetime.strptime(date_str, '%Y-%m-%d'))
    except ValueError:
        return False

if __name__ == '__main__':
    print("dateutil.parser (valid date):", end=' ')
                 setup="from __main__ import is_date_parsing",

    print("dateutil.parser (invalid date):", end=' ')
                 setup="from __main__ import is_date_parsing",

    print("datetime.strptime (valid date):", end=' ')
                 setup="from __main__ import is_date_matching",

    print("datetime.strptime (invalid date):", end=' ')
                 setup="from __main__ import is_date_matching",

Git: force user and password prompt

With git config -l, I now see I have a credential.helper=osxkeychain option

That means the credential helper (initially introduced in 1.7.10) is now in effect, and will cache automatically the password for accessing a remote repository over HTTP.
(as in "GIT: Any way to set default login credentials?")

You can disable that option entirely, or only for a single repo.

How to hide a navigation bar from first ViewController in Swift?

You can unhide navigationController in viewWillDisappear

override func viewWillDisappear(animated: Bool)
    self.navigationController?.isNavigationBarHidden = false

Swift 3

override func viewWillDisappear(_ animated: Bool) {

    self.navigationController?.setNavigationBarHidden(false, animated: animated)

How to remove trailing whitespaces with sed?

In the specific case of sed, the -i option that others have already mentioned is far and away the simplest and sanest one.

In the more general case, sponge, from the moreutils collection, does exactly what you want: it lets you replace a file with the result of processing it, in a way specifically designed to keep the processing step from tripping over itself by overwriting the very file it's working on. To quote the sponge man page:

sponge reads standard input and writes it out to the specified file. Unlike a shell redirect, sponge soaks up all its input before writing the output file. This allows constructing pipelines that read from and write to the same file.

%Like% Query in spring JpaRepository

Try this.

@Query("Select c from Registration c where like '%'||:place||'%'")

setting the id attribute of an input element dynamically in IE: alternative for setAttribute method

This code work in IE7 and Chrome:

var hiddenInput = document.createElement("input");
    hiddenInput.setAttribute("id", "uniqueIdentifier");
    hiddenInput.setAttribute("type", "hidden");                     
    hiddenInput.setAttribute("value", 'ID');
    hiddenInput.setAttribute("class", "ListItem");


Maybe problem somewhere else ?

How to use sed to replace only the first occurrence in a file?

I know this is an old post but I had a solution that I used to use:

grep -E -m 1 -n 'old' file | sed 's/:.*$//' - | sed 's/$/s\/old\/new\//' - | sed -f - file

Basically use grep to print the first occurrence and stop there. Additionally print line number ie 5:line. Pipe that into sed and remove the : and anything after so you are just left with a line number. Pipe that into sed which adds s/.*/replace to the end number, which results in a 1 line script which is piped into the last sed to run as a script on the file.

so if regex = #include and replace = blah and the first occurrence grep finds is on line 5 then the data piped to the last sed would be 5s/.*/blah/.

Works even if first occurrence is on the first line.

How to putAll on Java hashMap contents of one to another, but not replace existing keys and values?

Just iterate and add:

for(Map.Entry e : a.entrySet())
    b.put(e.getKey(), e.getValue());

Edit to add:

If you can make changes to a, you can also do:


and a will have exactly what you need. (all the entries in b and all the entries in a that aren't in b)

Revert a jQuery draggable object back to its original container on out event of droppable

It's related about revert origin : to set origin when the object is drag : just use $(this).data("draggable").originalPosition = {top:0, left:0};

For example : i use like this

               drag: function() {
                    var t = $(this);
                    left = parseInt(t.css("left")) * -1;
                    if(left > 0 ){
                        left = 0;
                        t.draggable( "option", "revert", true );
                        $(this).data("draggable").originalPosition = {top:0, left:0};
                    else t.draggable( "option", "revert", false );

                    $(".slider-work").css("left",  left);

Confirmation dialog on ng-click - AngularJS

Its so simple using core javascript + angular js:

$scope.delete = function(id) 
       if (confirm("Are you sure?"))
                //do your process of delete using angular js.

If you click OK, then delete operation will take, otherwise not. * id is the parameter, record that you want to delete.

How can I call controller/view helper methods from the console in Ruby on Rails?

If the method is the POST method then: 'controller/action?parameter1=value1&parameter2=value2'

(Here parameters will be as per your applicability.)

Else if it is the GET method then:

app.get 'controller/action'

What causes a Python segmentation fault?

I was experiencing this segmentation fault after upgrading dlib on RPI. I tracebacked the stack as suggested by Shiplu Mokaddim above and it settled on an OpenBLAS library.

Since OpenBLAS is also multi-threaded, using it in a muilt-threaded application will exponentially multiply threads until segmentation fault. For multi-threaded applications, set OpenBlas to single thread mode.

In python virtual environment, tell OpenBLAS to only use a single thread by editing:

    $ workon <myenv>
    $ nano .virtualenv/<myenv>/bin/postactivate

and add:


After reboot I was able to run all my image recognition apps on rpi3b which were previously crashing it.


VB.NET Inputbox - How to identify when the Cancel Button is pressed?

I know this is a very old topic, but the correct answer is still not here.

The accepted answer works with a space, but the user can remove this space - so this answer is not reliable. The answer of Georg works, but is needlessly complex.

To test if the user pressed cancel, just use the following code:

Dim Answer As String = InputBox("Question")
If String.ReferenceEquals(Answer, String.Empty) Then
    'User pressed cancel
Else if Answer = "" Then
    'User pressed ok with an empty string in the box
    'User gave an answer

MySQL skip first 10 results

OFFSET is what you are looking for.


Setting up enviromental variables in Windows 10 to use java and javac

if you have any version problems (javac -version=15.0.1, java -version=1.8.0)
windows search : edit environment variables for your account
then delete these in your windows Environment variable: system variable: Path
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
C:\Program Files\Common Files\Oracle\Java\javapath

then if you're using java 15
environment variable: system variable : Path
add path C:\Program Files\Java\jdk-15.0.1\bin
is enough

if you're using java 8

  • create JAVA_HOME
  • environment variable: system variable : JAVA_HOME
    JAVA_HOME = C:\Program Files\Java\jdk1.8.0_271
  • environment variable: system variable : Path
    add path = %JAVA_HOME%\bin
  • Using dig to search for SPF records

    The dig utility is pretty convenient to use. The order of the arguments don't really matter.I'll show you some easy examples.
    To get all root name servers use

    # dig

    To get a TXT record of a specific host use

    # dig txt
    # dig txt

    To query a specific name server just add @nameserver.tld

    # dig txt

    The SPF RFC4408 says that SPF records can be stored as SPF or TXT. However nearly all use only TXT records at the moment. So you are pretty safe if you only fetch TXT records.

    I made a SPF checker for visualising the SPF records of a domain. It might help you to understand SPF records better. You can find it here:

    Wait until all jQuery Ajax requests are done?

    jQuery now defines a when function for this purpose.

    It accepts any number of Deferred objects as arguments, and executes a function when all of them resolve.

    That means, if you want to initiate (for example) four ajax requests, then perform an action when they are done, you could do something like this:

    $.when(ajax1(), ajax2(), ajax3(), ajax4()).done(function(a1, a2, a3, a4){
        // the code here will be executed when all four ajax requests resolve.
        // a1, a2, a3 and a4 are lists of length 3 containing the response text,
        // status, and jqXHR object for each of the four ajax calls respectively.
    function ajax1() {
        // NOTE:  This function must return the value 
        //        from calling the $.ajax() method.
        return $.ajax({
            url: "someUrl",
            dataType: "json",
            data:  yourJsonData,            

    In my opinion, it makes for a clean and clear syntax, and avoids involving any global variables such as ajaxStart and ajaxStop, which could have unwanted side effects as your page develops.

    If you don't know in advance how many ajax arguments you need to wait for (i.e. you want to use a variable number of arguments), it can still be done but is just a little bit trickier. See Pass in an array of Deferreds to $.when() (and maybe jQuery .when troubleshooting with variable number of arguments).

    If you need deeper control over the failure modes of the ajax scripts etc., you can save the object returned by .when() - it's a jQuery Promise object encompassing all of the original ajax queries. You can call .then() or .fail() on it to add detailed success/failure handlers.

    JavaScript: replace last occurrence of text in a string

    I would suggest using the replace-last npm package.

    var str = 'one two, one three, one four, one';_x000D_
    var result = replaceLast(str, 'one', 'finish');_x000D_
    <script src=""></script>

    This works for string and regex replacements.

    Better way to convert file sizes in Python

    Here are some easy-to-copy one liners to use if you already know what unit size you want. If you're looking for in a more generic function with a few nice options, see my FEB 2021 update further on...


    print ('{:,.0f}'.format(os.path.getsize(filepath))+" B")


    print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<7))+" kb")


    print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<10))+" KB")


    print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<17))+" mb")


    print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<20))+" MB")


    print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<27))+" gb")


    print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<30))+" GB")


    print ('{:,.0f}'.format(os.path.getsize(filepath)/float(1<<40))+" TB")

    UPDATE FEB 2021 Here are my updated and fleshed-out functions to a) get file/folder size, b) convert into desired units:

    from pathlib import Path
    def get_path_size(path = Path('.'), recursive=False):
        Gets file size, or total directory size
        path: str | pathlib.Path
            File path or directory/folder path
        recursive: bool
            True -> use .rglob i.e. include nested files and directories
            False -> use .glob i.e. only process current directory/folder
            File size or recursive directory size in bytes
            Use cleverutils.format_bytes to convert to other units e.g. MB
        path = Path(path)
        if path.is_file():
            size = path.stat().st_size
        elif path.is_dir():
            path_glob = path.rglob('*.*') if recursive else path.glob('*.*')
            size = sum(file.stat().st_size for file in path_glob)
        return size
    def format_bytes(bytes, unit, SI=False):
        Converts bytes to common units such as kb, kib, KB, mb, mib, MB
        bytes: int
            Number of bytes to be converted
        unit: str
            Desired unit of measure for output
        SI: bool
            True -> Use SI standard e.g. KB = 1000 bytes
            False -> Use JEDEC standard e.g. KB = 1024 bytes
            E.g. "7 MiB" where MiB is the original unit abbreviation supplied
        if unit.lower() in "b bit bits".split():
            return f"{bytes*8} {unit}"
        unitN = unit[0].upper()+unit[1:].replace("s","")  # Normalised
        reference = {"Kb Kib Kibibit Kilobit": (7, 1),
                     "KB KiB Kibibyte Kilobyte": (10, 1),
                     "Mb Mib Mebibit Megabit": (17, 2),
                     "MB MiB Mebibyte Megabyte": (20, 2),
                     "Gb Gib Gibibit Gigabit": (27, 3),
                     "GB GiB Gibibyte Gigabyte": (30, 3),
                     "Tb Tib Tebibit Terabit": (37, 4),
                     "TB TiB Tebibyte Terabyte": (40, 4),
                     "Pb Pib Pebibit Petabit": (47, 5),
                     "PB PiB Pebibyte Petabyte": (50, 5),
                     "Eb Eib Exbibit Exabit": (57, 6),
                     "EB EiB Exbibyte Exabyte": (60, 6),
                     "Zb Zib Zebibit Zettabit": (67, 7),
                     "ZB ZiB Zebibyte Zettabyte": (70, 7),
                     "Yb Yib Yobibit Yottabit": (77, 8),
                     "YB YiB Yobibyte Yottabyte": (80, 8),
        key_list = '\n'.join(["     b Bit"] + [x for x in reference.keys()]) +"\n"
        if unitN not in key_list:
            raise IndexError(f"\n\nConversion unit must be one of:\n\n{key_list}")
        units, divisors = [(k,v) for k,v in reference.items() if unitN in k][0]
        if SI:
            divisor = 1000**divisors[1]/8 if "bit" in units else 1000**divisors[1]
            divisor = float(1 << divisors[0])
        value = bytes / divisor
        if value != 1 and len(unitN) > 3:
                unitN += "s" # Create plural unit of measure
        return "{:,.0f}".format(value) + " " + unitN
    # Tests 
    >>> assert format_bytes(1,"b") == '8 b'
    >>> assert format_bytes(1,"bits") == '8 bits'
    >>> assert format_bytes(1024, "kilobyte") == "1 Kilobyte"
    >>> assert format_bytes(1024, "kB") == "1 KB"
    >>> assert format_bytes(7141000, "mb") == '54 Mb'
    >>> assert format_bytes(7141000, "mib") == '54 Mib'
    >>> assert format_bytes(7141000, "Mb") == '54 Mb'
    >>> assert format_bytes(7141000, "MB") == '7 MB'
    >>> assert format_bytes(7141000, "mebibytes") == '7 Mebibytes'
    >>> assert format_bytes(7141000, "gb") == '0 Gb'
    >>> assert format_bytes(1000000, "kB") == '977 KB'
    >>> assert format_bytes(1000000, "kB", SI=True) == '1,000 KB'
    >>> assert format_bytes(1000000, "kb") == '7,812 Kb'
    >>> assert format_bytes(1000000, "kb", SI=True) == '8,000 Kb'
    >>> assert format_bytes(125000, "kb") == '977 Kb'
    >>> assert format_bytes(125000, "kb", SI=True) == '1,000 Kb'
    >>> assert format_bytes(125*1024, "kb") == '1,000 Kb'
    >>> assert format_bytes(125*1024, "kb", SI=True) == '1,024 Kb'

    Solving "The ObjectContext instance has been disposed and can no longer be used for operations that require a connection" InvalidOperationException

    Most of the other answers point to eager loading, but I found another solution.

    In my case I had an EF object InventoryItem with a collection of InvActivity child objects.

    class InventoryItem {
       // EF code first declaration of a cross table relationship
       public virtual List<InvActivity> ItemsActivity { get; set; }
       public GetLatestActivity()
           return ItemActivity?.OrderByDescending(x => x.DateEntered).SingleOrDefault();

    And since I was pulling from the child object collection instead of a context query (with IQueryable), the Include() function was not available to implement eager loading. So instead my solution was to create a context from where I utilized GetLatestActivity() and attach() the returned object:

    using (DBContext ctx = new DBContext())
        var latestAct = _item.GetLatestActivity();
        // attach the Entity object back to a usable database context
        // your code that would make use of the latestAct's lazy loading
        // ie = "foo";

    Thus you aren't stuck with eager loading.

    What is the Simplest Way to Reverse an ArrayList?

    Solution without using extra ArrayList or combination of add() and remove() methods. Both can have negative impact if you have to reverse a huge list.

     public ArrayList<Object> reverse(ArrayList<Object> list) {
       for (int i = 0; i < list.size() / 2; i++) {
         Object temp = list.get(i);
         list.set(i, list.get(list.size() - i - 1));
         list.set(list.size() - i - 1, temp);
       return list;

    How to use ClassLoader.getResources() correctly?

    The Spring Framework has a class which allows to recursively search through the classpath:

    PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

    How to Select a substring in Oracle SQL up to a specific character?

    In case if String position is not fixed then by below Select statement we can get the expected output.

    Table Structure ID VARCHAR2(100 BYTE) CLIENT VARCHAR2(4000 BYTE)

    Data- ID CLIENT
    1001 {"clientId":"con-bjp","clientName":"ABC","providerId":"SBS"}
    1002 {"IdType":"AccountNo","Id":"XXXXXXXX3521","ToPricingId":"XXXXXXXX3521","clientId":"Test-Cust","clientName":"MFX"}

    Requirement - Search "ClientId" string in CLIENT column and return the corresponding value. Like From "clientId":"con-bjp" --> con-bjp(Expected output)

    select CLIENT,substr(substr(CLIENT,instr(CLIENT,'"clientId":"')+length('"clientId":"')),1,instr(substr(CLIENT,instr(CLIENT,'"clientId":"')+length('"clientId":"')),'"',1 )-1) cut_str from TEST_SC;

    CLIENT cut_str ----------------------------------------------------------- ---------- {"clientId":"con-bjp","clientName":"ABC","providerId":"SBS"} con-bjp {"IdType":"AccountNo","Id":"XXXXXXXX3521","ToPricingId":"XXXXXXXX3521","clientId":"Test-Cust","clientName":"MFX"} Test-Cust

    How can I display an RTSP video stream in a web page?

    I know that this post is old but I was looking for something very similar the other day (view my IP cam's RTSP video feed on a simple html page without any fancy ActiveX plugins). Lucky me, I found a solution! It is based on ffmpeg, NodeJS, NGINX (not mandatory but useful) and Node Media Server.

    The description in the link is detailed and easy to follow, but I still had some tweaks to deal with before I got it to work (regarding endpoints on the NodeJS server). I made an own question for it and got a good and working answer.

    How to Toggle a div's visibility by using a button click

    In case you are interested in a jQuery soluton:

    This is the HTML

    <a id="button" href="#">Show/Hide</a>
    <div id="item">Item</div>

    This is the jQuery script

    $( "#button" ).click(function() {
        $( "#item" ).toggle();

    You can see it working here:

    If you don't know how to use jQuery, you have to use this line to load the library:

    <script src=""></script>

    And then use this line to start:

    $(function() {
        // code to fire once the library finishes downloading.

    So for this case the final code would be this:

    $(function() {
        $( "#button" ).click(function() {
            $( "#item" ).toggle();

    Let me know if you need anything else

    You can read more about jQuery here:

    How does strtok() split the string into tokens in C?

    So, this is a code snippet to help better understand this topic.

    Printing Tokens

    Task: Given a sentence, s, print each word of the sentence in a new line.

    char *s;
    s = malloc(1024 * sizeof(char));
    scanf("%[^\n]", s);
    s = realloc(s, strlen(s) + 1);
    //logic to print the tokens of the sentence.
    for (char *p = strtok(s," "); p != NULL; p = strtok(NULL, " "))

    Input: How is that



    Explanation: So here, "strtok()" function is used and it's iterated using for loop to print the tokens in separate lines.

    The function will take parameters as 'string' and 'break-point' and break the string at those break-points and form tokens. Now, those tokens are stored in 'p' and are used further for printing.

    Difference between Visual Basic 6.0 and VBA

    Do you want compare VBA with VB-Classic (VB6..) or VB.NET?

    VBA (Visual Basic for Applications) is a vb-classic-based script language embedded in Microsoft Office applications. I think it's language features are similar to those of VB5 (it just lacks some few builtin functions), but:

    You have access to the office document you wrote the VBA-script for and so you can e.g.

    • Write macros (=automated routines for little recurring tasks in your office-work)
    • Define new functions for excel-cell-formula
    • Process office data

    Example: Set the value of an excel-cell

    ActiveSheet.Cells("A1").Value = "Foo"

    VBC and -.NET are no script languages. You use them to write standalone-applications with separate IDE's which you can't do with VBA (VBA-scripts just "exist" in Office)

    VBA has nothing to do with VB.NET (they just have a similar syntax).

    How to forcefully set IE's Compatibility Mode off from the server-side?

    Update: More useful information What does <meta http-equiv="X-UA-Compatible" content="IE=edge"> do?

    Maybe this url can help you: Activating Browser Modes with Doctype

    Edit: Today we were able to override the compatibility view with: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

    Angularjs $http.get().then and binding to a list

    $http methods return a promise, which can't be iterated, so you have to attach the results to the scope variable through the callbacks:

    $scope.documents = [];
    $http.get('/Documents/DocumentsList/' + caseId)
      .then(function(result) {
        $scope.documents =;

    Now, since this defines the documents variable only after the results are fetched, you need to initialise the documents variable on scope beforehand: $scope.documents = []. Otherwise, your ng-repeat will choke.

    This way, ng-repeat will first return an empty list, because documents array is empty at first, but as soon as results are received, ng-repeat will run again because the `documents``have changed in the success callback.

    Also, you might want to alter you ng-repeat expression to:

    <li ng-repeat="document in documents" ng-class="IsFiltered(document.Filtered)">

    because if your DisplayDocuments() function is making a call to the server, than this call will be executed many times over, due to the $digest cycles.

    maxReceivedMessageSize and maxBufferSize in app.config

    The currently accepted answer is incorrect. It is NOT required to set maxBufferSize and maxReceivedMessageSize on the client and the server binding. It depends!

    If your request is too large (i.e., method parameters of the service operation are memory intensive) set the properties on the server-side, if the response is too large (i.e., the method return value of the service operation is memory intensive) set the values on the client-side.

    For the difference between maxBufferSize and maxReceivedMessageSize see MaxBufferSize property?.

    Data binding for TextBox

    I Recommend you implement INotifyPropertyChanged and change your databinding code to this:


    That'll fix it.

    Note that the default DataSourceUpdateMode is OnValidation, so if you don't specify OnPropertyChanged, the model object won't be updated until after your validations have occurred.

    Return current date plus 7 days

    Here is how you can do it using strtotime(),

        $date = strtotime("3 October 2005");
        $d = strtotime("+7 day", $date);
        echo "Created date is " . date("Y-m-d h:i:sa", $d) . "<br>";

    <Django object > is not JSON serializable

    I found that this can be done rather simple using the ".values" method, which also gives named fields:

    result_list = list(my_queryset.values('first_named_field', 'second_named_field'))
    return HttpResponse(json.dumps(result_list))

    "list" must be used to get data as iterable, since the "value queryset" type is only a dict if picked up as an iterable.


    How to get the PYTHONPATH in shell?

    Those of us using Python 3.x should do this:

    python -c "import sys; print(sys.path)"

    Can you display HTML5 <video> as a full screen background?

    I might be a bit late to answer this but this will be useful for new people looking for this answer.

    The answers above are good, but to have a perfect video background you have to check at the aspect ratio as the video might cut or the canvas around get deformed when resizing the screen or using it on different screen sizes.

    I got into this issue not long ago and I found the solution using media queries.

    Here is a tutorial that I wrote on how to create a Fullscreen Video Background with only CSS

    I will add the code here as well:


    <div class="videoBgWrapper">
        <video loop muted autoplay poster="img/videoframe.jpg" class="videoBg">
            <source src="videosfolder/video.webm" type="video/webm">
            <source src="videosfolder/video.mp4" type="video/mp4">
            <source src="videosfolder/video.ogv" type="video/ogg">


    .videoBgWrapper {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        overflow: hidden;
        z-index: -100;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    @media (min-aspect-ratio: 16/9) {
        width: 100%;
        height: auto;
    @media (max-aspect-ratio: 16/9) {
      .videoBg {
        width: auto;
        height: 100%;

    I hope you find it useful.

    How to use PHP OPCache?

    I am going to drop in my two cents for what I use opcache.

    I have made an extensive framework with a lot of fields and validation methods and enums to be able to talk to my database.

    Without opcache

    When using this script without opcache and I push 9000 requests in 2.8 seconds to the apache server it maxes out at 90-100% cpu for 70-80 seconds until it catches up with all the requests.

    Total time taken: 76085 milliseconds(76 seconds)

    With opcache enabled

    With opcache enabled it runs at 25-30% cpu time for about 25 seconds and never passes 25% cpu use.

    Total time taken: 26490 milliseconds(26 seconds)

    I have made an opcache blacklist file to disable the caching of everything except the framework which is all static and doesnt need changing of functionality. I choose explicitly for just the framework files so that I could develop without worrying about reloading/validating the cache files. Having everything cached saves a second on the total of the requests 25546 milliseconds

    This significantly expands the amount of data/requests I can handle per second without the server even breaking a sweat.

    How do I do a case-insensitive string comparison?

    Comparing strings in a case insensitive way seems trivial, but it's not. I will be using Python 3, since Python 2 is underdeveloped here.

    The first thing to note is that case-removing conversions in Unicode aren't trivial. There is text for which text.lower() != text.upper().lower(), such as "ß":

    #>>> 'ß'
    #>>> 'ss'

    But let's say you wanted to caselessly compare "BUSSE" and "Buße". Heck, you probably also want to compare "BUSSE" and "BU?E" equal - that's the newer capital form. The recommended way is to use casefold:


    Return a casefolded copy of the string. Casefolded strings may be used for caseless matching.

    Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string. [...]

    Do not just use lower. If casefold is not available, doing .upper().lower() helps (but only somewhat).

    Then you should consider accents. If your font renderer is good, you probably think "ê" == "e^" - but it doesn't:

    "ê" == "e^"
    #>>> False

    This is because the accent on the latter is a combining character.

    import unicodedata
    [ for char in "ê"]
    [ for char in "e^"]

    The simplest way to deal with this is unicodedata.normalize. You probably want to use NFKD normalization, but feel free to check the documentation. Then one does

    unicodedata.normalize("NFKD", "ê") == unicodedata.normalize("NFKD", "e^")
    #>>> True

    To finish up, here this is expressed in functions:

    import unicodedata
    def normalize_caseless(text):
        return unicodedata.normalize("NFKD", text.casefold())
    def caseless_equal(left, right):
        return normalize_caseless(left) == normalize_caseless(right)

    javax.validation.ValidationException: HV000183: Unable to load 'javax.el.ExpressionFactory'

    It is working after adding to pom.xml following dependencies:


    Getting started with Hibernate Validator:

    Hibernate Validator also requires an implementation of the Unified Expression Language (JSR 341) for evaluating dynamic expressions in constraint violation messages. When your application runs in a Java EE container such as WildFly, an EL implementation is already provided by the container. In a Java SE environment, however, you have to add an implementation as dependency to your POM file. For instance you can add the following two dependencies to use the JSR 341 reference implementation:


    How to cin to a vector

    using namespace std;
    int main()
        int num;
        string input;
        while (cin>>input && num != 0) //enter any non-integer to end the loop!
       vector<string>::iterator it;
    return 0;

    How to specify multiple return types using type-hints

    The statement def foo(client_id: str) -> list or bool: when evaluated is equivalent to def foo(client_id: str) -> list: and will therefore not do what you want.

    The native way to describe a "either A or B" type hint is Union (thanks to Bhargav Rao):

    def foo(client_id: str) -> Union[list, bool]:

    I do not want to be the "Why do you want to do this anyway" guy, but maybe having 2 return types isn't what you want:

    If you want to return a bool to indicate some type of special error-case, consider using Exceptions instead. If you want to return a bool as some special value, maybe an empty list would be a good representation. You can also indicate that None could be returned with Optional[list]

    What should my Objective-C singleton look like?

    Since Kendall posted a threadsafe singleton that attempts to avoid locking costs, I thought I would toss one up as well:

    #import <libkern/OSAtomic.h>
    static void * volatile sharedInstance = nil;                                                
    + (className *) sharedInstance {                                                                    
      while (!sharedInstance) {                                                                          
        className *temp = [[self alloc] init];                                                                 
        if(!OSAtomicCompareAndSwapPtrBarrier(0x0, temp, &sharedInstance)) {
          [temp release];                                                                                   
      return sharedInstance;                                                                        

    Okay, let me explain how this works:

    1. Fast case: In normal execution sharedInstance has already been set, so the while loop is never executed and the function returns after simply testing for the variable's existence;

    2. Slow case: If sharedInstance doesn't exist, then an instance is allocated and copied into it using a Compare And Swap ('CAS');

    3. Contended case: If two threads both attempt to call sharedInstance at the same time AND sharedInstance doesn't exist at the same time then they will both initialize new instances of the singleton and attempt to CAS it into position. Whichever one wins the CAS returns immediately, whichever one loses releases the instance it just allocated and returns the (now set) sharedInstance. The single OSAtomicCompareAndSwapPtrBarrier acts as both a write barrier for the setting thread and a read barrier from the testing thread.

    WCF on IIS8; *.svc handler mapping doesn't work

    This was a really silly one for me. Adding this here as it's one of the more popular threads on svc 404 issues.

    I had in my Project Settings' \ Web \ Project URL, pasted:

    And for some unknown reason (having done this a thousand times) didn't spot straight away that the name of the .svc file was at the end.


    I had just pasted the address from my WCF test client and hadn't checked it sufficiently. What this did in the background was create an IIS application at the .svc address and I was getting nothing out of IIS. I couldn't work out how I couldn't even hit the .svc file.

    Simple fix, obviously, just remove the application in IIS and change the project URL.

    After almost 20 years at this, you can still make schoolboy errors / rookie mistakes. Hope this helps someone.

    PHP string concatenation

    while ($personCount < 10) {
        $result .= ($personCount++)." people ";
    echo $result;

    Structure padding and packing

    Are these structures padded or packed?

    They're padded.

    The only possibility that initially springs to mind, where they could be packed, is if char and int were the same size, so that the minimum size of the char/int/char structure would allow for no padding, ditto for the int/char structure.

    However, that would require both sizeof(int) and sizeof(char) to be four (to get the twelve and eight sizes). The whole theory falls apart since it's guaranteed by the standard that sizeof(char) is always one.

    Were char and int the same width, the sizes would be one and one, not four and four. So, in order to then get a size of twelve, there would have to be padding after the final field.

    When does padding or packing take place?

    Whenever the compiler implementation wants it to. Compilers are free to insert padding between fields, and following the final field (but not before the first field).

    This is usually done for performance as some types perform better when they're aligned on specific boundaries. There are even some architectures that will refuse to function (i.e, crash) is you try to access unaligned data (yes, I'm looking at you, ARM).

    You can generally control packing/padding (which is really opposite ends of the same spectrum) with implementation-specific features such as #pragma pack. Even if you cannot do that in your specific implementation, you can check your code at compile time to ensure it meets your requirement (using standard C features, not implementation-specific stuff).

    For example:

    // C11 or better ...
    #include <assert.h>
    struct strA { char a; int  b; char c; } x;
    struct strB { int  b; char a;         } y;
    static_assert(sizeof(struct strA) == sizeof(char)*2 + sizeof(int), "No padding allowed");
    static_assert(sizeof(struct strB) == sizeof(char)   + sizeof(int), "No padding allowed");

    Something like this will refuse to compile if there is any padding in those structures.