# Programs & Examples On #Record count

### How do I get the size of a java.sql.ResultSet?

``````ResultSet rs = ps.executeQuery();
int rowcount = 0;
if (rs.last()) {
rowcount = rs.getRow();
rs.beforeFirst(); // not rs.first() because the rs.next() below will move on, missing the first element
}
while (rs.next()) {
// do your standard per row stuff
}
``````

### How to get the exact local time of client?

``````new Date(Date.now() + (-1*new Date().getTimezoneOffset()*60000)).toISOString()
``````

### Computational complexity of Fibonacci Sequence

There's a very nice discussion of this specific problem over at MIT. On page 5, they make the point that, if you assume that an addition takes one computational unit, the time required to compute Fib(N) is very closely related to the result of Fib(N).

As a result, you can skip directly to the very close approximation of the Fibonacci series:

``````Fib(N) = (1/sqrt(5)) * 1.618^(N+1) (approximately)
``````

and say, therefore, that the worst case performance of the naive algorithm is

``````O((1/sqrt(5)) * 1.618^(N+1)) = O(1.618^(N+1))
``````

PS: There is a discussion of the closed form expression of the Nth Fibonacci number over at Wikipedia if you'd like more information.

### How can I extract audio from video with ffmpeg?

To extract the audio stream without re-encoding:

``````ffmpeg -i input-video.avi -vn -acodec copy output-audio.aac
``````
• `-vn` is no video.
• `-acodec copy` says use the same audio stream that's already in there.

Read the output to see what codec it is, to set the right filename extension.

### Parser Error Message: Could not load type 'TestMvcApplication.MvcApplication'

Here's another one:

1. I had been working on a web api project that was using localhost:12345.
2. I checked out a different branch from source control containing the same project.
3. I ran the project on the branch and got the error.
4. I went to "Properties > Web > Project Url" and clicked "Create Virtual Directory"
5. A dialog came up telling me that the url was mapped to a different directory (the directory for the original project).
6. I clicked Okay and the virtual directory was remapped.
7. The error went away.

I hope that helps someone somewhere :)

### How to get current working directory using vba?

If you really mean pure working Directory, this should suit for you.

Solution A:

``````Dim ParentPath As String: ParentPath = "\"
Dim ThisWorkbookPath As String
Dim ThisWorkbookPathParts, Part As Variant
Dim Count, Parts As Long

ThisWorkbookPath = ThisWorkbook.Path
ThisWorkbookPathParts = Split(ThisWorkbookPath, _
Application.PathSeparator)

Parts = UBound(ThisWorkbookPathParts)
Count = 0
For Each Part In ThisWorkbookPathParts
If Count > 0 Then
ParentPath = ParentPath & Part & "\"
End If
Count = Count + 1
If Count = Parts Then Exit For
Next

MsgBox "File-Drive = " & ThisWorkbookPathParts _
(LBound(ThisWorkbookPathParts))
MsgBox "Parent-Path = " & ParentPath
``````

But if don't, this should be enough.

Solution B:

``````Dim ThisWorkbookPath As String

ThisWorkbookPath = ThisWorkbook.Path
MsgBox "Working-Directory = " & ThisWorkbookPath
``````

### What is a NullReferenceException, and how do I fix it?

It means your code used an object reference variable that was set to null (i.e. it did not reference an actual object instance).

To prevent the error, objects that could be null should be tested for null before being used.

``````if (myvar != null)
{
// Go ahead and use myvar
myvar.property = ...
}
else
{
// Whoops! myvar is null and cannot be used without first
// assigning it to an instance reference
// Attempting to use myvar here will result in NullReferenceException
}
``````

### How can I do an asc and desc sort using underscore.js?

You can use `.sortBy`, it will always return an ascending list:

``````_.sortBy([2, 3, 1], function(num) {
return num;
}); // [1, 2, 3]
``````

But you can use the .reverse method to get it descending:

``````var array = _.sortBy([2, 3, 1], function(num) {
return num;
});

console.log(array); // [1, 2, 3]
console.log(array.reverse()); // [3, 2, 1]
``````

``````_.sortBy([-3, -2, 2, 3, 1, 0, -1], function(num) {
return -num;
}); // [3, 2, 1, 0, -1, -2, -3]
``````

Under the hood `.sortBy` uses the built in `.sort([handler])`:

``````// Default is ascending:
[2, 3, 1].sort(); // [1, 2, 3]

// But can be descending if you provide a sort handler:
[2, 3, 1].sort(function(a, b) {
// a = current item in array
// b = next item in array
return b - a;
});
``````

### Angular - Can't make ng-repeat orderBy work

Here's a version of @Julian Mosquera's code that also supports sorting by object key:

``````yourApp.filter('orderObjectBy', function () {
return function (items, field, reverse) {
// Build array
var filtered = [];
for (var key in items) {
if (field === 'key')
filtered.push(key);
else
filtered.push(items[key]);
}
// Sort array
filtered.sort(function (a, b) {
if (field === 'key')
return (a > b ? 1 : -1);
else
return (a[field] > b[field] ? 1 : -1);
});
// Reverse array
if (reverse)
filtered.reverse();
return filtered;
};
});
``````

### How to check the input is an integer or not in Java?

``````        String input = "";
int inputInteger = 0;

try {
inputInteger = Integer.parseInt(input);
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
float area = (float) (3.14*inputInteger*inputInteger);
System.out.println("Area = "+area);
``````

### How to make a link open multiple pages when clicked

HTML:

``````<a href="#" class="yourlink">Click Here</a>
``````

JS:

``````\$('a.yourlink').click(function(e) {
e.preventDefault();
window.open('http://yoururl1.com');
window.open('http://yoururl2.com');
});
``````

`window.open` also can take additional parameters. See them here: http://www.javascript-coder.com/window-popup/javascript-window-open.phtml

You should also know that window.open is sometimes blocked by popup blockers and/or ad-filters.

Addition from Paul below: This approach also places a dependency on JavaScript being enabled. Not typically a good idea, but sometimes necessary.

### Java serialization - java.io.InvalidClassException local class incompatible

For me, I forgot to add the default serial id.

``````private static final long serialVersionUID = 1L;
``````

### Get total number of items on Json object?

In addition to kieran's answer, apparently, modern browsers have an `Object.keys` function. In this case, you could do this:

``````Object.keys(jsonArray).length;
``````

More details in this answer on How to list the properties of a javascript object

### How to implement "select all" check box in HTML?

to make it in short-hand version by using jQuery

The select all checkbox

``````<input type="checkbox" id="chkSelectAll">
``````

The children checkbox

``````<input type="checkbox" class="chkDel">
<input type="checkbox" class="chkDel">
<input type="checkbox" class="chkDel">
``````

jQuery

``````\$("#chkSelectAll").on('click', function(){
this.checked ? \$(".chkDel").prop("checked",true) : \$(".chkDel").prop("checked",false);
})
``````

### Check for a substring in a string in Oracle without LIKE

If you were only interested in 'z', you could create a function-based index.

``````CREATE INDEX users_z_idx ON users (INSTR(last_name,'z'))
``````

Then your query would use `WHERE INSTR(last_name,'z') > 0`.

With this approach you would have to create a separate index for each character you might want to search for. I suppose if this is something you do often, it might be worth creating one index for each letter.

Also, keep in mind that if your data has the names capitalized in the standard way (e.g., "Zaxxon"), then both your example and mine would not match names that begin with a Z. You can correct for this by including LOWER in the search expression: `INSTR(LOWER(last_name),'z')`.

### How to fix IndexError: invalid index to scalar variable

You are trying to index into a scalar (non-iterable) value:

``````[y[1] for y in y_test]
#  ^ this is the problem
``````

When you call `[y for y in test]` you are iterating over the values already, so you get a single value in `y`.

Your code is the same as trying to do the following:

``````y_test = [1, 2, 3]
y = y_test[0] # y = 1
print(y[0]) # this line will fail
``````

I'm not sure what you're trying to get into your results array, but you need to get rid of `[y[1] for y in y_test]`.

If you want to append each y in y_test to results, you'll need to expand your list comprehension out further to something like this:

``````[results.append(..., y) for y in y_test]
``````

Or just use a for loop:

``````for y in y_test:
results.append(..., y)
``````

### Update rows in one table with data from another table based on one column in each being equal

``````merge into t2 t2
using (select * from t1) t1
on (t2.user_id = t1.user_id)
when matched then update
set
t2.c1 = t1.c1
,  t2.c2 = t1.c2
``````

### How to get/generate the create statement for an existing hive table?

Steps to generate Create table DDLs for all the tables in the Hive database and export into text file to run later:

step 1)
create a `.sh` file with the below content, say `hive_table_ddl.sh`

``````#!/bin/bash
rm -f tableNames.txt
rm -f HiveTableDDL.txt
hive -e "use \$1; show tables;" > tableNames.txt
wait
do
hive -e "use \$1;show create table \$LINE;" >>HiveTableDDL.txt
echo  -e "\n" >> HiveTableDDL.txt
done
rm -f tableNames.txt
echo "Table DDL generated"
``````

step 2)

Run the above shell script by passing 'db name' as paramanter

``````>bash hive_table_dd.sh <<databasename>>
``````

output :

All the create table statements of your DB will be written into the `HiveTableDDL.txt`

### OpenJDK8 for windows

Download version tar.gz for windows and just extract files to the folder by your needs. On the left pane, you can select which version of openjdk to download

Tutorial: unzip as expected. You need to set system variable PATH to include your directory with openjdk so you can type java -version in console.

JDK vs OpenJDK

### Nullable property to entity field, Entity Framework through Code First

In Ef .net core there are two options that you can do; first with data annotations:

``````public class Blog
{
public int BlogId { get; set; }
[Required]
public string Url { get; set; }
}
``````

Or with fluent api:

``````class MyContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.Property(b => b.Url)
.IsRequired(false)//optinal case
.IsRequired()//required case
;
}
}

public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}
``````

There are more details here

### Angular.js: How does \$eval work and why is it different from vanilla eval?

I think one of the original questions here was not answered. I believe that vanilla eval() is not used because then angular apps would not work as Chrome apps, which explicitly prevent eval() from being used for security reasons.

### How to check if std::map contains a key without doing insert?

Your desideratum,`map.contains(key)`, is scheduled for the draft standard C++2a. In 2017 it was implemented by gcc 9.2. It's also in the current clang.

### How to get cell value from DataGridView in VB.Net?

To get the value of cell, use the following syntax,

``````datagridviewName(columnFirst, rowSecond).value
``````

But the intellisense and MSDN documentation is wrongly saying `rowFirst, colSecond` approach...

### How do I rename a MySQL schema?

If you're on the Model Overview page you get a tab with the schema. If you rightclick on that tab you get an option to "edit schema". From there you can rename the schema by adding a new name, then click outside the field. This goes for MySQL Workbench 5.2.30 CE

Edit: On the model overview it's under Physical Schemata

Screenshot:

### How to run a PowerShell script

Using cmd (BAT) file:

``````@echo off
color 1F
echo.

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"

:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL
``````

If you need run as administrator:

1. Make a shortcut pointed to the command prompt (I named it Administrative Command Prompt)
2. Open the shortcut's properties and go to the Compatibility tab
3. Under the Privilege Level section, make sure the checkbox next to "Run this program as an administrator" is checked

This works:

``````var form = \$(this).closest('form');

form = form.serializeArray();

form = form.concat([
{name: "post_action", value: "Update Information"}
]);

\$.post('/change-user-details', form, function(d) {
if (d.error) {
}
});
``````

### How Stuff and 'For Xml Path' work in SQL Server?

``````Declare @Temp As Table (Id Int,Name Varchar(100))
Insert Into @Temp values(1,'A'),(1,'B'),(1,'C'),(2,'D'),(2,'E'),(3,'F'),(3,'G'),(3,'H'),(4,'I'),(5,'J'),(5,'K')
Select X.ID,
stuff((Select ','+ Z.Name from @Temp Z Where X.Id =Z.Id For XML Path('')),1,1,'')
from @Temp X
Group by X.ID
``````

### Shared-memory objects in multiprocessing

This is the intended use case for Ray, which is a library for parallel and distributed Python. Under the hood, it serializes objects using the Apache Arrow data layout (which is a zero-copy format) and stores them in a shared-memory object store so they can be accessed by multiple processes without creating copies.

The code would look like the following.

``````import numpy as np
import ray

ray.init()

@ray.remote
def func(array, param):
# Do stuff.
return 1

array = np.ones(10**6)
# Store the array in the shared memory object store once
# so it is not copied multiple times.
array_id = ray.put(array)

result_ids = [func.remote(array_id, i) for i in range(4)]
output = ray.get(result_ids)
``````

If you don't call `ray.put` then the array will still be stored in shared memory, but that will be done once per invocation of `func`, which is not what you want.

Note that this will work not only for arrays but also for objects that contain arrays, e.g., dictionaries mapping ints to arrays as below.

You can compare the performance of serialization in Ray versus pickle by running the following in IPython.

``````import numpy as np
import pickle
import ray

ray.init()

x = {i: np.ones(10**7) for i in range(20)}

# Time Ray.
%time x_id = ray.put(x)  # 2.4s
%time new_x = ray.get(x_id)  # 0.00073s

# Time pickle.
%time serialized = pickle.dumps(x)  # 2.6s
%time deserialized = pickle.loads(serialized)  # 1.9s
``````

Serialization with Ray is only slightly faster than pickle, but deserialization is 1000x faster because of the use of shared memory (this number will of course depend on the object).

See the Ray documentation. You can read more about fast serialization using Ray and Arrow. Note I'm one of the Ray developers.

Once after we build the jar will have the resource files under BOOT-INF/classes or target/classes folder, which is in classpath, use the below method and pass the file under the src/main/resources as method call getAbsolutePath("certs/uat_staging_private.ppk"), even we can place this method in Utility class and the calling Thread instance will be taken to load the ClassLoader to get the resource from class path.

`````` public String getAbsolutePath(String fileName) throws IOException {
}
``````

we can add the below tag to tag in pom.xml to include these resource files to build target/classes folder

``````<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.ppk</include>
</includes>
</resource>
</resources>
``````

### fatal: could not read Username for 'https://github.com': No such file or directory

You can also try Github OAuth token, then you can do `git config remote.origin.url 'https://{token}@github.com/{username}/{project}.git'` or `git remote add origin 'https://{token}@github.com/{username}/{project}.git'`

This works for me!

### VBA general way for pulling data out of SAP

This all depends on what sort of access you have to your SAP system. An ABAP program that exports the data and/or an RFC that your macro can call to directly get the data or have SAP create the file is probably best.

However as a general rule people looking for this sort of answer are looking for an immediate solution that does not require their IT department to spend months customizing their SAP system.

In that case you probably want to use SAP GUI Scripting. SAP GUI scripting allows you to automate the Windows SAP GUI in much the same way as you automate Excel. In fact you can call the SAP GUI directly from an Excel macro. Read up more on it here. The SAP GUI has a macro recording tool much like Excel does. It records macros in VBScript which is nearly identical to Excel VBA and can usually be copied and pasted into an Excel macro directly.

# Example Code

Here is a simple example based on a SAP system I have access to.

``````Public Sub SimpleSAPExport()
Set SapGuiAuto  = GetObject("SAPGUI") 'Get the SAP GUI Scripting object
Set SAPApp = SapGuiAuto.GetScriptingEngine 'Get the currently running SAP GUI
Set SAPCon = SAPApp.Children(0) 'Get the first system that is currently connected
Set session = SAPCon.Children(0) 'Get the first session (window) on that connection

'Start the transaction to view a table
session.StartTransaction "SE16"

'Select table T001
session.findById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").Text = "T001"
session.findById("wnd[0]/tbar[1]/btn[7]").Press

'Set our selection criteria
session.findById("wnd[0]/usr/txtMAX_SEL").text = "2"
session.findById("wnd[0]/tbar[1]/btn[8]").press

'Click the export to file button
session.findById("wnd[0]/tbar[1]/btn[45]").press

'Choose the export format
session.findById("wnd[1]/tbar[0]/btn[0]").press

'Choose the export filename
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "test.txt"
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "C:\Temp\"

'Export the file
session.findById("wnd[1]/tbar[0]/btn[0]").press
End Sub
``````

# Script Recording

To help find the names of elements such as`wnd[1]/tbar[0]/btn[0]` you can use script recording. Click the customize local layout button, it probably looks a bit like this:
Then find the Script Recording and Playback menu item.

Within that the `More` button allows you to see/change the file that the VB Script is recorded to. The output format is a bit messy, it records things like selecting text, clicking inside a text field, etc.

# Edit: Early and Late binding

The provided script should work if copied directly into a VBA macro. It uses late binding, the line `Set SapGuiAuto = GetObject("SAPGUI")` defines the SapGuiAuto object.

If however you want to use early binding so that your VBA editor might show the properties and methods of the objects you are using, you need to add a reference to `sapfewse.ocx` in the SAP GUI installation folder.

### How can I tell if an algorithm is efficient?

Yes you can start with the Wikipedia article explaining the Big O notation, which in a nutshell is a way of describing the "efficiency" (upper bound of complexity) of different type of algorithms. Or you can look at an earlier answer where this is explained in simple english

### javax.persistence.NoResultException: No entity found for query

Another option is to use uniqueResultOptional() method, which gives you Optional in result:

``````String hql="from DrawUnusedBalance where unusedBalanceDate= :today";
Query query=em.createQuery(hql);
query.setParameter("today",new LocalDate());

Optional<DrawUnusedBalance> drawUnusedBalance=query.uniqueResultOptional();
``````

### Where is Python's sys.path initialized from?

Python really tries hard to intelligently set `sys.path`. How it is set can get really complicated. The following guide is a watered-down, somewhat-incomplete, somewhat-wrong, but hopefully-useful guide for the rank-and-file python programmer of what happens when python figures out what to use as the initial values of `sys.path`, `sys.executable`, `sys.exec_prefix`, and `sys.prefix` on a normal python installation.

First, python does its level best to figure out its actual physical location on the filesystem based on what the operating system tells it. If the OS just says "python" is running, it finds itself in \$PATH. It resolves any symbolic links. Once it has done this, the path of the executable that it finds is used as the value for `sys.executable`, no ifs, ands, or buts.

Next, it determines the initial values for `sys.exec_prefix` and `sys.prefix`.

If there is a file called `pyvenv.cfg` in the same directory as `sys.executable` or one directory up, python looks at it. Different OSes do different things with this file.

One of the values in this config file that python looks for is the configuration option `home = <DIRECTORY>`. Python will use this directory instead of the directory containing `sys.executable` when it dynamically sets the initial value of `sys.prefix` later. If the `applocal = true` setting appears in the `pyvenv.cfg` file on Windows, but not the `home = <DIRECTORY>` setting, then `sys.prefix` will be set to the directory containing `sys.executable`.

Next, the `PYTHONHOME` environment variable is examined. On Linux and Mac, `sys.prefix` and `sys.exec_prefix` are set to the `PYTHONHOME` environment variable, if it exists, superseding any `home = <DIRECTORY>` setting in `pyvenv.cfg`. On Windows, `sys.prefix` and `sys.exec_prefix` is set to the `PYTHONHOME` environment variable, if it exists, unless a `home = <DIRECTORY>` setting is present in `pyvenv.cfg`, which is used instead.

Otherwise, these `sys.prefix` and `sys.exec_prefix` are found by walking backwards from the location of `sys.executable`, or the `home` directory given by `pyvenv.cfg` if any.

If the file `lib/python<version>/dyn-load` is found in that directory or any of its parent directories, that directory is set to be to be `sys.exec_prefix` on Linux or Mac. If the file `lib/python<version>/os.py` is is found in the directory or any of its subdirectories, that directory is set to be `sys.prefix` on Linux, Mac, and Windows, with `sys.exec_prefix` set to the same value as `sys.prefix` on Windows. This entire step is skipped on Windows if `applocal = true` is set. Either the directory of `sys.executable` is used or, if `home` is set in `pyvenv.cfg`, that is used instead for the initial value of `sys.prefix`.

If it can't find these "landmark" files or `sys.prefix` hasn't been found yet, then python sets `sys.prefix` to a "fallback" value. Linux and Mac, for example, use pre-compiled defaults as the values of `sys.prefix` and `sys.exec_prefix`. Windows waits until `sys.path` is fully figured out to set a fallback value for `sys.prefix`.

Then, (what you've all been waiting for,) python determines the initial values that are to be contained in `sys.path`.

1. The directory of the script which python is executing is added to `sys.path`. On Windows, this is always the empty string, which tells python to use the full path where the script is located instead.
2. The contents of PYTHONPATH environment variable, if set, is added to `sys.path`, unless you're on Windows and `applocal` is set to true in `pyvenv.cfg`.
3. The zip file path, which is `<prefix>/lib/python35.zip` on Linux/Mac and `os.path.join(os.dirname(sys.executable), "python.zip")` on Windows, is added to `sys.path`.
4. If on Windows and no `applocal = true` was set in `pyvenv.cfg`, then the contents of the subkeys of the registry key `HK_CURRENT_USER\Software\Python\PythonCore\<DLLVersion>\PythonPath\` are added, if any.
5. If on Windows and no `applocal = true` was set in `pyvenv.cfg`, and `sys.prefix` could not be found, then the core contents of the of the registry key `HK_CURRENT_USER\Software\Python\PythonCore\<DLLVersion>\PythonPath\` is added, if it exists;
6. If on Windows and no `applocal = true` was set in `pyvenv.cfg`, then the contents of the subkeys of the registry key `HK_LOCAL_MACHINE\Software\Python\PythonCore\<DLLVersion>\PythonPath\` are added, if any.
7. If on Windows and no `applocal = true` was set in `pyvenv.cfg`, and `sys.prefix` could not be found, then the core contents of the of the registry key `HK_CURRENT_USER\Software\Python\PythonCore\<DLLVersion>\PythonPath\` is added, if it exists;
8. If on Windows, and PYTHONPATH was not set, the prefix was not found, and no registry keys were present, then the relative compile-time value of PYTHONPATH is added; otherwise, this step is ignored.
9. Paths in the compile-time macro PYTHONPATH are added relative to the dynamically-found `sys.prefix`.
10. On Mac and Linux, the value of `sys.exec_prefix` is added. On Windows, the directory which was used (or would have been used) to search dynamically for `sys.prefix` is added.

At this stage on Windows, if no prefix was found, then python will try to determine it by searching all the directories in `sys.path` for the landmark files, as it tried to do with the directory of `sys.executable` previously, until it finds something. If it doesn't, `sys.prefix` is left blank.

Finally, after all this, Python loads the `site` module, which adds stuff yet further to `sys.path`:

It starts by constructing up to four directories from a head and a tail part. For the head part, it uses `sys.prefix` and `sys.exec_prefix`; empty heads are skipped. For the tail part, it uses the empty string and then `lib/site-packages` (on Windows) or `lib/pythonX.Y/site-packages` and then `lib/site-python` (on Unix and Macintosh). For each of the distinct head-tail combinations, it sees if it refers to an existing directory, and if so, adds it to sys.path and also inspects the newly added path for configuration files.

### How to print a list of symbols exported from a dynamic library

Use otool:

``````otool -TV your.dylib
``````

OR

``````nm -g your.dylib
``````

### How to install grunt and how to build script with it

You should be installing grunt-cli to the devDependencies of the project and then running it via a script in your package.json. This way other developers that work on the project will all be using the same version of grunt and don't also have to install globally as part of the setup.

Install grunt-cli with `npm i -D grunt-cli` instead of installing it globally with `-g`.

``````//package.json

...

"scripts": {
"build": "grunt"
}
``````

Then use `npm run build` to fire off grunt.

### Easiest way to convert a List to a Set in Java

``````set.addAll(aList);
``````

Java- new Object

``````new HashSet(list)
``````

Java-8

``````list.stream().collect(Collectors.toSet());
``````

Using Guva

`````` Sets.newHashSet(list)
``````

Apache Commons

``````CollectionUtils.addAll(targetSet, sourceList);
``````

Java 10

``````var set = Set.copyOf(list);
``````

### How do you find the first key in a dictionary?

Update: as of Python 3.7, insertion order is maintained, so you don't need an `OrderedDict` here. You can use the below approaches with a normal `dict`

Changed in version 3.7: Dictionary order is guaranteed to be insertion order. This behavior was an implementation detail of CPython from 3.6.

source

Python 3.6 and earlier*

If you are talking about a regular `dict`, then the "first key" doesn't mean anything. The keys are not ordered in any way you can depend on. If you iterate over your `dict` you will likely not get `"banana"` as the first thing you see.

If you need to keep things in order, then you have to use an `OrderedDict` and not just a plain dictionary.

``````import collections
prices  = collections.OrderedDict([
("banana", 4),
("apple", 2),
("orange", 1.5),
("pear", 3),
])
``````

If you then wanted to see all the keys in order you could do so by iterating through it

``````for k in prices:
print(k)
``````

You could, alternatively put all of the keys into a list and then work with that

``````ks = list(prices)
print(ks[0]) # will print "banana"
``````

A faster way to get the first element without creating a list would be to call `next` on the iterator. This doesn't generalize nicely when trying to get the `nth` element though

``````>>> next(iter(prices))
'banana'
``````

* CPython had guaranteed insertion order as an implementation detail in 3.6.

### How can I push a specific commit to a remote, and not previous commits?

I'd suggest using `git rebase -i`; move the commit you want to push to the top of the commits you've made. Then use `git log` to get the SHA of the rebased commit, check it out, and push it. The rebase will have ensures that all your other commits are now children of the one you pushed, so future pushes will work fine too.

### What is Gradle in Android Studio?

`Gradle` is an advanced build system as well as an advanced build toolkit allowing to create custom build logic through plugins!

• Dsl - Domain specific language, based on groovy
• DAG - Directed Acyclic Graph
• Incremental builds
• Extensible domain model
• Gradle is always up to date
• Before a task is being execute, Gradle takes a snapshot of its task’s input and output.
• In case the snapshot has changed or it doesn’t exists, Gralde will re- execute this task.

Manifest entries

Through the DSL it is possible to configure the following manifest entries:

Build variant

By default, the Android plugin automatically sets up the project to build both a debug and a release version of the application.

Dependencies

1. Local Dependencies:

If you have binary archives in your local filesystem that a module depends on, such as JAR files, you can declare these dependencies in the build file for that module.

1. Remote Dependencies:

First the repository must be added to the list, and then the dependency must be declared in a way that Maven or Ivy declare their artifacts.

# Access the `package.json`

You can access the `package.json` or `bower.json` of the package with:

`notepad ./node_modules/:packageName/package.json`

This will open the `package.json` in `notepad` which has the `version number` of the `:packageName` you included in the `command`.

#### For example :

`notepad ./node_modules/vue-template-compiler/package.json`

Good Luck.

### git push vs git push origin <branchname>

The first push should be a:

``````git push -u origin branchname
``````

That would make sure:

Any future git push will, with that default policy, only push the current branch, and only if that branch has an upstream branch with the same name.
that avoid pushing all matching branches (previous default policy), where tons of test branches were pushed even though they aren't ready to be visible on the upstream repo.

### Excel VBA Macro: User Defined Type Not Defined

``````Sub DeleteEmptyRows()

Worksheets("YourSheetName").Activate
On Error Resume Next
Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

End Sub
``````

The following code will delete all rows on a sheet(YourSheetName) where the content of Column A is blank.

EDIT: User Defined Type Not Defined is caused by "oTable As Table" and "oRow As Row". Replace Table and Row with Object to resolve the error and make it compile.

### Disabling Controls in Bootstrap

try

``````\$('#xxx').attr('disabled', true);
``````

### How can I know which radio button is selected via jQuery?

``````\$("input:radio:checked").val();
``````

### How do I round to the nearest 0.5?

This answer is taken from Rosdi Kasim's comment in the answer that John Rasch provided.

John's answer works but does have an overflow possibility.

Here is my version of Rosdi's code:

I also put it in an extension to make it easy to use. The extension is not necessary and could be used as a function without issue.

``````<Extension>
Public Function ToHalf(value As Decimal) As Decimal
Dim integerPart = Decimal.Truncate(value)
Dim fractionPart = value - Decimal.Truncate(integerPart)
Dim roundedFractionPart = Math.Round(fractionPart * 2, MidpointRounding.AwayFromZero) / 2
Dim newValue = integerPart + roundedFractionPart
Return newValue
End Function
``````

The usage would then be:

``````Dim newValue = CDec(1.26).ToHalf
``````

This would return 1.5

### Compress files while reading data from STDIN

Yes, use gzip for this. The best way is to read data as input and redirect the compressed to output file i.e.

``````cat test.csv | gzip > test.csv.gz
``````

`cat test.csv` will send the data as stdout and using pipe-sign gzip will read that data as stdin. Make sure to redirect the gzip output to some file as compressed data will not be written to the terminal.

### How to check command line parameter in ".bat" file?

In addition to the other answers, which I subscribe, you may consider using the `/I` switch of the `IF` command.

... the /I switch, if specified, says to do case insensitive string compares.

it may be of help if you want to give case insensitive flexibility to your users to specify the parameters.

``````IF /I "%1"=="-b" GOTO SPECIFIC
``````

### Importing modules from parent folder

I posted a similar answer also to the question regarding imports from sibling packages. You can see it here.

# Solution without `sys.path` hacks

#### Summary

• Wrap the code into one folder (e.g. `packaged_stuff`)
• Use create `setup.py` script where you use setuptools.setup().
• Pip install the package in editable state with `pip install -e <myproject_folder>`
• Import using `from packaged_stuff.modulename import function_name`

#### Setup

I assume the same folder structure as in the question

``````.
+-- ptdraft
+-- __init__.py
+-- nib.py
+-- simulations
+-- __init__.py
+-- life
+-- __init__.py
+-- life.py
``````

I call the `.` the root folder, and in my case it is located in `C:\tmp\test_imports`.

#### 1) Add a `setup.py` to the root folder

The contents of the `setup.py` can be simply

``````from setuptools import setup, find_packages

setup(name='myproject', version='1.0', packages=find_packages())
``````

Basically "any" `setup.py` would work. This is just a minimal working example.

#### 2) Use a virtual environment

If you are familiar with virtual environments, activate one, and skip to the next step. Usage of virtual environments are not absolutely required, but they will really help you out in the long run (when you have more than 1 project ongoing..). The most basic steps are (run in the root folder)

• Create virtual env
• `python -m venv venv`
• Activate virtual env
• `. /venv/bin/activate` (Linux) or `./venv/Scripts/activate` (Win)

Once you have made and activated a virtual environment, your console should give the name of the virtual environment in parenthesis

``````PS C:\tmp\test_imports> python -m venv venv
PS C:\tmp\test_imports> .\venv\Scripts\activate
(venv) PS C:\tmp\test_imports>
``````

#### 3) pip install your project in editable state

Install your top level package `myproject` using `pip`. The trick is to use the `-e` flag when doing the install. This way it is installed in an editable state, and all the edits made to the .py files will be automatically included in the installed package.

In the root directory, run

`pip install -e .` (note the dot, it stands for "current directory")

You can also see that it is installed by using `pip freeze`

``````(venv) PS C:\tmp\test_imports> pip install -e .
Obtaining file:///C:/tmp/test_imports
Installing collected packages: myproject
Running setup.py develop for myproject
Successfully installed myproject
(venv) PS C:\tmp\test_imports> pip freeze
myproject==1.0
``````

#### 4) Import by prepending `mainfolder` to every import

In this example, the `mainfolder` would be `ptdraft`. This has the advantage that you will not run into name collisions with other module names (from python standard library or 3rd party modules).

# Example Usage

#### nib.py

``````def function_from_nib():
print('I am the return value from function_from_nib!')
``````

#### life.py

``````from ptdraft.nib import function_from_nib

if __name__ == '__main__':
function_from_nib()
``````

#### Running life.py

``````(venv) PS C:\tmp\test_imports> python .\ptdraft\simulations\life\life.py
I am the return value from function_from_nib!
``````

### `ui-router` \$stateParams vs. \$state.params

Another reason to use `\$state.params` is for non-URL based state, which (to my mind) is woefully underdocumented and very powerful.

I just discovered this while googling about how to pass state without having to expose it in the URL and answered a question elsewhere on SO.

Basically, it allows this sort of syntax:

``````<a ui-sref="toState(thingy)" class="list-group-item" ng-repeat="thingy in thingies">{{ thingy.referer }}</a>
``````

### HTTP error 403 in Python 3 Web Scraping

Based on previous answers this has worked for me with Python 3.7

``````from urllib.request import Request, urlopen

print(webpage)
``````

### Javascript Date: next month

I was looking for a simple one-line solution to get the next month via math so I wouldn't have to look up the javascript date functions (mental laziness on my part). Quite strangely, I didn't find one here.

I overcame my brief bout of laziness, wrote one, and decided to share!

Solution:

``````(new Date().getMonth()+1)%12 + 1
``````

Just to be clear why this works, let me break down the magic!

It gets the current month (which is in 0..11 format), increments by 1 for the next month, and wraps it to a boundary of 12 via modulus (11%12==11; 12%12==0). This returns the next month in the same 0..11 format, so converting to a format Date() will recognize (1..12) is easy: simply add 1 again.

Proof of concept:

``````> for(var m=0;m<=11;m++) { console.info( "next month for %i: %i", m+1, (m+1)%12 + 1 ) }
next month for 1: 2
next month for 2: 3
next month for 3: 4
next month for 4: 5
next month for 5: 6
next month for 6: 7
next month for 7: 8
next month for 8: 9
next month for 9: 10
next month for 10: 11
next month for 11: 12
next month for 12: 1
``````

So there you have it.

### Why extend the Android Application class?

You can access variables to any class without creating objects, if its extended by Application. They can be called globally and their state is maintained till application is not killed.

### How to run script as another user without password?

Call `visudo` and add this:

``````user1 ALL=(user2) NOPASSWD: /home/user2/bin/test.sh
``````

The command paths must be absolute! Then call `sudo -u user2 /home/user2/bin/test.sh` from a `user1` shell. Done.

### setting JAVA_HOME & CLASSPATH in CentOS 6

Providing `javac` is set up through `/etc/alternatives/javac`, you can add to your .bash_profile:

``````JAVA_HOME=\$(l=\$(which javac) ; while : ; do nl=\$(readlink \${l}) ; [ "\$nl" ] || break ; l=\$nl ; done ; echo \$(cd \$(dirname \$l)/.. ; pwd) )
export JAVA_HOME
``````

### concatenate two database columns into one resultset column

If both Column are numeric Then Use This code

Just Cast Column As Varchar(Size)

Example:

``````Select (Cast(Col1 as Varchar(20)) + '-' + Cast(Col2 as Varchar(20))) As Col3 from Table
``````

### How to read a CSV file from a URL with Python?

This question is tagged `python-2.x` so it didn't seem right to tamper with the original question, or the accepted answer. However, Python 2 is now unsupported, and this question still has good google juice for "python csv urllib", so here's an updated Python 3 solution.

It's now necessary to decode `urlopen`'s response (in bytes) into a valid local encoding, so the accepted answer has to be modified slightly:

``````import csv, urllib.request

url = 'http://winterolympicsmedals.com/medals.csv'
response = urllib.request.urlopen(url)
lines = [l.decode('utf-8') for l in response.readlines()]

for row in cr:
print(row)
``````

Note the extra line beginning with `lines =`, the fact that `urlopen` is now in the `urllib.request` module, and `print` of course requires parentheses.

It's hardly advertised, but yes, `csv.reader` can read from a list of strings.

And since someone else mentioned pandas, here's a one-liner to display the CSV in a console-friendly output:

``````python3 -c 'import pandas
print(df.to_string())'
``````

(Yes, it's three lines, but you can copy-paste it as one command. ;)

You could simply add this style to the table.

``````table {
border-spacing: 15px;
}
``````

### Fill DataTable from SQL Server database

Try with following:

``````public DataTable fillDataTable(string table)
{
string query = "SELECT * FROM dstut.dbo." +table;

SqlConnection sqlConn = new SqlConnection(conSTR);
sqlConn.Open();
SqlCommand cmd = new SqlCommand(query, sqlConn);
DataTable dt = new DataTable();
da.Fill(dt);
sqlConn.Close();
return dt;
}
``````

### How to watch for a route change in AngularJS?

This is for the total beginner... like me:

HTML:

``````  <ul>
<li>
<a href="#"> Home </a>
</li>
<li>
<a href="#Info"> Info </a>
</li>
</ul>

<div ng-app="myApp" ng-controller="MainCtrl">
<div ng-view>

</div>
</div>
``````

Angular:

``````//Create App
var app = angular.module("myApp", ["ngRoute"]);

//Configure routes
app.config(function (\$routeProvider) {
\$routeProvider
.otherwise({ template: "<p>Coming soon</p>" })
.when("/", {
template: "<p>Home information</p>"
})
.when("/Info", {
template: "<p>Basic information</p>"
//templateUrl: "/content/views/Info.html"
});
});

//Controller
app.controller('MainCtrl', function (\$scope, \$rootScope, \$location) {
\$scope.location = \$location.path();
\$rootScope.\$on('\$routeChangeStart', function () {
console.log("routeChangeStart");
//Place code here:....
});
});
``````

Hope this helps a total beginner like me. Here is the full working sample:

_x000D_
_x000D_
``````<html>_x000D_
<body>_x000D_
<ul>_x000D_
<li>_x000D_
<a href="#"> Home </a>_x000D_
</li>_x000D_
<li>_x000D_
<a href="#Info"> Info </a>_x000D_
</li>_x000D_
</ul>_x000D_
_x000D_
<div ng-app="myApp" ng-controller="MainCtrl">_x000D_
<div ng-view>_x000D_
_x000D_
</div>_x000D_
</div>_x000D_
<script>_x000D_
//Create App_x000D_
var app = angular.module("myApp", ["ngRoute"]);_x000D_
_x000D_
//Configure routes_x000D_
app.config(function (\$routeProvider) {_x000D_
\$routeProvider_x000D_
.otherwise({ template: "<p>Coming soon</p>" })_x000D_
.when("/", {_x000D_
template: "<p>Home information</p>"_x000D_
})_x000D_
.when("/Info", {_x000D_
template: "<p>Basic information</p>"_x000D_
//templateUrl: "/content/views/Info.html"_x000D_
});_x000D_
});_x000D_
_x000D_
//Controller_x000D_
app.controller('MainCtrl', function (\$scope, \$rootScope, \$location) {_x000D_
\$scope.location = \$location.path();_x000D_
\$rootScope.\$on('\$routeChangeStart', function () {_x000D_
console.log("routeChangeStart");_x000D_
//Place code here:...._x000D_
});_x000D_
});_x000D_
</script>_x000D_
</body>_x000D_
</html>``````
_x000D_
_x000D_
_x000D_

### Is there an easy way to check the .NET Framework version?

AFAIK there's no built in method in the framework that will allow you to do this. You could check this post for a suggestion on determining framework version by reading windows registry values.

### Read and overwrite a file in Python

Probably it would be easier and neater to close the file after `text = re.sub('foobar', 'bar', text)`, re-open it for writing (thus clearing old contents), and write your updated text to it.

### Comparing user-inputted characters in C

Because comparison doesn't work that way. `'Y' || 'y'` is a logical-or operator; it returns `1` (true) if either of its arguments is true. Since `'Y'` and `'y'` are both true, you're comparing `*answer` with 1.

What you want is `if(*answer == 'Y' || *answer == 'y')` or perhaps:

``````switch (*answer) {
case 'Y':
case 'y':
/* Code for Y */
break;
default:
/* Code for anything else */
}
``````

### Python: 'ModuleNotFoundError' when trying to import module from imported package

For me when I created a file and saved it as python file, I was getting this error during importing. I had to create a filename with the type ".py" , like filename.py and then save it as a python file. post trying to import the file worked for me.

### I want to declare an empty array in java and then I want do update it but the code is not working

Your code compiles just fine. However, your array initialization line is wrong:

``````int array[]={};
``````

What this does is declare an array with a size equal to the number of elements in the brackets. Since there is nothing in the brackets, you're saying the size of the array is 0 - this renders the array completely useless, since now it can't store anything.

Instead, you can either initialize the array right in your original line:

``````int array[] = { 5, 5, 5, 5 };
``````

Or you can declare the size and then populate it:

``````int array[] = new int[4];
// ...while loop
``````

If you don't know the size of the array ahead of time (for example, if you're reading a file and storing the contents), you should use an `ArrayList` instead, because that's an array that grows in size dynamically as more elements are added to it (in layman's terms).

### Can typescript export a function?

If you are using this for Angular, then export a function via a named export. Such as:

``````function someFunc(){}

export { someFunc as someFuncName }
``````

otherwise, Angular will complain that object is not a function.

### MySQL Removing Some Foreign keys

Try this:

``````alter table Documents drop
FK__Documents__Custo__2A4B4B5E
``````

### Python Infinity - Any caveats?

So does C99.

The IEEE 754 floating point representation used by all modern processors has several special bit patterns reserved for positive infinity (sign=0, exp=~0, frac=0), negative infinity (sign=1, exp=~0, frac=0), and many NaN (Not a Number: exp=~0, frac?0).

All you need to worry about: some arithmetic may cause floating point exceptions/traps, but those aren't limited to only these "interesting" constants.

### Shortest distance between a point and a line segment

Didn't see a Java implementation here, so I translated the Javascript function from the accepted answer to Java code:

``````static double sqr(double x) {
return x * x;
}
static double dist2(DoublePoint v, DoublePoint w) {
return sqr(v.x - w.x) + sqr(v.y - w.y);
}
static double distToSegmentSquared(DoublePoint p, DoublePoint v, DoublePoint w) {
double l2 = dist2(v, w);
if (l2 == 0) return dist2(p, v);
double t = ((p.x - v.x) * (w.x - v.x) + (p.y - v.y) * (w.y - v.y)) / l2;
if (t < 0) return dist2(p, v);
if (t > 1) return dist2(p, w);
return dist2(p, new DoublePoint(
v.x + t * (w.x - v.x),
v.y + t * (w.y - v.y)
));
}
static double distToSegment(DoublePoint p, DoublePoint v, DoublePoint w) {
return Math.sqrt(distToSegmentSquared(p, v, w));
}
static class DoublePoint {
public double x;
public double y;

public DoublePoint(double x, double y) {
this.x = x;
this.y = y;
}
}
``````

### How do I cancel a build that is in progress in Visual Studio?

Ctrl + Break works, but only if the Build window is active. Also, interrupting the build will sometimes leave a corrupted `.obj` file that will have to be manually deleted in order for the build to proceed.

### Spring RestTemplate GET with parameters

OK, so I'm being an idiot and I'm confusing query parameters with url parameters. I was kinda hoping there would be a nicer way to populate my query parameters rather than an ugly concatenated String but there we are. It's simply a case of build the URL with the correct parameters. If you pass it as a String Spring will also take care of the encoding for you.

### jQuery callback for multiple ajax calls

I like hvgotcodes' idea. My suggestion is to add a generic incrementer that compares the number complete to the number needed and then runs the final callback. This could be built into the final callback.

``````var sync = {
callbacksToComplete = 3,
callbacksCompleted = 0,
this.callbacksCompleted++;
if(callbacksCompleted == callbacksToComplete) {
doFinalCallBack();
}
}
};
``````

### How to repair a serialized string which has been corrupted by an incorrect byte count length?

Another reason of this problem can be column type of "payload" sessions table. If you have huge data on session, a text column wouldn't be enough. You will need MEDIUMTEXT or even LONGTEXT.

I have tried everything above, but none could solve my problem. I fixed it by updating the old version of youtube-dl to download playlist. To update it

``````sudo youtube-dl -U
``````

or

``````youtube-dl -U
``````

after you have successfully updated using the above command

``````youtube-dl -cit https://www.youtube.com/playlist?list=PLttJ4RON7sleuL8wDpxbKHbSJ7BH4vvCk
``````

### Why I get 411 Length required error?

When you make a `POST` HttpWebRequest, you must specify the length of the data you are sending, something like:

``````string data = "something you need to send"
byte[] postBytes = Encoding.ASCII.GetBytes(data);
request.ContentLength = postBytes.Length;
``````

if you are not sending any data, just set it to 0, that means you just have to add to your code this line:

``````request.ContentLength = 0;
``````

Usually, if you are not sending any data, chosing the `GET` method instead is wiser, as you can see in the HTTP RFC

### Get random sample from list while maintaining ordering of items?

#### Simple-to-code O(N + K*log(K)) way

Take a random sample without replacement of the indices, sort the indices, and take them from the original.

``````indices = random.sample(range(len(myList)), K)
[myList[i] for i in sorted(indices)]
``````

Or more concisely:

``````[x[1] for x in sorted(random.sample(enumerate(myList),K))]
``````

#### Optimized O(N)-time, O(1)-auxiliary-space way

You can alternatively use a math trick and iteratively go through `myList` from left to right, picking numbers with dynamically-changing probability `(N-numbersPicked)/(total-numbersVisited)`. The advantage of this approach is that it's an `O(N)` algorithm since it doesn't involve sorting!

``````from __future__ import division

def orderedSampleWithoutReplacement(seq, k):
if not 0<=k<=len(seq):
raise ValueError('Required that 0 <= sample_size <= population_size')

numbersPicked = 0
for i,number in enumerate(seq):
prob = (k-numbersPicked)/(len(seq)-i)
if random.random() < prob:
yield number
numbersPicked += 1
``````

Proof of concept and test that probabilities are correct:

Simulated with 1 trillion pseudorandom samples over the course of 5 hours:

``````>>> Counter(
tuple(orderedSampleWithoutReplacement([0,1,2,3], 2))
for _ in range(10**9)
)
Counter({
(0, 3): 166680161,
(1, 2): 166672608,
(0, 2): 166669915,
(2, 3): 166667390,
(1, 3): 166660630,
(0, 1): 166649296
})
``````

Probabilities diverge from true probabilities by less a factor of 1.0001. Running this test again resulted in a different order meaning it isn't biased towards one ordering. Running the test with fewer samples for `[0,1,2,3,4], k=3` and `[0,1,2,3,4,5], k=4` had similar results.

edit: Not sure why people are voting up wrong comments or afraid to upvote... NO, there is nothing wrong with this method. =)

(Also a useful note from user tegan in the comments: If this is python2, you will want to use xrange, as usual, if you really care about extra space.)

edit: Proof: Considering the uniform distribution (without replacement) of picking a subset of `k` out of a population `seq` of size `len(seq)`, we can consider a partition at an arbitrary point `i` into 'left' (0,1,...,i-1) and 'right' (i,i+1,...,len(seq)). Given that we picked `numbersPicked` from the left known subset, the remaining must come from the same uniform distribution on the right unknown subset, though the parameters are now different. In particular, the probability that `seq[i]` contains a chosen element is `#remainingToChoose/#remainingToChooseFrom`, or `(k-numbersPicked)/(len(seq)-i)`, so we simulate that and recurse on the result. (This must terminate since if #remainingToChoose == #remainingToChooseFrom, then all remaining probabilities are 1.) This is similar to a probability tree that happens to be dynamically generated. Basically you can simulate a uniform probability distribution by conditioning on prior choices (as you grow the probability tree, you pick the probability of the current branch such that it is aposteriori the same as prior leaves, i.e. conditioned on prior choices; this will work because this probability is uniformly exactly N/k).

edit: Timothy Shields mentions Reservoir Sampling, which is the generalization of this method when `len(seq)` is unknown (such as with a generator expression). Specifically the one noted as "algorithm R" is O(N) and O(1) space if done in-place; it involves taking the first N element and slowly replacing them (a hint at an inductive proof is also given). There are also useful distributed variants and miscellaneous variants of reservoir sampling to be found on the wikipedia page.

edit: Here's another way to code it below in a more semantically obvious manner.

``````from __future__ import division
import random

def orderedSampleWithoutReplacement(seq, sampleSize):
totalElems = len(seq)
if not 0<=sampleSize<=totalElems:
raise ValueError('Required that 0 <= sample_size <= population_size')

picksRemaining = sampleSize
for elemsSeen,element in enumerate(seq):
elemsRemaining = totalElems - elemsSeen
prob = picksRemaining/elemsRemaining
if random.random() < prob:
yield element
picksRemaining -= 1

from collections import Counter
Counter(
tuple(orderedSampleWithoutReplacement([0,1,2,3], 2))
for _ in range(10**5)
``````

)

### Angular JS: What is the need of the directive’s link function when we already had directive’s controller with scope?

The `controller` function/object represents an abstraction model-view-controller (MVC). While there is nothing new to write about MVC, it is still the most significant advanatage of angular: split the concerns into smaller pieces. And that's it, nothing more, so if you need to react on `Model` changes coming from `View` the `Controller` is the right person to do that job.

The story about `link` function is different, it is coming from different perspective then MVC. And is really essential, once we want to cross the boundaries of a `controller/model/view` (template).

Let' start with the parameters which are passed into the `link` function:

``````function link(scope, element, attrs) {
``````
• scope is an Angular scope object.
• element is the jqLite-wrapped element that this directive matches.
• attrs is an object with the normalized attribute names and their corresponding values.

To put the `link` into the context, we should mention that all directives are going through this initialization process steps: Compile, Link. An Extract from Brad Green and Shyam Seshadri book Angular JS:

Compile phase (a sister of link, let's mention it here to get a clear picture):

In this phase, Angular walks the DOM to identify all the registered directives in the template. For each directive, it then transforms the DOM based on the directive’s rules (template, replace, transclude, and so on), and calls the compile function if it exists. The result is a compiled template function,

To make the view dynamic, Angular then runs a link function for each directive. The link functions typically creates listeners on the DOM or the model. These listeners keep the view and the model in sync at all times.

A nice example how to use the `link` could be found here: Creating Custom Directives. See the example: Creating a Directive that Manipulates the DOM, which inserts a "date-time" into page, refreshed every second.

Just a very short snippet from that rich source above, showing the real manipulation with DOM. There is hooked function to \$timeout service, and also it is cleared in its destructor call to avoid memory leaks

``````.directive('myCurrentTime', function(\$timeout, dateFilter) {

...

// the not MVC job must be done
function updateTime() {
element.text(dateFilter(new Date(), format)); // here we are manipulating the DOM
}

function scheduleUpdate() {
// save the timeoutId for canceling
timeoutId = \$timeout(function() {
updateTime(); // update DOM
scheduleUpdate(); // schedule the next update
}, 1000);
}

element.on('\$destroy', function() {
\$timeout.cancel(timeoutId);
});

...
``````

### How can I get the full/absolute URL (with domain) in Django?

Use handy request.build_absolute_uri() method on request, pass it the relative url and it'll give you full one.

By default, the absolute URL for `request.get_full_path()` is returned, but you can pass it a relative URL as the first argument to convert it to an absolute URL.

### What do "branch", "tag" and "trunk" mean in Subversion repositories?

I found this great tutorial regarding SVN when I was looking up the website of the author of the OpenCV 2 Computer Vision Application Programming Cookbook and I thought I should share.

He has a tutorial on how to use SVN and what the phrases 'trunk', 'tag' and 'branch' mean.

Cited directly from his tutorial:

The current version of your software project, on which your team is currently working is usually located under a directory called trunk. As the project evolves, the developer updates that version fix bugs, add new features) and submit his changes under that directory.

At any given point in time, you may want to freeze a version and capture a snapshot of the software as it is at this stage of the development. This generally corresponds to the official versions of your software, for example, the ones you will deliver to your clients. These snapshots are located under the tags directory of your project.

Finally, it is often useful to create, at some point, a new line of development for your software. This happens, for example, when you wish to test an alternative implementation in which you have to modify your software but you do not want to submit these changes to the main project until you decide if you adopt the new solution. The main team can then continue to work on the project while other developer work on the prototype. You would put these new lines of development of the project under a directory called branches.

### Why is my JavaScript function sometimes "not defined"?

My guess is, somehow the document is not fully loaded by the time the method is called. Have your code executing after the document is ready event.

### Shortcut to Apply a Formula to an Entire Column in Excel

Select a range of cells (the entire column in this case), type in your formula, and hold down Ctrl while you press Enter. This places the formula in all selected cells.

### Field 'browser' doesn't contain a valid alias configuration

In my case, it was due to a broken symlink when trying to npm link a custom angular library to consuming app. After running npm link `@authoring/canvas`

``````"@authoring/canvas": "path/to/ui-authoring-canvas/dist"
``````

It appear everything was OK but the module still couldn't be found:

When I corrected the import statement to something that the editor could find Link:

``````import {CirclePackComponent} from '@authoring/canvas/lib/circle-pack/circle-pack.component';
``````

To fix this I had to:

1. `cd /usr/local/lib/node_modules/packageName`
2. `cd ..`
3. `rm -rf packageName`
4. In the root directory of the library, run:
``````a) rm -rf dist
b) npm run build
c) cd dist
``````
1. In the consuming app, update the `package.json` with:
``````"packageName": "file:/path/to/local/node_module/packageName""
``````
1. In the root directory of the consuming app run npm link packageName

### Best way to "push" into C# array

I don't understand what you are doing with the for loop. You are merely iterating over every element and assigning to the first element you encounter. If you're trying to push to a list go with the above answer that states there is no such thing as pushing to a list. That really is getting the data structures mixed up. Javascript might not be setting the best example, because a javascript list is really also a queue and a stack at the same time.

### adding x and y axis labels in ggplot2

[Note: edited to modernize ggplot syntax]

Your example is not reproducible since there is no `ex1221new` (there is an `ex1221` in `Sleuth2`, so I guess that is what you meant). Also, you don't need (and shouldn't) pull columns out to send to `ggplot`. One advantage is that `ggplot` works with `data.frame`s directly.

You can set the labels with `xlab()` and `ylab()`, or make it part of the `scale_*.*` call.

``````library("Sleuth2")
library("ggplot2")
ggplot(ex1221, aes(Discharge, Area)) +
geom_point(aes(size=NO3)) +
scale_size_area() +
xlab("My x label") +
ylab("My y label") +
ggtitle("Weighted Scatterplot of Watershed Area vs. Discharge and Nitrogen Levels (PPM)")
``````

``````ggplot(ex1221, aes(Discharge, Area)) +
geom_point(aes(size=NO3)) +
scale_size_area("Nitrogen") +
scale_x_continuous("My x label") +
scale_y_continuous("My y label") +
ggtitle("Weighted Scatterplot of Watershed Area vs. Discharge and Nitrogen Levels (PPM)")
``````

An alternate way to specify just labels (handy if you are not changing any other aspects of the scales) is using the `labs` function

``````ggplot(ex1221, aes(Discharge, Area)) +
geom_point(aes(size=NO3)) +
scale_size_area() +
labs(size= "Nitrogen",
x = "My x label",
y = "My y label",
title = "Weighted Scatterplot of Watershed Area vs. Discharge and Nitrogen Levels (PPM)")
``````

which gives an identical figure to the one above.

### Converting characters to integers in Java

``````Character.getNumericValue(c)
``````

The `java.lang.Character.getNumericValue(char ch)` returns the `int` value that the specified Unicode character represents. For example, the character `'\u216C'` (the roman numeral fifty) will return an int with a value of 50.

The letters A-Z in their uppercase `('\u0041' through '\u005A')`, lowercase `('\u0061' through '\u007A')`, and full width variant `('\uFF21' through '\uFF3A' and '\uFF41' through '\uFF5A')` forms have numeric values from 10 through 35. This is independent of the Unicode specification, which does not assign numeric values to these char values.

This method returns the numeric value of the character, as a nonnegative int value;

-2 if the character has a numeric value that is not a nonnegative integer;

-1 if the character has no numeric value.

### How to store images in mysql database using php

``````if(isset(\$_POST['form1']))
{
try
{

\$email=\$_POST['email'];
\$roll=\$_POST['roll'];
\$class=\$_POST['class'];

if(empty(\$user)) throw new Exception("Name can not empty");
if(empty(\$pass)) throw new Exception("Password can not empty");
if(empty(\$email)) throw new Exception("Email can not empty");
if(empty(\$roll)) throw new Exception("Roll can not empty");
if(empty(\$class)) throw new Exception("Class can not empty");

\$statement=\$db->prepare("show table status like 'tbl_std_info'");
\$statement->execute();
\$result=\$statement->fetchAll();
foreach(\$result as \$row)
\$new_id=\$row[10];

\$up_file=\$_FILES["image"]["name"];

\$file_basename=substr(\$up_file, 0 , strripos(\$up_file, "."));
\$file_ext=substr(\$up_file, strripos(\$up_file, "."));
\$f1="\$new_id".\$file_ext;

if((\$file_ext!=".png")&&(\$file_ext!=".jpg")&&(\$file_ext!=".jpeg")&&(\$file_ext!=".gif"))
{
throw new Exception("Only jpg, png, jpeg or gif Logo are allow to upload / Empty Logo Field");
}

\$statement->execute(array(\$user,\$f1,\$pass,\$email,\$roll,\$class));

\$success="Registration Successfully Completed";

echo \$success;
}
catch(Exception \$e)
{
\$msg=\$e->getMessage();
}
}
``````

### How to get css background color on <tr> tag to span entire row

This worked for me, even within a div:

``````      div.cntrblk tr:hover td {
line-height: 150%;
background-color: rgb(255,0,0);
font-weight: bold;
font-size: 150%;
border: 0;
}
``````

It selected the entire row, but I'd like it to not do the header, haven't looked at that yet. It also partially fixed the fonts that wouldn't scale-up with the hover??? Apparently you to have apply settings to the cell not the row, but select all the component cells with the tr:hover. On to tracking down the in-consistent font scaling problem. Sweet that CSS will do this.

Ok, well, first of all, let me check if I am on the same page as you:

• You installed python
• You did `brew install mysql`
• You did `export PATH=\$PATH:/usr/local/mysql/bin`
• And finally, you did `pip install MySQL-Python` (or `pip3 install mysqlclient` if using python 3)

If you did all those steps in the same order, and you still got an error, read on to the end, if, however, you did not follow these exact steps try, following them from the very beginning.

So, you followed the steps, and you're still geting an error, well, there are a few things you could try:

1. Try running `which mysql_config` from bash. It probably won't be found. That's why the build isn't finding it either. Try running `locate mysql_config` and see if anything comes back. The path to this binary needs to be either in your shell's \$PATH environment variable, or it needs to be explicitly in the setup.py file for the module assuming it's looking in some specific place for that file.

2. Instead of using MySQL-Python, try using 'mysql-connector-python', it can be installed using `pip install mysql-connector-python`. More information on this can be found here and here.

3. Manually find the location of 'mysql/bin', 'mysql_config', and 'MySQL-Python', and add all these to the \$PATH environment variable.

4. If all above steps fail, then you could try installing 'mysql' using MacPorts, in which case the file 'mysql_config' would actually be called 'mysql_config5', and in this case, you would have to do this after installing: `export PATH=\$PATH:/opt/local/lib/mysql5/bin`. You can find more details here.

Note1: I've seen some people saying that installing `python-dev` and `libmysqlclient-dev` also helped, however I do not know if these packages are available on Mac OS.

Note2: Also, make sure to try running the commands as root.

I got my answers from (besides my brain) these places (maybe you could have a look at them, to see if it would help): 1, 2, 3, 4.

I hoped I helped, and would be happy to know if any of this worked, or not. Good luck.

### arranging div one below the other

If you want the two `div`s to be displayed one above the other, the simplest answer is to remove the `float: left;`from the css declaration, as this causes them to collapse to the size of their contents (or the css defined size), and, well float up against each other.

Alternatively, you could simply add `clear:both;` to the `div`s, which will force the floated content to clear previous floats.

### How to do relative imports in Python?

You have to append the module’s path to `PYTHONPATH`:

``````export PYTHONPATH="\${PYTHONPATH}:/path/to/your/module/"
``````

### How to compile makefile using MinGW?

I found a very good example here: https://bigcode.wordpress.com/2016/12/20/compiling-a-very-basic-mingw-windows-hello-world-executable-in-c-with-a-makefile/

It is a simple Hello.c (you can use c++ with g++ instead of gcc) using the MinGW on windows.

The Makefile looking like:

``````EXECUTABLE = src/Main.cpp

CC = "C:\MinGW\bin\g++.exe"
LDFLAGS = -lgdi32

src = \$(wildcard *.cpp)
obj = \$(src:.cpp=.o)

all: myprog

myprog: \$(obj)
\$(CC) -o \$(EXECUTABLE) \$^ \$(LDFLAGS)

.PHONY: clean
clean:
del \$(obj) \$(EXECUTABLE)
``````

### jQuery or JavaScript auto click

You haven't provided your javascript code, but the usual cause of this type of issue is not waiting till the page is loaded. Remember that most javascript is executed before the DOM is loaded, so code trying to manipulate it won't work.

``````\$(document).ready(function(){
\$('#some-id').trigger('click');
});
``````

### WAMP 403 Forbidden message on Windows 7

There could many causes to this problems

What I have experienced are:
1) `127.0.0.1 localhost` entry was duplicated in hosts file
2) Apache `mod_rewrite` was not enabled

Regardless of the cause, backing up your `www` folder, vhost configuration file (and httpd configuration file) will help. And such process takes a few minutes.

Good luck

### Error in finding last used cell in Excel with VBA

Here's my two cents.

IMHO the risk of a hidden row with data being excluded is too significant to let `xlUp` be considered a One stop answer. I agree it's simple and will work MOST of the time, but it presents the risk of understating the last row, without any warning. This could produce CATASTROPHIC results at some poinit for someone who jumped on Stack Overlow and was looking to "sure way" to capture this value.

The `Find` method is flawless with respect to reliably pulling the last non-blank row and it would be my One Stop Answer. However the drawback of changing the `Find` settings can be annoying, particularly if this is part of a UDF.

The other answers posted are okay, however the complexity gets a little excessive. Thus here's my attempt to find a balance of reliability, minimal complexity, and not using `Find`.

``````Function LastRowNumber(Optional rng As Range) As Long

If rng Is Nothing Then
Set rng = ActiveSheet.UsedRange
Else
Set rng = Intersect(rng.Parent.UsedRange, rng.EntireColumn)
If rng Is Nothing Then
LastRowNumber = 1
Exit Function
ElseIf isE = 0 Then
LastRowNumber = 1
Exit Function

End If

End If

LastRowNumber = rng.Cells(rng.Rows.Count, 1).Row

Do While IsEmpty(Intersect(rng, _
rng.Parent.Rows(LastRowNumber)))

LastRowNumber = LastRowNumber - 1
Loop

End Function
``````

Why this is good:

• Reasonably simple, not a lot of variables.
• Allows for multiple columns.
• Doesn't modify `Find` settings
• Dynamic if used as a UDF with the entire column selected.

• With very large sets of data and a massive gap between used range and last row in specified columns, this will perform slower, in rare cases SIGNIFICANTLY slower.

However, I think a One-Stop-Solution that has a drawback of messing up `find` settings or performing slower is a better overall solution. A user can then tinker with their settings to try to improve, knowing what's going on with their code. Using `xLUp` will not warn of the potential risks and they could carry on for who knows how long not knowing their code was not working correctly.

### IntelliJ how to zoom in / out

Update for intellij idea 2017 3.2

### where does MySQL store database files?

Check your `my.cnf` file in your MySQL program directory, look for

``````[mysqld]
``````

The `datadir` is the location where your MySQL database is stored.

### How exactly does the android:onClick XML attribute differ from setOnClickListener?

No, that is not possible via code. Android just implements the `OnClickListener` for you when you define the `android:onClick="someMethod"` attribute.

Those two code snippets are equal, just implemented in two different ways.

Code Implementation

``````Button btn = (Button) findViewById(R.id.mybutton);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myFancyMethod(v);
}
});

// some more code

public void myFancyMethod(View v) {
// does something very interesting
}
``````

Above is a code implementation of an `OnClickListener`. And this is the XML implementation.

XML Implementation

``````<?xml version="1.0" encoding="utf-8"?>
<!-- layout elements -->
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click me!"
android:onClick="myFancyMethod" />
<!-- even more layout elements -->
``````

In the background, Android does nothing else than the Java code, calling your method on a click event.

Note that with the XML above, Android will look for the `onClick` method `myFancyMethod()` only in the current Activity. This is important to remember if you are using fragments, since even if you add the XML above using a fragment, Android will not look for the `onClick` method in the `.java` file of the fragment used to add the XML.

Another important thing I noticed. You mentioned you don't prefer anonymous methods. You meant to say you don't like anonymous classes.

### Difference between uint32 and uint32_t

`uint32_t` is defined in the standard, in

#### 18.4.1 Header `<cstdint>` synopsis [cstdint.syn]

``````namespace std {
//...
typedef unsigned integer type uint32_t; // optional
//...
}
``````

`uint32` is not, it's a shortcut provided by some compilers (probably as `typedef uint32_t uint32`) for ease of use.

### C# adding a character in a string

Here is my solution, without overdoing it.

``````    private static string AppendAtPosition(string baseString, int position, string character)
{
var sb = new StringBuilder(baseString);
for (int i = position; i < sb.Length; i += (position + character.Length))
sb.Insert(i, character);
return sb.ToString();
}

Console.WriteLine(AppendAtPosition("abcdefghijklmnopqrstuvwxyz", 5, "-"));
``````

### How do I print the key-value pairs of a dictionary in python

If you want to sort the output by dict key you can use the collection package.

``````import collections
for k, v in collections.OrderedDict(sorted(d.items())).items():
print(k, v)
``````

It works on python 3

### Copy existing project with a new name in Android Studio

In Android Studio `4.0` you need only these few steps:

• in File Manager copy the project directory and rename the new one
• enter in it and change `applicationId` inside `app/build.gradle`
• open the existing new project in Android Studio
• open one class file and highlight the package name part to change (e.g. from `com.domain.appname` to `com.domain.newappname` highlight `appname`)
• right click on it -> "refactor" -> "rename"
• choose "rename package"
• in the dialog choose "Scope: all places" and click "preview" or "refactor"

### Variable name as a string in Javascript

Shortest way I have found so far to get the variables name as a string:

_x000D_
_x000D_
``````const name = obj => Object.keys(obj)[0];

const whatsMyName = "Snoop Doggy Dogg";

console.log( "Variable name is: " + name({ whatsMyName }) );
//result: Variable name is: whatsMyName``````
_x000D_
_x000D_
_x000D_

### Move UIView up when the keyboard appears in iOS

Based on theDunc's answer but written in Swift with Autolayout.

``````@IBOutlet weak var bottomConstraint: NSLayoutConstraint! // connect the bottom of the view you want to move to the bottom layout guide

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
selector: #selector(ConversationViewController.keyboardWillShow(_:)),
object: nil)

selector: #selector(ConversationViewController.keyboardWillHide(_:)),
object: nil)
}

override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
}

// MARK: - Keyboard events

keyboardFrame = userInfo[UIKeyboardFrameBeginUserInfoKey]
{
let keyboardSize = keyboardFrame.CGRectValue().size
self.bottomConstraint.constant = keyboardSize.height
UIView.animateWithDuration(0.3) {
self.view.layoutIfNeeded()
}
}
}

self.bottomConstraint.constant = 0
UIView.animateWithDuration(0.3) {
self.view.layoutIfNeeded()
}
}
``````

### Unsupported method: BaseConfig.getApplicationIdSuffix()

Alright I figured out how to fix this issue.

• Open build.gradle and change the gradle version to the recommended version:
`classpath 'com.android.tools.build:gradle:1.3.0'` to
`classpath 'com.android.tools.build:gradle:2.3.2'`
• Hit `'Try Again'`
• In the messages box it'll say `'Fix Gradle Wrapper and re-import project'` Click that, since the minimum gradle version is `3.3`
• A new error will popup and say `The SDK Build Tools revision (23.0.1) is too low for project ':app'. Minimum required is 25.0.0` - Hit `Update Build Tools version and sync project`
• A window may popup that says `Android Gradle Plugin Update recommended`, just update from there.

Now the project should be runnable now on any of your android virtual devices.

If you have a return value you need to send to the UI you can use the generic version like this:

This is being called from an MVVM ViewModel in my case.

``````var updateManifest = Task<ShippingManifest>.Run(() =>
{
Thread.Sleep(5000);  // prove it's really working!

// GenerateManifest calls service and returns 'ShippingManifest' object
return GenerateManifest();
})

.ContinueWith(manifest =>
{
// MVVM property
this.ShippingManifest = manifest.Result;

// or if you are not using MVVM...
// txtShippingManifest.Text = manifest.Result.ToString();

System.Diagnostics.Debug.WriteLine("UI manifest updated - " + DateTime.Now);

``````

### How to select option in drop down using Capybara

For some reason it didn't work for me. So I had to use something else.

``````select "option_name_here", :from => "organizationSelect"
``````

worked for me.

# NPM commands to update or fix vulnerabilities in some dependency manifest files

• Use below command to check outdated or vulnerabilities in your node modules.

`npm audit`

• If any vulnerabilities found, use below command to fix all issues.

`npm audit fix`

• If it doesn't work for you then try

`npm audit fix -f`, this command will almost fix all vulnerabilities. Some dependencies or devDependencies are locked in package-lock.json file, so we use `-f` flag to force update them.

• If you don't want to use force audit fix then you can manually fix your dependencies versions by changing them in package-lock.json and package.json file. Then run

`npm update && npm upgrade`

### Cast Double to Integer in Java

I think it's impossible to understand the other answers without covering the pitfalls and reasoning behind it.

You cannot directly cast an `Integer` to a `Double` object. Also `Double` and `Integer` are immutable objects, so you cannot modify them in any way.

Each numeric class has a primitive alternative (`Double` vs `double`, `Integer` vs `int`, ...). Note that these primitives start with a lowercase character (e.g. `int`). That tells us that they aren't classes/objects. Which also means that they don't have methods. By contrast, the classes (e.g. `Integer`) act like boxes/wrappers around these primitives, which makes it possible to use them like objects.

# Strategy:

To convert a `Double` to an `Integer` you would need to follow this strategy:

1. Convert the `Double` object to a primitive `double`. (= "unboxing")
2. Convert the primitive `double` to a primitive `int`. (= "casting")
3. Convert the primitive `int` back to an `Integer` object. (= "boxing")

# In code:

``````// starting point
Double myDouble = Double.valueOf(10.0);

// step 1: unboxing
double dbl = myDouble.doubleValue();

// step 2: casting
int intgr = (int) dbl;

// step 3: boxing
Integer val = Integer.valueOf(intgr);
``````

Actually there is a shortcut. You can unbox immediately from a `Double` straight to a primitive `int`. That way, you can skip step 2 entirely.

``````Double myDouble = Double.valueOf(10.0);
Integer val = Integer.valueOf(myDouble.intValue()); // the simple way
``````

# Pitfalls:

However, there are a lot of things that are not covered in the code above. The code-above is not null-safe.

``````Double myDouble = null;
Integer val = Integer.valueOf(myDouble.intValue()); // will throw a NullPointerException

// a null-safe solution:
Integer val = (myDouble == null)? null : Integer.valueOf(myDouble.intValue());
``````

Now it works fine for most values. However integers have a very small range (min/max value) compared to a `Double`. On top of that, doubles can also hold "special values", that integers cannot:

• 1/0 = +infinity
• -1/0 = -infinity
• 0/0 = undefined (NaN)

So, depending on the application, you may want to add some filtering to avoid nasty Exceptions.

Then, the next shortcoming is the rounding strategy. By default Java will always round down. Rounding down makes perfect sense in all programming languages. Basically Java is just throwing away some of the bytes. In financial applications you will surely want to use half-up rounding (e.g.: `round(0.5) = 1` and `round(0.4) = 0`).

``````// null-safe and with better rounding
long rounded = (myDouble == null)? 0L: Math.round(myDouble.doubleValue());
Integer val = Integer.valueOf(rounded);
``````

# Auto-(un)boxing

You could be tempted to use auto-(un)boxing in this, but I wouldn't. If you're already stuck now, then the next examples will not be that obvious neither. If you don't understand the inner workings of auto-(un)boxing then please don't use it.

``````Integer val1 = 10; // works
Integer val2 = 10.0; // doesn't work

Double val3 = 10; // doesn't work
Double val4 = 10.0; // works

Double val5 = null;
double val6 = val5; // doesn't work (throws a NullPointerException)
``````

I guess the following shouldn't be a surprise. But if it is, then you may want to read some article about casting in Java.

``````double val7 = (double) 10; // works
Double val8 = (Double) Integer.valueOf(10); // doesn't work
Integer val9 = (Integer) 9; // pure nonsense
``````

# Prefer valueOf:

Also, don't be tempted to use `new Integer()` constructor (as some other answers propose). The `valueOf()` methods are better because they use caching. It's a good habit to use these methods, because from time to time they will save you some memory.

``````long rounded = (myDouble == null)? 0L: Math.round(myDouble.doubleValue());
Integer val = new Integer(rounded); // waste of memory
``````

### Rotate camera in Three.js with mouse

OrbitControls and TrackballControls seems to be good for this purpose.

``````controls = new THREE.TrackballControls( camera );
controls.rotateSpeed = 1.0;
controls.zoomSpeed = 1.2;
controls.panSpeed = 0.8;
controls.noZoom = false;
controls.noPan = false;
controls.staticMoving = true;
controls.dynamicDampingFactor = 0.3;
``````

update in render

``````controls.update();
``````

### Use of *args and **kwargs

One case where *args and **kwargs are useful is when writing wrapper functions (such as decorators) that need to be able accept arbitrary arguments to pass through to the function being wrapped. For example, a simple decorator that prints the arguments and return value of the function being wrapped:

``````def mydecorator( f ):
@functools.wraps( f )
def wrapper( *args, **kwargs ):
print "Calling f", args, kwargs
v = f( *args, **kwargs )
print "f returned", v
return v
return wrapper
``````

### generate model using user:references vs user_id:integer

For the former, convention over configuration. Rails default when you reference another table with

`````` belongs_to :something
``````

is to look for `something_id`.

`references`, or `belongs_to` is actually newer way of writing the former with few quirks.

Important is to remember that it will not create foreign keys for you. In order to do that, you need to set it up explicitly using either:

``````t.references :something, foreign_key: true
t.belongs_to :something_else, foreign_key: true
``````

or (note the plural):

``````add_foreign_key :table_name, :somethings
``````

### How do I remove files saying "old mode 100755 new mode 100644" from unstaged changes in Git?

This solution will change the git file permissions from 100755 to 100644 and push changes back to the bitbucket remote repo.

1. Take a look at your repo's file permissions: git ls-files --stage

2. If 100755 and you want 100644

Then run this command: git ls-files --stage | sed 's/\t/ /g' | cut -d' ' -f4 | xargs git update-index --chmod=-x

1. Now check your repo's file permissions again: git ls-files --stage

git status

git commit -m "restored proper file permissions"

git push

### How do I give text or an image a transparent background using CSS?

The easiest method would be to use a semi-transparent background PNG image.

You can use JavaScript to make it work in Internet Explorer 6 if you need to.

I use the method outlined in Transparent PNGs in Internet Explorer 6.

Other than that, you could fake it using two side-by-side sibling elements - make one semi-transparent, then absolutely position the other over the top.

### Notification not showing in Oreo

For anyone struggling with this after trying the above solutions, ensure that the channel id used when creating the notification channel is identical to the channel id you set in the Notification builder.

``````const val CHANNEL_ID = "EXAMPLE_CHANNEL_ID"

.setContentTitle("Title")
.setContentText("Subtitle")
.setChannelId(CHANNEL_ID)
``````

### How do I search an SQL Server database for a string?

This code searching procedure and function but not search in table :)

``````SELECT name
FROM   sys.all_objects
WHERE  Object_definition(object_id)
LIKE '%text%'
ORDER BY name
``````

### Storyboard - refer to ViewController in AppDelegate

If you use `XCode` 5 you should do it in a different way.

• Select your `UIViewController` in `UIStoryboard`
• Go to the `Identity Inspector` on the right top pane
• Check the `Use Storyboard ID` checkbox
• Write a unique id to the `Storyboard ID` field

``````// Override point for customization after application launch.

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main"
bundle: nil];
YourViewController *yourController = (YourViewController *)[mainStoryboard
instantiateViewControllerWithIdentifier:@"YourViewControllerID"];
self.window.rootViewController = yourController;
}

return YES;
``````

### How to fix/convert space indentation in Sublime Text?

The easiest thing i did was,

changed my Indentation to Tabs

and it resolved my problem.

You can do the same,

to Spaces

as well as per your need.

Mentioned the snapshot of the same.

### Sorting an ArrayList of objects using a custom sorting order

The Collections.sort is a good sort implementation. If you don't have The comparable implemented for Contact, you will need to pass in a Comparator implementation

Of note:

The sorting algorithm is a modified mergesort (in which the merge is omitted if the highest element in the low sublist is less than the lowest element in the high sublist). This algorithm offers guaranteed n log(n) performance. The specified list must be modifiable, but need not be resizable. This implementation dumps the specified list into an array, sorts the array, and iterates over the list resetting each element from the corresponding position in the array. This avoids the n2 log(n) performance that would result from attempting to sort a linked list in place.

The merge sort is probably better than most search algorithm you can do.

### Export query result to .csv file in SQL Server 2008

``````INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=D:\;HDR=YES;FMT=Delimited','SELECT * FROM [FileName.csv]')
SELECT Field1, Field2, Field3 FROM DatabaseName
``````

as @Slogmeister Extraordinaire Quoted is correct.

One need to have 1> File already present with columns 2> One need to have Office installed

Errors faced

# 1

Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)"."

# 2

Msg 15281, Level 16, State 1, Line 1 SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', search for 'Ad Hoc Distributed Queries' in SQL Server Books Online.

``````EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 0
RECONFIGURE
GO
``````

### HTML forms - input type submit problem with action=URL when URL contains index.aspx

This appears to be my "preferred" solution:

``````<form action="www.spufalcons.com/index.aspx?tab=gymnastics&path=gym" method="post">  <div>
<input type="submit" value="Gymnastics"></div>
``````

Sorry for the presentation format - I'm still trying to learn how to use this forum....

I do have a follow-up question. In looking at my MySQL database of URL's it appears that ~30% of the URL's will need to use this post/div wrapper approach. This leaves ~70% that cannot accept the "post" attribute. For example:

``````<form action="http://www.google.com" method="post">
<div>
</div></form>
``````

does not work. Do you have a recommendation for how to best handle this get/post condition test. Off the top of my head I'm guessing that using PHP to evaluate the existence of the "?" character in the URL may be my best approach, although I'm not sure how to structure the HTML form to accomplish this.

Thank YOU!

### VS 2012: Scroll Solution Explorer to current file

There are many ways to do this:

Go to current File once:

• Visual Studio 2013

VS 13 has it's own shortcut to do this: Ctrl+\, S (Press Ctrl + \, Release both keys, Press the S key)

You can edit this default shortcut, if you are searching for `SolutionExplorer.SyncWithActiveDocument` in your `Keyboard Settings` (Tools->Options->Enviornment->Keyboard)

• Visual Studio 2012

If you use VS 2012, there is a great plugin to add this new functionality from VS2013 to VS2012: . The default shortcut is strg + alt + ü. I think this one is the best, as navigating to the solution explorer is mapped to strg + ü.

• Resharper

If you use Resharper try Shift+Alt+L

This is a nice mapping as you can use Strg+Alt+L for navigating to the solution explorer

Track current file all the time:

• Visual Studio >= 2012:

If you like to track your current file in the solution explorer all the time, you can use the solution from the accepted answer (Tools->Options->Projects and Solutions->Track Active Item in Solution Explorer), but I think this can get very annoying in large projects.

### How to concatenate two MP4 files using FFmpeg?

The accepted answer in the form of reusable PowerShell script

``````Param(
[string]\$WildcardFilePath,
[string]\$OutFilePath
)
try
{
\$tempFile = [System.IO.Path]::GetTempFileName()
Get-ChildItem -path \$wildcardFilePath | foreach  { "file '\$_'" } | Out-File -FilePath \$tempFile -Encoding ascii
ffmpeg.exe -safe 0 -f concat -i \$tempFile -c copy \$outFilePath
}
finally
{
Remove-Item \$tempFile
}
``````

### kill -3 to get java thread dump

With Java 8 in picture, `jcmd` is the preferred approach.

``````jcmd <PID> Thread.print
``````

Following is the snippet from Oracle documentation :

The release of JDK 8 introduced Java Mission Control, Java Flight Recorder, and jcmd utility for diagnosing problems with JVM and Java applications. It is suggested to use the latest utility, jcmd instead of the previous jstack utility for enhanced diagnostics and reduced performance overhead.

However, shipping this with the application may be licensing implications which I am not sure.

### Change background colour for Visual Studio

Tools --> Options --> Environment --> Fonts and Colors

### Select records from NOW() -1 Day

Be aware that the result may be slightly different than you expect.

`NOW()` returns a `DATETIME`.

And `INTERVAL` works as named, e.g. `INTERVAL 1 DAY = 24 hours`.

So if your script is cron'd to run at `03:00`, it will miss the `first three hours of records from the 'oldest' day`.

To get the whole day use `CURDATE() - INTERVAL 1 DAY`. This will get back to the beginning of the previous day regardless of when the script is run.

### How do I download a package from apt-get without installing it?

Try

``````apt-get -d install <packages>
``````

It is documented in `man apt-get`.

Just for clarification; the downloaded packages are located in the apt package cache at

``````/var/cache/apt/archives
``````

### How to read the output from git diff?

The default output format (which originally comes from a program known as `diff` if you want to look for more info) is known as a “unified diff”. It contains essentially 4 different types of lines:

• insertion lines that show a line that has been inserted, which start with a `+`,
• deletion lines, which start with a `-`, and
• metadata lines which describe higher level things like which file this is talking about, what options were used to generate the diff, whether the file changed its permissions, etc.

I advise that you practice reading diffs between two versions of a file where you know exactly what you changed. Like that you'll recognize just what is going on when you see it.

### MySQL - sum column value(s) based on row from the same table

I think you're making this a bit more complicated than it needs to be.

``````SELECT
ProductID,
SUM(IF(PaymentMethod = 'Cash', Amount, 0)) AS 'Cash',
-- snip
SUM(Amount) AS Total
FROM
Payments
WHERE
SaleDate = '2012-02-10'
GROUP BY
ProductID
``````

### In jQuery, what's the best way of formatting a number to 2 decimal places?

If you're doing this to several fields, or doing it quite often, then perhaps a plugin is the answer.
Here's the beginnings of a jQuery plugin that formats the value of a field to two decimal places.
It is triggered by the onchange event of the field. You may want something different.

``````<script type="text/javascript">

// mini jQuery plugin that formats to two decimal places
(function(\$) {
\$.fn.currencyFormat = function() {
this.each( function( i ) {
\$(this).change( function( e ){
if( isNaN( parseFloat( this.value ) ) ) return;
this.value = parseFloat(this.value).toFixed(2);
});
});
return this; //for chaining
}
})( jQuery );

// apply the currencyFormat behaviour to elements with 'currency' as their class
\$( function() {
\$('.currency').currencyFormat();
});

</script>
<input type="text" name="one" class="currency"><br>
<input type="text" name="two" class="currency">
``````

### How to convert array values to lowercase in PHP?

`\$Color = array('A' => 'Blue', 'B' => 'Green', 'c' => 'Red');

\$strtolower = array_map('strtolower', \$Color);

\$strtoupper = array_map('strtoupper', \$Color);

print_r(\$strtolower); print_r(\$strtoupper);`

# java.time

If you are using Java 8 and later, you can try the java.time package (Tutorial):

``````LocalDate tomorrow = LocalDate.now().plusDays(1);
Date endDate = Date.from(tomorrow.atStartOfDay(ZoneId.systemDefault()).toInstant());
``````

Same problem but @Angelo answer didn't work for me, because I'm using same server with different credentials. I used the approach below and tested it on Windows 10.

`cmdkey /add:server01 /user:<username> /pass:<password>`

Then used `mstsc /v:server01` to connect to the server.

The point is to use names instead of ip addresses to avoid conflict between credentials. If you don't have a DNS server locally accessible try `c:\windows\system32\drivers\etc\hosts` file.

### What is the difference between Serializable and Externalizable in Java?

https://docs.oracle.com/javase/8/docs/platform/serialization/spec/serialTOC.html

Default serialization is somewhat verbose, and assumes the widest possible usage scenario of the serialized object, and accordingly the default format (Serializable) annotates the resultant stream with information about the class of the serialized object.

Externalization give the producer of the object stream complete control over the precise class meta-data (if any) beyond the minimal required identification of the class (e.g. its name). This is clearly desirable in certain situations, such as closed environments, where producer of the object stream and its consumer (which reifies the object from the stream) are matched, and additional metadata about the class serves no purpose and degrades performance.

Additionally (as Uri point out) externalization also provides for complete control over the encoding of the data in the stream corresponding to Java types. For (a contrived) example, you may wish to record boolean true as 'Y' and false as 'N'. Externalization allows you to do that.

### JS map return object

Use .map without return in simple way. Also start using let and const instead of var because let and const is more recommended

_x000D_
_x000D_
``````const rockets = [_x000D_
{ country:'Russia', launches:32 },_x000D_
{ country:'US', launches:23 },_x000D_
{ country:'China', launches:16 },_x000D_
{ country:'Europe(ESA)', launches:7 },_x000D_
{ country:'India', launches:4 },_x000D_
{ country:'Japan', launches:3 }_x000D_
];_x000D_
_x000D_
const launchOptimistic = rockets.map(elem => (_x000D_
{_x000D_
country: elem.country,_x000D_
launches: elem.launches+10_x000D_
} _x000D_
));_x000D_
_x000D_
console.log(launchOptimistic);``````
_x000D_
_x000D_
_x000D_

### How is using OnClickListener interface different via XML and Java code?

These are exactly the same. `android:onClick` was added in API level 4 to make it easier, more Javascript-web-like, and drive everything from the XML. What it does internally is add an `OnClickListener` on the Button, which calls your `DoIt` method.

Here is what using a `android:onClick="DoIt"` does internally:

``````Button button= (Button) findViewById(R.id.buttonId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DoIt(v);
}
});
``````

The only thing you trade off by using `android:onClick`, as usual with XML configuration, is that it becomes a bit more difficult to add dynamic content (programatically, you could decide to add one listener or another depending on your variables). But this is easily defeated by adding your test within the `DoIt` method.

### c++ compile error: ISO C++ forbids comparison between pointer and integer

You need the change those double quotation marks into singles. ie. `if (answer == 'y')` returns `true`;

Here is some info on String Literals in C++: http://msdn.microsoft.com/en-us/library/69ze775t%28VS.80%29.aspx

### Pandas groupby: How to get a union of strings

Following @Erfan's good answer, most of the times in an analysis of aggregate values you want the unique possible combinations of these existing character values:

``````unique_chars = lambda x: ', '.join(x.unique())
(df
.groupby(['A'])
.agg({'C': unique_chars}))
``````

### What is the purpose of the single underscore "_" variable in Python?

Underscore `_` is considered as "I don't Care" or "Throwaway" variable in Python

• The python interpreter stores the last expression value to the special variable called `_`.

``````>>> 10
10

>>> _
10

>>> _ * 3
30
``````
• The underscore `_` is also used for ignoring the specific values. If you don’t need the specific values or the values are not used, just assign the values to underscore.

Ignore a value when unpacking

``````x, _, y = (1, 2, 3)

>>> x
1

>>> y
3
``````

Ignore the index

``````for _ in range(10):
do_something()
``````

### Convert java.util.Date to java.time.LocalDate

``````Date input = new Date();
LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
``````

Explanation

Despite its name, `java.util.Date` represents an instant on the time-line, not a "date". The actual data stored within the object is a `long` count of milliseconds since 1970-01-01T00:00Z (midnight at the start of 1970 GMT/UTC).

The equivalent class to `java.util.Date` in JSR-310 is `Instant`, thus there is a convenient method `toInstant()` to provide the conversion:

``````Date input = new Date();
Instant instant = input.toInstant();
``````

A `java.util.Date` instance has no concept of time-zone. This might seem strange if you call `toString()` on a `java.util.Date`, because the `toString` is relative to a time-zone. However that method actually uses Java's default time-zone on the fly to provide the string. The time-zone is not part of the actual state of `java.util.Date`.

An `Instant` also does not contain any information about the time-zone. Thus, to convert from an `Instant` to a local date it is necessary to specify a time-zone. This might be the default zone - `ZoneId.systemDefault()` - or it might be a time-zone that your application controls, such as a time-zone from user preferences. Use the `atZone()` method to apply the time-zone:

``````Date input = new Date();
Instant instant = input.toInstant();
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
``````

A `ZonedDateTime` contains state consisting of the local date and time, time-zone and the offset from GMT/UTC. As such the date - `LocalDate` - can be easily extracted using `toLocalDate()`:

``````Date input = new Date();
Instant instant = input.toInstant();
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
LocalDate date = zdt.toLocalDate();
``````

In Java SE 9, a new method has been added that slightly simplifies this task:

``````Date input = new Date();
LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());
``````

This new alternative is more direct, creating less garbage, and thus should perform better.

### Remove decimal values using SQL query

As I understand your question, You have one table with column as datatype decimal(18,9). And the column contains the data as follows:-

``````12.00
15.00
18.00
20.00
``````

Now if you want to show record on UI without decimal value means like (12,15,18,20) then there are two options:-

1. Either cast this column as int in Select Clause
2. or may be you want to update this column value like (12,15,18,20).

To apply, First very simple just use the cast in select clause

``````select CAST(count AS INT) from tablename;
``````

But if you want to update your column data with int value then you have to update you column datatype

and to do that

``````ALTER TABLE tablename ALTER COLUMN columnname decimal(9,0)
``````

Then execute this

``````UPDATE tablename
SET count = CAST(columnname AS INT)
``````

### Python: get key of index in dictionary

You could do something like this:

``````i={'foo':'bar', 'baz':'huh?'}
keys=i.keys()  #in python 3, you'll need `list(i.keys())`
values=i.values()
print keys[values.index("bar")]  #'foo'
``````

However, any time you change your dictionary, you'll need to update your keys,values because dictionaries are not ordered in versions of Python prior to 3.7. In these versions, any time you insert a new key/value pair, the order you thought you had goes away and is replaced by a new (more or less random) order. Therefore, asking for the index in a dictionary doesn't make sense.

As of Python 3.6, for the CPython implementation of Python, dictionaries remember the order of items inserted. As of Python 3.7+ dictionaries are ordered by order of insertion.

Also note that what you're asking is probably not what you actually want. There is no guarantee that the inverse mapping in a dictionary is unique. In other words, you could have the following dictionary:

``````d={'i':1, 'j':1}
``````

In that case, it is impossible to know whether you want `i` or `j` and in fact no answer here will be able to tell you which (`'i'` or `'j'`) will be picked (again, because dictionaries are unordered). What do you want to happen in that situation? You could get a list of acceptable keys ... but I'm guessing your fundamental understanding of dictionaries isn't quite right.

### How to read data from a zip file without having to unzip the entire file

Zip files have a table of contents. Every zip utility should have the ability to query just the TOC. Or you can use a command line program like 7zip -t to print the table of contents and redirect it to a text file.

### error: Your local changes to the following files would be overwritten by checkout

You can force checkout your branch, if you do not want to commit your local changes.

``````git checkout -f branch_name
``````

### Error with multiple definitions of function

This problem happens because you are calling `fun.cpp` instead of `fun.hpp`. So c++ compiler finds func.cpp definition twice and throws this error.

Change line 3 of your `main.cpp` file, from `#include "fun.cpp"` to `#include "fun.hpp"` .

### Position a div container on the right side

This works for me.

``````<div style="position: relative;width:100%;">
<div style="position:absolute;left:0px;background-color:red;width:25%;height:100px;">
This will be on the left
</div>

<div style="position:absolute;right:0px;background-color:blue;width:25%;height:100px;">
This will be on the right
</div>
</div>
``````

### How to set up gradle and android studio to do release build?

No need to update gradle for making release application in Android studio.If you were eclipse user then it will be so easy for you. If you are new then follow the steps

1: Go to the "Build" at the toolbar section. 2: Choose "Generate Signed APK..." option.

3:fill opened form and go next 4 :if you already have .keystore or .jks then choose that file enter your password and alias name and respective password. 5: Or don't have .keystore or .jks file then click on Create new... button as shown on pic 1 then fill the form.

Above process was to make build manually. If You want android studio to automatically Signing Your App

In Android Studio, you can configure your project to sign your release APK automatically during the build process:

On the project browser, right click on your app and select Open Module Settings. On the Project Structure window, select your app's module under Modules. Click on the Signing tab. Select your keystore file, enter a name for this signing configuration (as you may create more than one), and enter the required information. Figure 4. Create a signing configuration in Android Studio.

Click on the Build Types tab. Select the release build. Under Signing Config, select the signing configuration you just created. Figure 5. Select a signing configuration in Android Studio.

4:Most Important thing that make debuggable=false at gradle.

``````    buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-  android.txt'), 'proguard-rules.txt'
debuggable false
jniDebuggable false
renderscriptDebuggable false
zipAlignEnabled true
}
}
``````

visit for more in info developer.android.com

### How do I remove ï»¿ from the beginning of a file?

Check on your `index.php`, find "... `charset=iso-8859-1`" and replace it with "... `charset=utf-8`".

Maybe it'll work.

### Simple way to change the position of UIView?

Here is the Swift 3 answer for anyone looking since Swift 3 does not accept "Make".

``````aView.center = CGPoint(x: 200, Y: 200)
``````

### force Maven to copy dependencies into target/lib

You can use the the Shade Plugin to create an uber jar in which you can bundle all your 3rd party dependencies.

### HTTP 415 unsupported media type error when calling Web API 2 endpoint

In my case it is Asp.Net Core 3.1 API. I changed the HTTP GET method from `public ActionResult GetValidationRulesForField( GetValidationRulesForFieldDto getValidationRulesForFieldDto)` to `public ActionResult GetValidationRulesForField([FromQuery] GetValidationRulesForFieldDto getValidationRulesForFieldDto)` and its working.

### Using ping in c#

``````Imports System.Net.NetworkInformation

Public Function PingHost(ByVal nameOrAddress As String) As Boolean
Dim pingable As Boolean = False
Dim pinger As Ping

Try
pinger = New Ping()

pingable = True
Else
pingable = False
End If

Catch PingException As Exception
pingable = False
End Try
Return pingable
End Function
``````

### NodeJS - Error installing with NPM

#### For Cygwin users:

The python issue with using `npm` on an out-of-the-box Cygwin installation, is that `node-gyp` is giving a misleading error due to incomplete checking in the `../npm/node_modules/node-gyp/lib/configure.js` code.

It's due to how Cygwin treats symbolic links. It doesn't do that properly in an out-of-the box installation. So the error messages from the above code become misleading, as it complains about the `PYTHON` path and not the existence of `python.exe` (or link of) file itself.

There are (at least) 2 ways to resolve this.

1. Installing the Cygwin package `cygutils-extra` and use `winln`.
2. Use native Windows CMD in Admin mode.

For (1) you can create a proper symlink from within Cygwin shell by doing these steps:

``````# To make the Cygwin environment treat Windows links properly:

# Install Cygwin package containing "winln"
apt-cyg install cygutils-extra

# Make a proper Windows sym-link:
cd /cygdrive/c/cygwin64/bin/
winln.exe -s python2.7.exe python.exe

# Add PYTHON as a native Windows system wide variable (HKLM)
setx /M PYTHON "C:\cygwin64\bin\python"
``````

(Also assuming you are running the Cygwin shell as Admin.) Using `apt-cyg` is recommended and can be found in various forms on github.

For (2) the resolution for out-of-the-box Cygwin users is this:

``````# Open a native Windows CMD in Administrator mode and:
cd C:\cygwin64\bin\
``````

The result should look like this:

``````C:\cygwin64\bin>ls -al python*
lrwxrwxrwx 1 xxx            xxx   13 Jun  2  2015 python -> python2.7.exe
lrwxrwxrwx 1 Administrators xxx   13 Aug 24 17:28 python.exe -> python2.7.exe
lrwxrwxrwx 1 xxx            xxx   13 Jun  2  2015 python2 -> python2.7.exe
-rwxr-xr-x 1 xxx            xxx 9235 Jun  2  2015 python2.7.exe
``````

### writing to serial port from linux command line

SCREEN:

NOTE: screen is actually not able to send hex, as far as I know. To do that, use `echo` or `printf`

I was using the suggestions in this post to write to a serial port, then using the info from another post to read from the port, with mixed results. I found that using screen is an "easier" solution, since it opens a terminal session directly with that port. (I put easier in quotes, because screen has a really weird interface, IMO, and takes some further reading to figure it out.)

You can issue this command to open a screen session, then anything you type will be sent to the port, plus the return values will be printed below it:

``````screen /dev/ttyS0 19200,cs8
``````

(Change the above to fit your needs for speed, parity, stop bits, etc.) I realize screen isn't the "linux command line" as the post specifically asks for, but I think it's in the same spirit. Plus, you don't have to type echo and quotes every time.

ECHO:

Follow praetorian droid's answer. HOWEVER, this didn't work for me until I also used the cat command (`cat < /dev/ttyS0`) while I was sending the echo command.

PRINTF:

I found that one can also use printf's '%x' command:

``````c="\x"\$(printf '%x' 0x12)
printf \$c >> \$SERIAL_COMM_PORT
``````

Again, for printf, start `cat < /dev/ttyS0` before sending the command.

### How to find row number of a value in R code

``````(1:nrow(mydata_2))[mydata_2[,4] == 1578]
``````

Of course there may be more than one row with a value of 1578.

### Get lengths of a list in a jinja2 template

I've experienced a problem with length of None, which leads to Internal Server Error: TypeError: object of type 'NoneType' has no len()

My workaround is just displaying 0 if object is None and calculate length of other types, like list in my case:

``````{{'0' if linked_contacts == None else linked_contacts|length}}
``````

### How do I do top 1 in Oracle?

I had the same issue, and I can fix this with this solution:

``````select a.*, rownum
from (select Fname from MyTbl order by Fname DESC) a
where
rownum = 1
``````

You can order your result before to have the first value on top.

Good luck

### Downgrade npm to an older version

``````npm install -g npm@4
``````

This will install the latest version on the major release 4, no no need to specify version number. Replace 4 with whatever major release you want.

In most housing services just add in the .htaccess on the target server folder this:

### What is a "method" in Python?

It's a function which is a member of a class:

``````class C:
def my_method(self):
print("I am a C")

c = C()
c.my_method()  # Prints("I am a C")
``````

Simple as that!

(There are also some alternative kinds of method, allowing you to control the relationship between the class and the function. But I'm guessing from your question that you're not asking about that, but rather just the basics.)

### How do I fix the indentation of an entire file in Vi?

`:set paste` is your friend I use putty and end up copying code between windows. Before I was turned on to `:set paste` (and `:set nopaste`) copy/paste gave me fits for that very reason.

### angular-cli server - how to specify default port

You can now specify the port in the .angular-cli.json under the defaults:

``````"defaults": {
"styleExt": "scss",
"serve": {
"port": 8080
},
"component": {}
}
``````

Tested in angular-cli v1.0.6

### frequent issues arising in android view, Error parsing XML: unbound prefix

A couple of reasons that this can happen:

1) You see this error with an incorrect namespace, or a typo in the attribute. Like 'xmlns' is wrong, it should be `xmlns:android`

2) First node needs to contain: `xmlns:android="http://schemas.android.com/apk/res/android"`

3) If you are integrating AdMob, check custom parameters like `ads:adSize`, you need

`xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"`

4) If you are using `LinearLayout` you might have to define tools:

`xmlns:tools="http://schemas.android.com/tools"`

### IE9 JavaScript error: SCRIPT5007: Unable to get value of the property 'ui': object is null or undefined

check whether there is a comma at the end.

``````                            },
{
name: '???. ??????? ?? ?????. ?3/?',
data: graph_high3,
dataGrouping: {
units: groupingUnits,
groupPixelWidth: 40,
approximation: "average",
enabled: true,
units: [[
'minute',
[1]
]]
}
}   // if , - SCRIPT5007
``````

### Get Multiple Values in SQL Server Cursor

This should work:

``````DECLARE db_cursor CURSOR FOR SELECT name, age, color FROM table;
DECLARE @myName VARCHAR(256);
DECLARE @myAge INT;
DECLARE @myFavoriteColor VARCHAR(40);
OPEN db_cursor;
FETCH NEXT FROM db_cursor INTO @myName, @myAge, @myFavoriteColor;
WHILE @@FETCH_STATUS = 0
BEGIN

--Do stuff with scalar values

FETCH NEXT FROM db_cursor INTO @myName, @myAge, @myFavoriteColor;
END;
CLOSE db_cursor;
DEALLOCATE db_cursor;
``````

### Convert float to double without losing precision

I find converting to the binary representation easier to grasp this problem.

``````float f = 0.27f;
double d2 = (double) f;
double d3 = 0.27d;

System.out.println(Integer.toBinaryString(Float.floatToRawIntBits(f)));
System.out.println(Long.toBinaryString(Double.doubleToRawLongBits(d2)));
System.out.println(Long.toBinaryString(Double.doubleToRawLongBits(d3)));
``````

You can see the float is expanded to the double by adding 0s to the end, but that the double representation of 0.27 is 'more accurate', hence the problem.

``````   111110100010100011110101110001
11111111010001010001111010111000100000000000000000000000000000
11111111010001010001111010111000010100011110101110000101001000
``````

Just go to admin.py file and add this line in the file :

`admin.site.site_header = "My Administration"`

### Is JavaScript object-oriented?

For me personally the main attraction of OOP programming is the ability to have self-contained classes with unexposed (private) inner workings.

What confuses me to no end in Javascript is that you can't even use function names, because you run the risk of having that same function name somewhere else in any of the external libraries that you're using.

Even though some very smart people have found workarounds for this, isn't it weird that Javascript in its purest form requires you to create code that is highly unreadable?

### How do I get a file name from a full path with PHP?

It's simple. For example:

``````<?php
function filePath(\$filePath)
{
\$fileParts = pathinfo(\$filePath);

if (!isset(\$fileParts['filename']))
{
\$fileParts['filename'] = substr(\$fileParts['basename'], 0, strrpos(\$fileParts['basename'], '.'));
}
return \$fileParts;
}

\$filePath = filePath('/www/htdocs/index.html');
print_r(\$filePath);
?>
``````

The output will be:

``````Array
(
[dirname] => /www/htdocs
[basename] => index.html
[extension] => html
[filename] => index
)
``````

### How to change the button text of <input type="file" />?

I think this is what you want:

``````<button style="display:block;width:120px; height:30px;" onclick="document.getElementById('getFile').click()">Your text here</button>

<input type='file' id="getFile" style="display:none">
``````

### Format a Go string without printing?

We can custom A new String type via `define new Type` with `Format` support.

``````package main

import (
"fmt"
"text/template"
"strings"
)

type String string
func (s String) Format(data map[string]interface{}) (out string, err error) {
t := template.Must(template.New("").Parse(string(s)))
builder := &strings.Builder{}
if err = t.Execute(builder, data); err != nil {
return
}
out = builder.String()
return
}

func main() {
const tmpl = `Hi {{.Name}}!  {{range \$i, \$r := .Roles}}{{if \$i}}, {{end}}{{.}}{{end}}`
data := map[string]interface{}{
"Name":     "Bob",
"Roles":    []string{"dbteam", "uiteam", "tester"},
}

s ,_:= String(tmpl).Format(data)
fmt.Println(s)
}
``````

### Pass arguments into C program from command line

Instead of `getopt()`, you may also consider using `argp_parse()` (an alternative interface to the same library).

From libc manual:

`getopt` is more standard (the short-option only version of it is a part of the POSIX standard), but using `argp_parse` is often easier, both for very simple and very complex option structures, because it does more of the dirty work for you.

But I was always happy with the standard `getopt`.

N.B. GNU `getopt` with `getopt_long` is GNU LGPL.

### Skipping every other element after the first

``````items = range(10)
print items
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print items[1::2] # every other item after the second; slight variation
>>> [1, 3, 5, 7, 9]
]
``````

### How to make 'submit' button disabled?

.html

``````<form [formGroup]="contactForm">

<button [disabled]="contactForm.invalid"  (click)="onSubmit()">SEND</button>
``````

.ts

``````contactForm: FormGroup;
``````

### Bash: Strip trailing linebreak from output

There is also direct support for white space removal in Bash variable substitution:

``````testvar=\$(wc -l < log.txt)
trailing_space_removed=\${testvar%%[[:space:]]}
``````

### Javascript require() function giving ReferenceError: require is not defined

RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.

``````IE 6+ .......... compatible ?
Firefox 2+ ..... compatible ?
Safari 3.2+ .... compatible ?
Chrome 3+ ...... compatible ?
Opera 10+ ...... compatible ?
``````

and take a look at this http://requirejs.org/docs/api.html

### I don't have "Dynamic Web Project" option in Eclipse new Project wizard

1. HELP
2. Install New Software
3. In Work With input box paste this url: http://download.eclipse.org/releases/{version}/ Replace version with your eclipse's version (eg: LUNA)
4. Hit enter
5. Underneath box will have different options, select package of your need.

### Is there a way to get a <button> element to link to a location without wrapping it in an <a href ... tag?

Here's a solution which will work even when JavaScript is disabled:

``````<form action="login.html">
</form>
``````

The trick is to surround the button with its own `<form>` tag.

I personally prefer the `<button>` tag, but you can do it with `<input>` as well:

``````<form action="login.html">
</form>
``````

### How to manually include external aar package using new Gradle Android Build System

With Android Studio 3.4 and Gradle 5 you can simply do it like this

``````dependencies {
implementation files('libs/actionbarsherlock.aar')
}
``````

### How to check if a Unix .tar.gz file is a valid file without uncompressing?

If you want to do a real test extract of a tar file without extracting to disk, use the -O option. This spews the extract to standard output instead of the filesystem. If the tar file is corrupt, the process will abort with an error.

Example of failed tar ball test...

``````\$ echo "this will not pass the test" > hello.tgz
\$ tar -xvzf hello.tgz -O > /dev/null
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors
\$ rm hello.*
``````

Working Example...

``````\$ ls hello*
ls: hello*: No such file or directory
\$ echo "hello1" > hello1.txt
\$ echo "hello2" > hello2.txt
\$ tar -cvzf hello.tgz hello[12].txt
hello1.txt
hello2.txt
\$ rm hello[12].txt
\$ ls hello*
hello.tgz
\$ tar -xvzf hello.tgz -O
hello1.txt
hello1
hello2.txt
hello2
\$ ls hello*
hello.tgz
\$ tar -xvzf hello.tgz
hello1.txt
hello2.txt
\$ ls hello*
hello1.txt  hello2.txt  hello.tgz
\$ rm hello*
``````

### How can I pass POST parameters in a URL?

You could use a form styled as a link. No JavaScript is required:

``````<form action="/do/stuff.php" method="post">
<input type="hidden" name="user_id" value="123" />
<button>Go to user 123</button>
</form>
``````

CSS:

``````button {
border: 0;
display: inline;
background: none;
text-decoration: underline;
color: blue;
}
button:hover {
cursor: pointer;
}
``````

A workaround for this would be to have a variable get the current working directory. Then you can cd out of it to do whatever, then when you need it, you can cd back in.

i.e.

```oldpath=`pwd`
...
...
...
# go back to the dir you wanted to pushd
cd \$oldpath
```

### Xamarin.Forms ListView: Set the highlight color of a tapped item

It looks like there is actually a cross-platform way to do this that works on both iOS and Android (not sure about Windows). It uses only binding and does not require custom renderers (which seems rare). This is a mash-up of lots of googling, so thanks to anyone who I may have borrowed from...

I am assuming ViewCells, but this should work for Text or Image cells as well. I am only including the relevant code here beyond the typical text, image, etc.

On your page do something like this:

``````MyModel model1 = new MyModel();
MyModel model2 = new MyModel();

ListView list = new ListView
{
ItemsSource = new List<MyModel> { model1, model2 };
ItemTemplate = new DataTemplate( typeof(MyCell) )
};
``````

Your custom Model might look something like this:

``````public class MyModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

private Color _backgroundColor;

public Color BackgroundColor
{
get { return _backgroundColor; }
set
{
_backgroundColor = value;

if ( PropertyChanged != null )
{
PropertyChanged( this, new PropertyChangedEventArgs( "BackgroundColor" ) );
}
}
}

public void SetColors( bool isSelected )
{
if ( isSelected )
{
BackgroundColor = Color.FromRgb( 0.20, 0.20, 1.0 );
}
else
{
BackgroundColor = Color.FromRgb( 0.95, 0.95, 0.95 );
}
}
}
``````

Then for your ItemTemplate you need a custom cell class something like this:

``````public class MyCell : ViewCell
{
public MyCell() : base()
{
RelativeLayout layout = new RelativeLayout();
layout.SetBinding( Layout.BackgroundColorProperty, new Binding( "BackgroundColor" ) );

View = layout;
}
}
``````

Then in your ItemSelected event handler, do the following. Note that 'selected' is an instance of MyModel used to track the currently selected item. I am only showing background color here, but I also use this technique to reverse highlight the text and detail text colors.

``````private void ItemSelected( object sender, ItemTappedEventArgs args )
{
// Deselect previous
if ( selected != null )
{
selected.SetColors( false );
}

// Select new
selected = (list.SelectedItem as MyModel);
selected.SetColors( true );
}
``````

### Why is AJAX returning HTTP status code 0?

In an attempt to win the prize for most dumbest reason for the problem described.

Forgetting to call

``````xmlhttp.send(); //yes, you need this pivotal line!
``````

Yes, I was still getting status returns of zero from the 'open' call.

### Android - java.lang.SecurityException: Permission Denial: starting Intent

I was facing this issue on a react-native project and it came after adding a splash screen activity and making it the launcher activity.

This is the change i made in my android manifest XML file on the MainActivity configuration.

_x000D_
_x000D_
``````<activity_x000D_
android:name=".MainActivity"_x000D_
android:label="@string/app_name"_x000D_
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"_x000D_
_x000D_
_x000D_
_x000D_

I added the `android:exported=true` and the activity configuration looked like this.

_x000D_
_x000D_
`````` <activity_x000D_
android:name=".MainActivity"_x000D_
android:exported="true"_x000D_
android:label="@string/app_name"_x000D_
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"_x000D_
``````
_x000D_
_x000D_
_x000D_

### MySQL combine two columns into one column

My guess is that you are using MySQL where the `+` operator does addition, along with silent conversion of the values to numbers. If a value does not start with a digit, then the converted value is `0`.

So try this:

``````select concat(column1, column2)
``````

Two ways to add a space:

``````select concat(column1, ' ', column2)
select concat_ws(' ', column1, column2)
``````

### Javascript one line If...else...else if statement

``````  a === "a" ? do something
: a === "b" ? do something
: do something
``````

Multitasking - This is basically multiprogramming in the context of a single-user interactive environment, in which the OS switches between several programs in main memory so as to give the illusion that several are running at once. Common scheduling algorithms used for multitasking are: Round-Robin, Priority Scheduling (multiple queues), Shortest-Process-Next.

MULTIPROCESSING is like the OS handling the different jobs in main memory in such a way that it gives its time to each and every job when other is busy for some task such as I/O operation. So as long as at least one job needs to execute, the cpu never sit idle. and here it is automatically handled by the OS,

### Get element by id - Angular2

A different approach, i.e: You could just do it 'the Angular way' and use `ngModel` and skip `document.getElementById('loginInput').value = '123';` altogether. Instead:

``````<input type="text" [(ngModel)]="username"/>
``````

and in your component you give these values:

``````username: 'whatever'
``````

### How do I disable directory browsing?

Create an .htaccess file containing the following line:

``````Options -Indexes
``````

That is one option. Another option is editing your apache configuration file.

In order to do so, you first need to open it with the command:

``````vim /etc/httpd/conf/httpd.conf
``````

Then find the line: Options Indexes FollowSymLinks

Change that line to: Options FollowSymLinks

Lastly save and exit the file, and restart apache server with this command:

``````sudo service httpd restart
``````

(You have a guide with screenshots here.)

### JQuery: detect change in input field

Use jquery change event

Description: Bind an event handler to the "change" JavaScript event, or trigger that event on an element.

An example

``````\$("input[type='text']").change( function() {
});
``````

The advantage that `.change` has over `.keypress` , `.focus` , `.blur` is that `.change` event will fire only when input has changed

### Are the decimal places in a CSS width respected?

Even when the number is rounded when the page is painted, the full value is preserved in memory and used for subsequent child calculation. For example, if your box of 100.4999px paints to 100px, it's child with a width of 50% will be calculated as .5*100.4999 instead of .5*100. And so on to deeper levels.

I've created deeply nested grid layout systems where parents widths are ems, and children are percents, and including up to four decimal points upstream had a noticeable impact.

Edge case, sure, but something to keep in mind.

### 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'`.

### Change remote repository credentials (authentication) on Intellij IDEA 14

After trying several answers, I was finally able to solve this issue (on window 10),

``````>git fetch
``````Control Panel->User Accounts -> Windows Credentials