Programs & Examples On #Lf

git replacing LF with CRLF

In a GNU/Linux shell prompt, dos2unix & unix2dos commands allow you to easely convert/format your files coming from MS Windows

How to update attributes without validation

Shouldn't that be

validates_length_of :title, :in => 6..255, :on => :create

so it only works during create?

What is the syntax to insert one list into another list in python?

The question does not make clear what exactly you want to achieve.

List has the append method, which appends its argument to the list:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.append(list_two)
>>> list_one
[1, 2, 3, [4, 5, 6]]

There's also the extend method, which appends items from the list you pass as an argument:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]

And of course, there's the insert method which acts similarly to append but allows you to specify the insertion point:

>>> list_one.insert(2, list_two)
>>> list_one
[1, 2, [4, 5, 6], 3, 4, 5, 6]

To extend a list at a specific insertion point you can use list slicing (thanks, @florisla):

>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]

List slicing is quite flexible as it allows to replace a range of entries in a list with a range of entries from another list:

>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]

Refresh a page using PHP

That is simply possible with header() in PHP:

header('Refresh: 1; url=index.php');

Python pandas insert list into a cell

Also getting

ValueError: Must have equal len keys and value when setting with an iterable,

using .at rather than .loc did not make any difference in my case, but enforcing the datatype of the dataframe column did the trick:

df['B'] = df['B'].astype(object)

Then I could set lists, numpy array and all sorts of things as single cell values in my dataframes.

Remove all git files from a directory?

The .git folder is only stored in the root directory of the repo, not all the sub-directories like subversion. You should be able to just delete that one folder, unless you are using Submodules...then they will have one too.

PHP PDO with foreach and fetch

This is because you are reading a cursor, not an array. This means that you are reading sequentially through the results and when you get to the end you would need to reset the cursor to the beginning of the results to read them again.

If you did want to read over the results multiple times, you could use fetchAll to read the results into a true array and then it would work as you are expecting.

How to avoid scientific notation for large numbers in JavaScript?

This is what I ended up using to take the value from an input, expanding numbers less than 17digits and converting Exponential numbers to x10y

// e.g.
//  niceNumber("1.24e+4")   becomes 
// 1.24x10 to the power of 4 [displayed in Superscript]

function niceNumber(num) {
        var sOut = num.toString();
      if ( sOut.length >=17 || sOut.indexOf("e") > 0){
      sOut = sOut.replace("e","x10<sup>")+"</sup>";
      return sOut;

  catch ( e) {
      return num;

C#: Printing all properties of an object

You can use the TypeDescriptor class to do this:

foreach(PropertyDescriptor descriptor in TypeDescriptor.GetProperties(obj))
    string name=descriptor.Name;
    object value=descriptor.GetValue(obj);

TypeDescriptor lives in the System.ComponentModel namespace and is the API that Visual Studio uses to display your object in its property browser. It's ultimately based on reflection (as any solution would be), but it provides a pretty good level of abstraction from the reflection API.

How to print a number with commas as thousands separators in JavaScript

You could just use the printf-way, for example:

double number = 1234567;
System.out.printf("%,.2f" , number);

Angular 2 Date Input not binding to date value

In .ts :

today: Date;

constructor() { =new Date();


<input type="date"  
       [ngModel]="today | date:'yyyy-MM-dd'"  
       (ngModelChange)="today = $event"    
       class="form-control form-control-rounded" #searchDate 

Difference between abstraction and encapsulation?

abstraction is hiding non useful data from users and encapsulation is bind together data into a capsule (a class). I think encapsulation is way that we achieve abstraction.

jQuery - find child with a specific class

Based on your comment, moddify this:

$( '.bgHeaderH2' ).html (); // will return whatever is inside the DIV


$( '.bgHeaderH2', $( this ) ).html (); // will return whatever is inside the DIV

More about selectors:

Python: No acceptable C compiler found in $PATH when installing python

You would need to install it as non root, since its shared hosting. Here is a tut that points how this step.

cd ~/src

or equivalent gcc source, then

tar -xvf gcc-5.2.0.tar.gz
cd gcc-5.2.0
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-5.2.0/configure --prefix=$HOME/gcc-5.2.0 --enable-languages=c,c++,fortran,go
make install

then add to .bashrc, or equivalent

export PATH=~/gcc-5.2.0/bin:$PATH
export LD_LIBRARY_PATH=~/gcc-5.2.0/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=~/gcc-5.2.0/lib64:$LD_LIBRARY_PATH

Using HTML and Local Images Within UIWebView

In Swift 3:

webView.loadHTMLString("<img src=\"myImg.jpg\">", baseURL: Bundle.main.bundleURL)

This worked for me even when the image was inside of a folder without any modifications.

How to filter WooCommerce products by custom attribute

On one of my sites I had to make a custom search by a lot of data some of it from custom fields here is how my $args look like for one of the options:

$args = array(
    'meta_query' => $meta_query,
    'tax_query' => array(
    'posts_per_page' => 10,
    'post_type' => 'ad_listing',
    'orderby' => $orderby,
    'order' => $order,
    'paged' => $paged

where "$meta_query" is:

$key = "your_custom_key"; //custom_color for example
$value = "blue";//or red or any color
$query_color = array('key' => $key, 'value' => $value);
$meta_query[] = $query_color;

and after that:


so you would probably get more info here: and you can search for "meta_query" in the page to get to the info

Add vertical whitespace using Twitter Bootstrap?

My trick. Not elegant, but it works:


Go install fails with error: no install location for directory xxx outside GOPATH

For what it's worth, here's my .bash_profile, that works well for me on a mac with Atom, after installing go with Homebrew:

export GOROOT=`go env GOROOT`
export GOPATH=/Users/yy/Projects/go
export GOBIN=$GOPATH/bin

Finish all activities at a time

There are three solution for clear activity history.

1) You can write finish() at the time of start new activity through intent.

2) Write android:noHistory="true" in all <activity> tag in Androidmanifest.xml file, using this if you are open new activity and you don't write finish() at that time previous activity is always finished, after write your activity look like this.



3) write system.exit(0) for exit from the application.

How to cancel/abort jQuery AJAX request?

I know this might be a little late but i experience similar issues where calling the abort method didnt really aborted the request. instead the browser was still waiting for a response that it never uses. this code resolved that issue.

 try {
        xhr.onreadystatechange = null;
} catch (e) {}

How can I convert an integer to a hexadecimal string in C?

The following code takes an integer and makes a string out of it in hex format:

int  num = 32424;
char hex[5];

sprintf(hex, "%x", num);



How can I display just a portion of an image in HTML/CSS?

One way to do it is to set the image you want to display as a background in a container (td, div, span etc) and then adjust background-position to get the sprite you want.

How do you validate a URL with a regular expression in Python?

urlparse quite happily takes invalid URLs, it is more a string string-splitting library than any kind of validator. For example:

from urlparse import urlparse
# returns: ParseResult(scheme='http', netloc='----', path='', params='', query='', fragment='')

Depending on the situation, this might be fine..

If you mostly trust the data, and just want to verify the protocol is HTTP, then urlparse is perfect.

If you want to make the URL is actually a legal URL, use the ridiculous regex

If you want to make sure it's a real web address,

import urllib
except IOError:
    print "Not a real URL"

Standard way to embed version into python package?

Also worth noting is that as well as __version__ being a semi-std. in python so is __version_info__ which is a tuple, in the simple cases you can just do something like:

__version__ = '1.2.3'
__version_info__ = tuple([ int(num) for num in __version__.split('.')])

...and you can get the __version__ string from a file, or whatever.

How to make <label> and <input> appear on the same line on an HTML form?

I found "display:flex" style is a good way to make these elements in same line. No matter what kind of element in the div. Especially if the input class is form-control,other solutions like bootstrap, inline-block will not work well.


<div style="display:flex; flex-direction: row; justify-content: center; align-items: center">
    <label for="Student">Name:</label>
    <input name="Student" />

More detail about display:flex:

flex-direction: row, column

justify-content: flex-end, center, space-between, space-around

align-items: stretch, flex-start, flex-end, center

load Js file in HTML

If this is your detail.html I don't see where do you load detail.js? Maybe this

<script src="js/index.js"></script>

should be this

<script src="js/detail.js"></script>


Clear variable in python

I used a few options mentioned above :

del self.left

or setting value to None using

self.left = None

It's important to know the differences and put a few exception handlers in place when you use set the value to None. If you're printing the value of the conditional statements using a template, say,

print("The value of the variable is {}".format(self.left))

you might see the value of the variable printing "The value of the variable is None". Thus, you'd have to put a few exception handlers there :

if self.left:
    #Then only print stuff

The above command will only print values if self.left is not None

Debug JavaScript in Eclipse

JavaScript is executed in the browser, which is pretty far removed from Eclipse. Eclipse would have to somehow hook into the browser's JavaScript engine to debug it. Therefore there's no built-in debugging of JavaScript via Eclipse, since JS isn't really its main focus anyways.

However, there are plug-ins which you can install to do JavaScript debugging. I believe the main one is the AJAX Toolkit Framework (ATF). It embeds a Mozilla browser in Eclipse in order to do its debugging, so it won't be able to handle cross-browser complications that typically arise when writing JavaScript, but it will certainly help.

How to get value by class name in JavaScript or jquery?

Try this:

    var yourArray = [];


How to add elements to a list in R (loop)

You should not add to your list using c inside the loop, because that can result in very very slow code. Basically when you do c(l, new_element), the whole contents of the list are copied. Instead of that, you need to access the elements of the list by index. If you know how long your list is going to be, it's best to initialise it to this size using l <- vector("list", N). If you don't you can initialise it to have length equal to some large number (e.g if you have an upper bound on the number of iterations) and then just pick the non-NULL elements after the loop has finished. Anyway, the basic point is that you should have an index to keep track of the list element and add using that eg

i <- 1
while(...) {
    l[[i]] <- new_element
    i <- i + 1

For more info have a look at Patrick Burns' The R Inferno (Chapter 2).

How to check if a specified key exists in a given S3 bucket using Java

Use the jets3t library. Its a lot more easier and robust than the AWS sdk. Using this library you can call, s3service.getObjectDetails(). This will check and retrieve only the details of the object (not the contents) of the object. It will throw a 404 if the object is missing. So you can catch that exception and deal with it in your app.

But in order for this to work, you will need to have ListBucket access for the user on that bucket. Just GetObject access will not work. The reason being, Amazon will prevent you from checking for the presence of the key if you dont have ListBucket access. Just knowing whether a key is present or not, will also suffice for malicious users in some cases. Hence unless they have ListBucket access they will not be able to do so.

A simple command line to download a remote maven2 artifact to the local repository?

As of version 2.4 of the Maven Dependency Plugin, you can also define a target destination for the artifact by using the -Ddest flag. It should point to a filename (not a directory) for the destination artifact. See the parameter page for additional parameters that can be used

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get \
    -DremoteRepositories= \
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT \

How to generate the whole database script in MySQL Workbench?

in mysql workbench server>>>>>>export Data then follow instructions it will generate insert statements for all tables data each table will has .sql file for all its contained data

Get and Set a Single Cookie with Node.js HTTP Server

If you're using the express library, as many node.js developers do, there is an easier way. Check the Express.js documentation page for more information.

The parsing example above works but express gives you a nice function to take care of that:


To set a cookie:

res.cookie('cookiename', 'cookievalue', { maxAge: 900000, httpOnly: true });

To clear the cookie:


Prevent nginx 504 Gateway timeout using PHP set_time_limit()

You can't use PHP to prevent a timeout issued by nginx.

To configure nginx to allow more time see the proxy_read_timeout directive.

How do you get the magnitude of a vector in Numpy?

If you are worried at all about speed, you should instead use:

mag = np.sqrt(

Here are some benchmarks:

>>> import timeit
>>> timeit.timeit('np.linalg.norm(x)', setup='import numpy as np; x = np.arange(100)', number=1000)
>>> timeit.timeit('np.sqrt(', setup='import numpy as np; x = np.arange(100)', number=1000)

EDIT: The real speed improvement comes when you have to take the norm of many vectors. Using pure numpy functions doesn't require any for loops. For example:

In [1]: import numpy as np

In [2]: a = np.arange(1200.0).reshape((-1,3))

In [3]: %timeit [np.linalg.norm(x) for x in a]
100 loops, best of 3: 4.23 ms per loop

In [4]: %timeit np.sqrt((a*a).sum(axis=1))
100000 loops, best of 3: 18.9 us per loop

In [5]: np.allclose([np.linalg.norm(x) for x in a],np.sqrt((a*a).sum(axis=1)))
Out[5]: True

Regular expression: zero or more occurrences of optional character /


If your delimiters are slash-based, escape it:


* means "0 or more of the previous repeatable pattern", which can be a single character, a character class or a group.

git push to specific branch

git push origin amd_qlp_tester will work for you. If you just type git push, then the remote of the current branch is the default value.

Syntax of push looks like this - git push <remote> <branch>. If you look at your remote in .git/config file, you will see an entry [remote "origin"] which specifies url of the repository. So, in the first part of command you will tell Git where to find repository for this project, and then you just specify a branch.

The import javax.persistence cannot be resolved

My solution was to select the maven profiles I had defined in my pom.xml in which I had declared the hibernate dependencies.

CTRL + ALT + P in eclipse.

In my project I was experiencing this problem and many others because in my pom I have different profiles for supporting Glassfish 3, Glassfish 4 and also WildFly so I have differet versions of Hibernate per container as well as different Java compilation targets and so on. Selecting the active maven profiles resolved my issue.

JavaScript equivalent to printf/String.Format

sprintf() function analog in JavaScript as Vue filter and String.prototype.format() extension:

 * Returns a formatted string.
 * @param template
 * @param values
 * @return string
String.format = function (template, ...values) {
    let i = -1;

    function callback(exp, p0, p1, p2, p3, p4) {
        if (exp === '%%') return '%';
        if (values[++i] === undefined) return undefined;

        exp = p2 ? parseInt(p2.substr(1)) : undefined;

        let base = p3 ? parseInt(p3.substr(1)) : undefined;
        let val;

        switch (p4) {
            case 's': val = values[i]; break;
            case 'c': val = values[i][0]; break;
            case 'f': val = parseFloat(values[i]).toFixed(exp); break;
            case 'p': val = parseFloat(values[i]).toPrecision(exp); break;
            case 'e': val = parseFloat(values[i]).toExponential(exp); break;
            case 'x': val = parseInt(values[i]).toString(base ? base : 16); break;
            case 'd': val = parseFloat(parseInt(values[i], base ? base : 10).toPrecision(exp)).toFixed(0); break;
        val = typeof (val) == 'object' ? JSON.stringify(val) : val.toString(base);
        let sz = parseInt(p1); /* padding size */
        let ch = p1 && p1[0] === '0' ? '0' : ' '; /* isnull? */

        while (val.length < sz) val = p0 !== undefined ? val + ch : ch + val; /* isminus? */

        return val;

    let regex = /%(-)?(0?[0-9]+)?([.][0-9]+)?([#][0-9]+)?([scfpexd%])/g;

    return template.replace(regex, callback);

String.prototype.format = function() {
    return String.format(this, ...arguments);

const StringFormat = {
    install: (Vue, options) => {
        Vue.filter('format', function () {
            return String.format(...arguments);

export default StringFormat;

Original answer: JavaScript equivalent to printf/String.Format

SQL Server 2012 column identity increment jumping from 6 to 1000+ on 7th entry

Got the same problem, found the following bug report in SQL Server 2012 If still relevant see conditions that cause the issue - there are some workarounds there as well (didn't try though). Failover or Restart Results in Reseed of Identity

SSIS Connection not found in package

What i did to solve this problem was simple. I had to rename my SQL Server so that it would respond to the (localhos) tag. After that i changed all the connections on the SSIS and i rebuild the worked. hope it helps you

Re-enabling window.alert in Chrome

I can see that this only for actually turning the dialogs back on. But if you are a web dev and you would like to see a way to possibly have some form of notification when these are the case that you are using native alerts/confirms for validation or whatever. Check this solution to detect and notify the user

What is the use of static constructors?

Static constructor called only the first instance of the class created. and used to perform a particular action that needs to be performed only once in the life cycle of the class.

How to stop and restart memcached server?

If you want to be allowed to shutdown the memcached server you can give it that option before start it :

memcached -A &

With this option when you connect to memcached server for example:

telnet localhost 11211

then you can use shutdown command to shutdown the server. You can also shutdown the memcached server when it is run as a process, first find the process PID using:

pidof memcached

then use:

kill PID command

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>

CMake complains "The CXX compiler identification is unknown"

Your /home/gnu/bin/c++ seem to require additional flag to link things properly and CMake doesn't know about that.

To use /usr/bin/c++ as your compiler run cmake with -DCMAKE_CXX_COMPILER=/usr/bin/c++.

Also, CMAKE_PREFIX_PATH variable sets destination dir where your project' files should be installed. It has nothing to do with CMake installation prefix and CMake itself already know this.

How to create local notifications?

    NSMutableArray *allControllers = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
    NSArray *allControllersCopy = [allControllers copy];
    if ([[allControllersCopy lastObject] isKindOfClass: [kundanViewController class]]) 
        [[NSNotificationCenter defaultCenter]postNotificationName:@"kundanViewControllerHide"object:nil userInfo:nil];
        [[NSUserDefaults standardUserDefaults] setInteger:4 forKey:@"selected"];
        [self performSegueWithIdentifier:@"kundansegue" sender:self];

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(ApparelsViewControllerHide) name:@"ApparelsViewControllerHide" object:nil];

Java SecurityException: signer information does not match

I was running JUNIT 5 and was also referencing Hamcrest external jar. But Hamcrest is also part of JUNIT 5 library. So, I have to change the order of external Hamecrest jar file up the JUNIT 5 library in build path.

enter image description here

How to make execution pause, sleep, wait for X seconds in R?

See help(Sys.sleep).

For example, from ?Sys.sleep

testit <- function(x)
    p1 <- proc.time()
    proc.time() - p1 # The cpu usage should be negligible


> testit(3.7)
   user  system elapsed 
  0.000   0.000   3.704 

! [rejected] master -> master (fetch first)

The answer is there, git is telling you to fetch first.

Probably somebody else has pushed to master already, and your commit is behind. Therefore you have to fetch, merge the changeset, and then you'll be able to push again.

If you don't (or even worse, if you force it by using the --force option), you can mess up the commit history.

EDIT: I get into more detail about the last point, since a guy here just gave the Very Bad Advice of using the --force option.

As git is a DVCS, ideally many other developers are working on the same project as you, using the same repository (or a fork of it). If you overwrite forcefully with your changeset, your repository will mismatch other people's, because "you rewrote history". You will make other people unhappy and the repository will suffer. Probably a kitten in the world will cry, too.


  1. If you want to solve, fetch first (and then merge).
  2. If you want to hack, use the --force option.

You asked for the former, though. Go for 1) always, even if you will always use git by yourself, because it is a good practice.

How to view the list of compile errors in IntelliJ?

the "problem view" mentioned in previous answers was helpful, but i saw it didn't catch all the errors in project. After running application, it began populating other classes that had issues but didn't appear at first in that problems view.

Updating an object with setState in React

The first case is indeed a syntax error.

Since I can't see the rest of your component, it's hard to see why you're nesting objects in your state here. It's not a good idea to nest objects in component state. Try setting your initial state to be:

this.state = {
  name: 'jasper',
  age: 28

That way, if you want to update the name, you can just call:

  name: 'Sean'

Will that achieve what you're aiming for?

For larger, more complex data stores, I would use something like Redux. But that's much more advanced.

The general rule with component state is to use it only to manage UI state of the component (e.g. active, timers, etc.)

Check out these references:

How to parse a text file with C#

You could open the file up and use StreamReader.ReadLine to read the file in line-by-line. Then you can use String.Split to break each line into pieces (use a \t delimiter) to extract the second number.

As the number of items is different you would need to search the string for the pattern 'item\*.ddj'.

To delete an item you could (for example) keep all of the file's contents in memory and write out a new file when the user clicks 'Save'.

What's the idiomatic syntax for prepending to a short python list?

If you can go the functional way, the following is pretty clear

new_list = [x] + your_list

Of course you haven't inserted x into your_list, rather you have created a new list with x preprended to it.

Go doing a GET request and building the Querystring

As a commenter mentioned you can get Values from net/url which has an Encode method. You could do something like this (req.URL.Query() returns the existing url.Values)

package main

import (

func main() {
    req, err := http.NewRequest("GET", "", nil)
    if err != nil {

    q := req.URL.Query()
    q.Add("api_key", "key_from_environment_or_flag")
    q.Add("another_thing", "foo & bar")
    req.URL.RawQuery = q.Encode()

    // Output:

SVN Error - Not a working copy

I also meet this problem in svn diff operation, it was caused by incorrect file path, you should add './' to indicate the current file directory.

How to read line by line of a text area HTML tag

Try this.

var lines = $('textarea').val().split('\n');
for(var i = 0;i < lines.length;i++){
    //code here using lines[i] which will give you each line

How to check whether the user uploaded a file in PHP?

You can use is_uploaded_file():

if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {
    echo 'No upload';

From the docs:

Returns TRUE if the file named by filename was uploaded via HTTP POST. This is useful to help ensure that a malicious user hasn't tried to trick the script into working on files upon which it should not be working--for instance, /etc/passwd.

This sort of check is especially important if there is any chance that anything done with uploaded files could reveal their contents to the user, or even to other users on the same system.

EDIT: I'm using this in my FileUpload class, in case it helps:

public function fileUploaded()
    if(empty($_FILES)) {
        return false;       
    $this->file = $_FILES[$this->formField];
    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){
        $this->errors['FileNotExists'] = true;
        return false;
    return true;

How to fire an event on class change using jQuery?

You could replace the original jQuery addClass and removeClass functions with your own that would call the original functions and then trigger a custom event. (Using a self-invoking anonymous function to contain the original function reference)

(function( func ) {
    $.fn.addClass = function() { // replace the existing function on $.fn
        func.apply( this, arguments ); // invoke the original function
        this.trigger('classChanged'); // trigger the custom event
        return this; // retain jQuery chainability
})($.fn.addClass); // pass the original function as an argument

(function( func ) {
    $.fn.removeClass = function() {
        func.apply( this, arguments );
        return this;

Then the rest of your code would be as simple as you'd expect.

$(selector).on('classChanged', function(){ /*...*/ });


This approach does make the assumption that the classes will only be changed via the jQuery addClass and removeClass methods. If classes are modified in other ways (such as direct manipulation of the class attribute through the DOM element) use of something like MutationObservers as explained in the accepted answer here would be necessary.

Also as a couple improvements to these methods:

  • Trigger an event for each class being added (classAdded) or removed (classRemoved) with the specific class passed as an argument to the callback function and only triggered if the particular class was actually added (not present previously) or removed (was present previously)
  • Only trigger classChanged if any classes are actually changed

    (function( func ) {
        $.fn.addClass = function(n) { // replace the existing function on $.fn
            this.each(function(i) { // for each element in the collection
                var $this = $(this); // 'this' is DOM element in this context
                var prevClasses = this.getAttribute('class'); // note its original classes
                var classNames = $.isFunction(n) ? n(i, prevClasses) : n.toString(); // retain function-type argument support
                $.each(classNames.split(/\s+/), function(index, className) { // allow for multiple classes being added
                    if( !$this.hasClass(className) ) { // only when the class is not already present
               $this, className ); // invoke the original function to add the class
                        $this.trigger('classAdded', className); // trigger a classAdded event
                prevClasses != this.getAttribute('class') && $this.trigger('classChanged'); // trigger the classChanged event
            return this; // retain jQuery chainability
    })($.fn.addClass); // pass the original function as an argument
    (function( func ) {
        $.fn.removeClass = function(n) {
            this.each(function(i) {
                var $this = $(this);
                var prevClasses = this.getAttribute('class');
                var classNames = $.isFunction(n) ? n(i, prevClasses) : n.toString();
                $.each(classNames.split(/\s+/), function(index, className) {
                    if( $this.hasClass(className) ) {
               $this, className );
                        $this.trigger('classRemoved', className);
                prevClasses != this.getAttribute('class') && $this.trigger('classChanged');
            return this;

With these replacement functions you can then handle any class changed via classChanged or specific classes being added or removed by checking the argument to the callback function:

$(document).on('classAdded', '#myElement', function(event, className) {
    if(className == "something") { /* do something */ }

Angular ng-if not true

In angular 1, you can use ng-show and ng-hide.In your case, you would use ng-hide. For example:

<li ng-hide="area"></li>

Import mysql DB with XAMPP in command LINE

In Windows, place the MySQL file (i.e. example.sql) in C:\xampp\mysql\bin.

Open the XAMPP Control Panel, and launch Shell:

cd c:\xampp\mysql\bin
mysql --default-character-set=utf8 -h localhost -u username databasename < example.sql

Note: Using --default-character-set=utf8 can help to prevent encoding issues with special characters if you intend on working with UTF-8.

Afterwards, remove the MySQL file from C:\xampp\mysql\bin.

Pandas get topmost n records within each group

Since 0.14.1, you can now do nlargest and nsmallest on a groupby object:

In [23]: df.groupby('id')['value'].nlargest(2)
1   2    3
    1    2
2   6    4
    5    3
3   7    1
4   8    1
dtype: int64

There's a slight weirdness that you get the original index in there as well, but this might be really useful depending on what your original index was.

If you're not interested in it, you can do .reset_index(level=1, drop=True) to get rid of it altogether.

(Note: From 0.17.1 you'll be able to do this on a DataFrameGroupBy too but for now it only works with Series and SeriesGroupBy.)

addClass - can add multiple classes on same div?

You can do

$('.page-address-edit').addClass('test1 test2');

More here:

More than one class may be added at a time, separated by a space, to the set of matched elements, like so:

$("p").addClass("myClass yourClass");

R object identification


It's all you need to remember for 99% of cases.

Create a Path from String in Java7

You can just use the Paths class:

Path path = Paths.get(textPath);

... assuming you want to use the default file system, of course.

How to put img inline with text

This should display the image inline:

.content-dir-item img.mail {
    display: inline-block;
    *display: inline; /* for older IE */
    *zoom: 1; /* for older IE */

php check if array contains all array values from another array

How about this:

function array_keys_exist($searchForKeys = array(), $searchableArray) {
    $searchableArrayKeys = array_keys($searchableArray);

    return count(array_intersect($searchForKeys, $searchableArrayKeys)) == count($searchForKeys); 

How to get the current working directory in Java?

this is current directory name

String path="/home/prasad/Desktop/folderName";
File folder = new File(path);
String folderName=folder.getAbsoluteFile().getName();

this is current directory path

String path=folder.getPath();

What is the purpose of XSD files?

Without XML Schema (XSD file) an XML file is a relatively free set of elements and attributes. The XSD file defines which elements and attributes are permitted and in which order.

In general XML is a metalanguage. XSD files define specific languages within that metalanguage. For example, if your XSD file contains the definition of XHTML 1.0, then your XML file is required to fit XHTML 1.0 rather than some other format.

Couldn't connect to server

Sample solution Press Window+R and type services.msc to view all the services on machine Then find MongoDBServer right click it and start it. Then go to C:\Program Files\MongoDB\Server\4.2\bin and type mongo on command promt.

GCC: array type has incomplete element type

The compiler needs to know the size of the second dimension in your two dimensional array. For example:

void print_graph(g_node graph_node[], double weight[][5], int nodes);

POST request send json data java HttpUrlConnection

I had a similar issue, I was getting 400, Bad Request only with the PUT, where as POST request was perfectly fine.

Below code worked fine for POST but was giving BAD Request for PUT:

conn.setRequestProperty("Content-Type", "application/json");

After making below changes worked fine for both POST and PUT

conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");

Scraping html tables into R data frames using the XML package


# Download page using RCurl
# You may need to set proxy details, etc.,  in the call to getURL
theurl <- ""
webpage <- getURL(theurl)
# Process escape characters
webpage <- readLines(tc <- textConnection(webpage)); close(tc)

# Parse the html tree, ignoring errors on the page
pagetree <- htmlTreeParse(webpage, error=function(...){})

# Navigate your way through the tree. It may be possible to do this more efficiently using getNodeSet
body <- pagetree$children$html$children$body 
divbodyContent <- body$children$div$children[[1]]$children$div$children[[4]]
tables <- divbodyContent$children[names(divbodyContent)=="table"]

#In this case, the required table is the only one with class "wikitable sortable"  
tableclasses <- sapply(tables, function(x) x$attributes["class"])
thetable  <- tables[which(tableclasses=="wikitable sortable")]$table

#Get columns headers
headers <- thetable$children[[1]]$children
columnnames <- unname(sapply(headers, function(x) x$children$text$value))

# Get rows from table
content <- c()
for(i in 2:length(thetable$children))
   tablerow <- thetable$children[[i]]$children
   opponent <- tablerow[[1]]$children[[2]]$children$text$value
   others <- unname(sapply(tablerow[-1], function(x) x$children$text$value)) 
   content <- rbind(content, c(opponent, others))

# Convert to data frame
colnames(content) <- columnnames

Edited to add:

Sample output

                     Opponent Played Won Drawn Lost Goals for Goals against  % Won
    1               Argentina     94  36    24   34       148           150  38.3%
    2                Paraguay     72  44    17   11       160            61  61.1%
    3                 Uruguay     72  33    19   20       127            93  45.8%

How to check if a variable is set in Bash?


I'm giving a heavily Bash-focused answer because of the bash tag.

Short answer

As long as you're only dealing with named variables in Bash, this function should always tell you if the variable has been set, even if it's an empty array.

variable-is-set() {
    declare -p "$1" &>/dev/null

Why this works

In Bash (at least as far back as 3.0), if var is a declared/set variable, then declare -p var outputs a declare command that would set variable var to whatever its current type and value are, and returns status code 0 (success). If var is undeclared, then declare -p var outputs an error message to stderr and returns status code 1. Using &>/dev/null, redirects both regular stdout and stderr output to /dev/null, never to be seen, and without changing the status code. Thus the function only returns the status code.

Why other methods (sometimes) fail in Bash

  • [ -n "$var" ]: This only checks if ${var[0]} is nonempty. (In Bash, $var is the same as ${var[0]}.)
  • [ -n "${var+x}" ]: This only checks if ${var[0]} is set.
  • [ "${#var[@]}" != 0 ]: This only checks if at least one index of $var is set.

When this method fails in Bash

This only works for named variables (including $_), not certain special variables ($!, $@, $#, $$, $*, $?, $-, $0, $1, $2, ..., and any I may have forgotten). Since none of these are arrays, the POSIX-style [ -n "${var+x}" ] works for all of these special variables. But beware of wrapping it in a function since many special variables change values/existence when functions are called.

Shell compatibility note

If your script has arrays and you're trying to make it compatible with as many shells as possible, then consider using typeset -p instead of declare -p. I've read that ksh only supports the former, but haven't been able to test this. I do know that Bash 3.0+ and Zsh 5.5.1 each support both typeset -p and declare -p, differing only in which one is an alternative for the other. But I haven't tested differences beyond those two keywords, and I haven't tested other shells.

If you need your script to be POSIX sh compatible, then you can't use arrays. Without arrays, [ -n "{$var+x}" ] works.

Comparison code for different methods in Bash

This function unsets variable var, evals the passed code, runs tests to determine if var is set by the evald code, and finally shows the resulting status codes for the different tests.

I'm skipping test -v var, [ -v var ], and [[ -v var ]] because they yield identical results to the POSIX standard [ -n "${var+x}" ], while requiring Bash 4.2+. I'm also skipping typeset -p because it's the same as declare -p in the shells I've tested (Bash 3.0 thru 5.0, and Zsh 5.5.1).

is-var-set-after() {
    # Set var by passed expression.
    unset var
    eval "$1"

    # Run the tests, in increasing order of accuracy.
    [ -n "$var" ] # (index 0 of) var is nonempty
    [ -n "${var+x}" ] # (index 0 of) var is set, maybe empty
    [ "${#var[@]}" != 0 ] # var has at least one index set, maybe empty
    declare -p var &>/dev/null # var has been declared (any type)

    # Show test results.
    printf '%30s: %2s %2s %2s %2s\n' "$1" $nonempty $plus $count $declared

Test case code

Note that test results may be unexpected due to Bash treating non-numeric array indices as "0" if the variable hasn't been declared as an associative array. Also, associative arrays are only valid in Bash 4.0+.

# Header.
printf '%30s: %2s %2s %2s %2s\n' "test" '-n' '+x' '#@' '-p'
# First 5 tests: Equivalent to setting 'var=foo' because index 0 of an
# indexed array is also the nonindexed value, and non-numerical
# indices in an array not declared as associative are the same as
# index 0.
is-var-set-after "var=foo"                        #  0  0  0  0
is-var-set-after "var=(foo)"                      #  0  0  0  0
is-var-set-after "var=([0]=foo)"                  #  0  0  0  0
is-var-set-after "var=([x]=foo)"                  #  0  0  0  0
is-var-set-after "var=([y]=bar [x]=foo)"          #  0  0  0  0
# '[ -n "$var" ]' fails when var is empty.
is-var-set-after "var=''"                         #  1  0  0  0
is-var-set-after "var=([0]='')"                   #  1  0  0  0
# Indices other than 0 are not detected by '[ -n "$var" ]' or by
# '[ -n "${var+x}" ]'.
is-var-set-after "var=([1]='')"                   #  1  1  0  0
is-var-set-after "var=([1]=foo)"                  #  1  1  0  0
is-var-set-after "declare -A var; var=([x]=foo)"  #  1  1  0  0
# Empty arrays are only detected by 'declare -p'.
is-var-set-after "var=()"                         #  1  1  1  0
is-var-set-after "declare -a var"                 #  1  1  1  0
is-var-set-after "declare -A var"                 #  1  1  1  0
# If 'var' is unset, then it even fails the 'declare -p var' test.
is-var-set-after "unset var"                      #  1  1  1  1

Test output

The test mnemonics in the header row correspond to [ -n "$var" ], [ -n "${var+x}" ], [ "${#var[@]}" != 0 ], and declare -p var, respectively.

                         test: -n +x #@ -p
                      var=foo:  0  0  0  0
                    var=(foo):  0  0  0  0
                var=([0]=foo):  0  0  0  0
                var=([x]=foo):  0  0  0  0
        var=([y]=bar [x]=foo):  0  0  0  0
                       var='':  1  0  0  0
                 var=([0]=''):  1  0  0  0
                 var=([1]=''):  1  1  0  0
                var=([1]=foo):  1  1  0  0
declare -A var; var=([x]=foo):  1  1  0  0
                       var=():  1  1  1  0
               declare -a var:  1  1  1  0
               declare -A var:  1  1  1  0
                    unset var:  1  1  1  1


  • declare -p var &>/dev/null is (100%?) reliable for testing named variables in Bash since at least 3.0.
  • [ -n "${var+x}" ] is reliable in POSIX compliant situations, but cannot handle arrays.
  • Other tests exist for checking if a variable is nonempty, and for checking for declared variables in other shells. But these tests are suited for neither Bash nor POSIX scripts.

What does ==$0 (double equals dollar zero) mean in Chrome Developer Tools?

I will say It 's just shorthand syntax for get reference of html element during debugging time , normaly these kind of task will perform by these method

document.getElementById , document.getElementsByClassName , document.querySelector

so clicking on an html element and getting a reference variable ($0) in console is a huge time saving during the day

Separating class code into a header and cpp file

It's important to point out to readers stumbling upon this question when researching the subject in a broader fashion that the accepted answer's procedure is not required in the case you just want to split your project into files. It's only needed when you need multiple implementations of single classes. If your implementation per class is one, just one header file for each is enough.

Hence, from the accepted answer's example only this part is needed:

#ifndef MYHEADER_H
#define MYHEADER_H

//Class goes here, full declaration AND implementation


The #ifndef etc. preprocessor definitions allow it to be used multiple times.

PS. The topic becomes clearer once you realize C/C++ is 'dumb' and #include is merely a way to say "dump this text at this spot".

Is an empty href valid?

Try to do <a href="#" class="arrow"> instead. (Note the sharp # character).

Java converting int to hex and back again

Try using BigInteger class, it works.

int Val=-32768;
String Hex=Integer.toHexString(Val);

//int FirstAttempt=Integer.parseInt(Hex,16); // Error "Invalid Int"
//int SecondAttempt=Integer.decode("0x"+Hex);  // Error "Invalid Int"
BigInteger i = new BigInteger(Hex,16);

How to wait for 2 seconds?

As mentioned in other answers, all of the following will work for the standard string-based syntax.

WAITFOR DELAY '02:00' --Two hours
WAITFOR DELAY '00:02' --Two minutes
WAITFOR DELAY '00:00:02' --Two seconds
WAITFOR DELAY '00:00:00.200' --Two tenths of a seconds

There is also an alternative method of passing it a DATETIME value. You might think I'm confusing this with WAITFOR TIME, but it also works for WAITFOR DELAY.

Considerations for passing DATETIME:

  • It must be passed as a variable, so it isn't a nice one-liner anymore.
  • The delay is measured as the time since the Epoch ('1900-01-01').
  • For situations that require a variable amount of delay, it is much easier to manipulate a DATETIME than to properly format a VARCHAR.

How to wait for 2 seconds:

--Example 1
SELECT @Delay1 = '1900-01-01 00:00:02.000'

--Example 2
SELECT @Delay2 = dateadd(SECOND, 2, convert(DATETIME, 0))

A note on waiting for TIME vs DELAY:

Have you ever noticed that if you accidentally pass WAITFOR TIME a date that already passed, even by just a second, it will never return? Check it out:

--Example 3
SELECT @Time1 = getdate()
WAITFOR DELAY '00:00:01'

Unfortunately, WAITFOR DELAY will do the same thing if you pass it a negative DATETIME value (yes, that's a thing).

--Example 4
SELECT @Delay3 = dateadd(SECOND, -1, convert(DATETIME, 0))

However, I would still recommend using WAITFOR DELAY over a static time because you can always confirm your delay is positive and it will stay that way for however long it takes your code to reach the WAITFOR statement.

How to remove leading and trailing whitespace in a MySQL field?

Please understand the use case before using this solution:

trim does not work while doing select query

This works

select replace(name , ' ','') from test;

While this doesn't

select trim(name) from test;

How to convert Django Model object to dict with its fields and values?

Maybe this help you. May this not covert many to many relantionship, but es pretty handy when you want to send your model in json format.

def serial_model(modelobj):
  opts = modelobj._meta.fields
  modeldict = model_to_dict(modelobj)
  for m in opts:
    if m.is_relation:
        foreignkey = getattr(modelobj,
        if foreignkey:
                modeldict[] = serial_model(foreignkey)
  return modeldict

How do I bind a WPF DataGrid to a variable number of columns?

There is a sample of the way I do programmatically:

public partial class UserControlWithComboBoxColumnDataGrid : UserControl
    private Dictionary<int, string> _Dictionary;
    private ObservableCollection<MyItem> _MyItems;
    public UserControlWithComboBoxColumnDataGrid() {
      _Dictionary = new Dictionary<int, string>();
      _MyItems = new ObservableCollection<MyItem>();
      dataGridMyItems.AutoGeneratingColumn += DataGridMyItems_AutoGeneratingColumn;
      dataGridMyItems.ItemsSource = _MyItems;

private void DataGridMyItems_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
            var desc = e.PropertyDescriptor as PropertyDescriptor;
            var att = desc.Attributes[typeof(ColumnNameAttribute)] as ColumnNameAttribute;
            if (att != null)
                if (att.Name == "My Combobox Item") {
                    var comboBoxColumn =  new DataGridComboBoxColumn {
                        DisplayMemberPath = "Value",
                        SelectedValuePath = "Key",
                        ItemsSource = _ApprovalTypes,
                        SelectedValueBinding =  new Binding( "Bazinga"),   
                    e.Column = comboBoxColumn;


public class MyItem {
    public string Name{get;set;}
    [ColumnName("My Combobox Item")]
    public int Bazinga {get;set;}

  public class ColumnNameAttribute : Attribute
        public string Name { get; set; }
        public ColumnNameAttribute(string name) { Name = name; }

What is the proper way to comment functions in Python?

The correct way to do it is to provide a docstring. That way, help(add) will also spit out your comment.

def add(self):
    """Create a new user.
    Line 2 of comment...
    And so on... 

That's three double quotes to open the comment and another three double quotes to end it. You can also use any valid Python string. It doesn't need to be multiline and double quotes can be replaced by single quotes.

See: PEP 257

Adobe Reader Command Line Reference

To open a PDF at page 100 the follow works

<path to Adobe Reader> /A "page=100" "<Path To PDF file>"

If you require more than one argument separate them with &

I use the following in a batch file to open the book I'm reading to the page I was up to.

C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe /A "page=149&pagemode=none" "D:\books\MCTS(70-562) ASP.Net 3.5 Development.pdf"

The best list of command line args for Adobe Reader I have found is here.

It's for version 7 but all the arguments I tried worked.

As for closing the file, I think you will need to use the SDK, or if you are opening the file from code you could close the file from code once you have finished with it.

How can I refresh c# dataGridView after update ?

I don't know if this has really been solved or not... but by looking at all the other answers, nothing seems quite clear. The best way I found to do this is to put the same code, that was used to populate your datagridview into a method and pass it your form's datagridview, as so:

public void ConnectAndPopulateDataGridView(DataGridView dataGridView)
{ }

The code within the method is the exact same as the code used to populate the datagirdview originally, except for the datagridview name changing to whatever you called it in your method.

Now this method is called in your parent form.

The child form is launched via a .ShowDialog() then the method is called after so that it is called right after the child for is closed... as so:



How to sort an array of objects in Java?

Sometimes you want to sort an array of objects on an arbitrary value. Since compareTo() always uses the same information about the instance, you might want to use a different technique. One way is to use a standard sorting algorithm. Let's say you have an array of books and you want to sort them on their height, which is stored as an int and accessible through the method getHeight(). Here's how you could sort the books in your array. (If you don't want to change the original array, simply make a copy and sort that.)

`int tallest; // the index of tallest book found thus far
 Book temp; // used in the swap
 for(int a = 0; a < booksArray.length - 1; a++) {
   tallest = a; // reset tallest to current index
   // start inner loop at next index
   for(int b = a + 1; b < booksArray.length; b++)
     // check if the book at this index is taller than the
     // tallest found thus far
     if(booksArray[b].getHeight() > booksArray[tallest].getHeight())
       tallest = b;
   // once inner loop is complete, swap the tallest book found with
   // the one at the current index of the outer loop
   temp = booksArray[a];
   booksArray[a] = booksArray[tallest];
   booksArray[tallest] = temp;

When this code is done, the array of Book object will be sorted by height in descending order--an interior designer's dream!

Excel VBA - Pass a Row of Cell Values to an Array and then Paste that Array to a Relative Reference of Cells

When i Tried your Code i got en Error when i wanted to fill the Array.

you can try to fill the Array like This.

Sub Testing_Data()
Dim k As Long, S2 As Worksheet, VArray

Application.ScreenUpdating = False
Set S2 = ThisWorkbook.Sheets("Sheet1")
With S2
    VArray = .Range("A1:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
End With
For k = 2 To UBound(VArray, 1)
    S2.Cells(k, "B") = VArray(k, 1) / 100
    S2.Cells(k, "C") = VArray(k, 1) * S2.Cells(k, "B")

End Sub

How to load local file in sc.textFile, instead of HDFS

This has happened to me with Spark 2.3 with Hadoop also installed under the common "hadoop" user home directory.Since both Spark and Hadoop was installed under the same common directory, Spark by default considers the scheme as hdfs, and starts looking for the input files under hdfs as specified by fs.defaultFS in Hadoop's core-site.xml. Under such cases, we need to explicitly specify the scheme as file:///<absoloute path to file>.

SQL Server: UPDATE a table by using ORDER BY

I had a similar problem and solved it using ROW_NUMBER() in combination with the OVER keyword. The task was to retrospectively populate a new TicketNo (integer) field in a simple table based on the original CreatedDate, and grouped by ModuleId - so that ticket numbers started at 1 within each Module group and incremented by date. The table already had a TicketID primary key (a GUID).

Here's the SQL:

UPDATE Tickets SET TicketNo=T2.RowNo
FROM Tickets
  (select TicketID, TicketNo, 
     ROW_NUMBER() OVER (PARTITION BY ModuleId ORDER BY DateCreated) AS RowNo from Tickets) 
  AS T2 ON T2.TicketID = Tickets.TicketID

Worked a treat!

Display image at 50% of its "native" size

It's somewhat weird, but it seems that Webkit, at least in newest stable version of Chrome, supports Microsoft's zoom property. The good news is that its behaviour is closer to what you want.

Unfortunately DOM clientWidth and similar properties still return the original values as if the image was not resized.

// hack: wait a moment for img to load_x000D_
setTimeout(function() {_x000D_
   var img = document.getElementsByTagName("img")[0];_x000D_
   document.getElementById("c").innerHTML = "clientWidth, clientHeight = " + img.clientWidth + ", " +_x000D_
}, 1000);
img {_x000D_
  zoom: 50%;_x000D_
/* -- not important below -- */_x000D_
#t {_x000D_
  width: 400px;_x000D_
  height: 300px;_x000D_
  background-color: #F88;_x000D_
#s {_x000D_
  width: 200px;_x000D_
  height: 150px;_x000D_
  background-color: #8F8;_x000D_
<img src="data:image/png;base64,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" />_x000D_
<div id="s">div with explicit size for comparison 200px by 150px</div>_x000D_
<div id="t">div with explicit size for comparison 400px by 300px</div>_x000D_
<div id="c"></div>

Reading JSON from a file?

The json.load() method (without "s" in "load") can read a file directly:

import json

with open('strings.json') as f:
    d = json.load(f)

You were using the json.loads() method, which is used for string arguments only.

Edit: The new message is a totally different problem. In that case, there is some invalid json in that file. For that, I would recommend running the file through a json validator.

There are also solutions for fixing json like for example How do I automatically fix an invalid JSON string?.

Call to undefined function curl_init().?

If you're on Windows:

Go to your php.ini file and remove the ; mark from the beginning of the following line:


After you have saved the file you must restart your HTTP server software (e.g. Apache) before this can take effect.

For Ubuntu 13.0 and above, simply use the debundled package. In a terminal type the following to install it and do not forgot to restart server.

sudo apt-get install php-curl

Or if you're using the old PHP5

sudo apt-get install php5-curl


sudo apt-get install php5.6-curl

Then restart apache to activate the package with

sudo service apache2 restart

How to flatten only some dimensions of a numpy array

A slight generalization to Peter's answer -- you can specify a range over the original array's shape if you want to go beyond three dimensional arrays.

e.g. to flatten all but the last two dimensions:

arr = numpy.zeros((3, 4, 5, 6))
new_arr = arr.reshape(-1, *arr.shape[-2:])
# (12, 5, 6)

EDIT: A slight generalization to my earlier answer -- you can, of course, also specify a range at the beginning of the of the reshape too:

arr = numpy.zeros((3, 4, 5, 6, 7, 8))
new_arr = arr.reshape(*arr.shape[:2], -1, *arr.shape[-2:])
# (3, 4, 30, 7, 8)

How to extract the n-th elements from a list of tuples?

Using islice and chain.from_iterable:

>>> from itertools import chain, islice
>>> elements = [(1,1,1),(2,3,7),(3,5,10)]
>>> list(chain.from_iterable(islice(item, 1, 2) for item in elements))
[1, 3, 5]

This can be useful when you need more than one element:

>>> elements = [(0, 1, 2, 3, 4, 5), 
                (10, 11, 12, 13, 14, 15), 
                (20, 21, 22, 23, 24, 25)]
>>> list(chain.from_iterable(islice(tuple_, 2, 5) for tuple_ in elements))
[2, 3, 4, 12, 13, 14, 22, 23, 24]

XMLHttpRequest cannot load file. Cross origin requests are only supported for HTTP

I was facing this error while I deployed my Web API project locally and I was calling API project only with this URL given below:


Since the error message says it is not http:// then I changed the URL and put a prefix http as given below and the error was gone.


How do I auto size a UIScrollView to fit its content

I came up with another solution based on @emenegro's solution

NSInteger maxY = 0;
for (UIView* subview in scrollView.subviews)
    if (CGRectGetMaxY(subview.frame) > maxY)
        maxY = CGRectGetMaxY(subview.frame);
maxY += 10;
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width, maxY)];

Basically, we figure out which element is furthest down in the view and adds a 10px padding to the bottom

C default arguments

Short answer: No.

Slightly longer answer: There is an old, old workaround where you pass a string that you parse for optional arguments:

int f(int arg1, double arg2, char* name, char *opt);

where opt may include "name=value" pair or something, and which you would call like

n = f(2,3.0,"foo","plot=yes save=no");

Obviously this is only occasionally useful. Generally when you want a single interface to a family of functionality.

You still find this approach in particle physics codes that are written by professional programs in c++ (like for instance ROOT). It's main advantage is that it may be extended almost indefinitely while maintaining back compatibility.

Javascript array sort and unique

Try using an external library like underscore

var f = _.compose(_.uniq, function(array) {
    return _.sortBy(array, _.identity);

var sortedUnique = f(array);

This relies on _.compose, _.uniq, _.sortBy, _.identity

See live example

What is it doing?

We want a function that takes an array and then returns a sorted array with the non-unique entries removed. This function needs to do two things, sorting and making the array unique.

This is a good job for composition, so we compose the unique & sort function together. _.uniq can just be applied on the array with one argument so it's just passed to _.compose

the _.sortBy function needs a sorting conditional functional. it expects a function that returns a value and the array will be sorted on that value. Since the value that we are ordering it by is the value in the array we can just pass the _.identity function.

We now have a composition of a function that (takes an array and returns a unique array) and a function that (takes an array and returns a sorted array, sorted by their values).

We simply apply the composition on the array and we have our uniquely sorted array.

Android button with icon and text

For anyone looking to do this dynamically then setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom) on the buttons object will assist.


Button search = (Button) findViewById(;

I can pass a variable from a JSP scriptlet to JSTL but not from JSTL to a JSP scriptlet without an error

Scripts are raw java embedded in the page code, and if you declare variables in your scripts, then they become local variables embedded in the page.

In contrast, JSTL works entirely with scoped attributes, either at page, request or session scope. You need to rework your scriptlet to fish test out as an attribute:

<c:set var="test" value="test1"/>
  String resp = "abc";
  String test = pageContext.getAttribute("test");
  resp = resp + test;
  pageContext.setAttribute("resp", resp);
<c:out value="${resp}"/>

If you look at the docs for <c:set>, you'll see you can specify scope as page, request or session, and it defaults to page.

Better yet, don't use scriptlets at all: they make the baby jesus cry.

How can I get the count of line in a file in an efficient way?


Java 8+ has a nice and short way using NIO using Files.lines. Note that you have to close the stream using try-with-resources:

long lineCount;
try (Stream<String> stream = Files.lines(path, StandardCharsets.UTF_8)) {
  lineCount = stream.count();

If you don't specify the character encoding, the default one used is UTF-8. You may specify an alternate encoding to match your particular data file as shown in the example above.

Running .sh scripts in Git Bash

I had a similar problem, but I was getting an error message

cannot execute binary file

I discovered that the filename contained non-ASCII characters. When those were fixed, the script ran fine with ./

Java List.add() UnsupportedOperationException

Not every List implementation supports the add() method.

One common example is the List returned by Arrays.asList(): it is documented not to support any structural modification (i.e. removing or adding elements) (emphasis mine):

Returns a fixed-size list backed by the specified array.

Even if that's not the specific List you're trying to modify, the answer still applies to other List implementations that are either immutable or only allow some selected changes.

You can find out about this by reading the documentation of UnsupportedOperationException and List.add(), which documents this to be an "(optional operation)". The precise meaning of this phrase is explained at the top of the List documentation.

As a workaround you can create a copy of the list to a known-modifiable implementation like ArrayList:

seeAlso = new ArrayList<>(seeAlso);

Javascript extends class

Douglas Crockford has some very good explanations of inheritance in JavaScript:

  1. prototypal inheritance: the 'natural' way to do things in JavaScript
  2. classical inheritance: closer to what you find in most OO languages, but kind of runs against the grain of JavaScript

Playing .mp3 and .wav in Java?

The easiest way I found was to download the JLayer jar file from and to add it to the Jar library

Here is the code for the class

public class SimplePlayer {

    public SimplePlayer(){


             FileInputStream fis = new FileInputStream("File location.");
             Player playMP3 = new Player(fis);


        }  catch(Exception e){

and here are the imports

import javazoom.jl.player.*;

Good Hash Function for Strings

Its a good idea to work with odd number when trying to develop a good hast function for string. this function takes a string and return a index value, so far its work pretty good. and has less collision. the index ranges from 0 - 300 maybe even more than that, but i haven't gotten any higher so far even with long words like "electromechanical engineering"

int keyHash(string key)
    unsigned int k = (int)key.length();
    unsigned int u = 0,n = 0;

    for (Uint i=0; i<k; i++)
        n = (int)key[i];
        u += 7*n%31;
    return u%139;

another thing you can do is multiplying each character int parse by the index as it increase like the word "bear" (0*b) + (1*e) + (2*a) + (3*r) which will give you an int value to play with. the first hash function above collide at "here" and "hear" but still great at give some good unique values. the one below doesn't collide with "here" and "hear" because i multiply each character with the index as it increases.

int keyHash(string key)
    unsigned int k = (int)key.length();
    unsigned int u = 0,n = 0;

    for (Uint i=0; i<k; i++)
        n = (int)key[i];
        u += i*n%31;
    return u%139;

Missing XML comment for publicly visible type or member

Jon Skeet's answer works great for when you're building with VisualStudio. However, if you're building the sln via the command line (in my case it was via Ant) then you may find that msbuild ignores the sln supression requests.

Adding this to the msbuild command line solved the problem for me:


Copy row but with new id

SET @table = 'the_table';
                  WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = @table INTO @columns;
SET @s = CONCAT('INSERT INTO ', @table, ' SELECT ', @columns,' FROM ', @table, ' WHERE id=1');

How to set image width to be 100% and height to be auto in react native?

For image tag you can use this type of style, it worked for me:

imageStyle: {
    width: Dimensions.get('window').width - 23,
    resizeMode: "contain",
    height: 211,

How to position a div in bottom right corner of a browser?

This snippet works in IE7 at least

<!DOCTYPE html>
<meta charset=utf-8 />
  #foo {
    position: fixed;
    bottom: 0;
    right: 0;
  <div id="foo">Hello World</div>

how to set select element as readonly ('disabled' doesnt pass select value on server)

You can simulate a readonly select box using the CSS pointer-events property:

    pointer-events: none;

The HTML tabindex property will also prevent it from being selected by keyboard tabbing:

<select tabindex="-1">

    pointer-events: none;_x000D_
/* irrelevent styling */_x000D_
  box-sizing: border-box;_x000D_
  background: #fafafa;_x000D_
  border: 1px solid #ccc;_x000D_
  color: #555;_x000D_
input, select_x000D_
  width: 20rem;_x000D_
  padding: 0.5rem;_x000D_
  margin-bottom: 1rem;_x000D_
  <input type="text" value="this is a normal text box">_x000D_
  <input type="text" readonly value="this is a readonly text box">_x000D_
  <select readonly tabindex="-1">_x000D_
    <option>This is a readonly select box</option>_x000D_
    <option>Option 2</option>_x000D_
    <option>This is a normal select box</option>_x000D_
    <option>Option 2</option>_x000D_

Change label text using JavaScript

Have you tried .innerText or .value instead of .innerHTML?

How to check if a string contains a substring in Bash

So there are lots of useful solutions to the question - but which is fastest / uses the fewest resources?

Repeated tests using this frame:

/usr/bin/time bash -c 'a=two;b=onetwothree; x=100000; while [ $x -gt 0 ]; do TEST ; x=$(($x-1)); done'

Replacing TEST each time:

[[ $b =~ $a ]]           2.92 user 0.06 system 0:02.99 elapsed 99% CPU

[ "${b/$a//}" = "$b" ]   3.16 user 0.07 system 0:03.25 elapsed 99% CPU

[[ $b == *$a* ]]         1.85 user 0.04 system 0:01.90 elapsed 99% CPU

case $b in *$a):;;esac   1.80 user 0.02 system 0:01.83 elapsed 99% CPU

doContain $a $b          4.27 user 0.11 system 0:04.41 elapsed 99%CPU

(doContain was in F. Houri's answer)

And for giggles:

echo $b|grep -q $a       12.68 user 30.86 system 3:42.40 elapsed 19% CPU !ouch!

So the simple substitution option predictably wins whether in an extended test or a case. The case is portable.

Piping out to 100000 greps is predictably painful! The old rule about using external utilities without need holds true.

If table exists drop table then create it, if it does not exist just create it


CREATE TABLE `foo` ( ... );

Try searching the MySQL documentation first if you have any other problems.

accessing a docker container from another container

Using docker-compose, services are exposed to each other by name by default. Docs.
You could also specify an alias like;

version: '2.1'
    image: mongo:3.2.11
    image: redis:3.2.10
    image: some-image
      - mongo
      - solr
      - ""
      - ""
      - "some-service:some-alias"

And then access the service using the specified alias as a host name, e.g for mongo in this case.

PyCharm import external library

In my case, the correct menu path was:

File > Default settings > Project Interpreter

How to create multiple class objects with a loop in python?

Creating a dictionary as it has mentioned, but in this case each key has the name of the object name that you want to create. Then the value is set as the class you want to instantiate, see for example:

class MyClass:
   def __init__(self, name): = name
       self.checkme = 'awesome {}'.format(

instanceNames = ['red', 'green', 'blue']

# Here you use the dictionary
holder = {name: MyClass(name=name) for name in instanceNames}

Then you just call the holder key and you will have all the properties and methods of your class available for you.



'awesome red'

Running Git through Cygwin from Windows

I can tell you from personal experience this is a bad idea. Native Windows programs cannot accept Cygwin paths. For example with Cygwin you might run a command

grep -r --color foo /opt

with no issue. With Cygwin / represents the root directory. Native Windows programs have no concept of this, and will likely fail if invoked this way. You should not mix Cygwin and Native Windows programs unless you have no other choice.

Uninstall what Git you have and install the Cygwin git package, save yourself the headache.

What does %s mean in a python format string?

The format method was introduced in Python 2.6. It is more capable and not much more difficult to use:

>>> "Hello {}, my name is {}".format('john', 'mike')
'Hello john, my name is mike'.

>>> "{1}, {0}".format('world', 'Hello')
'Hello, world'

>>> "{greeting}, {}".format('world', greeting='Hello')
'Hello, world'

>>> '%s' % name
"{'s1': 'hello', 's2': 'sibal'}"
>>> '%s' %name['s1']

TypeError: 'int' object is not subscriptable

Just to be clear, all the answers so far are correct, but the reasoning behind them is not explained very well.

The sumall variable is not yet a string. Parentheticals will not convert to a string (e.g. summ = (int(birthday[0])+int(birthday[1])) still returns an integer. It looks like you most likely intended to type str((int(sumall[0])+int(sumall[1]))), but forgot to. The reason the str() function fixes everything is because it converts anything in it compatible to a string.

Why can't I shrink a transaction log file, even after backup?

This answer has been lifted from here and is posted here in case the other thread gets deleted:

The fact that you have non-distributed LSN in the log is the problem. I have seen this once before not sure why we dont unmark the transaction as replicated. We will investigate this internally. You can execute the following command to unmark the transaction as replicated

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1

At this point you should be able to truncate the log.

How can I reuse a navigation bar on multiple pages?

You can use php for making multi-page website.

  • Create a header.php in which you should put all your html code for menu's and social media etc
  • Insert header.php in your index.php using following code

<? php include 'header.php'; ?>

(Above code will dump all html code before this)Your site body content.

  • Similarly you can create footer and other elements with ease. PHP built-in support html code in their extensions. So, better learn this easy fix.

How to get the parent dir location

Use the following to jump to previous folder:


If you need multiple jumps a good and easy solution will be to use a simple decorator in this case.

http post - how to send Authorization header?

I believe you need to map the result before you subscribe to it. You configure it like this:

  updateProfileInformation(user: User) {
    var headers = new Headers();
    headers.append('Content-Type', this.constants.jsonContentType);

    var t = localStorage.getItem("accessToken");
    headers.append("Authorization", "Bearer " + t;
    var body = JSON.stringify(user);

    return + "UpdateUser", body, { headers: headers })
      .map((response: Response) => {
        var result = response.json();
        return result;
      status => this.statusMessage = status,
      error => this.errorMessage = error,
      () => this.completeUpdateUser()

How to count the number of letters in a string without the spaces?

I found this is working perfectly

str = "count a character occurance"
str = str.replace(' ', '')
print (str)
print (len(str))

How to find the parent element using javascript

Using plain javascript:


In jQuery:


View contents of database file in Android Studio

I know the question is rather old but I believe this issue is still present.

Viewing databases from your browser

I created a development tool that you can integrate as a lib into your android app project. The tool opens a server socket in your app to communicate via web browser. You can browse through your whole database and download the database file directly through the browser.

enter image description here

Integration can be done via

project build.gradle:

allprojects {
    repositories {
        maven { url '' }

app build.gradle:

dependencies {
    debugCompile 'com.github.sanidgmbh:debugghost:v1.1'

Setup Application class

In order to only compile DebugGhostLib in certain build-types or product-flavours we need an abstract Application class which will be derived in the special flavours. Put the following class in your main folder (under java >

public class AbstractDebugGhostExampleApplication extends Application {
    public void onCreate() {
        // Do your general application stuff

Now, for your release build type (or product flavour), you add the following Application class to your release (or product-flavour) folder (also under java >

public class MyApp extends AbstractDebugGhostExampleApplication {
    public void onCreate() {

This is the application class that will not reference DebugGhostLib.

Also tell your AndroidManifest.xml that you're using your own application class. This will be done in your main folder:

<manifest package="" xmlns:android="">
    <!-- permissions go here -->
    <application android:name=".MyApp"> <!-- register your own application class -->
        <!-- your activities go here -->

Now, for your debug build type (or product flavour), you add the following Application class to your debug (or product-flavour) folder (also under java >

public class MyApp extends AbstractDebugGhostExampleApplication {
    private DebugGhostBridge mDebugGhostBridge;

    public void onCreate() {

        mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION);

You can get the tool here.

What is REST call and how to send a REST call?

REST is somewhat of a revival of old-school HTTP, where the actual HTTP verbs (commands) have semantic meaning. Til recently, apps that wanted to update stuff on the server would supply a form containing an 'action' variable and a bunch of data. The HTTP command would almost always be GET or POST, and would be almost irrelevant. (Though there's almost always been a proscription against using GET for operations that have side effects, in reality a lot of apps don't care about the command used.)

With REST, you might instead PUT /profiles/cHao and send an XML or JSON representation of the profile info. (Or rather, I would -- you would have to update your own profile. :) That'd involve logging in, usually through HTTP's built-in authentication mechanisms.) In the latter case, what you want to do is specified by the URL, and the request body is just the guts of the resource involved. has some details.

Remove all special characters except space from a string using JavaScript

I don't know JavaScript, but isn't it possible using regex?

Something like [^\w\d\s] will match anything but digits, characters and whitespaces. It would be just a question to find the syntax in JavaScript.

Apply function to all elements of collection through LINQ

I found some way to perform in on dictionary contain my custom class methods

foreach (var item in this.Values.Where(p => p.IsActive == false))

Where 'this' derived from : Dictionary<string, MyCustomClass>

class MyCustomClass 
   public void Refresh(){}

How to disable an input type=text?

If you know this when the page is rendered, which it sounds like you do because the database has a value, it's better to disable it when rendered instead of JavaScript. To do that, just add the readonly attribute (or disabled, if you want to remove it from the form submission as well) to the <input>, like this:

<input type="text" disabled="disabled" />
<input type="text" readonly="readonly" />

ORA-03113: end-of-file on communication channel after long inactivity in ASP.Net app

You could try this registry hack:


If it works, just keep increasing the KeepAliveTime. It is currently set for 2 minutes.

Image change every 30 seconds - loop

I agree with using frameworks for things like this, just because its easier. I hacked this up real quick, just fades an image out and then switches, also will not work in older versions of IE. But as you can see the code for the actual fade is much longer than the JQuery implementation posted by KARASZI István.

function changeImage() {
    var img = document.getElementById("img");
    img.src = images[x];
    if(x >= images.length) {
        x = 0;
    fadeImg(img, 100, true);
    setTimeout("changeImage()", 30000);

function fadeImg(el, val, fade) {
    if(fade === true) {
    } else {
        val ++;
    if(val > 0 && val < 100) { = val / 100;
        setTimeout(function(){ fadeImg(el, val, fade); }, 10);

var images = [], x = 0;
images[0] = "image1.jpg";
images[1] = "image2.jpg";
images[2] = "image3.jpg";
setTimeout("changeImage()", 30000);

Java ArrayList copy

Java doesn't pass objects, it passes references (pointers) to objects. So yes, l2 and l1 are two pointers to the same object.

You have to make an explicit copy if you need two different list with the same contents.

How to delete zero components in a vector in Matlab?


a=[0  3   0   0   7   10   3   0   1   0   7   7   1   7   4]




aa=[3   7   10   3   1   7   7   1   7   4]

Plotting a python dict in order of key values

Python dictionaries are unordered. If you want an ordered dictionary, use collections.OrderedDict

In your case, sort the dict by key before plotting,

import matplotlib.pylab as plt

lists = sorted(d.items()) # sorted by key, return a list of tuples

x, y = zip(*lists) # unpack a list of pairs into two tuples

plt.plot(x, y)

Here is the result. enter image description here

How can I use interface as a C# generic type constraint?

I tried to do something similar and used a workaround solution: I thought about implicit and explicit operator on structure: The idea is to wrap the Type in a structure that can be converted into Type implicitly.

Here is such a structure:

public struct InterfaceType { private Type _type;

public InterfaceType(Type type)
    _type = type;

public static explicit operator Type(InterfaceType value)
    return value._type;

public static implicit operator InterfaceType(Type type)
    return new InterfaceType(type);

private static void CheckType(Type type)
    if (type == null) throw new NullReferenceException("The type cannot be null");
    if (!type.IsInterface) throw new NotSupportedException(string.Format("The given type {0} is not an interface, thus is not supported", type.Name));


basic usage:

// OK
InterfaceType type1 = typeof(System.ComponentModel.INotifyPropertyChanged);

// Throws an exception
InterfaceType type2 = typeof(WeakReference);

You have to imagine your own mecanism around this, but an example could be a method taken a InterfaceType in parameter instead of a type

this.MyMethod(typeof(IMyType)) // works
this.MyMethod(typeof(MyType)) // throws exception

A method to override that should returns interface types:

public virtual IEnumerable<InterfaceType> GetInterfaces()

There are maybe things to do with generics also, but I didn't tried

Hope this can help or gives ideas :-)

How Should I Declare Foreign Key Relationships Using Code First Entity Framework (4.1) in MVC3?

You can define foreign key by:

public class Parent
   public int Id { get; set; }
   public virtual ICollection<Child> Childs { get; set; }

public class Child
   public int Id { get; set; }
   // This will be recognized as FK by NavigationPropertyNameForeignKeyDiscoveryConvention
   public int ParentId { get; set; } 
   public virtual Parent Parent { get; set; }

Now ParentId is foreign key property and defines required relation between child and existing parent. Saving the child without exsiting parent will throw exception.

If your FK property name doesn't consists of the navigation property name and parent PK name you must either use ForeignKeyAttribute data annotation or fluent API to map the relation

Data annotation:

// The name of related navigation property
public int ParentId { get; set; }

Fluent API:

            .HasRequired(c => c.Parent)
            .WithMany(p => p.Childs)
            .HasForeignKey(c => c.ParentId);

Other types of constraints can be enforced by data annotations and model validation.


You will get an exception if you don't set ParentId. It is required property (not nullable). If you just don't set it it will most probably try to send default value to the database. Default value is 0 so if you don't have customer with Id = 0 you will get an exception.

Variable might not have been initialized error

You declared them but did not provide them with an intial value - thus, they're unintialized. Try something like:

public static Rand searchCount (int[] x)  
  int a = 0 ;  
  int b = 0 ; 

and the warnings should go away.

Remove old Fragment from fragment manager

Probably you instance old fragment it is keeping a reference. See this interesting article Memory leaks in Android — identify, treat and avoid

If you use addToBackStack, this keeps a reference to instance fragment avoiding to Garbage Collector erase the instance. The instance remains in fragments list in fragment manager. You can see the list by

ArrayList<Fragment> fragmentList = fragmentManager.getFragments();

The next code is not the best solution (because don´t remove the old fragment instance in order to avoid memory leaks) but removes the old fragment from fragmentManger fragment list

int index = fragmentManager.getFragments().indexOf(oldFragment);
fragmentManager.getFragments().set(index, null);

You cannot remove the entry in the arrayList because apparenly FragmentManager works with index ArrayList to get fragment.

I usually use this code for working with fragmentManager

public void replaceFragment(Fragment fragment, Bundle bundle) {

    if (bundle != null)

    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    Fragment oldFragment = fragmentManager.findFragmentByTag(fragment.getClass().getName());

    //if oldFragment already exits in fragmentManager use it
    if (oldFragment != null) {
        fragment = oldFragment;

    fragmentTransaction.replace(, fragment, fragment.getClass().getName());



SQL Server loop - how do I loop through a set of records

This is what I've been doing if you need to do something iterative... but it would be wise to look for set operations first. Also, do not do this because you don't want to learn cursors.

select top 1000 TableID
into #ControlTable 
from dbo.table
where StatusID = 7

declare @TableID int

while exists (select * from #ControlTable)

    select top 1 @TableID = TableID
    from #ControlTable
    order by TableID asc

    -- Do something with your TableID

    delete #ControlTable
    where TableID = @TableID


drop table #ControlTable

How does it work - requestLocationUpdates() + LocationRequest/Listener

You are implementing LocationListener in your activity MainActivity. The call for concurrent location updates will therefor be like this:

mLocationClient.requestLocationUpdates(mLocationRequest, this);

Be sure that the LocationListener you're implementing is from the google api, that is import this:


and not this:

import android.location.LocationListener;

and it should work just fine.

It's also important that the LocationClient really is connected before you do this. I suggest you don't call it in the onCreate or onStart methods, but in onResume. It is all explained quite well in the tutorial for Google Location Api:

"Could not find bundler" error

The system might be running "rootless". Try to set the firmware nvram variable boot-args to "rootless=0". Try to run set of commands:

sudo nvram boot-args="rootless=0"; 
sudo reboot

After reboot completes, run:

sudo gem install bundler

How to deal with SQL column names that look like SQL keywords?

Your question seems to be well answered here, but I just want to add one more comment to this subject.

Those designing the database should be well aware of the reserved keywords and avoid using them. If you discover someone using it, inform them about it (in a polite way). The keyword here is reserved word.

More information:

"Reserved keywords should not be used as object names. Databases upgraded from earlier versions of SQL Server may contain identifiers that include words not reserved in the earlier version, but that are reserved words for the current version of SQL Server. You can refer to the object by using delimited identifiers until the name can be changed."


"If your database does contain names that match reserved keywords, you must use delimited identifiers when you refer to those objects. For more information, see Identifiers (DMX)."

dictionary update sequence element #0 has length 3; 2 is required

One of the fast ways to create a dict from equal-length tuples:

>>> t1 = (a,b,c,d)
>>> t2 = (1,2,3,4)
>>> dict(zip(t1, t2))
{'a':1, 'b':2, 'c':3, 'd':4, }

Android: Center an image

change layout weight according you will get....

Enter this:

        android:src="@drawable/logo" />


How to compare two dates to find time difference in SQL Server 2005, date manipulation

I used following logic and it worked for me like marvel:


selenium get current url after loading a page

It's been a little while since I coded with selenium, but your code looks ok to me. One thing to note is that if the element is not found, but the timeout is passed, I think the code will continue to execute. So you can do something like this:

boolean exists = driver.findElements(By.xpath("//*[@id='someID']")).size() != 0

What does the above boolean return? And are you sure selenium actually navigates to the expected page? (That may sound like a silly question but are you actually watching the pages change... selenium can be run remotely you know...)

Display text from .txt file in batch file

A handy timestamp format:


Difference between Activity and FragmentActivity

A FragmentActivity is a subclass of Activity that was built for the Android Support Package.

The FragmentActivity class adds a couple new methods to ensure compatibility with older versions of Android, but other than that, there really isn't much of a difference between the two. Just make sure you change all calls to getLoaderManager() and getFragmentManager() to getSupportLoaderManager() and getSupportFragmentManager() respectively.

Bootstrap 4 img-circle class not working

In Bootstrap 4 it was renamed to .rounded-circle

Usage :

<div class="col-xs-7">
    <img src="img/gallery2.JPG" class="rounded-circle" alt="HelPic>

See migration docs from bootstrap.

Scrolling to element using webdriver?

You can scroll to the element by using javascript through the execute_javascript method. For example here is how I do it using SeleniumLibrary on Robot Framework:

web_element = self.selib.find_element(locator)
    'arguments[0].scrollIntoView({behavior: "instant", block: "start", inline: "start"});'

Upload files with HTTPWebrequest (multipart/form-data)

This method work for upload multiple image simultaneously

        var flagResult = new viewModel();
        string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
        byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");

        HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
        wr.ContentType = "multipart/form-data; boundary=" + boundary;
        wr.Method = method;
        wr.KeepAlive = true;
        wr.Credentials = System.Net.CredentialCache.DefaultCredentials;

        Stream rs = wr.GetRequestStream();

        string path = @filePath;
        System.IO.DirectoryInfo folderInfo = new DirectoryInfo(path);

        foreach (FileInfo file in folderInfo.GetFiles())
            rs.Write(boundarybytes, 0, boundarybytes.Length);
            string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n";
            string header = string.Format(headerTemplate, paramName, file, contentType);
            byte[] headerbytes = System.Text.Encoding.UTF8.GetBytes(header);
            rs.Write(headerbytes, 0, headerbytes.Length);

            FileStream fileStream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read);
            byte[] buffer = new byte[4096];
            int bytesRead = 0;
            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
                rs.Write(buffer, 0, bytesRead);

        byte[] trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
        rs.Write(trailer, 0, trailer.Length);

        WebResponse wresp = null;
            wresp = wr.GetResponse();
            Stream stream2 = wresp.GetResponseStream();
            StreamReader reader2 = new StreamReader(stream2);
            var result = reader2.ReadToEnd();
            var cList = JsonConvert.DeserializeObject<HttpViewModel>(result);
            if (cList.message=="images uploaded!")
                flagResult.success = true;

        catch (Exception ex)
            //log.Error("Error uploading file", ex);
            if (wresp != null)
                wresp = null;
            wr = null;
        return flagResult;

Passing parameters on button action:@selector

You can set tag of the button and access it from sender in action

[btnHome addTarget:self action:@selector(btnMenuClicked:)     forControlEvents:UIControlEventTouchUpInside];
                    btnHome.userInteractionEnabled = YES;
                    btnHome.tag = 123;

In the called function

[sender tag];

    if ([sender tag] == 123) {
        // Do Anything

Closing Bootstrap modal onclick

You can hide the modal and popup the window to review the carts in validateShipping() function itself.

function validateShipping(){
//pop the window to select items

How can I check if a URL exists via PHP?

One thing to take into consideration when you check the header for a 404 is the case where a site does not generate a 404 immediately.

A lot of sites check whether a page exists or not in the PHP/ASP (et cetera) source and forward you to a 404 page. In those cases the header is basically extended by the header of the 404 that is generated. In those cases the 404 error not in the first line of the header, but the tenth.

$array = get_headers($url);
$string = $array[0];
print_r($string) // would generate:

Array ( 
[0] => HTTP/1.0 301 Moved Permanently 
[1] => Date: Fri, 09 Nov 2018 16:12:29 GMT 
[2] => Server: Apache/2.4.34 (FreeBSD) LibreSSL/2.7.4 PHP/7.0.31 
[3] => X-Powered-By: PHP/7.0.31 
[4] => Set-Cookie: landing=%2Freed-diffuser-fig-pudding-50; path=/; HttpOnly 
[5] => Location: /reed-diffuser-fig-pudding-50/ 
[6] => Content-Length: 0 
[7] => Connection: close 
[8] => Content-Type: text/html; charset=utf-8 
[9] => HTTP/1.0 404 Not Found 
[10] => Date: Fri, 09 Nov 2018 16:12:29 GMT 
[11] => Server: Apache/2.4.34 (FreeBSD) LibreSSL/2.7.4 PHP/7.0.31 
[12] => X-Powered-By: PHP/7.0.31 
[13] => Set-Cookie: landing=%2Freed-diffuser-fig-pudding-50%2F; path=/; HttpOnly 
[14] => Connection: close 
[15] => Content-Type: text/html; charset=utf-8 

How do I discover memory usage of my application in Android?

Yes, you can get memory info programmatically and decide whether to do memory intensive work.

Get VM Heap Size by calling:


Get Allocated VM Memory by calling:

Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();

Get VM Heap Size Limit by calling:


Get Native Allocated Memory by calling:


I made an app to figure out the OutOfMemoryError behavior and monitor memory usage.

You can get the source code at

How do I install a color theme for IntelliJ IDEA 7.0.x

If you just have the xml file of the color scheme you can:

Go to Preferences -> Editor -> Color and Fonts and use the Import button.

enter image description here

Finding first blank row, then writing to it


No server in Eclipse; trying to install Tomcat

For future poeple who have the same problem: Try to add server tab from eclipse menu, if it doesnt work, then go do @Tomasz Bartnik solution above, and retry the following again:

  1. Go to WIndow > Show view > Other

    enter image description here

  2. search for servers, select it and press OK

    enter image description here

It will then be added to your tabs

How to apply filters to *ngFor?

This is your array

products: any = [
            "name": "John-Cena",
            "name": "Brock-Lensar",


This is your ngFor loop Filter By :

<input type="text" [(ngModel)]='filterText' />
    <ul *ngFor='let product of filterProduct'>
      <li>{{ }}</li>

There I'm using filterProduct instant of products, because i want to preserve my original data. Here model _filterText is used as a input box.When ever there is any change setter function will call. In setFilterText performProduct is called it will return the result only those who match with the input. I'm using lower case for case insensitive.

filterProduct = this.products;
_filterText : string;
    get filterText() : string {
        return this._filterText;

    set filterText(value : string) {
        this._filterText = value;
        this.filterProduct = this._filterText ? this.performProduct(this._filterText) : this.products;


    performProduct(value : string ) : any {
            value = value.toLocaleLowerCase();
            return this.products.filter(( products : any ) => 
       !== -1);

Find row in datatable with specific id

Try avoiding unnecessary loops and go for this if needed.

string SearchByColumn = "ColumnName=" + value;
DataRow[] hasRows = currentDataTable.Select(SearchByColumn);
if (hasRows.Length == 0)
    //your logic goes here
    //your logic goes here

If you want to search by specific ID then there should be a primary key in a table.

Create an empty data.frame

Just declare

table = data.frame()

when you try to rbind the first line it will create the columns

Mask output of `The following objects are masked from....:` after calling attach() function

It may be "better" to not use attach at all. On the plus side, you can save some typing if you use attach. Let's say your dataset is called mydata and you have variables called v1, v2, and v3. If you don't attach mydata, then you will type mean(mydata$v1) to get the mean of v1. If you do attach mydata, then you will type mean(v1) to get the mean of v1. But, if you don't detach the mydata dataset (every time), you'll get the message about the objects being masked going forward.

Solution 1 (assuming you want to attach):

  1. Use detach every time.
  2. See Dan Tarr's response if you already have the data attached (and it may be in the global environment several times). Then, in the future, use detach every time.

Solution 2

Don't use attach. Instead, include the dataset name every time you refer to a variable. The form is mydata$v1 (name of data set, dollar sign, name of variable).

As for me, I used solution 1 a lot in the past, but I've moved to solution 2. It's a bit more typing in the beginning, but if you are going to use the code multiple times, it just seems cleaner.

I want to delete all bin and obj folders to force all projects to rebuild everything

On our build server, we explicitly delete the bin and obj directories, via nant scripts.

Each project build script is responsible for it's output/temp directories. Works nicely that way. So when we change a project and add a new one, we base the script off a working script, and you notice the delete stage and take care of it.

If you doing it on you logic development machine, I'd stick to clean via Visual Studio as others have mentioned.

How can I install MacVim on OS X?

  1. Download the latest build from

  2. Expand the archive.

  3. Put into /Applications/.


What's the difference between F5 refresh and Shift+F5 in Google Chrome browser?

The difference is not just for Chrome but for most of the web browsers.

enter image description here

F5 refreshes the web page and often reloads the same page from the cached contents of the web browser. However, reloading from cache every time is not guaranteed and it also depends upon the cache expiry.

Shift + F5 forces the web browser to ignore its cached contents and retrieve a fresh copy of the web page into the browser.

Shift + F5 guarantees loading of latest contents of the web page.
However, depending upon the size of page, it is usually slower than F5.

You may want to refer to: What requests do browsers' "F5" and "Ctrl + F5" refreshes generate?

How to change href of <a> tag on button click through javascript

remove href attribute:

<a id="" onclick="f1()">jhhghj</a>

if link styles are important then:

<a href="javascript:void(f1())">jhhghj</a>

What is (x & 1) and (x >>= 1)?

x & 1 is equivalent to x % 2.

x >> 1 is equivalent to x / 2

So, these things are basically the result and remainder of divide by two.

How to import a .cer certificate into a java keystore?

Importing .cer certificate file downloaded from browser (open the url and dig for details) into cacerts keystore in java_home\jre\lib\security worked for me, as opposed to attemps to generate and use my own keystore.

  1. Go to your java_home\jre\lib\security
  2. (Windows) Open admin command line there using cmd and CTRL+SHIFT+ENTER
  3. Run keytool to import certificate:
    • (Replace yourAliasName and path\to\certificate.cer respectively)

 ..\..\bin\keytool -import -trustcacerts -keystore cacerts -storepass changeit -noprompt -alias yourAliasName -file path\to\certificate.cer

This way you don't have to specify any additional JVM options and the certificate should be recognized by the JRE.

How to select all rows which have same value in some column

You can do this without a JOIN:

FROM (SELECT *,COUNT(*) OVER(PARTITION BY phone_number) as Phone_CT
      FROM YourTable
WHERE Phone_CT > 1
ORDER BY phone_number, employee_ids

Demo: SQL Fiddle

How do you close/hide the Android soft keyboard using Java?

Try This one

public void disableSoftKeyboard(final EditText v) {
    if (Build.VERSION.SDK_INT >= 11) {
    } else {

How do I use method overloading in Python?

In Python, you don't do things that way. When people do that in languages like Java, they generally want a default value (if they don't, they generally want a method with a different name). So, in Python, you can have default values.

class A(object):  # Remember the ``object`` bit when working in Python 2.x

    def stackoverflow(self, i=None):
        if i is None:
            print 'first form'
            print 'second form'

As you can see, you can use this to trigger separate behaviour rather than merely having a default value.

>>> ob = A()
>>> ob.stackoverflow()
first form
>>> ob.stackoverflow(2)
second form

In a URL, should spaces be encoded using %20 or +?

It shouldn't matter, any more than if you encoded the letter A as %41.

However, if you're dealing with a system that doesn't recognize one form, it seems like you're just going to have to give it what it expects regardless of what the "spec" says.

How to get the indexpath.row when an element is activated?

My approach to this sort of problem is to use a delegate protocol between the cell and the tableview. This allows you to keep the button handler in the cell subclass, which enables you to assign the touch up action handler to the prototype cell in Interface Builder, while still keeping the button handler logic in the view controller.

It also avoids the potentially fragile approach of navigating the view hierarchy or the use of the tag property, which has issues when cells indexes change (as a result of insertion, deletion or reordering)


protocol CellSubclassDelegate: class {
    func buttonTapped(cell: CellSubclass)

class CellSubclass: UITableViewCell {

@IBOutlet var someButton: UIButton!

weak var delegate: CellSubclassDelegate?

override func prepareForReuse() {
    self.delegate = nil

@IBAction func someButtonTapped(sender: UIButton) {


class MyViewController: UIViewController, CellSubclassDelegate {

    @IBOutlet var tableview: UITableView!

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CellSubclass

        cell.delegate = self

        // Other cell setup


    //  MARK: CellSubclassDelegate

    func buttonTapped(cell: CellSubclass) {
        guard let indexPath = self.tableView.indexPathForCell(cell) else {
            // Note, this shouldn't happen - how did the user tap on a button that wasn't on screen?

        //  Do whatever you need to do with the indexPath

        print("Button tapped on row \(indexPath.row)")

SQL Server 2005 Using CHARINDEX() To split a string

Try the following query:

DECLARE @item VARCHAR(MAX) = 'LD-23DSP-1430'

SUBSTRING( @item, 0, CHARINDEX('-', @item)) ,
               SUBSTRING( @item, CHARINDEX('-', @item)+1,LEN(@ITEM)) ,
               0 ,
               CHARINDEX('-', SUBSTRING( @item, CHARINDEX('-', @item)+1,LEN(@ITEM)))

Get first key in a (possibly) associative array?

use :

$array = ['po','co','so'];

echo reset($array); 

Result : po

SQL distinct for 2 fields in a database

Share my stupid thought:

Maybe I can select distinct only on c1 but not on c2, so the syntax may be select ([distinct] col)+ where distinct is a qualifier for each column.

But after thought, I find that distinct on only one column is nonsense. Take the following relationship:

   | A | B
  1| 1 | 2
  2| 1 | 1

If we select (distinct A), B, then what is the proper B for A = 1?

Thus, distinct is a qualifier for a statement.

Regex to match only uppercase "words" with some exceptions

To some extent, this is going to vary by the "flavour" of RegEx you're using. The following is based on .NET RegEx, which uses \b for word boundaries. In the last example, it also uses negative lookaround (?<!) and (?!) as well as non-capturing parentheses (?:)

Basically, though, if the terms always contain at least one uppercase letter followed by at least one number, you can use


For all-uppercase and numbers (total must be 2 or more):


For all-uppercase and numbers, but starting with at least one letter:


The granddaddy, to return items that have any combination of uppercase letters and numbers, but which are not single letters at the beginning of a line and which are not part of a line that is all uppercase:

(?:(?<!^)[A-Z]\b|(?<!^[A-Z0-9 ]*)\b[A-Z0-9]+\b(?![A-Z0-9 ]$))


The regex starts with (?:. The ?: signifies that -- although what follows is in parentheses, I'm not interested in capturing the result. This is called "non-capturing parentheses." Here, I'm using the paretheses because I'm using alternation (see below).

Inside the non-capturing parens, I have two separate clauses separated by the pipe symbol |. This is alternation -- like an "or". The regex can match the first expression or the second. The two cases here are "is this the first word of the line" or "everything else," because we have the special requirement of excluding one-letter words at the beginning of the line.

Now, let's look at each expression in the alternation.

The first expression is: (?<!^)[A-Z]\b. The main clause here is [A-Z]\b, which is any one capital letter followed by a word boundary, which could be punctuation, whitespace, linebreak, etc. The part before that is (?<!^), which is a "negative lookbehind." This is a zero-width assertion, which means it doesn't "consume" characters as part of a match -- not really important to understand that here. The syntax for negative lookbehind in .NET is (?<!x), where x is the expression that must not exist before our main clause. Here that expression is simply ^, or start-of-line, so this side of the alternation translates as "any word consisting of a single, uppercase letter that is not at the beginning of the line."

Okay, so we're matching one-letter, uppercase words that are not at the beginning of the line. We still need to match words consisting of all numbers and uppercase letters.

That is handled by a relatively small portion of the second expression in the alternation: \b[A-Z0-9]+\b. The \bs represent word boundaries, and the [A-Z0-9]+ matches one or more numbers and capital letters together.

The rest of the expression consists of other lookarounds. (?<!^[A-Z0-9 ]*) is another negative lookbehind, where the expression is ^[A-Z0-9 ]*. This means what precedes must not be all capital letters and numbers.

The second lookaround is (?![A-Z0-9 ]$), which is a negative lookahead. This means what follows must not be all capital letters and numbers.

So, altogether, we are capturing words of all capital letters and numbers, and excluding one-letter, uppercase characters from the start of the line and everything from lines that are all uppercase.

There is at least one weakness here in that the lookarounds in the second alternation expression act independently, so a sentence like "A P1 should connect to the J9" will match J9, but not P1, because everything before P1 is capitalized.

It is possible to get around this issue, but it would almost triple the length of the regex. Trying to do so much in a single regex is seldom, if ever, justfied. You'll be better off breaking up the work either into multiple regexes or a combination of regex and standard string processing commands in your programming language of choice.

How to fix: Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list

The accepted answer is correct, however sometimes you would get the "Aspnet_regiis.exe is not recognized as an internal or external command, operable program or batch file." error message.

To resolve it try the following:

  1. Make sure that your .NET 4.0 installation is not corrupted (run the installer and 'Repair' it). There's also a chance it is not installed on your machine at all.

  2. If you're sure you don't have .NET 4.0 installed and want to run it as .NET 2.0, try this:

If you see the message "Aspnet_regiis.exe is not recognized as an internal or external command, operable program or batch file.", switch to the C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Aspnet_regiis.exe -i at the command prompt.

How to get PHP $_GET array?

You could make id a series of comma-seperated values, like this:


Then, within your PHP code, explode it into an array:

$values = explode(",", $_GET["id"]);
print count($values) . " values passed.";

This will maintain brevity. The other (more commonly used with $_POST) method is to use array-style square-brackets:


But that clearly would be much more verbose.

Runtime vs. Compile time

here's a very simple answer:

Runtime and compile time are programming terms that refer to different stages of software program development. In order to create a program, a developer first writes source code, which defines how the program will function. Small programs may only contain a few hundred lines of source code, while large programs may contain hundreds of thousands of lines of source code. The source code must be compiled into machine code in order to become and executable program. This compilation process is referred to as compile time.(think of a compiler as a translator)

A compiled program can be opened and run by a user. When an application is running, it is called runtime.

The terms "runtime" and "compile time" are often used by programmers to refer to different types of errors. A compile time error is a problem such as a syntax error or missing file reference that prevents the program from successfully compiling. The compiler produces compile time errors and usually indicates what line of the source code is causing the problem.

If a program's source code has already been compiled into an executable program, it may still have bugs that occur while the program is running. Examples include features that don't work, unexpected program behavior, or program crashes. These types of problems are called runtime errors since they occur at runtime.

The reference

How to find time complexity of an algorithm

Time complexity with examples

1 - Basic Operations (arithmetic, comparisons, accessing array’s elements, assignment) : The running time is always constant O(1)

Example :

read(x)                               // O(1)
a = 10;                               // O(1)
a =         // O(1)

2 - If then else statement: Only taking the maximum running time from two or more possible statements.


age = read(x)                               // (1+1) = 2
if age < 17 then begin                      // 1
      status = "Not allowed!";              // 1
end else begin
      status = "Welcome! Please come in";   // 1
      visitors = visitors + 1;              // 1+1 = 2

So, the complexity of the above pseudo code is T(n) = 2 + 1 + max(1, 1+2) = 6. Thus, its big oh is still constant T(n) = O(1).

3 - Looping (for, while, repeat): Running time for this statement is the number of looping multiplied by the number of operations inside that looping.


total = 0;                                  // 1
for i = 1 to n do begin                     // (1+1)*n = 2n
      total = total + i;                    // (1+1)*n = 2n
writeln(total);                             // 1

So, its complexity is T(n) = 1+4n+1 = 4n + 2. Thus, T(n) = O(n).

4 - Nested Loop (looping inside looping): Since there is at least one looping inside the main looping, running time of this statement used O(n^2) or O(n^3).


for i = 1 to n do begin                     // (1+1)*n  = 2n
   for j = 1 to n do begin                  // (1+1)n*n = 2n^2
       x = x + 1;                           // (1+1)n*n = 2n^2
       print(x);                            // (n*n)    = n^2

Common Running Time

There are some common running times when analyzing an algorithm:

  1. O(1) – Constant Time Constant time means the running time is constant, it’s not affected by the input size.

  2. O(n) – Linear Time When an algorithm accepts n input size, it would perform n operations as well.

  3. O(log n) – Logarithmic Time Algorithm that has running time O(log n) is slight faster than O(n). Commonly, algorithm divides the problem into sub problems with the same size. Example: binary search algorithm, binary conversion algorithm.

  4. O(n log n) – Linearithmic Time This running time is often found in "divide & conquer algorithms" which divide the problem into sub problems recursively and then merge them in n time. Example: Merge Sort algorithm.

  5. O(n2) – Quadratic Time Look Bubble Sort algorithm!

  6. O(n3) – Cubic Time It has the same principle with O(n2).

  7. O(2n) – Exponential Time It is very slow as input get larger, if n = 1000.000, T(n) would be 21000.000. Brute Force algorithm has this running time.

  8. O(n!) – Factorial Time THE SLOWEST !!! Example : Travel Salesman Problem (TSP)

Taken from this article. Very well explained should give a read.

Reading a registry key in C#

using Microsoft.Win32;

  string chkRegVC = "NO";
   private void checkReg_vcredist() {

        string regKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
        using (Microsoft.Win32.RegistryKey uninstallKey = Registry.LocalMachine.OpenSubKey(regKey))
            if (uninstallKey != null)
                string[] productKeys = uninstallKey.GetSubKeyNames();
                foreach (var keyName in productKeys)

                    if (keyName == "{196BB40D-1578-3D01-B289-BEFC77A11A1E}" ||//Visual C++ 2010 Redistributable Package (x86) 
                        keyName == "{DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}" ||//Visual C++ 2010 Redistributable Package (x64) 
                        keyName == "{C1A35166-4301-38E9-BA67-02823AD72A1B}" ||//Visual C++ 2010 Redistributable Package (ia64) 
                        keyName == "{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}" ||//Visual C++ 2010 SP1 Redistributable Package (x86) 
                        keyName == "{1D8E6291-B0D5-35EC-8441-6616F567A0F7}" ||//Visual C++ 2010 SP1 Redistributable Package (x64) 
                        keyName == "{88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}"   //Visual C++ 2010 SP1 Redistributable Package (ia64) 
                        ) { chkRegVC = "OK"; break; }
                    else { chkRegVC = "NO"; }

What is the reason and how to avoid the [FIN, ACK] , [RST] and [RST, ACK]

Here is a rough explanation of the concepts.

[ACK] is the acknowledgement that the previously sent data packet was received.

[FIN] is sent by a host when it wants to terminate the connection; the TCP protocol requires both endpoints to send the termination request (i.e. FIN).

So, suppose

  • host A sends a data packet to host B
  • and then host B wants to close the connection.
  • Host B (depending on timing) can respond with [FIN,ACK] indicating that it received the sent packet and wants to close the session.
  • Host A should then respond with a [FIN,ACK] indicating that it received the termination request (the ACK part) and that it too will close the connection (the FIN part).

However, if host A wants to close the session after sending the packet, it would only send a [FIN] packet (nothing to acknowledge) but host B would respond with [FIN,ACK] (acknowledges the request and responds with FIN).

Finally, some TCP stacks perform half-duplex termination, meaning that they can send [RST] instead of the usual [FIN,ACK]. This happens when the host actively closes the session without processing all the data that was sent to it. Linux is one operating system which does just this.

You can find a more detailed and comprehensive explanation here.

How can I check if a MySQL table exists with PHP?

$connection = mysqli_connect("localhost","root","","php_sample_login_register"); 

if ($connection){
        echo "DB is Connected <br>";
        $sql = "CREATE TABLE user(
            name VARCHAR(255)NOT NULL,
            email VARCHAR(255)NOT NULL,
            password VARCHAR(255) NOT NULL
        if(mysqli_query($connection,$sql)) {
            echo "Created user table";
        } else{
            echo "User table already exists";
    } else {
        echo "error : DB isnot connected";
    } ?>

What is dynamic programming?

Dynamic programming is when you use past knowledge to make solving a future problem easier.

A good example is solving the Fibonacci sequence for n=1,000,002.

This will be a very long process, but what if I give you the results for n=1,000,000 and n=1,000,001? Suddenly the problem just became more manageable.

Dynamic programming is used a lot in string problems, such as the string edit problem. You solve a subset(s) of the problem and then use that information to solve the more difficult original problem.

With dynamic programming, you store your results in some sort of table generally. When you need the answer to a problem, you reference the table and see if you already know what it is. If not, you use the data in your table to give yourself a stepping stone towards the answer.

The Cormen Algorithms book has a great chapter about dynamic programming. AND it's free on Google Books! Check it out here.

What is the difference between dim and set in vba

According to VBA help on SET statement it sets a reference to an if you change a property the actual object will also changes.

Dim newObj as Object
Set var1=Object1(same type as Object)
Set var2=Object1(same type as Object)
Set var3=Object1(same type as Object)
Set var4=Object1(same type as Object)

the other Vars properties also changes,so:


actualy all vars are the same!

JSON.Net Self referencing loop detected

JsonConvert.SerializeObject(ObjectName, new JsonSerializerSettings(){ PreserveReferencesHandling = PreserveReferencesHandling.Objects, Formatting = Formatting.Indented });

How to get a matplotlib Axes instance to plot to?

Use the gca ("get current axes") helper function:

ax = plt.gca()


import matplotlib.pyplot as plt
quotes = [(1, 5, 6, 7, 4), (2, 6, 9, 9, 6), (3, 9, 8, 10, 8), (4, 8, 8, 9, 8), (5, 8, 11, 13, 7)]
ax = plt.gca()
h =, quotes)

enter image description here

iPhone - Get Position of UIView within entire UIWindow

Swift 5+:

let globalPoint = aView.superview?.convert(aView.frame.origin, to: nil)

Calling another different view from the controller using ASP.NET MVC 4

To return a different view, you can specify the name of the view you want to return and model as follows:

return View("ViewName", yourModel);

if the view is in different folder under Views folder then use below absolute path:

return View("~/Views/FolderName/ViewName.aspx");

Get height of div with no height set in css

Also make sure the div is currently appended to the DOM and visible.

How to directly execute SQL query in C#?

To execute your command directly from within C#, you would use the SqlCommand class.

Quick sample code using paramaterized SQL (to avoid injection attacks) might look like this:

string queryString = "SELECT tPatCulIntPatIDPk, tPatSFirstname, tPatSName, tPatDBirthday  FROM  [dbo].[TPatientRaw] WHERE tPatSName = @tPatSName";
string connectionString = "Server=.\PDATA_SQLEXPRESS;Database=;User Id=sa;Password=2BeChanged!;";

using (SqlConnection connection = new SqlConnection(connectionString))
    SqlCommand command = new SqlCommand(queryString, connection);
    command.Parameters.AddWithValue("@tPatSName", "Your-Parm-Value");
    SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
            Console.WriteLine(String.Format("{0}, {1}",
            reader["tPatCulIntPatIDPk"], reader["tPatSFirstname"]));// etc
        // Always call Close when done reading.