Programs & Examples On #Decompiler

A decompiler performs, as far as possible, the reverse operation to that of a compiler.

How to decompile a whole Jar file?

2009: JavaDecompiler can do a good job with a jar: since 0.2.5, All files, in JAR files, are displayed.

http://java.decompiler.free.fr/sites/default/screenshots/screenshot1.png

See also the question "How do I “decompile” Java class files?".

The JD-Eclipse doesn't seem to have changed since late 2009 though (see Changes).
So its integration with latest Eclipse (3.8, 4.2+) might be problematic.

JD-Core is actively maintained.

Both are the result of the fantastic work of (SO user) Emmanuel Dupuy.


2018: A more modern option, mentioned in the comments by David Kennedy Araujo:

JetBrains/intellij-community/plugins/java-decompiler/engine

Fernflower is the first actually working analytical decompiler for Java and probably for a high-level programming language in general.

java -jar fernflower.jar [-<option>=<value>]* [<source>]+ <destination>

java -jar fernflower.jar -hes=0 -hdc=0 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\

See also How to decompile to java files intellij idea for a command working with recent IntelliJ IDEA.

how to use DEXtoJar

Follow the below steps to do so_

  1. Rename your APK file(e.g., rename your APK file to .zip Ex- test.apk -> test.zip) & extract resultant zip file.
  2. Copy your .dex file in to dex2jar folder.
  3. Run setclasspath.bat. This should be run because this data is used in the next step.
  4. Go to Windows Command prompt, change the folder path to the path of your dex2jar folder and run the command as follows: d2j-dex2jar.bat classes.dex
  5. enjoy!! Your jar file will be ready in the same folder with name classes_dex2jar.jar.

Hope this helps you and All reading this... :)

Android - How to decode and decompile any APK file?

You can try this website http://www.decompileandroid.com Just upload the .apk file and rest of it will be done by this site.

Decompile Python 2.7 .pyc

UPDATE (2019-04-22) - It sounds like you want to use uncompyle6 nowadays rather than the answers I had mentioned originally.

This sounds like it works: http://code.google.com/p/unpyc/

Issue 8 says it supports 2.7: http://code.google.com/p/unpyc/updates/list

UPDATE (2013-09-03) - As noted in the comments and in other answers, you should look at https://github.com/wibiti/uncompyle2 or https://github.com/gstarnberger/uncompyle instead of unpyc.

How do I "decompile" Java class files?

I use JAD Decompiler.

There is an Eclipse plugin for it, jadeclipse. It is pretty nice.

How to change already compiled .class file without decompile?

You can use any decompiler to first decompile the file.

I had once faced a simillar problem where I didn't have source code of the application and had to make a very small change in a file.

Below is what I did:

  1. Extracted the class file from the jar

  2. Opened it in a decompiler (I use JD GUI, you can get it easily from many resources on internet) You may download it from here

  3. You can actually view all the files in a jar using JD GUI.

  4. Made changes to the file I wanted to and copied all the code from that file
  5. Created a new project in eclipse with only this class (with the same package structure as in the jar), provided the original jar as library and all other dependencies.
  6. Compiled the class, injected the .class file back to the jar from bin folder of my workspace
  7. Tested my change, celebrated it by sipping a cup of coffee :)

How to get Java Decompiler / JD / JD-Eclipse running in Eclipse Helios

if you need to decompile standalone jar try JD-GUI by the same autor (of JD-Eclipse). It is a standalone application (does not need eclipse). It can open both *.class and *.jar files. Interesting enough it needs .Net installed (as do JD-Eclipse indeed), but otherwise works like a charm.

Find it here:

http://jd.benow.ca/

Regards,

decompiling DEX into Java sourcecode

It's easy

Get these tools:

  1. dex2jar to translate dex files to jar files

  2. jd-gui to view the java files in the jar

The source code is quite readable as dex2jar makes some optimizations.

Procedure:

And here's the procedure on how to decompile:

Step 1:

Convert classes.dex in test_apk-debug.apk to test_apk-debug_dex2jar.jar

d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex

Note 1: In the Windows machines all the .sh scripts are replaced by .bat scripts

Note 2: On linux/mac don't forget about sh or bash. The full command should be:

sh d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk 

Note 3: Also, remember to add execute permission to dex2jar-X.X directory e.g. sudo chmod -R +x dex2jar-2.0

dex2jar documentation

Step 2:

Open the jar in JD-GUI

The decompiled source

jQuery equivalent of JavaScript's addEventListener method

Not all browsers support event capturing (for example, Internet Explorer versions less than 9 don't) but all do support event bubbling, which is why it is the phase used to bind handlers to events in all cross-browser abstractions, jQuery's included.

The nearest to what you are looking for in jQuery is using bind() (superseded by on() in jQuery 1.7+) or the event-specific jQuery methods (in this case, click(), which calls bind() internally anyway). All use the bubbling phase of a raised event.

How to change title of Activity in Android?

There's a faster way, just use

YourActivity.setTitle("New Title");

You can also find it inside the onCreate() with this, for example:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.setTitle("My Title");
    }

By the way, what you simply cannot do is call setTitle() in a static way without passing any Activity object.

YouTube Autoplay not working

This code allows you to autoplay iframe video

<iframe src="https://www.youtube.com/embed/2MpUj-Aua48?rel=0&modestbranding=1&autohide=1&mute=1&showinfo=0&controls=0&autoplay=1"  width="560" height="315"  frameborder="0" allowfullscreen></iframe>

Here Is working fiddle

ng-model for `<input type="file"/>` (with directive DEMO)

Try this,this is working for me in angular JS

    let fileToUpload = `${documentLocation}/${documentType}.pdf`;
    let absoluteFilePath = path.resolve(__dirname, fileToUpload);
    console.log(`Uploading document ${absoluteFilePath}`);
    element.all(by.css("input[type='file']")).sendKeys(absoluteFilePath);

Retrieve column values of the selected row of a multicolumn Access listbox

Just a little addition. If you've only selected 1 row then the code below will select the value of a column (index of 4, but 5th column) for the selected row:

me.lstIssues.Column(4)

This saves having to use the ItemsSelected property.

Kristian

How to send a simple string between two programs using pipes?

Here's a sample:

int main()
{
    char buff[1024] = {0};
    FILE* cvt;
    int status;
    /* Launch converter and open a pipe through which the parent will write to it */
    cvt = popen("converter", "w");
    if (!cvt)
    {
        printf("couldn't open a pipe; quitting\n");
        exit(1)
    }
    printf("enter Fahrenheit degrees: " );
    fgets(buff, sizeof (buff), stdin); /*read user's input */
    /* Send expression to converter for evaluation */
    fprintf(cvt, "%s\n", buff);
    fflush(cvt);
    /* Close pipe to converter and wait for it to exit */
    status=pclose(cvt);
    /* Check the exit status of pclose() */
    if (!WIFEXITED(status))
        printf("error on closing the pipe\n");
    return 0;
}

The important steps in this program are:

  1. The popen() call which establishes the association between a child process and a pipe in the parent.
  2. The fprintf() call that uses the pipe as an ordinary file to write to the child process's stdin or read from its stdout.
  3. The pclose() call that closes the pipe and causes the child process to terminate.

Converting NSData to NSString in Objective c

Unsure of data's encoding type? No problem!

Without need to know potential encoding types, in which wrong encoding types will give you nil/null, this should cover all your bases:

NSString *dataString = [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn];

Done!




Note: In the event this somehow fails, you can unpack your NSData with NSKeyedUnarchiver , then repack the (id)unpacked again via NSKeyedArchiver, and that NSData form should be base64 encodeable.

id unpacked = [NSKeyedUnarchiver unarchiveObjectWithData:data];
data = [NSKeyedArchiver archivedDataWithRootObject:unpacked];

How to make/get a multi size .ico file?

I found an app for Mac OSX called ICOBundle that allows you to easily drop a selection of ico files in different sizes onto the ICOBundle.app, prompts you for a folder destination and file name, and it creates the multi-icon .ico file.

Now if it were only possible to mix-in an animated gif version into that one file it'd be a complete icon set, sadly not possible and requires a separate file and code snippet.

Reporting (free || open source) Alternatives to Crystal Reports in Winforms

If you are using Sql Server (any edition, even express) then you can install Sql Server Reporting Services. This allows the creation of reports through a visual studio plugin, or through a browser control and can export the reports in a variety of formats, including PDF. You can view the reports through the winforms report viewer control which is included, or take advantage of all of the built in generated web content.

The learning curve is not very steep at all if you are used to using datasets in Visual Studio.

Finding repeated words on a string and counting the repetitions

please try these it may be help for you.

public static void main(String[] args) {
        String str1="House, House, House, Dog, Dog, Dog, Dog";
        String str2=str1.replace(",", "");
        Map<String,Integer> map=findFrquenciesInString(str2);
        Set<String> keys=map.keySet();
        Collection<Integer> vals=map.values();
        System.out.println(keys);
        System.out.println(vals);
    }

private static Map<String,Integer> findFrquenciesInString(String str1) {
        String[] strArr=str1.split(" ");
        Map<String,Integer> map=new HashMap<>();
        for(int i=0;i<strArr.length;i++) {
            int count=1;
            for(int j=i+1;j<strArr.length;j++) {
                if(strArr[i].equals(strArr[j]) && strArr[i]!="-1") {
                    strArr[j]="-1";
                    count++;
                }
            }
            if(count>1 && strArr[i]!="-1") {
                map.put(strArr[i], count);
                strArr[i]="-1";
            }
        }
        return map;
    }

How to correctly assign a new string value?

The first example doesn't work because you can't assign values to arrays - arrays work (sort of) like const pointers in this respect. What you can do though is copy a new value into the array:

strcpy(p.name, "Jane");

Char arrays are fine to use if you know the maximum size of the string in advance, e.g. in the first example you are 100% sure that the name will fit into 19 characters (not 20 because one character is always needed to store the terminating zero value).

Conversely, pointers are better if you don't know the possible maximum size of your string, and/or you want to optimize your memory usage, e.g. avoid reserving 512 characters for the name "John". However, with pointers you need to dynamically allocate the buffer they point to, and free it when not needed anymore, to avoid memory leaks.

Update: example of dynamically allocated buffers (using the struct definition in your 2nd example):

char* firstName = "Johnnie";
char* surname = "B. Goode";
person p;

p.name = malloc(strlen(firstName) + 1);
p.surname = malloc(strlen(surname) + 1);

p.age = 25;
strcpy(p.name, firstName);
strcpy(p.surname, surname);

printf("Name: %s; Age: %d\n",p.name,p.age);

free(p.surname);
free(p.name);

The service cannot be started, either because it is disabled or because it has no enabled devices associated with it

This error can occur on anything that requires elevated privileges in Windows.

It happens when the "Application Information" service is disabled in Windows services. There are a few viruses that use this as an attack vector to prevent people from removing the virus. It also prevents people from installing software to remove viruses.

The normal way to fix this would be to run services.msc, or to go into Administrative Tools and run "Services". However, you will not be able to do that if the "Application Information" service is disabled.

Instead, reboot your computer into Safe Mode (reboot and press F8 until the Windows boot menu appears, select Safe Mode with Networking). Then run services.msc and look for services that are designated as "Disabled" in the Startup Type column. Change these "Disabled" services to "Automatic".

Make sure the "Application Information" service is set to a Startup Type of "Automatic".

When you are done enabling your services, click Ok at the bottom of the tool and reboot your computer back into normal mode. The problem should be resolved when Windows reboots.

read subprocess stdout line by line

Bit late to the party, but was surprised not to see what I think is the simplest solution here:

import io
import subprocess

proc = subprocess.Popen(["prog", "arg"], stdout=subprocess.PIPE)
for line in io.TextIOWrapper(proc.stdout, encoding="utf-8"):  # or another encoding
    # do something with line

(This requires Python 3.)

When to use static methods

A static method is one type of method which doesn't need any object to be initialized for it to be called. Have you noticed static is used in the main function in Java? Program execution begins from there without an object being created.

Consider the following example:

 class Languages 
 {
     public static void main(String[] args) 
     {
         display();
     }

     static void display() 
     {
         System.out.println("Java is my favorite programming language.");
     }
  }

Curl Command to Repeat URL Request

You might be interested in Apache Bench tool which is basically used to do simple load testing.

example :

ab -n 500 -c 20 http://www.example.com/

n = total number of request, c = number of concurrent request

Received fatal alert: handshake_failure through SSLHandshakeException

I found an HTTPS server which failed in this way if my Java client process was configured with

-Djsse.enableSNIExtension=false

The connection failed with handshake_failure after the ServerHello had finished successfully but before the data stream started.

There was no clear error message that identified the problem, the error just looked like

main, READ: TLSv1.2 Alert, length = 2
main, RECV TLSv1.2 ALERT:  fatal, handshake_failure
%% Invalidated:  [Session-3, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384]
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

I isolated the issue by trying with and without the "-Djsse.enableSNIExtension=false" option

List file using ls command in Linux with full path

I have had this issue, and I use the following :

ls -dl $PWD/* | grep $PWD

It has always got me the listingI have wanted, but your mileage may vary.

Adding +1 to a variable inside a function

points is not within the function's scope. You can grab a reference to the variable by using nonlocal:

points = 0
def test():
    nonlocal points
    points += 1

If points inside test() should refer to the outermost (module) scope, use global:

points = 0
def test():
    global points
    points += 1

Deserialize JSON string to c# object

This may be useful:

var serializer = new JavaScriptSerializer();
dynamic jsonObject = serializer.Deserialize<dynamic>(json);

Where "json" is the string that contains the JSON values. Then to retrieve the values from the jsonObject you may use

myProperty = Convert.MyPropertyType(jsonObject["myProperty"]);

Changing MyPropertyType to the proper type (ToInt32, ToString, ToBoolean, etc).

How to use a BackgroundWorker?

I know this is a bit old, but in case another beginner is going through this, I'll share some code that covers a bit more of the basic operations, here is another example that also includes the option to cancel the process and also report to the user the status of the process. I'm going to add on top of the code given by Alex Aza in the solution above

public Form1()
{
    InitializeComponent();

    backgroundWorker1.DoWork += backgroundWorker1_DoWork;
    backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;
    backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted;  //Tell the user how the process went
    backgroundWorker1.WorkerReportsProgress = true;
    backgroundWorker1.WorkerSupportsCancellation = true; //Allow for the process to be cancelled
}

//Start Process
private void button1_Click(object sender, EventArgs e)
{
    backgroundWorker1.RunWorkerAsync();
}

//Cancel Process
private void button2_Click(object sender, EventArgs e)
{
    //Check if background worker is doing anything and send a cancellation if it is
    if (backgroundWorker1.IsBusy)
    {
        backgroundWorker1.CancelAsync();
    }

}

private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
    for (int i = 0; i < 100; i++)
    {
        Thread.Sleep(1000);
        backgroundWorker1.ReportProgress(i);

        //Check if there is a request to cancel the process
        if (backgroundWorker1.CancellationPending)
        {
            e.Cancel = true;
            backgroundWorker1.ReportProgress(0);
            return;
        }
    }
    //If the process exits the loop, ensure that progress is set to 100%
    //Remember in the loop we set i < 100 so in theory the process will complete at 99%
    backgroundWorker1.ReportProgress(100);
}

private void backgroundWorker1_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
    progressBar1.Value = e.ProgressPercentage;
}

private void backgroundWorker1_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{
    if (e.Cancelled)
    {
         lblStatus.Text = "Process was cancelled";
    }
    else if (e.Error != null)
    {
         lblStatus.Text = "There was an error running the process. The thread aborted";
    }
    else
    {
       lblStatus.Text = "Process was completed";
    }
}

Generating a WSDL from an XSD file

You cannot - a XSD describes the DATA aspects e.g. of a webservice - the WSDL describes the FUNCTIONS of the web services (method calls). You cannot typically figure out the method calls from your data alone.

These are really two separate, distinctive parts of the equation. For simplicity's sake you would often import your XSD definitions into the WSDL in the <wsdl:types> tag.

(thanks to Cheeso for pointing out my inaccurate usage of terms)

How to get a unix script to run every 15 seconds?

#! /bin/sh

# Run all programs in a directory in parallel
# Usage: run-parallel directory delay
# Copyright 2013 by Marc Perkel
# docs at http://wiki.junkemailfilter.com/index.php/How_to_run_a_Linux_script_every_few_seconds_under_cron"
# Free to use with attribution

if [ $# -eq 0 ]
then
   echo
   echo "run-parallel by Marc Perkel"
   echo
   echo "This program is used to run all programs in a directory in parallel" 
   echo "or to rerun them every X seconds for one minute."
   echo "Think of this program as cron with seconds resolution."
   echo
   echo "Usage: run-parallel [directory] [delay]"
   echo
   echo "Examples:"
   echo "   run-parallel /etc/cron.20sec 20"
   echo "   run-parallel 20"
   echo "   # Runs all executable files in /etc/cron.20sec every 20 seconds or 3 times a minute."
   echo 
   echo "If delay parameter is missing it runs everything once and exits."
   echo "If only delay is passed then the directory /etc/cron.[delay]sec is assumed."
   echo
   echo 'if "cronsec" is passed then it runs all of these delays 2 3 4 5 6 10 12 15 20 30'
   echo "resulting in 30 20 15 12 10 6 5 4 3 2 executions per minute." 
   echo
   exit
fi

# If "cronsec" is passed as a parameter then run all the delays in parallel

if [ $1 = cronsec ]
then
   $0 2 &
   $0 3 &
   $0 4 &
   $0 5 &
   $0 6 &
   $0 10 &
   $0 12 &
   $0 15 &
   $0 20 &
   $0 30 &
   exit
fi

# Set the directory to first prameter and delay to second parameter

dir=$1
delay=$2

# If only parameter is 2,3,4,5,6,10,12,15,20,30 then automatically calculate 
# the standard directory name /etc/cron.[delay]sec

if [[ "$1" =~ ^(2|3|4|5|6|10|12|15|20|30)$ ]]
then
   dir="/etc/cron.$1sec"
   delay=$1
fi

# Exit if directory doesn't exist or has no files

if [ ! "$(ls -A $dir/)" ]
then
   exit
fi

# Sleep if both $delay and $counter are set

if [ ! -z $delay ] && [ ! -z $counter ]
then
   sleep $delay
fi

# Set counter to 0 if not set

if [ -z $counter ]
then
   counter=0
fi

# Run all the programs in the directory in parallel
# Use of timeout ensures that the processes are killed if they run too long

for program in $dir/* ; do
   if [ -x $program ] 
   then
      if [ "0$delay" -gt 1 ] 
      then
         timeout $delay $program &> /dev/null &
      else
         $program &> /dev/null &
      fi
   fi
done

# If delay not set then we're done

if [ -z $delay ]
then
   exit
fi

# Add delay to counter

counter=$(( $counter + $delay ))

# If minute is not up - call self recursively

if [ $counter -lt 60 ]
then
   . $0 $dir $delay &
fi

# Otherwise we're done

Changing CSS for last <li>

$('li').last().addClass('someClass');

if you have multiple

  • group it will only select the last li.

  • How can I get around MySQL Errcode 13 with SELECT INTO OUTFILE?

    In my case, the solution was to make every directory in the directory path readable and accessible by mysql (chmod a+rx). The directory was still specified by its relative path in the command line.

    chmod a+rx /tmp
    chmod a+rx /tmp/migration
    etc.
    

    How to print to console in pytest?

    Using -s option will print output of all functions, which may be too much.

    If you need particular output, the doc page you mentioned offers few suggestions:

    1. Insert assert False, "dumb assert to make PyTest print my stuff" at the end of your function, and you will see your output due to failed test.

    2. You have special object passed to you by PyTest, and you can write the output into a file to inspect it later, like

      def test_good1(capsys):
          for i in range(5):
              print i
          out, err = capsys.readouterr()
          open("err.txt", "w").write(err)
          open("out.txt", "w").write(out)
      

      You can open the out and err files in a separate tab and let editor automatically refresh it for you, or do a simple py.test; cat out.txt shell command to run your test.

    That is rather hackish way to do stuff, but may be it is the stuff you need: after all, TDD means you mess with stuff and leave it clean and silent when it's ready :-).

    How to access your website through LAN in ASP.NET

    You will need to configure you IIS (assuming this is the web server your are/will using) allowing access from WLAN/LAN to specific users (or anonymous). Allow IIS trought your firewall if you have one.

    Your application won't need to be changed, that's just networking problems ans configuration you will have to face to allow acces only trought LAN and WLAN.

    XCOPY switch to create specified directory if it doesn't exist?

    I tried this on the command line using

    D:\>xcopy myfile.dat xcopytest\test\
    

    and the target directory was properly created.

    If not you can create the target dir using the mkdir command with cmd's command extensions enabled like

    cmd /x /c mkdir "$(SolutionDir)Prism4Demo.Shell\$(OutDir)Modules\"
    

    ('/x' enables command extensions in case they're not enabled by default on your system, I'm not that familiar with cmd)

    use

    cmd /? 
    mkdir /?
    xcopy /?
    

    for further information :)

    Bootstrap alert in a fixed floating div at the top of page

    Others are suggesting a wrapping div but you should be able to do this without adding complexity to your html...

    check this out:

    #message {
      box-sizing: border-box;
      padding: 8px;
    }
    

    Efficient way to remove ALL whitespace from String?

    This is fastest way I know of, even though you said you didn't want to use regular expressions:

    Regex.Replace(XML, @"\s+", "")
    

    How do you convert a C++ string to an int?

    #include <sstream>
    
    // st is input string
    int result;
    stringstream(st) >> result;
    

    Call a React component method from outside

    method 1 using ChildRef:

    public childRef: any = React.createRef<Hello>();
    
    public onButtonClick= () => {
        console.log(this.childRef.current); // this will have your child reference
    }
    
    <Hello ref = { this.childRef }/>
    <button onclick="onButtonClick()">Click me!</button>
    

    Method 2: using window register

    public onButtonClick= () => {
        console.log(window.yourRef); // this will have your child reference
    }
    
    <Hello ref = { (ref) => {window.yourRef = ref} }/>`
    <button onclick="onButtonClick()">Click me!</button>
    

    Extract and delete all .gz in a directory- Linux

    There's more than one way to do this obviously.

        # This will find files recursively (you can limit it by using some 'find' parameters. 
        # see the man pages
        # Final backslash required for exec example to work
        find . -name '*.gz' -exec gunzip '{}' \;
    
        # This will do it only in the current directory
        for a in *.gz; do gunzip $a; done
    

    I'm sure there's other ways as well, but this is probably the simplest.

    And to remove it, just do a rm -rf *.gz in the applicable directory

    Modifying the "Path to executable" of a windows service

    You could also do it with PowerShell:

    Get-WmiObject win32_service -filter "Name='My Service'" `
        | Invoke-WmiMethod -Name Change `
        -ArgumentList @($null,$null,$null,$null,$null, `
        "C:\Program Files (x86)\My Service\NewName.EXE")
    

    Or:

    Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\My Service" `
        -Name ImagePath -Value "C:\Program Files (x86)\My Service\NewName.EXE"
    

    how to get curl to output only http response body (json) and no other headers etc

    You are specifying the -i option:

    -i, --include

    (HTTP) Include the HTTP-header in the output. The HTTP-header includes things like server-name, date of the document, HTTP-version and more...

    Simply remove that option from your command line:

    response=$(curl -sb -H "Accept: application/json" "http://host:8080/some/resource")
    

    What is the difference between java and core java?

    "Core Java" is Sun's term, used to refer to Java SE, the standard edition and a set of related technologies, like the Java VM, CORBA, et cetera. This is mostly to differentiate from, say, Java ME or Java EE.

    Also note that they're talking about a set of libraries rather than the programming language. That is, the underlying way you write Java doesn't change, regardless of the libraries you're using.

    Split function in oracle to comma separated values with automatic sequence

    This function returns the nth part of input string MYSTRING. Second input parameter is separator ie., SEPARATOR_OF_SUBSTR and the third parameter is Nth Part which is required.

    Note: MYSTRING should end with the separator.

    create or replace FUNCTION PK_GET_NTH_PART(MYSTRING VARCHAR2,SEPARATOR_OF_SUBSTR VARCHAR2,NTH_PART NUMBER)
    RETURN VARCHAR2
    IS
    NTH_SUBSTR VARCHAR2(500);
    POS1 NUMBER(4);
    POS2 NUMBER(4);
    BEGIN
    IF NTH_PART=1 THEN
    SELECT REGEXP_INSTR(MYSTRING,SEPARATOR_OF_SUBSTR, 1, 1)  INTO POS1 FROM DUAL; 
    SELECT SUBSTR(MYSTRING,0,POS1-1) INTO NTH_SUBSTR FROM DUAL;
    ELSE
    SELECT REGEXP_INSTR(MYSTRING,SEPARATOR_OF_SUBSTR, 1, NTH_PART-1) INTO  POS1 FROM DUAL; 
    SELECT REGEXP_INSTR(MYSTRING,SEPARATOR_OF_SUBSTR, 1, NTH_PART)  INTO POS2 FROM DUAL; 
    SELECT SUBSTR(MYSTRING,POS1+1,(POS2-POS1-1)) INTO NTH_SUBSTR FROM DUAL;
    END IF;
    RETURN NTH_SUBSTR;
    END;
    

    Hope this helps some body, you can use this function like this in a loop to get all the values separated:

    SELECT REGEXP_COUNT(MYSTRING, '~', 1, 'i') INTO NO_OF_RECORDS FROM DUAL;
    WHILE NO_OF_RECORDS>0
    LOOP
        PK_RECORD    :=PK_GET_NTH_PART(MYSTRING,'~',NO_OF_RECORDS);
        -- do some thing
        NO_OF_RECORDS  :=NO_OF_RECORDS-1;
    END LOOP;
    

    Here NO_OF_RECORDS,PK_RECORD are temp variables.

    Hope this helps.

    pass post data with window.location.href

    You can use GET instead of pass, but don't use this method for important values,

    function passIDto(IDval){    
    window.location.href = "CustomerBasket.php?oridd=" +  IDval ;
    }   
    

    In the CustomerBasket.php

    <?php
      $value = $_GET["oridd"];
      echo  $value;
    ?>
    

    How do I delete all the duplicate records in a MySQL table without temp tables

    Add Unique Index on your table:

    ALTER IGNORE TABLE `TableA`   
    ADD UNIQUE INDEX (`member_id`, `quiz_num`, `question_num`, `answer_num`);
    

    Another way to do this would be:

    Add primary key in your table then you can easily remove duplicates from your table using the following query:

    DELETE FROM member  
    WHERE id IN (SELECT * 
                 FROM (SELECT id FROM member 
                       GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1)
                      ) AS A
                );
    

    How to capture a backspace on the onkeydown event

    not sure if it works outside of firefox:

    callback (event){
      if (event.keyCode === event.DOM_VK_BACK_SPACE || event.keyCode === event.DOM_VK_DELETE)
        // do something
      }
    }
    

    if not, replace event.DOM_VK_BACK_SPACE with 8 and event.DOM_VK_DELETE with 46 or define them as constant (for better readability)

    Android Studio AVD - Emulator: Process finished with exit code 1

    Android make the default avd files in the C:\Users\[USERNAME]\.android directory. Just make sure you copy the avd folder from this directory C:\Users\[USERNAME]\.android to C:\Android\.android. My problem was resolved after doing this.

    How to automate browsing using python?

    You likely want urllib2. It can handle things like HTTPS, cookies, and authentication. You will probably also want BeautifulSoup to help parse the HTML pages.

    Capturing URL parameters in request.GET

    You might as well check request.META dictionary to access many useful things like PATH_INFO, QUERY_STRING

    # for example
    request.META['QUERY_STRING']
    
    # or to avoid any exceptions provide a fallback
    
    request.META.get('QUERY_STRING', False)
    
    

    you said that it returns empty query dict

    I think you need to tune your url to accept required or optional args or kwargs Django got you all the power you need with regrex like:

    url(r'^project_config/(?P<product>\w+)/$', views.foo),
    
    

    more about this at django-optional-url-parameters

    How do I split a string so I can access item x?

    Using SQL Server 2016 and above. Use this code to TRIM strings, ignore NULL values and apply a row index in the correct order. It also works with a space delimiter:

    DECLARE @STRING_VALUE NVARCHAR(MAX) = 'one, two,,three, four,     five'
    
    SELECT ROW_NUMBER() OVER (ORDER BY R.[index]) [index], R.[value] FROM
    (
        SELECT
            1 [index], NULLIF(TRIM([value]), '') [value] FROM STRING_SPLIT(@STRING_VALUE, ',') T
        WHERE
            NULLIF(TRIM([value]), '') IS NOT NULL
    ) R
    

    Setting the height of a DIV dynamically

    Try this simple, specific function:

    function resizeElementHeight(element) {
      var height = 0;
      var body = window.document.body;
      if (window.innerHeight) {
          height = window.innerHeight;
      } else if (body.parentElement.clientHeight) {
          height = body.parentElement.clientHeight;
      } else if (body && body.clientHeight) {
          height = body.clientHeight;
      }
      element.style.height = ((height - element.offsetTop) + "px");
    }
    

    It does not depend on the current distance from the top of the body being specified (in case your 300px changes).


    EDIT: By the way, you would want to call this on that div every time the user changed the browser's size, so you would need to wire up the event handler for that, of course.

    Change Project Namespace in Visual Studio

    Assuming this is for a C# project and assuming that you want to change the default namespace, you need to go to Project Properties, Application tab, and specify "Default Namespace".

    Default namespace is the namespace that Visual studio sets when you create a new class. Next time you do Right Click > Add > Class it would use the namespace you specified in the above step.

    Parsing JSON giving "unexpected token o" error

    I had the same problem when I submitted data using jQuery AJAX:

    $.ajax({
       url:...
       success:function(data){
          //server response's data is JSON
          //I use jQuery's parseJSON method 
          $.parseJSON(data);//it's ERROR
       }
    });
    

    If the response is JSON, and you use this method, the data you get is a JavaScript object, but if you use dataType:"text", data is a JSON string. Then the use of $.parseJSON is okay.

    Insert data to MySql DB and display if insertion is success or failure

    According to the book PHP and MySQL for Dynamic Web Sites (4th edition)

    Example:

    $r = mysqli_query($dbc, $q);
    

    For simple queries like INSERT, UPDATE, DELETE, etc. (which do not return records), the $r variable—short for result—will be either TRUE or FALSE, depending upon whether the query executed successfully.

    Keep in mind that “executed successfully” means that it ran without error; it doesn’t mean that the query’s execution necessarily had the desired result; you’ll need to test for that.

    Then how to test?

    While the mysqli_num_rows() function will return the number of rows generated by a SELECT query, mysqli_affected_rows() returns the number of rows affected by an INSERT, UPDATE, or DELETE query. It’s used like so:

    $num = mysqli_affected_rows($dbc);
    

    Unlike mysqli_num_rows(), the one argument the function takes is the database connection ($dbc), not the results of the previous query ($r).

    Swap DIV position with CSS only

    This solution worked for me:

    Using a parent element like:

    .parent-div {
        display:flex;
        flex-direction: column-reverse;
    }
    

    In my case I didn't have to change the css of the elements that I needed to switch.

    Width equal to content

    I set width as max-content and it worked for me.

    width: max-content;

    Can I set up HTML/Email Templates with ASP.NET?

    I'd use a templating library like TemplateMachine. this allows you mostly put your email template together with normal text and then use rules to inject/replace values as necessary. Very similar to ERB in Ruby. This allows you to separate the generation of the mail content without tying you too heavily to something like ASPX etc. then once the content is generated with this, you can email away.

    Use bash to find first folder name that contains a string

    for example:

    dir1=$(find . -name \*foo\* -type d -maxdepth 1 -print | head -n1)
    echo "$dir1"
    

    or (For the better shell solution see Adrian Frühwirth's answer)

    for dir1 in *
    do
        [[ -d "$dir1" && "$dir1" =~ foo ]] && break
        dir1=        #fix based on comment
    done
    echo "$dir1"
    

    or

    dir1=$(find . -type d -maxdepth 1 -print | grep 'foo' | head -n1)
    echo "$dir1"
    

    Edited head -n1 based on @ hek2mgl comment

    Next based on @chepner's comments

    dir1=$(find . -type d -maxdepth 1 -print | grep -m1 'foo')
    

    or

    dir1=$(find . -name \*foo\* -type d -maxdepth 1 -print -quit)
    

    How do I make a self extract and running installer

    I have created step by step instructions on how to do this as I also was very confused about how to get this working.

    How to make a self extracting archive that runs your setup.exe with 7zip -sfx switch

    Here are the steps.

    Step 1 - Setup your installation folder

    To make this easy create a folder c:\Install. This is where we will copy all the required files.

    Step 2 - 7Zip your installers

    1. Go to the folder that has your .msi and your setup.exe
    2. Select both the .msi and the setup.exe
    3. Right-Click and choose 7Zip --> "Add to Archive"
    4. Name your archive "Installer.7z" (or a name of your choice)
    5. Click Ok
    6. You should now have "Installer.7z".
    7. Copy this .7z file to your c:\Install directory

    Step 3 - Get the 7z-Extra sfx extension module

    You need to download 7zSD.sfx

    1. Download one of the LZMA packages from here
    2. Extract the package and find 7zSD.sfx in the bin folder.
    3. Copy the file "7zSD.sfx" to c:\Install

    Step 4 - Setup your config.txt

    I would recommend using NotePad++ to edit this text file as you will need to encode in UTF-8, the following instructions are using notepad++.

    1. Using windows explorer go to c:\Install
    2. right-click and choose "New Text File" and name it config.txt
    3. right-click and choose "Edit with NotePad++
    4. Click the "Encoding Menu" and choose "Encode in UTF-8"
    5. Enter something like this:

      ;!@Install@!UTF-8!
      Title="SOFTWARE v1.0.0.0"
      BeginPrompt="Do you want to install SOFTWARE v1.0.0.0?"
      RunProgram="setup.exe"
      ;!@InstallEnd@!
      

    Edit this replacing [SOFTWARE v1.0.0.0] with your product name. Notes on the parameters and options for the setup file are here.

    CheckPoint

    You should now have a folder "c:\Install" with the following 3 files:

    1. Installer.7z
    2. 7zSD.sfx
    3. config.txt

    Step 5 - Create the archive

    These instructions I found on the web but nowhere did it explain any of the 4 steps above.

    1. Open a cmd window, Window + R --> cmd --> press enter
    2. In the command window type the following

      cd \
      cd Install
      copy /b 7zSD.sfx + config.txt + Installer.7z MyInstaller.exe
      
    3. Look in c:\Install and you will now see you have a MyInstaller.exe

    4. You are finished

    Run the installer

    Double click on MyInstaller.exe and it will prompt with your message. Click OK and the setup.exe will run.

    P.S. Note on Automation

    Now that you have this working in your c:\Install directory I would create an "Install.bat" file and put the copy script in it.

    copy /b 7zSD.sfx + config.txt + Installer.7z MyInstaller.exe
    

    Now you can just edit and run the Install.bat every time you need to rebuild a new version of you deployment package.

    How to set up subdomains on IIS 7

    Wildcard method: Add the following entry into your DNS server and change the domain and IP address accordingly.

    *.example.com IN A 1.2.3.4

    http://www.webmasterworld.com/microsoft_asp_net/3194877.htm

    Removing duplicates from a String in Java

    This is improvement on solution suggested by @Dave. Here, I am implementing in single loop only.

    Let's reuse the return of set.add(T item) method and add it simultaneously in StringBuffer if add is successfull

    This is just O(n). No need to make a loop again.

    String string = "aabbccdefatafaz";
    
    char[] chars = string.toCharArray();
    StringBuilder sb = new StringBuilder();
    Set<Character> charSet = new LinkedHashSet<Character>();
    for (char c : chars) {
        if(charSet.add(c) ){
            sb.append(c);
        }
    
    }
    System.out.println(sb.toString()); // abcdeftz
    

    Correct way to write line to file?

    since others have answered how to do it, I'll answer how it happens line by line.

    with FileOpenerCM('file.txt') as fp: # is equal to "with open('file.txt') as fp:"
          fp.write('dummy text')
    

    this is a so-called context manager, anything that comes with a with block is a context manager. so let's see how this happens under the hood.

    class FileOpenerCM:
         def __init__(self, file, mode='w'):
             self.file = open(file, mode)
          
         def __enter__(self):
              return self.file
          
         def __exit__(self, exc_type, exc_value, exc_traceback):
             self.file.close()
    

    the first method __init__ is (as you all know) the initialization method of an object. whenever an object is created obj.__init__ is definitely called. and that's the place where you put your all the init kinda code.

    the second method __enter__ is a bit interesting. some of you might not have seen it because it is a specific method for context managers. what it returns is the value to be assigned to the variable after the as keyword. in our case, fp.

    the last method is the method to run after an error is captured or if the code exits the with block. exc_type, exc_value, exc_traceback variables are the variables that hold the values of the errors that occurred inside with block. for example,

    exc_type: TypeError
    exc_value: unsupported operand type(s) for +: 'int' and 'str
    exc_traceback: <traceback object at 0x6af8ee10bc4d>
    

    from the first two variables, you can get info enough info about the error. honestly, I don't know the use of the third variable, but for me, the first two are enough. if you want to do more research on context managers surely you can do it and note that writing classes are not the only way to write context managers. with contextlib you can write context managers through functions(actually generators) as well. it's totally up to you to have a look at it. you can surely try generator functions with contextlib but as I see classes are much cleaner.

    Where can I get Google developer key

    Recent Update July 2017:

    1. Go to Google Console
    2. Click on Left most top panel and click credentials. enter image description here
    3. In the API keys table, you will find the API key in the key column.

    What is the syntax for adding an element to a scala.collection.mutable.Map?

    As always, you should question whether you truly need a mutable map.

    Immutable maps are trivial to build:

    val map = Map(
      "mykey" -> "myval",
      "myotherkey" -> "otherval"
    )
    

    Mutable maps are no different when first being built:

    val map = collection.mutable.Map(
      "mykey" -> "myval",
      "myotherkey" -> "otherval"
    )
    
    map += "nextkey" -> "nextval"
    

    In both of these cases, inference will be used to determine the correct type parameters for the Map instance.

    You can also hold an immutable map in a var, the variable will then be updated with a new immutable map instance every time you perform an "update"

    var map = Map(
      "mykey" -> "myval",
      "myotherkey" -> "otherval"
    )
    
    map += "nextkey" -> "nextval"
    

    If you don't have any initial values, you can use Map.empty:

    val map : Map[String, String] = Map.empty //immutable
    val map = Map.empty[String,String] //immutable
    val map = collection.mutable.Map.empty[String,String] //mutable
    

    Safely turning a JSON string into an object

    JSON.parse is the right way to convert a string into an object but if the string that is parsed is not object or if the string is not correct then it will throw an error that will cause the rest of the code to break so it is ideal to wrap the JSON.parse function inside try-catch like

    try{
       let obj = JSON.parse(string);
    }catch(err){
       console.log(err);
    }
    

    why is plotting with Matplotlib so slow?

    For the first solution proposed by Joe Kington ( .copy_from_bbox & .draw_artist & canvas.blit), I had to capture the backgrounds after the fig.canvas.draw() line, otherwise the background had no effect and I got the same result as you mentioned. If you put it after the fig.show() it still does not work as proposed by Michael Browne.

    So just put the background line after the canvas.draw():

    [...]
    fig.show()
    
    # We need to draw the canvas before we start animating...
    fig.canvas.draw()
    
    # Let's capture the background of the figure
    backgrounds = [fig.canvas.copy_from_bbox(ax.bbox) for ax in axes]
    

    Starting a shell in the Docker Alpine container

    ole@T:~$ docker run -it --rm alpine /bin/ash
    (inside container) / # 
    

    Options used above:

    • /bin/ash is Ash (Almquist Shell) provided by BusyBox
    • --rm Automatically remove the container when it exits (docker run --help)
    • -i Interactive mode (Keep STDIN open even if not attached)
    • -t Allocate a pseudo-TTY

    Angular ng-if not true

    try this:

    <div ng-if="$scope.length == 0" ? true : false></div>
    

    and show or hide

    <div ng-show="$scope.length == 0"></div>
    

    else it will be hide

    -----------------or--------------------------

    if you are using $ctrl than code will be like this:

    try this:

    <div ng-if="$ctrl.length == 0" ? true : false></div>
    

    and show or hide

    <div ng-show="$ctrl.length == 0"></div>
    

    else it will be hide

    How do I inject a controller into another controller in AngularJS

    The best solution:-

    angular.module("myapp").controller("frstCtrl",function($scope){
        $scope.name="Atul Singh";
    })
    .controller("secondCtrl",function($scope){
         angular.extend(this, $controller('frstCtrl', {$scope:$scope}));
         console.log($scope);
    })
    

    // Here you got the first controller call without executing it

    PostgreSQL create table if not exists

    Try this:

    CREATE TABLE IF NOT EXISTS app_user (
      username varchar(45) NOT NULL,
      password varchar(450) NOT NULL,
      enabled integer NOT NULL DEFAULT '1',
      PRIMARY KEY (username)
    )
    

    How do you join on the same table, twice, in mysql?

    Read this and try, this will help you:

    Table1

    column11,column12,column13,column14
    

    Table2

    column21,column22,column23,column24
    
    
    SELECT table1.column11,table1.column12,table2asnew1.column21,table2asnew2.column21 
    FROM table1 INNER JOIN table2 AS table2asnew1 ON table1.column11=table2asnew1.column21  INNER TABLE table2 as table2asnew2 ON table1.column12=table2asnew2.column22
    

    table2asnew1 is an instance of table 2 which is matched by table1.column11=table2asnew1.column21

    and

    table2asnew2 is another instance of table 2 which is matched by table1.column12=table2asnew2.column22

    Java Class that implements Map and keeps insertion order?

    I suggest a LinkedHashMap or a TreeMap. A LinkedHashMap keeps the keys in the order they were inserted, while a TreeMap is kept sorted via a Comparator or the natural Comparable ordering of the elements.

    Since it doesn't have to keep the elements sorted, LinkedHashMap should be faster for most cases; TreeMap has O(log n) performance for containsKey, get, put, and remove, according to the Javadocs, while LinkedHashMap is O(1) for each.

    If your API that only expects a predictable sort order, as opposed to a specific sort order, consider using the interfaces these two classes implement, NavigableMap or SortedMap. This will allow you not to leak specific implementations into your API and switch to either of those specific classes or a completely different implementation at will afterwards.

    What is the difference between HTML tags <div> and <span>?

    I would say that if you know a bit of spanish to look at this page, where is properly explained.

    However, a fast definition would be that div is for dividing sections and span is for applying some kind of style to an element within another block element like div.

    Combining (concatenating) date and time into a datetime

    The simple solution

    SELECT CAST(CollectionDate as DATETIME) + CAST(CollectionTime as DATETIME)
    FROM field
    

    getElementsByClassName not working

    If you want to do it by ClassName you could do:

    <script type="text/javascript">
    function hideTd(className){
        var elements;
    
        if (document.getElementsByClassName)
        {
            elements = document.getElementsByClassName(className);
        }
        else
        {
            var elArray = [];
            var tmp = document.getElementsByTagName(elements);  
            var regex = new RegExp("(^|\\s)" + className+ "(\\s|$)");
            for ( var i = 0; i < tmp.length; i++ ) {
    
                if ( regex.test(tmp[i].className) ) {
                    elArray.push(tmp[i]);
                }
            }
    
            elements = elArray;
        }
    
        for(var i = 0, i < elements.length; i++) {
           if( elements[i].textContent == ''){
              elements[i].style.display = 'none';
           } 
        }
    
      }
    </script>
    

    ERROR 403 in loading resources like CSS and JS in my index.php

    You need to change permissions on the folder bootstrap/css. Your super user may be able to access it but it doesn't mean apache or nginx have access to it, that's why you still need to change the permissions.

    Tip: I usually make the apache/nginx's user group owner of that kind of folders and give 775 permission to it.

    How can I select rows with most recent timestamp for each key value?

    WITH SensorTimes As (
       SELECT sensorID, MAX(timestamp) "LastReading"
       FROM sensorTable
       GROUP BY sensorID
    )
    SELECT s.sensorID,s.timestamp,s.sensorField1,s.sensorField2 
    FROM sensorTable s
    INNER JOIN SensorTimes t on s.sensorID = t.sensorID and s.timestamp = t.LastReading
    

    JPA: difference between @JoinColumn and @PrimaryKeyJoinColumn?

    I normally differentiate these two via this diagram:

    Use PrimaryKeyJoinColumn

    enter image description here

    Use JoinColumn

    enter image description here

    Why not use tables for layout in HTML?

    This isn't really about whether 'divs are better than tables for layout'. Someone who understands CSS can duplicate any design using 'layout tables' pretty straightforwardly. The real win is using HTML elements for what they are there for. The reason you would not use tables for non-tablular data is the same reason you don't store integers as character strings - technology works much more easily when you use it for the purpose for which it is desgined. If it was ever necessary to use tables for layout (because of browser shortcomings in the early 1990s) it certainly isn't now.

    Registering for Push Notifications in Xcode 8/Swift 3.0?

    import UserNotifications  
    

    Next, go to the project editor for your target, and in the General tab, look for the Linked Frameworks and Libraries section.

    Click + and select UserNotifications.framework:

    // iOS 12 support
    if #available(iOS 12, *) {  
        UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound, .provisional, .providesAppNotificationSettings, .criticalAlert]){ (granted, error) in }
        application.registerForRemoteNotifications()
    }
    
    // iOS 10 support
    if #available(iOS 10, *) {  
        UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error) in }
        application.registerForRemoteNotifications()
    }
    // iOS 9 support
    else if #available(iOS 9, *) {  
        UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))
        UIApplication.shared.registerForRemoteNotifications()
    }
    // iOS 8 support
    else if #available(iOS 8, *) {  
        UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))
        UIApplication.shared.registerForRemoteNotifications()
    }
    // iOS 7 support
    else {  
        application.registerForRemoteNotifications(matching: [.badge, .sound, .alert])
    }
    

    Use Notification delegate methods

    // Called when APNs has assigned the device a unique token
    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {  
        // Convert token to string
        let deviceTokenString = deviceToken.reduce("", {$0 + String(format: "%02X", $1)})
        print("APNs device token: \(deviceTokenString)")
    }
    
    // Called when APNs failed to register the device for push notifications
    func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {  
        // Print the error to console (you should alert the user that registration failed)
        print("APNs registration failed: \(error)")
    }
    

    For receiving push notification

    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        completionHandler(UIBackgroundFetchResult.noData)
    }
    

    Setting up push notifications is enabling the feature within Xcode 8 for your app. Simply go to the project editor for your target and then click on the Capabilities tab. Look for Push Notifications and toggle its value to ON.

    Check below link for more Notification delegate methods

    Handling Local and Remote Notifications UIApplicationDelegate - Handling Local and Remote Notifications

    https://developer.apple.com/reference/uikit/uiapplicationdelegate

    C# - Multiple generic types in one list

    Following leppie's answer, why not make MetaData an interface:

    public interface IMetaData { }
    
    public class Metadata<DataType> : IMetaData where DataType : struct
    {
        private DataType mDataType;
    }
    

    Regular expression for first and last name

    I use:

    /^(?:[\u00c0-\u01ffa-zA-Z'-]){2,}(?:\s[\u00c0-\u01ffa-zA-Z'-]{2,})+$/i
    

    And test for maxlength using some other means

    How do you convert between 12 hour time and 24 hour time in PHP?

    // 24-hour time to 12-hour time 
    $time_in_12_hour_format  = date("g:i a", strtotime("13:30"));
    
    // 12-hour time to 24-hour time 
    $time_in_24_hour_format  = date("H:i", strtotime("1:30 PM"));
    

    printf() prints whole array

    But still, the memory address for each letter in this address is different.

    Memory address is different but as its array of characters they are sequential. When you pass address of first element and use %s, printf will print all characters starting from given address until it finds '\0'.

    cmake - find_library - custom library location

    I saw that two people put that question to their favorites so I will try to answer the solution which works for me: Instead of using find modules I'm writing configuration files for all libraries which are installed. Those files are extremly simple and can also be used to set non-standard variables. CMake will (at least on windows) search for those configuration files in

    CMAKE_PREFIX_PATH/<<package_name>>-<<version>>/<<package_name>>-config.cmake
    

    (which can be set through an environment variable). So for example the boost configuration is in the path

    CMAKE_PREFIX_PATH/boost-1_50/boost-config.cmake
    

    In that configuration you can set variables. My config file for boost looks like that:

    set(boost_INCLUDE_DIRS ${boost_DIR}/include)
    set(boost_LIBRARY_DIR ${boost_DIR}/lib)
    foreach(component ${boost_FIND_COMPONENTS}) 
        set(boost_LIBRARIES ${boost_LIBRARIES} debug ${boost_LIBRARY_DIR}/libboost_${component}-vc110-mt-gd-1_50.lib)
        set(boost_LIBRARIES ${boost_LIBRARIES} optimized ${boost_LIBRARY_DIR}/libboost_${component}-vc110-mt-1_50.lib)
    endforeach()
    add_definitions( -D_WIN32_WINNT=0x0501 )
    

    Pretty straight forward + it's possible to shrink the size of the config files even more when you write some helper functions. The only issue I have with this setup is that I havn't found a way to give config files a priority over find modules - so you need to remove the find modules.

    Hope this this is helpful for other people.

    Create html documentation for C# code

    This page might interest you: http://msdn.microsoft.com/en-us/magazine/dd722812.aspx

    You can generate the XML documentation file using either the command-line compiler or through the Visual Studio interface. If you are compiling with the command-line compiler, use options /doc or /doc+. That will generate an XML file by the same name and in the same path as the assembly. To specify a different file name, use /doc:file.

    If you are using the Visual Studio interface, there's a setting that controls whether the XML documentation file is generated. To set it, double-click My Project in Solution Explorer to open the Project Designer. Navigate to the Compile tab. Find "Generate XML documentation file" at the bottom of the window, and make sure it is checked. By default this setting is on. It generates an XML file using the same name and path as the assembly.

    WSDL/SOAP Test With soapui

    Another possibility is that you need to add ?wsdl at the end of your service url for SoapUI. That one got me as I'm used to WCFClient which didn't need it.

    Conditional WHERE clause with CASE statement in Oracle

    You can write the where clause as:

    where (case when (:stateCode = '') then (1)
                when (:stateCode != '') and (vw.state_cd in (:stateCode)) then 1
                else 0)
           end) = 1;
    

    Alternatively, remove the case entirely:

    where (:stateCode = '') or
          ((:stateCode != '') and vw.state_cd in (:stateCode));
    

    Or, even better:

    where (:stateCode = '') or vw.state_cd in (:stateCode)
    

    Connect different Windows User in SQL Server Management Studio (2005 or later)

    For Windows 10: Go to the Sql Management Studio Icon, or Short Cut in the menu: Right Click > Select Open File Location

    enter image description here

    Hold Shift and right Click the shortcut, or ssms.exe file that is in the folder. Holding shift will give you an extra option "Run as different user":

    enter image description here

    This will pop up a login box and you can type the credentials you would like your session to run under.

    Activating Anaconda Environment in VsCode

    Setting python.pythonPath in VSCode's settings.json file doesn't work for me, but another method does. According to the Anaconda documentation at Microsoft Visual Studio Code (VS Code):

    When you launch VS Code from Navigator, VS Code is configured to use the Python interpreter in the currently selected environment.

    Anaconda Navigator

    The client and server cannot communicate, because they do not possess a common algorithm - ASP.NET C# IIS TLS 1.0 / 1.1 / 1.2 - Win32Exception

    There are a couple of things that you need to check related to this.

    Whenever there is an error like this thrown related to making a secure connection, try running a script like the one below in Powershell with the name of the machine or the uri (like "www.google.com") to get results back for each of the different protocol types:

     function Test-SocketSslProtocols {
        
        [CmdletBinding()] 
        param(
            [Parameter(Mandatory=$true)][string]$ComputerName,
            [int]$Port = 443,
            [string[]]$ProtocolNames = $null
            )
    
        #set results list    
        $ProtocolStatusObjArr = [System.Collections.ArrayList]@()
    
    
        if($ProtocolNames -eq $null){
    
            #if parameter $ProtocolNames empty get system list
            $ProtocolNames = [System.Security.Authentication.SslProtocols] | Get-Member -Static -MemberType Property | Where-Object { $_.Name -notin @("Default", "None") } | ForEach-Object { $_.Name }
    
        }
     
        foreach($ProtocolName in $ProtocolNames){
    
            #create and connect socket
            #use default port 443 unless defined otherwise
            #if the port specified is not listening it will throw in error
            #ensure listening port is a tls exposed port
            $Socket = New-Object System.Net.Sockets.Socket([System.Net.Sockets.SocketType]::Stream, [System.Net.Sockets.ProtocolType]::Tcp)
            $Socket.Connect($ComputerName, $Port)
    
            #initialize default obj
            $ProtocolStatusObj = [PSCustomObject]@{
                Computer = $ComputerName
                Port = $Port 
                ProtocolName = $ProtocolName
                IsActive = $false
                KeySize = $null
                SignatureAlgorithm = $null
                Certificate = $null
            }
    
            try {
    
                #create netstream
                $NetStream = New-Object System.Net.Sockets.NetworkStream($Socket, $true)
    
                #wrap stream in security sslstream
                $SslStream = New-Object System.Net.Security.SslStream($NetStream, $true)
                $SslStream.AuthenticateAsClient($ComputerName, $null, $ProtocolName, $false)
             
                $RemoteCertificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]$SslStream.RemoteCertificate
                $ProtocolStatusObj.IsActive = $true
                $ProtocolStatusObj.KeySize = $RemoteCertificate.PublicKey.Key.KeySize
                $ProtocolStatusObj.SignatureAlgorithm = $RemoteCertificate.SignatureAlgorithm.FriendlyName
                $ProtocolStatusObj.Certificate = $RemoteCertificate
    
            } 
            catch  {
    
                $ProtocolStatusObj.IsActive = $false
                Write-Error "Failure to connect to machine $ComputerName using protocol: $ProtocolName."
                Write-Error $_
    
            }   
            finally {
                
                $SslStream.Close()
            
            }
    
            [void]$ProtocolStatusObjArr.Add($ProtocolStatusObj)
    
        }
    
        Write-Output $ProtocolStatusObjArr
    
    }
    
    Test-SocketSslProtocols -ComputerName "www.google.com"
    

    It will try to establish socket connections and return complete objects for each attempt and successful connection.

    After seeing what returns, check your computer registry via regedit (put "regedit" in run or look up "Registry Editor"), place

    Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
    

    in the filepath and ensure that you have the appropriate TLS Protocol enabled for whatever server you're trying to connect to (from the results you had returned from the scripts). Adjust as necessary and then reset your computer (this is required). Try connecting with the powershell script again and see what results you get back. If still unsuccessful, ensure that the algorithms, hashes, and ciphers that need to be enabled are narrowing down what needs to be enabled (IISCrypto is a good application for this and is available for free. It will give you a real time view of what is enabled or disabled in your SChannel registry where all these things are located).

    Also keep in mind the Windows version, DotNet version, and updates you have currently installed because despite a lot of TLS options being enabled by default in Windows 10, previous versions required patches to enable the option.

    One last thing: TLS is a TWO-WAY street (keep this in mind) with the idea being that the server's having things available is just as important as the client. If the server only offers to connect via TLS 1.2 using certain algorithms then no client will be able to connect with anything else. Also, if the client won't connect with anything else other than a certain protocol or ciphersuite the connection won't work. Browsers are also something that need to be taken into account with this because of their forcing errors on HTTP2 for anything done with less than TLS 1.2 DESPITE there NOT actually being an error (they throw it to try and get people to upgrade but the registry settings do exist to modify this behavior).

    Regex to split a CSV

    I use this expression. It takes into account a space after a comma, which I have come across.

    (?:,"|^"|, ")(""|[\w\W]*?)(?=",|"$)|(?:,(?!")|^(?!"))([^,]*?)(?=$|,)|(\r\n|\n)
    

    Windows.history.back() + location.reload() jquery

    Try these ...

    Option1

    window.location=document.referrer;
    

    Option2

    window.location.reload(history.back());
    

    Latex Multiple Linebreaks

    I find that when I include a blank line in my source after the \\ then I also get a blank line in my output. Example:

    It's time to recognize the income tax as another horrible policy mistake like banning beer, and to return to the tax policies that were correct in the Constitution in the first place.  Our future depends on it.
    \\
    
    Wherefore the 16th Amendment must forthwith be repealed.
    

    However you are correct that LaTeX only lets you do this once. For a more general solution allowing you to make as many blank lines as you want, use \null to make empty paragraphs. Example:

    It's time to recognize the income tax as another horrible policy mistake like banning beer, and to return to the tax policies that were correct in the Constitution in the first place.  Our future depends on it.
    
    \null
    
    \null
    
    \null
    
    Wherefore the 16th Amendment must forthwith be repealed.
    

    Rules for C++ string literals escape character

    ascii is a package on linux you could download. for example sudo apt-get install ascii ascii

    Usage: ascii [-dxohv] [-t] [char-alias...]
    -t = one-line output  -d = Decimal table  -o = octal table  -x = hex table
    -h = This help screen -v = version information
    Prints all aliases of an ASCII character. Args may be chars, C \-escapes,
    English names, ^-escapes, ASCII mnemonics, or numerics in decimal/octal/hex.`
    

    This code can help you with C/C++ escape codes like \x0A

    Best /Fastest way to read an Excel Sheet into a DataTable?

    ''' <summary>
    ''' ReadToDataTable reads the given Excel file to a datatable.
    ''' </summary>
    ''' <param name="table">The table to be populated.</param>
    ''' <param name="incomingFileName">The file to attempt to read to.</param>
    ''' <returns>TRUE if success, FALSE otherwise.</returns>
    ''' <remarks></remarks>
    Public Function ReadToDataTable(ByRef table As DataTable,
                                    incomingFileName As String) As Boolean
        Dim returnValue As Boolean = False
        Try
    
            Dim sheetName As String = ""
            Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & incomingFileName & ";Extended Properties=""Excel 12.0;HDR=No;IMEX=1"""
            Dim tablesInFile As DataTable
            Dim oleExcelCommand As OleDbCommand
            Dim oleExcelReader As OleDbDataReader
            Dim oleExcelConnection As OleDbConnection
    
            oleExcelConnection = New OleDbConnection(connectionString)
            oleExcelConnection.Open()
    
            tablesInFile = oleExcelConnection.GetSchema("Tables")
    
            If tablesInFile.Rows.Count > 0 Then
                sheetName = tablesInFile.Rows(0)("TABLE_NAME").ToString
            End If
    
            If sheetName <> "" Then
    
                oleExcelCommand = oleExcelConnection.CreateCommand()
                oleExcelCommand.CommandText = "Select * From [" & sheetName & "]"
                oleExcelCommand.CommandType = CommandType.Text
    
                oleExcelReader = oleExcelCommand.ExecuteReader
    
                'Determine what row of the Excel file we are on
                Dim currentRowIndex As Integer = 0
    
                While oleExcelReader.Read
                    'If we are on the First Row, then add the item as Columns in the DataTable
                    If currentRowIndex = 0 Then
                        For currentFieldIndex As Integer = 0 To (oleExcelReader.VisibleFieldCount - 1)
                            Dim currentColumnName As String = oleExcelReader.Item(currentFieldIndex).ToString
                            table.Columns.Add(currentColumnName, GetType(String))
                            table.AcceptChanges()
                        Next
                    End If
                    'If we are on a Row with Data, add the data to the SheetTable
                    If currentRowIndex > 0 Then
                        Dim newRow As DataRow = table.NewRow
                        For currentFieldIndex As Integer = 0 To (oleExcelReader.VisibleFieldCount - 1)
                            Dim currentColumnName As String = table.Columns(currentFieldIndex).ColumnName
                            newRow(currentColumnName) = oleExcelReader.Item(currentFieldIndex)
                            If IsDBNull(newRow(currentFieldIndex)) Then
                                newRow(currentFieldIndex) = ""
                            End If
                        Next
                        table.Rows.Add(newRow)
                        table.AcceptChanges()
                    End If
    
                    'Increment the CurrentRowIndex
                    currentRowIndex += 1
                End While
    
                oleExcelReader.Close()
    
            End If
    
            oleExcelConnection.Close()
            returnValue = True
        Catch ex As Exception
            'LastError = ex.ToString
            Return False
        End Try
    
    
        Return returnValue
    End Function
    

    java, get set methods

    your panel class don't have a constructor that accepts a string

    try change

    RLS_strid_panel p = new RLS_strid_panel(namn1);
    

    to

    RLS_strid_panel p = new RLS_strid_panel();
    p.setName1(name1);
    

    Node/Express file upload

    I needed to be walked through with a bit more detail than the other answers provided (e.g. how do I write the file to a location I decide at runtime?). Hopefully this is of help to others:  

    get connect-busboy:

    npm install connect-busboy --save
    

    In your server.js, add these lines

    let busboy = require('connect-busboy')
    
    // ... 
    
    app.use(busboy());
    
    // ... 
    
    app.post('/upload', function(req, res) {
        req.pipe(req.busboy);
        req.busboy.on('file', function(fieldname, file, filename) {
            var fstream = fs.createWriteStream('./images/' + filename); 
            file.pipe(fstream);
            fstream.on('close', function () {
                res.send('upload succeeded!');
            });
        });
    });
    

    This would seem to omit error handling though... will edit it in if I find it.

    Extract time from moment js object

    You can do something like this

    var now = moment();
    var time = now.hour() + ':' + now.minutes() + ':' + now.seconds();
    time = time + ((now.hour()) >= 12 ? ' PM' : ' AM');
    

    How to put two divs side by side

    http://jsfiddle.net/kkobold/qMQL5/

    _x000D_
    _x000D_
    #header {_x000D_
        width: 100%;_x000D_
        background-color: red;_x000D_
        height: 30px;_x000D_
    }_x000D_
    _x000D_
    #container {_x000D_
        width: 300px;_x000D_
        background-color: #ffcc33;_x000D_
        margin: auto;_x000D_
    }_x000D_
    #first {_x000D_
        width: 100px;_x000D_
        float: left;_x000D_
        height: 300px;_x000D_
            background-color: blue;_x000D_
    }_x000D_
    #second {_x000D_
        width: 200px;_x000D_
        float: left;_x000D_
        height: 300px;_x000D_
        background-color: green;_x000D_
    }_x000D_
    #clear {_x000D_
        clear: both;_x000D_
    }
    _x000D_
    <div id="header"></div>_x000D_
    <div id="container">_x000D_
        <div id="first"></div>_x000D_
        <div id="second"></div>_x000D_
        <div id="clear"></div>_x000D_
    </div>
    _x000D_
    _x000D_
    _x000D_

    How do I list all the files in a directory and subdirectories in reverse chronological order?

    ls -lR is to display all files, directories and sub directories of the current directory ls -lR | more is used to show all the files in a flow.

    Get last record of a table in Postgres

    These are all good answers but if you want an aggregate function to do this to grab the last row in the result set generated by an arbitrary query, there's a standard way to do this (taken from the Postgres wiki, but should work in anything conforming reasonably to the SQL standard as of a decade or more ago):

    -- Create a function that always returns the last non-NULL item
    CREATE OR REPLACE FUNCTION public.last_agg ( anyelement, anyelement )
    RETURNS anyelement LANGUAGE SQL IMMUTABLE STRICT AS $$
            SELECT $2;
    $$;
    
    -- And then wrap an aggregate around it
    CREATE AGGREGATE public.LAST (
            sfunc    = public.last_agg,
            basetype = anyelement,
            stype    = anyelement
    );
    

    It's usually preferable to do select ... limit 1 if you have a reasonable ordering, but this is useful if you need to do this within an aggregate and would prefer to avoid a subquery.

    See also this question for a case where this is the natural answer.

    Writing .csv files from C++

    If you wirte to a .csv file in C++ - you should use the syntax of :

    myfile <<" %s; %s; %d", string1, string2, double1 <<endl;
    

    This will write the three variables (string 1&2 and double1) into separate columns and leave an empty row below them. In excel the ; means the new row, so if you want to just take a new row - you can alos write a simple ";" before writing your new data into the file. If you don't want to have an empty row below - you should delete the endl and use the:

    myfile.open("result.csv", std::ios::out | std::ios::app);
    

    syntax when opening the .csv file (example the result.csv). In this way next time you write something into your result.csv file - it will write it into a new row directly below the last one - so you can easily manage a for cycle if you would like to.

    How can I declare and define multiple variables in one line using C++?

    When you declare a variable without initializing it, a random number from memory is selected and the variable is initialized to that value.

    How to convert Java String to JSON Object

    The string that you pass to the constructor JSONObject has to be escaped with quote():

    public static java.lang.String quote(java.lang.String string)
    

    Your code would now be:

    JSONObject jsonObj = new JSONObject.quote(jsonString.toString());
    System.out.println(jsonString);
    System.out.println("---------------------------");
    System.out.println(jsonObj);
    

    What is ".NET Core"?

    .NET Core is an open source and cross platform version of .NET. Microsoft products, besides the great abilities that they have, were always expensive for usual users, especially end users of products that has been made by .NET technologies.

    Most of the low-level customers prefer to use Linux as their OS and before .NET Core they would not like to use Microsoft technologies, despite the great abilities of them. But after .NET Core production, this problem is solved completely and we can satisfy our customers without considering their OS, etc.

    Changing :hover to touch/click for mobile devices

    A CSS only solution for those who are having trouble with mobile touchscreen button styling.

    This will fix your hover-stick / active button problems.

    _x000D_
    _x000D_
    body, html {
      width: 600px;
    }
    p {
      font-size: 20px;
    }
    
    button {
      border: none;
      width: 200px;
      height: 60px;
      border-radius: 30px;
      background: #00aeff;
      font-size: 20px;
    }
    
    button:active {
      background: black;
      color: white;
    }
    
    .delayed {
      transition: all 0.2s;
      transition-delay: 300ms;
    }
    
    .delayed:active {
      transition: none;
    }
    _x000D_
    <h1>Sticky styles for better touch screen buttons!</h1>
    
    <button>Normal button</button>
    
    <button class="delayed"><a href="https://www.google.com"/>Delayed style</a></button>
    
    <p>The CSS :active psuedo style is displayed between the time when a user touches down (when finger contacts screen) on a element to the time when the touch up (when finger leaves the screen) occures.   With a typical touch-screen tap interaction, the time of which the :active psuedo style is displayed can be very small resulting in the :active state not showing or being missed by the user entirely.  This can cause issues with users not undertanding if their button presses have actually reigstered or not.</p>
    
    <p>Having the the :active styling stick around for a few hundred more milliseconds after touch up would would improve user understanding when they have interacted with a button.</p>
    _x000D_
    _x000D_
    _x000D_

    Converting ArrayList to Array in java

    import java.util.*;
    public class arrayList {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            ArrayList<String > x=new ArrayList<>();
            //inserting element
            x.add(sc.next());
            x.add(sc.next());
            x.add(sc.next());
            x.add(sc.next());
            x.add(sc.next());
             //to show element
             System.out.println(x);
            //converting arraylist to stringarray
             String[]a=x.toArray(new String[x.size()]);
              for(String s:a)
               System.out.print(s+" ");
      }
    
    }
    

    twitter bootstrap 3.0 typeahead ajax example

    Here is my step by step experience, inspired by typeahead examples, from a Scala/PlayFramework app we are working on.

    In a script LearnerNameTypeAhead.coffee (convertible of course to JS) I have:

    $ ->
      learners = new Bloodhound(
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace("value")
        queryTokenizer: Bloodhound.tokenizers.whitespace
        remote: "/learner/namelike?nameLikeStr=%QUERY"
      )
      learners.initialize()
      $("#firstName").typeahead 
        minLength: 3
        hint: true
        highlight:true
       ,
        name: "learners"
        displayKey: "value"
        source: learners.ttAdapter()
    

    I included the typeahead bundle and my script on the page, and there is a div around my input field as follows:

    <script [email protected]("javascripts/typeahead.bundle.js")></script>
    <script [email protected]("javascripts/LearnerNameTypeAhead.js") type="text/javascript" ></script>
    <div>
      <input name="firstName" id="firstName" class="typeahead" placeholder="First Name" value="@firstName">
    </div>
    

    The result is that for each character typed in the input field after the first minLength (3) characters, the page issues a GET request with a URL looking like /learner/namelike?nameLikeStr= plus the currently typed characters. The server code returns a json array of objects containing fields "id" and "value", for example like this:

    [ {
        "id": "109",
        "value": "Graham Jones"
      },
      {
        "id": "5833",
        "value": "Hezekiah Jones"
    } ]
    

    For play I need something in the routes file:

    GET /learner/namelike controllers.Learners.namesLike(nameLikeStr:String)
    

    And finally, I set some of the styling for the dropdown, etc. in a new typeahead.css file which I included in the page's <head> (or accessible .css)

    .tt-dropdown-menu {
      width: 252px;
      margin-top: 12px;
      padding: 8px 0;
      background-color: #fff;
      border: 1px solid #ccc;
      border: 1px solid rgba(0, 0, 0, 0.2);
      -webkit-border-radius: 8px;
         -moz-border-radius: 8px;
              border-radius: 8px;
      -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
         -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
              box-shadow: 0 5px 10px rgba(0,0,0,.2);
    }
    .typeahead {
      background-color: #fff;
    }
    .typeahead:focus {
      border: 2px solid #0097cf;
    }
    .tt-query {
      -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
         -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
              box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    }
    .tt-hint {
      color: #999
    }
    .tt-suggestion {
      padding: 3px 20px;
      font-size: 18px;
      line-height: 24px;
    }
    .tt-suggestion.tt-cursor {
      color: #fff;
      background-color: #0097cf;
    }
    .tt-suggestion p {
      margin: 0;
    }
    

    Node.js, can't open files. Error: ENOENT, stat './path/to/file'

    Paths specified with a . are relative to the current working directory, not relative to the script file. So the file might be found if you run node app.js but not if you run node folder/app.js. The only exception to this is require('./file') and that is only possible because require exists per-module and thus knows what module it is being called from.

    To make a path relative to the script, you must use the __dirname variable.

    var path = require('path');
    
    path.join(__dirname, 'path/to/file')
    

    or potentially

    path.join(__dirname, 'path', 'to', 'file')
    

    document.getElementById(id).focus() is not working for firefox or chrome

    One more thing to add to this list to check:

    Make sure the element you are trying to focus is not itself nor is contained in an element with "display: none" at the time you are trying to focus it.

    PDOException “could not find driver”

    for Windows 8.1/10 in :\\php.ini file you should uncomment line "extension=pdo_mysql"

    Failed to create provisioning profile

    For me this happened when I tried to run on a device with a newer version of iOS than supported by the version of Xcode I was running.

    jQuery UI Dialog - missing close icon

    A wise man once helped me.

    In the folder where jquery-ui.css is located, create a folder named "images" and copy the below files into it:

    ui-icons_444444_256x240.png

    ui-icons_555555_256x240.png

    ui-icons_777620_256x240.png

    ui-icons_777777_256x240.png

    ui-icons_cc0000_256x240.png

    ui-icons_ffffff_256x240.png

    and the close icon appears.

    Why does Eclipse complain about @Override on interface methods?

    I understood your problem, change your jdk from your jdk to greaterthan 1.5

    Using Python's ftplib to get a directory listing, portably

    This is from Python docs

    >>> from ftplib import FTP_TLS
    >>> ftps = FTP_TLS('ftp.python.org')
    >>> ftps.login()           # login anonymously before securing control 
    channel
    >>> ftps.prot_p()          # switch to secure data connection
    >>> ftps.retrlines('LIST') # list directory content securely
    total 9
    drwxr-xr-x   8 root     wheel        1024 Jan  3  1994 .
    drwxr-xr-x   8 root     wheel        1024 Jan  3  1994 ..
    drwxr-xr-x   2 root     wheel        1024 Jan  3  1994 bin
    drwxr-xr-x   2 root     wheel        1024 Jan  3  1994 etc
    d-wxrwxr-x   2 ftp      wheel        1024 Sep  5 13:43 incoming
    drwxr-xr-x   2 root     wheel        1024 Nov 17  1993 lib
    drwxr-xr-x   6 1094     wheel        1024 Sep 13 19:07 pub
    drwxr-xr-x   3 root     wheel        1024 Jan  3  1994 usr
    -rw-r--r--   1 root     root          312 Aug  1  1994 welcome.msg
    

    Getting MAC Address

    For Linux you can retrieve the MAC address using a SIOCGIFHWADDR ioctl.

    struct ifreq    ifr;
    uint8_t         macaddr[6];
    
    if ((s = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP)) < 0)
        return -1;
    
    strcpy(ifr.ifr_name, "eth0");
    
    if (ioctl(s, SIOCGIFHWADDR, (void *)&ifr) == 0) {
        if (ifr.ifr_hwaddr.sa_family == ARPHRD_ETHER) {
            memcpy(macaddr, ifr.ifr_hwaddr.sa_data, 6);
            return 0;
    ... etc ...
    

    You've tagged the question "python". I don't know of an existing Python module to get this information. You could use ctypes to call the ioctl directly.

    How do I get monitor resolution in Python?

    If you are using the Qt toolkit specifically PySide, you can do the following:

    from PySide import QtGui
    import sys
    
    app = QtGui.QApplication(sys.argv)
    screen_rect = app.desktop().screenGeometry()
    width, height = screen_rect.width(), screen_rect.height()
    

    Display Last Saved Date on worksheet

    You can also simple add the following into the Header or Footer of the Worksheet

    Last Saved: &[Date] &[Time]

    How to convert comma-separated String to List?

    You can use Guava to split the string, and convert it into an ArrayList. This works with an empty string as well, and returns an empty list.

    import com.google.common.base.Splitter;
    import com.google.common.collect.Lists;
    
    String commaSeparated = "item1 , item2 , item3";
    
    // Split string into list, trimming each item and removing empty items
    ArrayList<String> list = Lists.newArrayList(Splitter.on(',').trimResults().omitEmptyStrings().splitToList(commaSeparated));
    System.out.println(list);
    
    list.add("another item");
    System.out.println(list);
    

    outputs the following:

    [item1, item2, item3]
    [item1, item2, item3, another item]
    

    Recursively counting files in a Linux directory

    tree $DIR_PATH | tail -1
    

    Sample Output:

    5309 directories, 2122 files

    How can I get key's value from dictionary in Swift?

    From Apple Docs

    You can use subscript syntax to retrieve a value from the dictionary for a particular key. Because it is possible to request a key for which no value exists, a dictionary’s subscript returns an optional value of the dictionary’s value type. If the dictionary contains a value for the requested key, the subscript returns an optional value containing the existing value for that key. Otherwise, the subscript returns nil:

    https://developer.apple.com/documentation/swift/dictionary

    if let airportName = airports["DUB"] {
        print("The name of the airport is \(airportName).")
    } else {
        print("That airport is not in the airports dictionary.")
    }
    // prints "The name of the airport is Dublin Airport."
    

    How to bundle vendor scripts separately and require them as needed with Webpack?

    In case you're interested in bundling automatically your scripts separately from vendors ones:

    var webpack = require('webpack'),
        pkg     = require('./package.json'),  //loads npm config file
        html    = require('html-webpack-plugin');
    
    module.exports = {
      context : __dirname + '/app',
      entry   : {
        app     : __dirname + '/app/index.js',
        vendor  : Object.keys(pkg.dependencies) //get npm vendors deps from config
      },
      output  : {
        path      : __dirname + '/dist',
        filename  : 'app.min-[hash:6].js'
      },
      plugins: [
        //Finally add this line to bundle the vendor code separately
        new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.min-[hash:6].js'),
        new html({template : __dirname + '/app/index.html'})
      ]
    };
    

    You can read more about this feature in official documentation.

    Excel: How to check if a cell is empty with VBA?

    This site uses the method isEmpty().

    Edit: content grabbed from site, before the url will going to be invalid.

    Worksheets("Sheet1").Range("A1").Sort _
        key1:=Worksheets("Sheet1").Range("A1")
    Set currentCell = Worksheets("Sheet1").Range("A1")
    Do While Not IsEmpty(currentCell)
        Set nextCell = currentCell.Offset(1, 0)
        If nextCell.Value = currentCell.Value Then
            currentCell.EntireRow.Delete
        End If
        Set currentCell = nextCell
    Loop
    

    In the first step the data in the first column from Sheet1 will be sort. In the second step, all rows with same data will be removed.

    Show/hide forms using buttons and JavaScript

    If you have a container and two sub containers, you can do like this

    jQuery

        $("#previousbutton").click(function() {
        $("#form_sub_container1").show();
        $("#form_sub_container2").hide(); })
    
        $("#nextbutton").click(function() {
        $("#form_container").find(":hidden").show().next();
        $("#form_sub_container1").hide();
    })
    

    HTML

         <div id="form_container">
                <div id="form_sub_container1" style="display: block;">
                </div>
    
                <div id="form_sub_container2" style="display: none;">
                </div>
         </div>
    

    How to exit in Node.js

    I have an application which I wanted to:

    1. Send an email to the user
    2. Exit with an error code

    I had to hook process.exit(code) to an exit event handler, or else the mail will not be sent since calling process.exit(code) directly kills asynchronous events.

    #!/usr/bin/nodejs
    var mailer = require('nodemailer');
    var transport = mailer.createTransport();
    mail = {
      to: 'Dave Bowman',
      from: 'HAL 9000',
      subject: 'Sorry Dave',
      html: 'Im sorry, Dave. Im afraid I cant do <B>THAT</B>.'
    }
    transport.sendMail(mail);
    //process.exit(1);
    process.on('exit', function() { process.exit(1); });
    

    how to remove empty strings from list, then remove duplicate values from a list

    dtList  = dtList.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList()
    

    I assumed empty string and whitespace are like null. If not you can use IsNullOrEmpty (allow whitespace), or s != null

    Test credit card numbers for use with PayPal sandbox

    In case anyone else comes across this in a search for an answer...

    The test numbers listed in various places no longer work in the Sandbox. PayPal have the same checks in place now so that a card cannot be linked to more than one account.

    Go here and get a number generated. Use any expiry date and CVV

    https://ppmts.custhelp.com/app/answers/detail/a_id/750/

    It's worked every time for me so far...

    How to send UTF-8 email?

    I'm using rather specified charset (ISO-8859-2) because not every mail system (for example: http://10minutemail.com) can read UTF-8 mails. If you need this:

    function utf8_to_latin2($str)
    {
        return iconv ( 'utf-8', 'ISO-8859-2' , $str );
    }
    function my_mail($to,$s,$text,$form, $reply)
        {
            mail($to,utf8_to_latin2($s),utf8_to_latin2($text),
            "From: $form\r\n".
            "Reply-To: $reply\r\n".
            "X-Mailer: PHP/" . phpversion());
        }
    

    I have made another mailer function, because apple device could not read well the previous version.

    function utf8mail($to,$s,$body,$from_name="x",$from_a = "[email protected]", $reply="[email protected]")
    {
        $s= "=?utf-8?b?".base64_encode($s)."?=";
        $headers = "MIME-Version: 1.0\r\n";
        $headers.= "From: =?utf-8?b?".base64_encode($from_name)."?= <".$from_a.">\r\n";
        $headers.= "Content-Type: text/plain;charset=utf-8\r\n";
        $headers.= "Reply-To: $reply\r\n";  
        $headers.= "X-Mailer: PHP/" . phpversion();
        mail($to, $s, $body, $headers);
    }
    

    Word wrapping in phpstorm

    For all files (default setting for opened file): Settings/Preferences | Editor | General | Use soft wraps in editor

    For currently opened file in editor: Menu | View | Active Editor | Use Soft Wraps


    In latest IDE versions you can also access this option via context menu for the editor gutter area (the area with line numbers on the left side of the editor).

    Search Everywhere (Shift 2x times) or Help | Find Action... ( Ctrl + Shift+ A on Windows using Default keymap) can also be used to quickly change this option (instead of going into Settings/Preferences).

    apache mod_rewrite is not working or not enabled

    On centOS7 I changed the file /etc/httpd/conf/httpd.conf

    from AllowOverride None to AllowOverride All

    MongoDB: How to update multiple documents with a single command?

    For Mongo version > 2.2, add a field multi and set it to true

    db.Collection.update({query}, 
                     {$set: {field1: "f1", field2: "f2"}},
                     {multi: true })
    

    Hex colors: Numeric representation for "transparent"?

    HEXA - #RRGGBBAA

    There's a relatively new way of doing transparency, it's called HEXA (HEX + Alpha). It takes in 8 digits instead of 6. The last pair is Alpha. So the pattern of pairs is #RRGGBBAA. Having 4 digits also works: #RGBA

    I am not sure about its browser support for now but, you can check the DRAFT Docs for more information.

    § 4.2. The RGB hexadecimal notations: #RRGGBB

    The syntax of a <hex-color> is a <hash-token> token whose value consists of 3, 4, 6, or 8 hexadecimal digits. In other words, a hex color is written as a hash character, "#", followed by some number of digits 0-9 or letters a-f (the case of the letters doesn’t matter - #00ff00 is identical to #00FF00).

    8 digits

    The first 6 digits are interpreted identically to the 6-digit notation. The last pair of digits, interpreted as a hexadecimal number, specifies the alpha channel of the color, where 00 represents a fully transparent color and ff represent a fully opaque color.

    Example 3
    In other words, #0000ffcc represents the same color as rgba(0, 0, 100%, 80%) (a slightly-transparent blue).

    4 digits

    This is a shorter variant of the 8-digit notation, "expanded" in the same way as the 3-digit notation is. The first digit, interpreted as a hexadecimal number, specifies the red channel of the color, where 0 represents the minimum value and f represents the maximum. The next three digits represent the green, blue, and alpha channels, respectively.

    For the most part, Chrome and Firefox have started supporting this: enter image description here

    What does the error "arguments imply differing number of rows: x, y" mean?

    Your data.frame mat is rectangular (n_rows!= n_cols).

    Therefore, you cannot make a data.frame out of the column- and rownames, because each column in a data.frame must be the same length.

    Maybe this suffices your needs:

    require(reshape2)
    mat$id <- rownames(mat) 
    melt(mat)
    

    Vertical Tabs with JQuery?

    //o_O\\  (Poker Face) i know its late
    

    just add beloww css style

    <style type="text/css">
    
       /* Vertical Tabs ----------------------------------*/
     .ui-tabs-vertical { width: 55em; }
     .ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
     .ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
     .ui-tabs-vertical .ui-tabs-nav li a { display:block; }
     .ui-tabs-vertical .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
     .ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
    
    </style>
    

    UPDATED ! http://jqueryui.com/tabs/#vertical

    Is background-color:none valid CSS?

    The answer is no.

    Incorrect

    .class {
        background-color: none; /* do not do this */
    }
    

    Correct

    .class {
        background-color: transparent;
    }
    

    background-color: transparent accomplishes the same thing what you wanted to do with background-color: none.

    How to load a jar file at runtime

    I was asked to build a java system that will have the ability to load new code while running

    You might want to base your system on OSGi (or at least take a lot at it), which was made for exactly this situation.

    Messing with classloaders is really tricky business, mostly because of how class visibility works, and you do not want to run into hard-to-debug problems later on. For example, Class.forName(), which is widely used in many libraries does not work too well on a fragmented classloader space.

    How to split a python string on new line characters

    a.txt

    this is line 1
    this is line 2
    

    code:

    Python 3.4.0 (default, Mar 20 2014, 22:43:40) 
    [GCC 4.6.3] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> file = open('a.txt').read()
    >>> file
    >>> file.split('\n')
    ['this is line 1', 'this is line 2', '']
    

    I'm on Linux, but I guess you just use \r\n on Windows and it would also work

    Check if a value is within a range of numbers

    If you want your code to pick a specific range of digits, be sure to use the && operator instead of the ||.

    _x000D_
    _x000D_
    if (x >= 4 && x <= 9) {_x000D_
      // do something_x000D_
    } else {_x000D_
      // do something else_x000D_
    }_x000D_
    _x000D_
    // be sure not to do this_x000D_
    _x000D_
    if (x >= 4 || x <= 9) {_x000D_
      // do something_x000D_
    } else {_x000D_
      // do something else_x000D_
    }
    _x000D_
    _x000D_
    _x000D_

    Find everything between two XML tags with RegEx

    It is not good to use this method but if you really want to split it with regex

    <primaryAddress.*>((.|\n)*?)<\/primaryAddress>
    

    the verified answer returns the tags but this just return the value between tags.

    How to get featured image of a product in woocommerce

    I did this and it works great

    <?php if ( has_post_thumbnail() ) { ?>
    <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_post_thumbnail(); ?></a>
    <?php } ?>
    

    Error pushing to GitHub - insufficient permission for adding an object to repository database

    Check the repository: $ git remote -v

    origin  ssh://[email protected]:2283/srv/git/repo.git (fetch)
    origin  ssh://[email protected]:2283/srv/git/repo.git (push)
    

    Note that there is a 'git@' substring here, it instructs git to authenticate as username 'git' on the remote server. If you omit this line, git will authenticate under different username, hence this error will occur.

    How to get the current time in milliseconds from C in Linux?

    C11 timespec_get

    It returns up to nanoseconds, rounded to the resolution of the implementation.

    It is already implemented in Ubuntu 15.10. API looks the same as the POSIX clock_gettime.

    #include <time.h>
    struct timespec ts;
    timespec_get(&ts, TIME_UTC);
    struct timespec {
        time_t   tv_sec;        /* seconds */
        long     tv_nsec;       /* nanoseconds */
    };
    

    More details here: https://stackoverflow.com/a/36095407/895245

    How to convert a DataTable to a string in C#?

    two for loops, one for rows, another for columns, output dataRow(i).Value. Watch out for nulls and DbNulls.

    Spring Boot - How to log all requests and responses with exceptions in single place?

    This code works for me in a Spring Boot application - just register it as a filter

        import java.io.BufferedReader;
        import java.io.ByteArrayInputStream;
        import java.io.ByteArrayOutputStream;
        import java.io.IOException;
        import java.io.InputStream;
        import java.io.InputStreamReader;
        import java.io.OutputStream;
        import java.io.PrintWriter;
        import java.util.Collection;
        import java.util.Enumeration;
        import java.util.HashMap;
        import java.util.Locale;
        import java.util.Map;
        import javax.servlet.*;
        import javax.servlet.http.Cookie;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletRequestWrapper;
        import javax.servlet.http.HttpServletResponse;
        import org.apache.commons.io.output.TeeOutputStream;
        import org.slf4j.Logger;
        import org.slf4j.LoggerFactory;
        import org.springframework.stereotype.Component;
    
        @Component
        public class HttpLoggingFilter implements Filter {
    
            private static final Logger log = LoggerFactory.getLogger(HttpLoggingFilter.class);
    
            @Override
            public void init(FilterConfig filterConfig) throws ServletException {
            }
    
            @Override
            public void doFilter(ServletRequest request, ServletResponse response,
                                 FilterChain chain) throws IOException, ServletException {
                try {
                    HttpServletRequest httpServletRequest = (HttpServletRequest) request;
                    HttpServletResponse httpServletResponse = (HttpServletResponse) response;
    
                    Map<String, String> requestMap = this
                            .getTypesafeRequestMap(httpServletRequest);
                    BufferedRequestWrapper bufferedRequest = new BufferedRequestWrapper(
                            httpServletRequest);
                    BufferedResponseWrapper bufferedResponse = new BufferedResponseWrapper(
                            httpServletResponse);
    
                    final StringBuilder logMessage = new StringBuilder(
                            "REST Request - ").append("[HTTP METHOD:")
                            .append(httpServletRequest.getMethod())
                            .append("] [PATH INFO:")
                            .append(httpServletRequest.getServletPath())
                            .append("] [REQUEST PARAMETERS:").append(requestMap)
                            .append("] [REQUEST BODY:")
                            .append(bufferedRequest.getRequestBody())
                            .append("] [REMOTE ADDRESS:")
                            .append(httpServletRequest.getRemoteAddr()).append("]");
    
                    chain.doFilter(bufferedRequest, bufferedResponse);
                    logMessage.append(" [RESPONSE:")
                            .append(bufferedResponse.getContent()).append("]");
                    log.debug(logMessage.toString());
                } catch (Throwable a) {
                    log.error(a.getMessage());
                }
            }
    
            private Map<String, String> getTypesafeRequestMap(HttpServletRequest request) {
                Map<String, String> typesafeRequestMap = new HashMap<String, String>();
                Enumeration<?> requestParamNames = request.getParameterNames();
                while (requestParamNames.hasMoreElements()) {
                    String requestParamName = (String) requestParamNames.nextElement();
                    String requestParamValue;
                    if (requestParamName.equalsIgnoreCase("password")) {
                        requestParamValue = "********";
                    } else {
                        requestParamValue = request.getParameter(requestParamName);
                    }
                    typesafeRequestMap.put(requestParamName, requestParamValue);
                }
                return typesafeRequestMap;
            }
    
            @Override
            public void destroy() {
            }
    
            private static final class BufferedRequestWrapper extends
                    HttpServletRequestWrapper {
    
                private ByteArrayInputStream bais = null;
                private ByteArrayOutputStream baos = null;
                private BufferedServletInputStream bsis = null;
                private byte[] buffer = null;
    
                public BufferedRequestWrapper(HttpServletRequest req)
                        throws IOException {
                    super(req);
                    // Read InputStream and store its content in a buffer.
                    InputStream is = req.getInputStream();
                    this.baos = new ByteArrayOutputStream();
                    byte buf[] = new byte[1024];
                    int read;
                    while ((read = is.read(buf)) > 0) {
                        this.baos.write(buf, 0, read);
                    }
                    this.buffer = this.baos.toByteArray();
                }
    
                @Override
                public ServletInputStream getInputStream() {
                    this.bais = new ByteArrayInputStream(this.buffer);
                    this.bsis = new BufferedServletInputStream(this.bais);
                    return this.bsis;
                }
    
                String getRequestBody() throws IOException {
                    BufferedReader reader = new BufferedReader(new InputStreamReader(
                            this.getInputStream()));
                    String line = null;
                    StringBuilder inputBuffer = new StringBuilder();
                    do {
                        line = reader.readLine();
                        if (null != line) {
                            inputBuffer.append(line.trim());
                        }
                    } while (line != null);
                    reader.close();
                    return inputBuffer.toString().trim();
                }
    
            }
    
            private static final class BufferedServletInputStream extends
                    ServletInputStream {
    
                private ByteArrayInputStream bais;
    
                public BufferedServletInputStream(ByteArrayInputStream bais) {
                    this.bais = bais;
                }
    
                @Override
                public int available() {
                    return this.bais.available();
                }
    
                @Override
                public int read() {
                    return this.bais.read();
                }
    
                @Override
                public int read(byte[] buf, int off, int len) {
                    return this.bais.read(buf, off, len);
                }
    
                @Override
                public boolean isFinished() {
                    return false;
                }
    
                @Override
                public boolean isReady() {
                    return true;
                }
    
                @Override
                public void setReadListener(ReadListener readListener) {
    
                }
            }
    
            public class TeeServletOutputStream extends ServletOutputStream {
    
                private final TeeOutputStream targetStream;
    
                public TeeServletOutputStream(OutputStream one, OutputStream two) {
                    targetStream = new TeeOutputStream(one, two);
                }
    
                @Override
                public void write(int arg0) throws IOException {
                    this.targetStream.write(arg0);
                }
    
                public void flush() throws IOException {
                    super.flush();
                    this.targetStream.flush();
                }
    
                public void close() throws IOException {
                    super.close();
                    this.targetStream.close();
                }
    
                @Override
                public boolean isReady() {
                    return false;
                }
    
                @Override
                public void setWriteListener(WriteListener writeListener) {
    
                }
            }
    
            public class BufferedResponseWrapper implements HttpServletResponse {
    
                HttpServletResponse original;
                TeeServletOutputStream tee;
                ByteArrayOutputStream bos;
    
                public BufferedResponseWrapper(HttpServletResponse response) {
                    original = response;
                }
    
                public String getContent() {
                    return bos.toString();
                }
    
                public PrintWriter getWriter() throws IOException {
                    return original.getWriter();
                }
    
                public ServletOutputStream getOutputStream() throws IOException {
                    if (tee == null) {
                        bos = new ByteArrayOutputStream();
                        tee = new TeeServletOutputStream(original.getOutputStream(),
                                bos);
                    }
                    return tee;
    
                }
    
                @Override
                public String getCharacterEncoding() {
                    return original.getCharacterEncoding();
                }
    
                @Override
                public String getContentType() {
                    return original.getContentType();
                }
    
                @Override
                public void setCharacterEncoding(String charset) {
                    original.setCharacterEncoding(charset);
                }
    
                @Override
                public void setContentLength(int len) {
                    original.setContentLength(len);
                }
    
                @Override
                public void setContentLengthLong(long l) {
                    original.setContentLengthLong(l);
                }
    
                @Override
                public void setContentType(String type) {
                    original.setContentType(type);
                }
    
                @Override
                public void setBufferSize(int size) {
                    original.setBufferSize(size);
                }
    
                @Override
                public int getBufferSize() {
                    return original.getBufferSize();
                }
    
                @Override
                public void flushBuffer() throws IOException {
                    tee.flush();
                }
    
                @Override
                public void resetBuffer() {
                    original.resetBuffer();
                }
    
                @Override
                public boolean isCommitted() {
                    return original.isCommitted();
                }
    
                @Override
                public void reset() {
                    original.reset();
                }
    
                @Override
                public void setLocale(Locale loc) {
                    original.setLocale(loc);
                }
    
                @Override
                public Locale getLocale() {
                    return original.getLocale();
                }
    
                @Override
                public void addCookie(Cookie cookie) {
                    original.addCookie(cookie);
                }
    
                @Override
                public boolean containsHeader(String name) {
                    return original.containsHeader(name);
                }
    
                @Override
                public String encodeURL(String url) {
                    return original.encodeURL(url);
                }
    
                @Override
                public String encodeRedirectURL(String url) {
                    return original.encodeRedirectURL(url);
                }
    
                @SuppressWarnings("deprecation")
                @Override
                public String encodeUrl(String url) {
                    return original.encodeUrl(url);
                }
    
                @SuppressWarnings("deprecation")
                @Override
                public String encodeRedirectUrl(String url) {
                    return original.encodeRedirectUrl(url);
                }
    
                @Override
                public void sendError(int sc, String msg) throws IOException {
                    original.sendError(sc, msg);
                }
    
                @Override
                public void sendError(int sc) throws IOException {
                    original.sendError(sc);
                }
    
                @Override
                public void sendRedirect(String location) throws IOException {
                    original.sendRedirect(location);
                }
    
                @Override
                public void setDateHeader(String name, long date) {
                    original.setDateHeader(name, date);
                }
    
                @Override
                public void addDateHeader(String name, long date) {
                    original.addDateHeader(name, date);
                }
    
                @Override
                public void setHeader(String name, String value) {
                    original.setHeader(name, value);
                }
    
                @Override
                public void addHeader(String name, String value) {
                    original.addHeader(name, value);
                }
    
                @Override
                public void setIntHeader(String name, int value) {
                    original.setIntHeader(name, value);
                }
    
                @Override
                public void addIntHeader(String name, int value) {
                    original.addIntHeader(name, value);
                }
    
                @Override
                public void setStatus(int sc) {
                    original.setStatus(sc);
                }
    
                @SuppressWarnings("deprecation")
                @Override
                public void setStatus(int sc, String sm) {
                    original.setStatus(sc, sm);
                }
    
                @Override
                public String getHeader(String arg0) {
                    return original.getHeader(arg0);
                }
    
                @Override
                public Collection<String> getHeaderNames() {
                    return original.getHeaderNames();
                }
    
                @Override
                public Collection<String> getHeaders(String arg0) {
                    return original.getHeaders(arg0);
                }
    
                @Override
                public int getStatus() {
                    return original.getStatus();
                }
    
            }
        }
    

    What is the difference between Subject and BehaviorSubject?

    It might help you to understand.

    import * as Rx from 'rxjs';
    
    const subject1 = new Rx.Subject();
    subject1.next(1);
    subject1.subscribe(x => console.log(x)); // will print nothing -> because we subscribed after the emission and it does not hold the value.
    
    const subject2 = new Rx.Subject();
    subject2.subscribe(x => console.log(x)); // print 1 -> because the emission happend after the subscription.
    subject2.next(1);
    
    const behavSubject1 = new Rx.BehaviorSubject(1);
    behavSubject1.next(2);
    behavSubject1.subscribe(x => console.log(x)); // print 2 -> because it holds the value.
    
    const behavSubject2 = new Rx.BehaviorSubject(1);
    behavSubject2.subscribe(x => console.log('val:', x)); // print 1 -> default value
    behavSubject2.next(2) // just because of next emission will print 2 
    

    Loading PictureBox Image from resource file with path (Part 3)

    Ok...so first you need to import the image into your project.

    1) Select the PictureBox in the Form Design View

    2) Open PictureBox Tasks
    (it's the little arrow printed to right on the edge of the PictureBox)

    3) Click on "Choose image..."

    4) Select the second option "Project resource file:"
    (this option will create a folder called "Resources" which you can access with Properties.Resources)

    5) Click on "Import..." and select your image from your computer
    (now a copy of the image will be saved in "Resources" folder created at step 4)

    6) Click on "OK"

    Now the image is in your project and you can use it with the Properties command. Just type this code when you want to change the picture in the PictureBox:

    pictureBox1.Image = Properties.Resources.MyImage;
    

    Note:
    MyImage represent the name of the image...
    After typing "Properties.Resources.", all imported image files are displayed...

    Are HTTPS URLs encrypted?

    It is now 2019 and the TLS v1.3 has been released. According to Cloudflare, the server name indication (SNI aka the hostname) can be encrypted thanks to TLS v1.3. So, I told myself great! Let's see how it looks within the TCP packets of cloudflare.com So, I caught a "client hello" handshake packet from a response of the cloudflare server using Google Chrome as browser & wireshark as packet sniffer. I still can read the hostname in plain text within the Client hello packet as you can see below. It is not encrypted.

    enter image description here

    So, beware of what you can read because this is still not an anonymous connection. A middleware application between the client and the server could log every domain that are requested by a client.

    So, it looks like the encryption of the SNI requires additional implementations to work along with TLSv1.3

    UPDATE June 2020: It looks like the Encrypted SNI is initiated by the browser. Cloudflare has a page for you to check if your browser supports Encrypted SNI:

    https://www.cloudflare.com/ssl/encrypted-sni/

    At this point, I think Google chrome does not support it. You can activate Encrypted SNI in Firefox manually. When I tried it for some reason, it didn't work instantly. I restarted Firefox twice before it worked:

    Type: about:config in the URL field.

    Check if network.security.esni.enabled is true. Clear your cache / restart

    Go to the website, I mentioned before.

    As you can see VPN services are still useful today for people who want to ensure that a coffee shop owner does not log the list of websites that people visit.

    Proper way to restrict text input values (e.g. only numbers)

    The inputmask plugin does the best job of this. Its extremely flexible in that you can supply whatever regex you like to restrict input. It also does not require JQuery.

    Step 1: Install the plugin:

    npm install --save inputmask
    

    Step2: create a directive to wrap the input mask:

    import {Directive, ElementRef, Input} from '@angular/core';
    import * as Inputmask from 'inputmask';
    
    
    @Directive({
      selector: '[app-restrict-input]',
    })
    export class RestrictInputDirective {
    
      // map of some of the regex strings I'm using (TODO: add your own)
      private regexMap = {
        integer: '^[0-9]*$',
        float: '^[+-]?([0-9]*[.])?[0-9]+$',
        words: '([A-z]*\\s)*',
        point25: '^\-?[0-9]*(?:\\.25|\\.50|\\.75|)$'
      };
    
      constructor(private el: ElementRef) {}
    
      @Input('app-restrict-input')
      public set defineInputType(type: string) {
        Inputmask({regex: this.regexMap[type], placeholder: ''})
          .mask(this.el.nativeElement);
      }
    
    }
    

    Step 3:

    <input type="text" app-restrict-input="integer">
    

    Check out their github docs for more information.

    Remove numbers from string sql server

    Not tested, but you can do something like this:

    Create Function dbo.AlphasOnly(@s as varchar(max)) Returns varchar(max) As
    Begin
      Declare @Pos int = 1
      Declare @Ret varchar(max) = null
      If @s Is Not Null
      Begin
        Set @Ret = ''
        While @Pos <= Len(@s)
        Begin
          If SubString(@s, @Pos, 1) Like '[A-Za-z]'
          Begin
            Set @Ret = @Ret + SubString(@s, @Pos, 1)
          End
          Set @Pos = @Pos + 1
        End
      End
      Return @Ret
    End
    

    The key is to use this as a computed column and index it. It doesn't really matter how fast you make this function if the database has to execute it against every row in your large table every time you run the query.

    C compiler for Windows?

    Must Windows C++ compilers will work.

    Also, check out MinGW.

    Regex match one of two words

    There are different regex engines but I think most of them will work with this:

    apple|banana
    

    Is there a "goto" statement in bash?

    No, there is not; see §3.2.4 "Compound Commands" in the Bash Reference Manual for information about the control structures that do exist. In particular, note the mention of break and continue, which aren't as flexible as goto, but are more flexible in Bash than in some languages, and may help you achieve what you want. (Whatever it is that you want . . .)

    convert 12-hour hh:mm AM/PM to 24-hour hh:mm

      function getDisplayDatetime() {
        var d = new Date("February 04, 2011 19:00"),
         hh = d.getHours(),  mm = d.getMinutes(),  dd = "AM", h = hh;
        mm=(mm.toString().length == 1)? mm = "0" + mm:mm;
        h=(h>=12)?hh-12:h;
         dd=(hh>=12)?"PM":"AM";
        h=(h == 0)?12:h;
        var textvalue=document.getElementById("txt");
        textvalue.value=h + ":" + mm + " " + dd;
    }
    
    </script>
    </head>
    <body>
    <input type="button" value="click" onclick="getDisplayDatetime()">
    <input type="text" id="txt"/>
    

    Zipping a file in bash fails

    Run dos2unix or similar utility on it to remove the carriage returns (^M).

    This message indicates that your file has dos-style lineendings:

    -bash: /backup/backup.sh: /bin/bash^M: bad interpreter: No such file or directory 

    Utilities like dos2unix will fix it:

     dos2unix <backup.bash >improved-backup.sh 

    Or, if no such utility is installed, you can accomplish the same thing with translate:

    tr -d "\015\032" <backup.bash >improved-backup.sh 

    As for how those characters got there in the first place, @MadPhysicist had some good comments.

    How can I SELECT multiple columns within a CASE WHEN on SQL Server?

    Actually you can do it.

    Although, someone should note that repeating the CASE statements are not bad as it seems. SQL Server's query optimizer is smart enough to not execute the CASE twice so that you won't get any performance hit because of that.

    Additionally, someone might use the following logic to not repeat the CASE (if it suits you..)

    INSERT INTO dbo.T1
    (
        Col1,
        Col2,
        Col3
    )
    SELECT
        1,
        SUBSTRING(MyCase.MergedColumns, 0, CHARINDEX('%', MyCase.MergedColumns)),
        SUBSTRING(MyCase.MergedColumns, CHARINDEX('%', MyCase.MergedColumns) + 1, LEN(MyCase.MergedColumns) - CHARINDEX('%', MyCase.MergedColumns))
    FROM
        dbo.T1 t
    LEFT OUTER JOIN
    (
        SELECT CASE WHEN 1 = 1 THEN '2%3' END MergedColumns
    ) AS MyCase ON 1 = 1
    

    This will insert the values (1, 2, 3) for each record in the table T1. This uses a delimiter '%' to split the merged columns. You can write your own split function depending on your needs (e.g. for handling null records or using complex delimiter for varchar fields etc.). But the main logic is that you should join the CASE statement and select from the result set of the join with using a split logic.

    Returning string from C function

    char word[length];
    char *rtnPtr = word;
    ...
    return rtnPtr;
    

    This is not good. You are returning a pointer to an automatic (scoped) variable, which will be destroyed when the function returns. The pointer will be left pointing at a destroyed variable, which will almost certainly produce "strange" results (undefined behaviour).

    You should be allocating the string with malloc (e.g. char *rtnPtr = malloc(length)), then freeing it later in main.

    Cordova : Requirements check failed for JDK 1.8 or greater

    MacOS answer with multiple Java versions installed and no need to uninstall

    Show me what versions of Java I have installed :

    $ ls -l /Library/Java/JavaVirtualMachines/
    

    To set it to my jdk1.8 version :

    $ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac /usr/local/bin/javac
    

    To set it to my jdk11 version :

    $ ln -s /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/javac /usr/local/bin/javac
    

    -------------------------------------------------------------------------

    Note that, despite what the message says, it appears that it means that it wants version 1.8, and throws this message if you have a later version.

    What follows is my earlier attempts which lead me to the above answer, which then worked ... You might need to do something different depending on what's installed, so maybe these notes might help :


    Set it to my jdk1.8 version

    $ export PATH=/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/javac:$PATH
    

    Set it to my jdk11 version

    $ export PATH=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac:$PATH
    

    ... but actually that doesn't work because /usr/bin/javac is still what runs first :

    $ which javac
    /usr/bin/javac
    

    ... to see what runs first on the path :

    $ cat /etc/paths
    /usr/local/bin
    /usr/bin
    /bin
    /usr/sbin
    /sbin
    

    That means I can override the /usr/bin/javac ... see the commands at the top of the answer ...
    The command to set it to jdk1.8 using ln, at the top of this answer, is what worked for me.

    Paste in insert mode?

    If you don't want Vim to mangle formatting in incoming pasted text, you might also want to consider using: :set paste. This will prevent Vim from re-tabbing your code. When done pasting, :set nopaste will return to the normal behavior.

    It's also possible to toggle the mode with a single key, by adding something like set pastetoggle=<F2> to your .vimrc. More details on toggling auto-indent are here.

    Spring Boot application can't resolve the org.springframework.boot package

    It's not necessary to remove relative path. Just change the version parent of springframework boot. The following version 2.1.2 works successfully.

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.2.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.appsdeveloperblog.app.ws</groupId>
        <artifactId>mobile-app-ws</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>mobile-app-ws</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.appsdeveloperblog.app.ws</groupId>
                <artifactId>mobile-app-ws</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    How do I pass variables and data from PHP to JavaScript?

    1. Convert the data into JSON
    2. Call AJAX to recieve JSON file
    3. Convert JSON into Javascript object

    Example:

    STEP 1

    <?php
    
       $servername = "localhost";
       $username = "";
       $password = "";
       $dbname = "";
       $conn = new mysqli($servername, $username, $password, $dbname);
    
       if ($conn->connect_error) {
          die("Connection failed: " . $conn->connect_error);
       } 
    
       $sql = "SELECT id, name, image FROM phone";
       $result = $conn->query($sql);
    
       while($row = $result->fetch_assoc()){ 
          $v[] = $row;    
       }
    
      echo json_encode($v);
    
      $conn->close();
    ?>
    

    STEP 2

    function showUser(fnc) {
       var xhttp = new XMLHttpRequest();
    
       xhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
             // STEP 3    
             var p = JSON.parse(this.responseText);
          }
       }
    }
    

    How to make vim paste from (and copy to) system's clipboard?

    The other solutions are good if you want to change your vimrc, etc... However I wanted an simple way to copy from vim to my system keyboard. This is what I came up with.

    • Select the text you want to copy with visual mode v
    • Press : (it will automatically expand to show :'<,'>)
    • Type y * or y + (depending on your system) to yank the selected text to the system clipboard

    How many files can I put in a directory?

    I respect this doesn't totally answer your question as to how many is too many, but an idea for solving the long term problem is that in addition to storing the original file metadata, also store which folder on disk it is stored in - normalize out that piece of metadata. Once a folder grows beyond some limit you are comfortable with for performance, aesthetic or whatever reason, you just create a second folder and start dropping files there...

    Content Type text/xml; charset=utf-8 was not supported by service

    I was facing the similar issue when using the Channel Factory. it was actually due to wrong Contract specified in the endpoint.

    jQuery - get all divs inside a div with class ".container"

    To get all divs under 'container', use the following:

    $(".container>div")  //or
    $(".container").children("div");
    

    You can stipulate a specific #id instead of div to get a particular one.

    You say you want a div with an 'undefined' id. if I understand you right, the following would achieve this:

    $(".container>div[id=]")
    

    mySQL select IN range

    You can't, but you can use BETWEEN

    SELECT job FROM mytable WHERE id BETWEEN 10 AND 15
    

    Note that BETWEEN is inclusive, and will include items with both id 10 and 15.

    If you do not want inclusion, you'll have to fall back to using the > and < operators.

    SELECT job FROM mytable WHERE id > 10 AND id < 15
    

    git pull while not in a git directory

    As some of my servers are on an old Ubuntu LTS versions, I can't easily upgrade git to the latest version (which supports the -C option as described in some answers).

    This trick works well for me, especially because it does not have the side effect of some other answers that leave you in a different directory from where you started.

    pushd /X/Y
    git pull
    popd
    

    Or, doing it as a one-liner:

    pushd /X/Y; git pull; popd
    

    Both Linux and Windows have pushd and popd commands.

    Ignoring a class property in Entity Framework 4.1 Code First

    As of EF 5.0, you need to include the System.ComponentModel.DataAnnotations.Schema namespace.

    ArrayIndexOutOfBoundsException when using the ArrayList's iterator

    iterating using iterator is not fail-safe for example if you add element to the collection after iterator's creation then it will throw concurrentmodificaionexception. Also it's not thread safe, you have to make it thread safe externally.

    So it's better to use for-each structure of for loop. It's atleast fail-safe.

    Exit/save edit to sudoers file? Putty SSH

    To make changes to sudo from putty/bash:

    • Type visudo and press enter.
    • Navigate to the place you wish to edit using the up and down arrow keys.
    • Press insert to go into editing mode.
    • Make your changes - for example: user ALL=(ALL) ALL.
    • Note - it matters whether you use tabs or spaces when making changes.
    • Once your changes are done press esc to exit editing mode.
    • Now type :wq to save and press enter.
    • You should now be back at bash.
    • Now you can press ctrl + D to exit the session if you wish.

    Best way to initialize (empty) array in PHP

    Try this:

        $arr = (array) null;
        var_dump($arr);
    
        // will print
        // array(0) { }
    

    DD/MM/YYYY Date format in Moment.js

    This actually worked for me:

    moment(mydate).format('L');
    

    Top 1 with a left join

    The key to debugging situations like these is to run the subquery/inline view on its' own to see what the output is:

      SELECT TOP 1 
             dm.marker_value, 
             dum.profile_id
        FROM DPS_USR_MARKERS dum (NOLOCK)
        JOIN DPS_MARKERS dm (NOLOCK) ON dm.marker_id= dum.marker_id 
                                    AND dm.marker_key = 'moneyBackGuaranteeLength'
    ORDER BY dm.creation_date
    

    Running that, you would see that the profile_id value didn't match the u.id value of u162231993, which would explain why any mbg references would return null (thanks to the left join; you wouldn't get anything if it were an inner join).

    You've coded yourself into a corner using TOP, because now you have to tweak the query if you want to run it for other users. A better approach would be:

       SELECT u.id, 
              x.marker_value 
         FROM DPS_USER u
    LEFT JOIN (SELECT dum.profile_id,
                      dm.marker_value,
                      dm.creation_date
                 FROM DPS_USR_MARKERS dum (NOLOCK)
                 JOIN DPS_MARKERS dm (NOLOCK) ON dm.marker_id= dum.marker_id 
                                             AND dm.marker_key = 'moneyBackGuaranteeLength'
               ) x ON x.profile_id = u.id
         JOIN (SELECT dum.profile_id,
                      MAX(dm.creation_date) 'max_create_date'
                 FROM DPS_USR_MARKERS dum (NOLOCK)
                 JOIN DPS_MARKERS dm (NOLOCK) ON dm.marker_id= dum.marker_id 
                                             AND dm.marker_key = 'moneyBackGuaranteeLength'
             GROUP BY dum.profile_id) y ON y.profile_id = x.profile_id
                                       AND y.max_create_date = x.creation_date
        WHERE u.id = 'u162231993'
    

    With that, you can change the id value in the where clause to check records for any user in the system.

    Associating enums with strings in C#

    Use a class.

    Edit: Better example

    class StarshipType
    {
        private string _Name;
        private static List<StarshipType> _StarshipTypes = new List<StarshipType>();
    
        public static readonly StarshipType Ultralight = new StarshipType("Ultralight");
        public static readonly StarshipType Light = new StarshipType("Light");
        public static readonly StarshipType Mediumweight = new StarshipType("Mediumweight");
        public static readonly StarshipType Heavy = new StarshipType("Heavy");
        public static readonly StarshipType Superheavy = new StarshipType("Superheavy");
    
        public string Name
        {
            get { return _Name; }
            private set { _Name = value; }
        }
    
        public static IList<StarshipType> StarshipTypes
        {
            get { return _StarshipTypes; }
        }
    
        private StarshipType(string name, int systemRatio)
        {
            Name = name;
            _StarshipTypes.Add(this);
        }
    
        public static StarshipType Parse(string toParse)
        {
            foreach (StarshipType s in StarshipTypes)
            {
                if (toParse == s.Name)
                    return s;
            }
            throw new FormatException("Could not parse string.");
        }
    }
    

    What are the minimum margins most printers can handle?

    For every PostScript printer, one part of its driver is an ASCII file called PostScript Printer Description (PPD). PPDs are used in the CUPS printing system on Linux and Mac OS X as well even for non-PostScript printers.

    Every PPD MUST, according to the PPD specification written by Adobe, contain definitions of a *ImageableArea (that's a PPD keyword) for each and every media sizes it can handle. That value is given for example as *ImageableArea Folio/8,25x13: "12 12 583 923" for one printer in this office here, and *ImageableArea Folio/8,25x13: "0 0 595 935" for the one sitting in the next room.

    These figures mean "Lower left corner is at (12|12), upper right corner is at (583|923)" (where these figures are measured in points; 72pt == 1inch). Can you see that the first printer does print with a margin of 1/6 inch? -- Can you also see that the next one can even print borderless?

    What you need to know is this: Even if the printer can do very small margins physically, if the PPD *ImageableArea is set to a wider margin, the print data generated by the driver and sent to the printer will be clipped according to the PPD setting -- not by the printer itself.

    These days more and more models appear on the market which can indeed print edge-to-edge. This is especially true for office laser printers. (Don't know about devices for the home use market.) Sometimes you have to enable that borderless mode with a separate switch in the driver settings, sometimes also on the device itself (front panel, or web interface).

    Older models, for example HP's, define in their PPDs their margines quite generously, just to be on the supposedly "safe side". Very often HP used 1/3, 1/2 inch or more (like "24 24 588 768" for Letter format). I remember having hacked HP PPDs and tuned them down to "6 6 606 786" (1/12 inch) before the physical boundaries of the device kicked in and enforced a real clipping of the page image.

    Now, PCL and other language printers are not that much different in their margin capabilities from PostScript models.

    But of course, when it comes to printing of PDF docs, here you can nearly always choose "print to fit" or similarly named options. Even for a file that itself does not use any margins. That "fit" is what the PDF viewer reads from the driver, and the viewer then scales down the page to the *ImageableArea.

    How to set Toolbar text and back arrow color

    This approach worked for me using the Material Components library:

    In styles.xml:

    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- Your styles here -->
    
        <item name="toolbarStyle">@style/AppTheme.Toolbar</item>
    </style>
    
    <style name="AppTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar">
        <item name="titleTextColor">@android:color/white</item>
    </style>
    

    Adapted from this answer: https://stackoverflow.com/a/48205577/238753

    Default background color of SVG root element

    Found this works in Safari. SVG only colors in with background-color where an element's bounding box covers. So, give it a border (stroke) with a zero pixel boundary. It fills in the whole thing for you with your background-color.

    <svg style='stroke-width: 0px; background-color: blue;'> </svg>

    How to remove a file from the index in git?

    git reset HEAD <file> 
    

    for removing a particular file from the index.

    and

    git reset HEAD

    for removing all indexed files.

    Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported for @RequestBody MultiValueMap

    In Spring 5

    @PostMapping( "some/request/path" )
    public void someControllerMethod( @RequestParam MultiValueMap body ) {
    
        // import org.springframework.util.MultiValueMap;
    
        String datax = (String) body .getFirst("datax");
    }
    

    Setting transparent images background in IrfanView

    If you are using the batch conversion, in the window click "options" in the "Batch conversion settings-output format" and tick the two boxes "save transparent color" (one under "PNG" and the other under "ICO").

    Remove Null Value from String array in java

    If you want to avoid fencepost errors and avoid moving and deleting items in an array, here is a somewhat verbose solution that uses List:

    import java.util.ArrayList;
    import java.util.List;
    
    public class RemoveNullValue {
      public static void main( String args[] ) {
        String[] firstArray = {"test1", "", "test2", "test4", "", null};
    
        List<String> list = new ArrayList<String>();
    
        for(String s : firstArray) {
           if(s != null && s.length() > 0) {
              list.add(s);
           }
        }
    
        firstArray = list.toArray(new String[list.size()]);
      }
    }
    

    Added null to show the difference between an empty String instance ("") and null.

    Since this answer is around 4.5 years old, I'm adding a Java 8 example:

    import java.util.Arrays;
    import java.util.stream.Collectors;
    
    public class RemoveNullValue {
        public static void main( String args[] ) {
            String[] firstArray = {"test1", "", "test2", "test4", "", null};
    
            firstArray = Arrays.stream(firstArray)
                         .filter(s -> (s != null && s.length() > 0))
                         .toArray(String[]::new);    
    
        }
    }
    

    Can't start hostednetwork

    Let alone enabling the network adapter under Device Manager may not help. The following helped me resolved the issue.

    I tried Disabling and Enabling the Wifi Adapter (i.e. the actual Wifi device adapter not the virtual adapters) in Control Panel -> Network and Internet -> Network Connections altogether worked for me. The same can be done from the Device Manager too. This surely resets the adapter settings and for the Wifi Adapter and the Virtual Miniport adapters.

    However, please make sure that the mode is set to allow as in the below example before you run the start command.

    netsh wlan set hostednetwork mode=allow ssid=ssidOfUrChoice key=keyOfUrChoice
    

    and after that run the command netsh wlan start hostednetwork.

    Also once the usage is over with the Miniport adapter connection, it is a good practice to stop it using the following command.

    netsh wlan stop hostednetwork
    

    Hope it helps.

    How to multiply duration by integer?

    It's nice that Go has a Duration type -- having explicitly defined units can prevent real-world problems.

    And because of Go's strict type rules, you can't multiply a Duration by an integer -- you must use a cast in order to multiply common types.

    /*
    MultiplyDuration Hide semantically invalid duration math behind a function
    */
    func MultiplyDuration(factor int64, d time.Duration) time.Duration {
        return time.Duration(factor) * d        // method 1 -- multiply in 'Duration'
     // return time.Duration(factor * int64(d)) // method 2 -- multiply in 'int64'
    }
    

    The official documentation demonstrates using method #1:

    To convert an integer number of units to a Duration, multiply:

    seconds := 10
    fmt.Print(time.Duration(seconds)*time.Second) // prints 10s
    

    But, of course, multiplying a duration by a duration should not produce a duration -- that's nonsensical on the face of it. Case in point, 5 milliseconds times 5 milliseconds produces 6h56m40s. Attempting to square 5 seconds results in an overflow (and won't even compile if done with constants).

    By the way, the int64 representation of Duration in nanoseconds "limits the largest representable duration to approximately 290 years", and this indicates that Duration, like int64, is treated as a signed value: (1<<(64-1))/(1e9*60*60*24*365.25) ~= 292, and that's exactly how it is implemented:

    // A Duration represents the elapsed time between two instants
    // as an int64 nanosecond count. The representation limits the
    // largest representable duration to approximately 290 years.
    type Duration int64
    

    So, because we know that the underlying representation of Duration is an int64, performing the cast between int64 and Duration is a sensible NO-OP -- required only to satisfy language rules about mixing types, and it has no effect on the subsequent multiplication operation.

    If you don't like the the casting for reasons of purity, bury it in a function call as I have shown above.

    Branch from a previous commit using Git

    To do this in Eclipse:

    • Go to "Git Repository Exploring" Perspective.
    • Expand "Tags" and choose the commit from which you want to create branch.
    • Right click on the commit and choose "Create Branch".
    • Provide a branch name.

    It will create a local branch for you. Then whenever you push your changes, your branch will be pushed to the remote server.

    Deleting Row in SQLite in Android

    Guys if above solutions don't work for you then try this one also because it worked for me.

    public boolean deleteRow(String name) 
    {
        return db.delete(DATABASE_TABLE, KEY_NAME + "='" + name +"' ;", null) > 0;
    }
    

    Stacking DIVs on top of each other?

    style="position:absolute"

    Update multiple values in a single statement

    Have you tried with a sub-query for every field:

    UPDATE
        MasterTbl
    SET
        TotalX = (SELECT SUM(X) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID),
        TotalY = (SELECT SUM(Y) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID),
        TotalZ = (SELECT SUM(Z) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)
    WHERE
        ....
    

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"

    Please add the following dependencies to pom to resolve this issue.

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>1.7.25</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
    </dependency>
    

    How can I list ALL DNS records?

    1. A zone transfer is the only way to be sure you have all the subdomain records. If the DNS is correctly configured you should not normally be able to perform an external zone transfer.

    2. The scans.io project has a database of DNS records that can be downloaded and searched for subdomains. This requires downloading the 87GB of DNS data, alternatively you can try the online search of the data at https://hackertarget.com/find-dns-host-records/

    Validating Phone Numbers Using Javascript

    To validate Phone number using regular expression in java script.

    In india phone is 10 digit and starting digits are 6,7,8 and 9.

    Javascript and HTML code:

    _x000D_
    _x000D_
    function validate()
    {
      var text = document.getElementById("pno").value;
      var regx = /^[6-9]\d{9}$/ ;
      if(regx.test(text))
        alert("valid");
      else
        alert("invalid");
    }
    _x000D_
    <html>
        <head>
            <title>JS compiler - knox97</title>
      </head>
      <body>
      <input id="pno" placeholder="phonenumber" type="tel" maxlength="10" > 
        </br></br>
        <button onclick="validate()" type="button">submit</button>
      </body>
    </html>
    _x000D_
    _x000D_
    _x000D_

    How do I remove diacritics (accents) from a string in .NET?

    It's funny such a question can get so many answers, and yet none fit my requirements :) There are so many languages around, a full language agnostic solution is AFAIK not really possible, as others has mentionned that the FormC or FormD are giving issues.

    Since the original question was related to French, the simplest working answer is indeed

        public static string ConvertWesternEuropeanToASCII(this string str)
        {
            return Encoding.ASCII.GetString(Encoding.GetEncoding(1251).GetBytes(str));
        }
    

    1251 should be replaced by the encoding code of the input language.

    This however replace only one character by one character. Since I am also working with German as input, I did a manual convert

        public static string LatinizeGermanCharacters(this string str)
        {
            StringBuilder sb = new StringBuilder(str.Length);
            foreach (char c in str)
            {
                switch (c)
                {
                    case 'ä':
                        sb.Append("ae");
                        break;
                    case 'ö':
                        sb.Append("oe");
                        break;
                    case 'ü':
                        sb.Append("ue");
                        break;
                    case 'Ä':
                        sb.Append("Ae");
                        break;
                    case 'Ö':
                        sb.Append("Oe");
                        break;
                    case 'Ü':
                        sb.Append("Ue");
                        break;
                    case 'ß':
                        sb.Append("ss");
                        break;
                    default:
                        sb.Append(c);
                        break;
                }
            }
            return sb.ToString();
        }
    

    It might not deliver the best performance, but at least it is very easy to read and extend. Regex is a NO GO, much slower than any char/string stuff.

    I also have a very simple method to remove space:

        public static string RemoveSpace(this string str)
        {
            return str.Replace(" ", string.Empty);
        }
    

    Eventually, I am using a combination of all 3 above extensions:

        public static string LatinizeAndConvertToASCII(this string str, bool keepSpace = false)
        {
            str = str.LatinizeGermanCharacters().ConvertWesternEuropeanToASCII();            
            return keepSpace ? str : str.RemoveSpace();
        }
    

    And a small unit test to that (not exhaustive) which pass successfully.

        [TestMethod()]
        public void LatinizeAndConvertToASCIITest()
        {
            string europeanStr = "Bonjour ça va? C'est l'été! Ich möchte ä Ä á à â ê é è ë Ë É ï Ï î í ì ó ò ô ö Ö Ü ü ù ú û Û ý Ý ç Ç ñ Ñ";
            string expected = "Bonjourcava?C'estl'ete!IchmoechteaeAeaaaeeeeEEiIiiiooooeOeUeueuuuUyYcCnN";
            string actual = europeanStr.LatinizeAndConvertToASCII();
            Assert.AreEqual(expected, actual);
        }
    

    Set the selected index of a Dropdown using jQuery

    Select 4th option

    $('#select').val($('#select option').eq(3).val());
    

    example on jsfiddle

    Django -- Template tag in {% if %} block

    Sorry for comment in an old post but if you want to use an else if statement this will help you

    {% if title == source %}
        Do This
    {% elif title == value %}
        Do This
    {% else %}
        Do This
    {% endif %}
    

    For more info see Django Documentation

    How do I add a border to an image in HTML?

    Jack,

    You can learn a great deal about borders, and how to use them at http://www.w3schools.com/css/css_border.asp. That being said, there are a couple different ways you could accomplish this.

    Below is how I generally do it, but reading the documentation on w3schools you may come upon your own desired method.

    .addBorder {
      /* Thickness, Style, and Color */
      border: 1px solid #000000;
    }
    
    <img src="mypicture.jpg" alt="My Picture" class="addBorder" />
    

    Edit:

    I noticed the original question was not "How to add a border to an image," but instead it was "how to add in a box around an image using html?" The question was re-written by others, so I'm not 100% sure you wanted a border on your image.

    If you just wanted a box around your images, you could use a DIV, with it's own styles:

    .imageBox {
      background-color:#f1f1f1;
      padding:10px;
      border:1px solid #000000;
    }
    
    <div class="imageBox">
      <img src="picture.jpg" alt="My Picture" />
    </div>
    

    How do I edit a file after I shell to a Docker container?

    If you use Windows container and you want change any file, you can get and use Vim in Powershell console easily.

    To shelled to the Windows Docker container with PowerShell:

    docker exec -it <name> powershell

    • First install Chocolatey package manager

      Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression;

    • Install Vim

      choco install vim

    • Refresh ENVIRONMENTAL VARIABLE You can just exit and shell back to the container

    • Go to file location and Vim it vim file.txt

    How to download image from url

    It is not necessary to use System.Drawing to find the image format in a URI. System.Drawing is not available for .NET Core unless you download the System.Drawing.Common NuGet package and therefore I don't see any good cross-platform answers to this question.

    Also, my example does not use System.Net.WebClient since Microsoft explicitly discourage the use of System.Net.WebClient.

    We don't recommend that you use the WebClient class for new development. Instead, use the System.Net.Http.HttpClient class.

    Download an image from a URL and write it to a file (cross platform)*

    *Without old System.Net.WebClient and System.Drawing.

    This method will asynchronously download an image (or any file as long as the URI has a file extension) using the System.Net.Http.HttpClient and then write it to a file, using the same file extension as the image had in the URI.

    Getting the file extension

    First part of getting the file extension is removing all the unnecessary parts from the URI.
    We use Uri.GetLeftPart() with UriPartial.Path to get everything from the Scheme up to the Path.
    In other words, https://www.example.com/image.png?query&with.dots becomes https://www.example.com/image.png.

    After that, we use Path.GetExtension() to get only the extension (in my previous example, .png).

    var uriWithoutQuery = uri.GetLeftPart(UriPartial.Path);
    var fileExtension = Path.GetExtension(uriWithoutQuery);
    

    Downloading the image

    From here it should be straight forward. Download the image with HttpClient.GetByteArrayAsync, create the path, ensure the directory exists and then write the bytes to the path with File.WriteAllBytesAsync() (or File.WriteAllBytes if you are on .NET Framework)

    private async Task DownloadImageAsync(string directoryPath, string fileName, Uri uri)
    {
        using var httpClient = new HttpClient();
    
        // Get the file extension
        var uriWithoutQuery = uri.GetLeftPart(UriPartial.Path);
        var fileExtension = Path.GetExtension(uriWithoutQuery);
    
        // Create file path and ensure directory exists
        var path = Path.Combine(directoryPath, $"{fileName}{fileExtension}");
        Directory.CreateDirectory(directoryPath);
    
        // Download the image and write to the file
        var imageBytes = await _httpClient.GetByteArrayAsync(uri);
        await File.WriteAllBytesAsync(path, imageBytes);
    }
    

    Note that you need the following using directives.

    using System;
    using System.IO;
    using System.Threading.Tasks;
    using System.Net.Http;
    

    Example usage

    var folder = "images";
    var fileName = "test";
    var url = "https://cdn.discordapp.com/attachments/458291463663386646/592779619212460054/Screenshot_20190624-201411.jpg?query&with.dots";
    
    await DownloadImageAsync(folder, fileName, new Uri(url));
    

    Notes

    • It's bad practice to create a new HttpClient for every method call. It is supposed to be reused throughout the application. I wrote a short example of an ImageDownloader(50 lines) with more documentation that correctly reuses the HttpClient and properly disposes of it that you can find here.

    Ruby on Rails: How do I add placeholder text to a f.text_field?

    I tried the solutions above and it looks like on rails 5.* the second agument by default is the value of the input form, what worked for me was:

    text_field_tag :attr, "", placeholder: "placeholder text"
    

    Generics/templates in python?

    Since python is dynamically typed, this is super easy. In fact, you'd have to do extra work for your BinaryTree class not to work with any data type.

    For example, if you want the key values which are used to place the object in the tree available within the object from a method like key() you just call key() on the objects. For example:

    class BinaryTree(object):
    
        def insert(self, object_to_insert):
            key = object_to_insert.key()
    

    Note that you never need to define what kind of class object_to_insert is. So long as it has a key() method, it will work.

    The exception is if you want it to work with basic data types like strings or integers. You'll have to wrap them in a class to get them to work with your generic BinaryTree. If that sounds too heavy weight and you want the extra efficiency of actually just storing strings, sorry, that's not what Python is good at.

    How to get Chrome to allow mixed content?

    Steps as of Chrome v79 (2/24/2020):

    1. Click the (i) button next to the URL

    enter image description here

    1. Click Site settings on the popup box

    enter image description here

    1. At the bottom of the list is "Insecure content", change this to Allow

    enter image description here

    1. Go back to the site and Refresh the page

    Older Chrome Versions:

    timmmy_42 answers this on: https://productforums.google.com/forum/#!topic/chrome/OrwppKWbKnc

    In the address bar at the right end should be a 'shield' icon, you can click on that to run insecure content.

    This worked for me in Chromium-dev Version 36.0.1933.0 (262849).

    When does Java's Thread.sleep throw InterruptedException?

    Methods like sleep() and wait() of class Thread might throw an InterruptedException. This will happen if some other thread wanted to interrupt the thread that is waiting or sleeping.

    How to escape a while loop in C#

    "break" is a command that breaks out of the "closest" loop.

    While there are many good uses for break, you shouldn't use it if you don't have to -- it can be seen as just another way to use goto, which is considered bad.

    For example, why not:

    while (!(the condition you're using to break))
            {
             //Your code here.
            }
    

    If the reason you're using "break" is because you don't want to continue execution of that iteration of the loop, you may want to use the "continue" keyword, which immediately jumps to the next iteration of the loop, whether it be while or for.

    while (!condition) {
       //Some code
       if (condition) continue;
       //More code that will be skipped over if the condition was true
    }
    

    Uploading Files in ASP.net without using the FileUpload server control

    The Request.Files collection contains any files uploaded with your form, regardless of whether they came from a FileUpload control or a manually written <input type="file">.

    So you can just write a plain old file input tag in the middle of your WebForm, and then read the file uploaded from the Request.Files collection.

    How can I clear event subscriptions in C#?

    Setting the event to null inside the class works. When you dispose a class you should always set the event to null, the GC has problems with events and may not clean up the disposed class if it has dangling events.