# Programs & Examples On #Zero

Zero is a unique number and along with 1 is one of the two binary numbers. Zero plays an important role in Mathematics and Computing. This Tag is for discussions of zero within various programming languages.

### How to remove rows with any zero value

As dplyr 1.0.0 deprecated the scoped variants which @Feng Mai nicely showed, here is an update with the new syntax. This might be useful because in this case, `across()` doesn't work, and it took me some time to figure out the solution as follows.

The goal was to extract all rows that contain at least one 0 in a column.

``````df %>%
rowwise() %>%
filter(any(c_across(everything(.)) == 0))
``````

with the data

``````df <- data.frame(a = 1:4, b= 1:0, c=0:3)
df <- rbind(df, c(0,0,0))
df <- rbind(df, c(9,9,9))

# A tibble: 4 x 3
# Rowwise:
a     b     c
<dbl> <dbl> <dbl>
1     1     1     0
2     2     0     1
3     4     0     3
4     0     0     0
``````

So it correctly doesn't return the last row containing all 9s.

### How to create a numeric vector of zero length in R

This isn't a very beautiful answer, but it's what I use to create zero-length vectors:

``````0[-1]     # numeric
""[-1]    # character
TRUE[-1]  # logical
0L[-1]    # integer
``````

A literal is a vector of length 1, and `[-1]` removes the first element (the only element in this case) from the vector, leaving a vector with zero elements.

As a bonus, if you want a single `NA` of the respective type:

``````0[NA]     # numeric
""[NA]    # character
TRUE[NA]  # logical
0L[NA]    # integer
``````

### JAVA How to remove trailing zeros from a double

Use a DecimalFormat object with a format string of "0.#".

### Check if bash variable equals 0

Specifically: `((depth))`. By example, the following prints `1`.

``````declare -i x=0
((x)) && echo \$x

x=1
((x)) && echo \$x
``````

### Remove/ truncate leading zeros by javascript/jquery

You should use the "radix" parameter of the "parseInt" function : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FparseInt

parseInt('015', 10) => 15

if you don't use it, some javascript engine might use it as an octal parseInt('015') => 0

### Nullable types: better way to check for null or zero in c#

Don't forget, for strings, you can always use:

``````String.IsNullOrEmpty(str)
``````

``````str==null || str==""
``````

### PHP prepend leading zero before single digit number, on-the-fly

The universal tool for string formatting, `sprintf`:

``````\$stamp = sprintf('%s%02s', \$year, \$month);
``````

http://php.net/manual/en/function.sprintf.php

### Fastest way to zero out a 2d array in C?

Use calloc instead of malloc . calloc will initiate all fields to 0.

int *a = (int *)calloc(n,size of(int)) ;

//all cells of a have been initialized to 0

### Best way to do a PHP switch with multiple values per case?

Some other ideas not mentioned yet:

``````switch(true){
case in_array(\$p, array('home', '')):
\$current_home = 'current'; break;

case preg_match('/^users\.(online|location|featured|new|browse|search|staff)\$/', \$p):
\$current_users = 'current'; break;

case 'forum' == \$p:
\$current_forum = 'current'; break;
}
``````

Someone will probably complain about readability issues with #2, but I would have no problem inheriting code like that.

### Android Studio rendering problems

Adjust with your current API Level. If the API level isn't in the list, you'll need to install it via the SDK Manager.

### Pipe to/from the clipboard in Bash script

I have found a good reference: https://unix.stackexchange.com/questions/69111/

In my case I would like to paste content on the clipboard and also to see what is been pasted there, so I used also the `tee` command with a file descriptor:

``````echo "just a test" | tee >(xclip -i -selection clipboard)
``````

`>()` is a form of process substitution. bash replaces each with the path to a file descriptor which is connected to the standard input of the program within the parentheses.

The `tee`command forks your command allowing you to "pipe its content" and see the result on standard output "stdout"

you can also create aliases to get and write on the clipboard, allowing you to use "pbcopy" and "pbpaste" as if you where on MAC. In my case, as I use zsh I have this on my aliases file:

``````(( \$+commands[xclip] )) && {
alias pbpaste='xclip -i -selection clipboard -o'
alias pbcopy='xclip -selection clipboard'
}
``````

the `(( \$+command[name] ))` in zsh tests if the command "name" is installed on your system, then both aliases are grouped with `{}`. the `&&` is a binary AND, if a then b, hence if you have xclip then the aliases will be set.

``````echo "another test" | tee >(pbcopy)
``````

To get your clipboard content just type:

``````pbpaste | "any-command-you-need-here"
``````

### makefile execute another target

If you removed the `make all` line from your "fresh" target:

``````fresh :
rm -f *.o \$(EXEC)
clear
``````

You could simply run the command `make fresh all`, which will execute as `make fresh; make all`.

Some might consider this as a second instance of make, but it's certainly not a sub-instance of make (a make inside of a make), which is what your attempt seemed to result in.

### NSUserDefaults - How to tell if a key exists

The `objectForKey:` method will return `nil` if the value does not exist. Here's a simple IF / THEN test that will tell you if the value is nil:

``````if([[NSUserDefaults standardUserDefaults] objectForKey:@"YOUR_KEY"] != nil) {
...
}
``````

### How do I put a clear button inside my HTML text input box like the iPhone does?

Maybe this simple solution can help:

_x000D_
_x000D_
``<input type="text" id="myInput" value="No War"/><button onclick="document.getElementById('myInput').value = ''" title="Clear">X</button></input>``
_x000D_
_x000D_
_x000D_

### Using jQuery to compare two arrays of Javascript objects

The nice one liner from Sudhakar R as jQuery global method.

``````/**
* Compare two arrays if they are equal even if they have different order.
*
*/
jQuery.extend({
/**
* @param {array} a
*   First array to compare.
* @param {array} b
*   Second array to compare.
* @return {boolean}
*   True if both arrays are equal, otherwise false.
*/
arrayCompare: function (a, b) {
return \$(a).not(b).get().length === 0 && \$(b).not(a).get().length === 0;
}
});
``````

### Showing line numbers in IPython/Jupyter Notebooks

In Jupyter Lab 2.1.5, it is View -> Show Line Numbers.

### Choose newline character in Notepad++

For a new document: ```Settings -> Preferences -> New Document/Default Directory -> New Document -> Format -> Windows/Mac/Unix```

And for an already-open document: `Edit -> EOL Conversion`

### Way to get all alphabetic chars in an array in PHP?

``````<?php

\$array = Array();
for( \$i = 65; \$i < 91; \$i++){
\$array[] = chr(\$i);
}

foreach( \$array as \$k => \$v){
echo "\$k \$v \n";
}

?>

\$ php loop.php
0 A
1 B
2 C
3 D
4 E
5 F
6 G
7 H
...
``````

### How to indent HTML tags in Notepad++

Use the XML Tools plugin for Notepad++ and then you can Auto-Indent the code with Ctrl+Alt+Shift+B .For the more point-and-click inclined, you could also go to Plugins --> XML Tools --> Pretty Print.

### Android button with different background colors

As your error states, you have to define drawable attibute for the items (for some reason it is required when it comes to background definitions), so:

``````<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/red"/> <!-- pressed -->
<item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused -->
<item android:drawable="@color/black"/> <!-- default -->
</selector>
``````

Also note that drawable attribute doesn't accept raw color values, so you have to define the colors as resources. Create colors.xml file at res/values folder:

``````<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000</color>
<color name="blue">#00f</color>
<color name="red">#f00</color>
</resources>
``````

### How can I make robocopy silent in the command line except for progress?

There's no need to redirect to a file and delete it later. Try:

``````Robocopy src dest > null
``````

### How do I completely remove root password

Did you try `passwd -d root`? Most likely, this will do what you want.

You can also manually edit `/etc/shadow`: (Create a backup copy. Be sure that you can log even if you mess up, for example from a rescue system.) Search for "root". Typically, the root entry looks similar to

``````root:\$X\$SK5xfLB1ZW:0:0...
``````

There, delete the second field (everything between the first and second colon):

``````root::0:0...
``````

Some systems will make you put an asterisk (*) in the password field instead of blank, where a blank field would allow no password (CentOS 8 for example)

``````root:*:0:0...
``````

Save the file, and try logging in as root. It should skip the password prompt. (Like `passwd -d`, this is a "no password" solution. If you are really looking for a "blank password", that is "ask for a password, but accept if the user just presses Enter", look at the manpage of `mkpasswd`, and use `mkpasswd` to create the second field for the /etc/shadow.)

### Can I change the name of `nohup.out`?

For some reason, the above answer did not work for me; I did not return to the command prompt after running it as I expected with the trailing &. Instead, I simply tried with

``````nohup some_command > nohup2.out&
``````

and it works just as I want it to. Leaving this here in case someone else is in the same situation. Running Bash 4.3.8 for reference.

### PHP error: php_network_getaddresses: getaddrinfo failed: (while getting information from other site.)

I faced a similar issue on Docker for Ubuntu. It's a DNS issue. You will have to add Google Public DNS Settings into your network. Instruction for adding those settings is OS dependant. In my case, I was using Ubuntu so I added via network manager. Visit this site for more info.

### How should I tackle --secure-file-priv in MySQL?

@vhu I did the `SHOW VARIABLES LIKE "secure_file_priv";` and it returned `C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\` so when I plugged that in, it still didn't work.

When I went to the `my.ini` file directly I discovered that the path is formatted a bit differently:

``````C:/ProgramData/MySQL/MySQL Server 8.0/Uploads
``````

Then when I ran it with that, it worked. The only difference was the direction of the slashes.

### Maven won't run my Project : Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec

I faced the same issue. When I tried to run the project from IDE, it was giving me same error. But when I tried running from the command prompt, the project was running fine. So it came to me that there should be some issue with the settings that makes the program to Run from IDE.

I solved the problem by changing some Project settings. I traced the error and came to the following part in my pom.xml file.

``````            <execution>
<id>default-cli</id>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>\${java.home}/bin/java</executable>
<commandlineArgs>\${runfx.args}</commandlineArgs>
</configuration>
</execution>
``````

I went to my Project Properties > Actions Categories > Action: Run Project: then I Set Properties for Run Project Action as follows:

``````runfx.args=-jar "\${project.build.directory}/\${project.build.finalName}.jar"
``````

Then, I rebuild the project and I was able to Run the Project. As you can see, the IDE(Netbeans in my case), was not able to find 'runfx.args' which is set in Project Properties.

### JavaScript - document.getElementByID with onClick

Perhaps you might want to use "addEventListener"

``````document.getElementById("test").addEventListener('click',function ()
{
foo2();
}  );
``````

Hope it's still useful for you

### Convert UTF-8 encoded NSData to NSString

I humbly submit a category to make this less annoying:

``````@interface NSData (EasyUTF8)

// Safely decode the bytes into a UTF8 string
- (NSString *)asUTF8String;

@end
``````

and

``````@implementation NSData (EasyUTF8)

- (NSString *)asUTF8String {
return [[NSString alloc] initWithData:self encoding:NSUTF8StringEncoding];
}

@end
``````

(Note that if you're not using ARC you'll need an `autorelease` there.)

Now instead of the appallingly verbose:

``````NSData *data = ...
[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
``````

You can do:

``````NSData *data = ...
[data asUTF8String];
``````

### Free Online Team Foundation Server

VSO is now Azure DevOps https://visualstudio.microsoft.com/vso

Recently Microsoft Visual Studio Online (VSO) is now Azure DevOps

### How to change fonts in matplotlib (python)?

I prefer to employ:

``````from matplotlib import rc
#rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
rc('font',**{'family':'serif','serif':['Times']})
rc('text', usetex=True)
``````

### How do I get a plist as a Dictionary in Swift?

This answer uses Swift native objects rather than NSDictionary.

#### Swift 3.0

``````//get the path of the plist file
guard let plistPath = Bundle.main.path(forResource: "level1", ofType: "plist") else { return }
//load the plist as data in memory
guard let plistData = FileManager.default.contents(atPath: plistPath) else { return }
//use the format of a property list (xml)
var format = PropertyListSerialization.PropertyListFormat.xml
//convert the plist data to a Swift Dictionary
guard let  plistDict = try! PropertyListSerialization.propertyList(from: plistData, options: .mutableContainersAndLeaves, format: &format) as? [String : AnyObject] else { return }
//access the values in the dictionary
if let value = plistDict["aKey"] as? String {
print(value)
}
//you can also use the coalesce operator to handle possible nil values
var myValue = plistDict["aKey"] ?? ""
``````

### How to send email from MySQL 5.1

I would be very concerned about putting the load of sending e-mails on my database server (small though it may be). I might suggest one of these alternatives:

1. Have application logic detect the need to send an e-mail and send it.
2. Have a MySQL trigger populate a table that queues up the e-mails to be sent and have a process monitor that table and send the e-mails.

### Shared-memory objects in multiprocessing

If you use an operating system that uses copy-on-write `fork()` semantics (like any common unix), then as long as you never alter your data structure it will be available to all child processes without taking up additional memory. You will not have to do anything special (except make absolutely sure you don't alter the object).

The most efficient thing you can do for your problem would be to pack your array into an efficient array structure (using `numpy` or `array`), place that in shared memory, wrap it with `multiprocessing.Array`, and pass that to your functions. This answer shows how to do that.

If you want a writeable shared object, then you will need to wrap it with some kind of synchronization or locking. `multiprocessing` provides two methods of doing this: one using shared memory (suitable for simple values, arrays, or ctypes) or a `Manager` proxy, where one process holds the memory and a manager arbitrates access to it from other processes (even over a network).

The `Manager` approach can be used with arbitrary Python objects, but will be slower than the equivalent using shared memory because the objects need to be serialized/deserialized and sent between processes.

There are a wealth of parallel processing libraries and approaches available in Python. `multiprocessing` is an excellent and well rounded library, but if you have special needs perhaps one of the other approaches may be better.

### How to send email to multiple recipients with addresses stored in Excel?

``````ToAddress = "[email protected]"
MessageSubject = "It works!."
Set ol = CreateObject("Outlook.Application")
Set newMail = ol.CreateItem(olMailItem)
newMail.Subject = MessageSubject
newMail.Send
``````

### #1273 – Unknown collation: ‘utf8mb4_unicode_520_ci’

In my case I substitute it with `utf8_general_ci` with sed like this:

``````sed -i 's/utf8_0900_ai_ci/utf8_general_ci/g' MY_DB.sql
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' MY_DB.sql
``````

After that, I can import it without any issue.

### Correct way to populate an Array with a Range in Ruby

This works for me in irb:

``````irb> (1..4).to_a
=> [1, 2, 3, 4]
``````

I notice that:

``````irb> 1..4.to_a
(irb):1: warning: default `to_a' will be obsolete
from (irb):1
``````

So perhaps you are missing the parentheses?

(I am running Ruby 1.8.6 patchlevel 114)

### How do I get a YouTube video thumbnail from the YouTube API?

``````    function get_video_thumbnail( \$src ) {
\$url_pieces = explode('/', \$src);
if( \$url_pieces[2] == 'dai.ly'){
\$id = \$url_pieces[3];
\$hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.\$id.'?fields=thumbnail_large_url'), TRUE);
\$thumbnail = \$hash['thumbnail_large_url'];
}else if(\$url_pieces[2] == 'www.dailymotion.com'){
\$id = \$url_pieces[4];
\$hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.\$id.'?fields=thumbnail_large_url'), TRUE);
\$thumbnail = \$hash['thumbnail_large_url'];
}else if ( \$url_pieces[2] == 'vimeo.com' ) { // If Vimeo
\$id = \$url_pieces[3];
\$hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . \$id . '.php'));
\$thumbnail = \$hash[0]['thumbnail_large'];
} elseif ( \$url_pieces[2] == 'youtu.be' ) { // If Youtube
\$extract_id = explode('?', \$url_pieces[3]);
\$id = \$extract_id[0];
\$thumbnail = 'http://img.youtube.com/vi/' . \$id . '/mqdefault.jpg';
}else if ( \$url_pieces[2] == 'player.vimeo.com' ) { // If Vimeo
\$id = \$url_pieces[4];
\$hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . \$id . '.php'));
\$thumbnail = \$hash[0]['thumbnail_large'];
\$extract_id = explode('=', \$url_pieces[3]);
\$id = \$extract_id[1];
\$thumbnail = 'http://img.youtube.com/vi/' . \$id . '/mqdefault.jpg';
} else{
\$thumbnail = tim_thumb_default_image('video-icon.png', null, 147, 252);
}
return \$thumbnail;
}

get_video_thumbnail('https://vimeo.com/154618727');
get_video_thumbnail('https://youtu.be/pbzIfnekjtM');
get_video_thumbnail('http://www.dailymotion.com/video/x5thjyz');
``````

### ECMAScript 6 class destructor

Is there such a thing as destructors for ECMAScript 6?

No. EcmaScript 6 does not specify any garbage collection semantics at all[1], so there is nothing like a "destruction" either.

If I register some of my object's methods as event listeners in the constructor, I want to remove them when my object is deleted

A destructor wouldn't even help you here. It's the event listeners themselves that still reference your object, so it would not be able to get garbage-collected before they are unregistered.
What you are actually looking for is a method of registering listeners without marking them as live root objects. (Ask your local eventsource manufacturer for such a feature).

1): Well, there is a beginning with the specification of `WeakMap` and `WeakSet` objects. However, true weak references are still in the pipeline [1][2].

### Procedure or function !!! has too many arguments specified

In addition to all the answers provided so far, another reason for causing this exception can happen when you are saving data from list to database using ADO.Net.

Many developers will mistakenly use `for` loop or `foreach` and leave the `SqlCommand` to execute outside the loop, to avoid that make sure that you have like this code sample for example:

``````public static void Save(List<myClass> listMyClass)
{
using (var Scope = new System.Transactions.TransactionScope())
{
if (listMyClass.Count > 0)
{
for (int i = 0; i < listMyClass.Count; i++)
{
SqlCommand cmd = new SqlCommand("dbo.SP_SaveChanges", myConnection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();

try
{
myConnection.Open();
cmd.ExecuteNonQuery();
}
catch (SqlException sqe)
{
throw new Exception(sqe.Message);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
myConnection.Close();
}
}
}
else
{
throw new Exception("List is empty");
}

Scope.Complete();
}
}
``````

### How to get current page URL in MVC 3

``````public static Uri UrlOriginal(this HttpRequestBase request)
{

return new Uri(string.Format("{0}://{1}{2}",
request.Url.Scheme,
request.RawUrl));
}
``````

And then you can execute it off the `RequestContext.HttpContext.Request` property.

There is a bug (can be side-stepped, see below) in Asp.Net that arises on machines that use ports other than port 80 for the local website (a big issue if internal web sites are published via load-balancing on virtual IP and ports are used internally for publishing rules) whereby Asp.Net will always add the port on the `AbsoluteUri` property - even if the original request does not use it.

This code ensures that the returned url is always equal to the Url the browser originally requested (including the port - as it would be included in the host header) before any load-balancing etc takes place.

At least, it does in our (rather convoluted!) environment :)

If there are any funky proxies in between that rewrite the host header, then this won't work either.

Update 30th July 2013

As mentioned by @KevinJones in comments below - the setting I mention in the next section has been documented here: http://msdn.microsoft.com/en-us/library/hh975440.aspx

Although I have to say I couldn't get it work when I tried it - but that could just be me making a typo or something.

Update 9th July 2012

I came across this a little while ago, and meant to update this answer, but never did. When an upvote just came in on this answer I thought I should do it now.

The 'bug' I mention in Asp.Net can be be controlled with an apparently undocumented appSettings value - called `'aspnet:UseHostHeaderForRequest'` - i.e:

``````<appSettings>
</appSettings>
``````

I came across this while looking at `HttpRequest.Url` in ILSpy - indicated by the `--->` on the left of the following copy/paste from that ILSpy view:

``````public Uri Url
{
get
{
if (this._url == null && this._wr != null)
{
string text = this.QueryStringText;
if (!string.IsNullOrEmpty(text))
{
text = "?" + HttpEncoder.CollapsePercentUFromStringInternal(text,
this.QueryStringEncoding);
}
{
try
{
{
this._url = new Uri(string.Concat(new string[]
{
this._wr.GetProtocol(),
"://",
this.Path,
text
}));
}
}
catch (UriFormatException)
{ }
}
if (this._url == null) { /* build from server name and port */
...
``````

I personally haven't used it - it's undocumented and so therefore not guaranteed to stick around - however it might do the same thing that I mention above. To increase relevancy in search results - and to acknowledge somebody else who seeems to have discovered this - the `'aspnet:UseHostHeaderForRequest'` setting has also been mentioned by Nick Aceves on Twitter

# tl;dr

``````LocalDate.parse(
"01-23-2017" ,
DateTimeFormatter.ofPattern( "MM-dd-uuuu" )
)
``````

# Details

I have a java.util.Date in the format yyyy-mm-dd

As other mentioned, the `Date` class has no format. It has a count of milliseconds since the start of 1970 in UTC. No strings attached.

# java.time

The other Answers use troublesome old legacy date-time classes, now supplanted by the java.time classes.

If you have a `java.util.Date`, convert to a `Instant` object. The `Instant` class represents a moment on the timeline in UTC with a resolution of nanoseconds (up to nine (9) digits of a decimal fraction).

``````Instant instant = myUtilDate.toInstant();
``````

# Time zone

The other Answers ignore the crucial issue of time zone. Determining a date requires a time zone. For any given moment, the date varies around the globe by zone. A few minutes after midnight in Paris France is a new day, while still “yesterday” in Montréal Québec.

Define the time zone by which you want context for your `Instant`.

``````ZoneId z = ZoneId.of( "America/Montreal" );
``````

Apply the `ZoneId` to get a `ZonedDateTime`.

``````ZonedDateTime zdt = instant.atZone( z );
``````

# `LocalDate`

If you only care about the date without a time-of-day, extract a `LocalDate`.

``````LocalDate localDate = zdt.toLocalDate();
``````

To generate a string in standard ISO 8601 format, YYYY-MM-DD, simply call `toString`. The java.time classes use the standard formats by default when generating/parsing strings.

``````String output = localDate.toString();
``````

2017-01-23

If you want a MM-DD-YYYY format, define a formatting pattern.

``````DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM-dd-uuuu" );
String output = localDate.format( f );
``````

Note that the formatting pattern codes are case-sensitive. The code in the Question incorrectly used `mm` (minute of hour) rather than `MM` (month of year).

Use the same `DateTimeFormatter` object for parsing. The java.time classes are thread-safe, so you can keep this object around and reuse it repeatedly even across threads.

``````LocalDate localDate = LocalDate.parse( "01-23-2017" , f );
``````

The java.time framework is built into Java 8 and later. These classes supplant the troublesome old legacy date-time classes such as `java.util.Date`, `Calendar`, & `SimpleDateFormat`.

The Joda-Time project, now in maintenance mode, advises migration to the java.time classes.

To learn more, see the Oracle Tutorial. And search Stack Overflow for many examples and explanations. Specification is JSR 310.

Where to obtain the java.time classes?

The ThreeTen-Extra project extends java.time with additional classes. This project is a proving ground for possible future additions to java.time. You may find some useful classes here such as `Interval`, `YearWeek`, `YearQuarter`, and more.

### Open Cygwin at a specific folder

I have created the batch file and put it to the Cygwin's /bin directory. This script was developed so it allows to install/uninstall the registry entries for opening selected folders and drives in Cygwin. For details see the link http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html.

update: This solution does the same as early suggestions but all manipulations with Windows Registry are hidden within the script.

Perform the command to install

``````cyghere.bat /install
``````

Perform the command to uninstall

``````cyghere.bat /uninstall
``````

### In Java, how to find if first character in a string is upper case without regex

Actually, this is subtler than it looks.

The code above would give the incorrect answer for a lower case character whose code point was above U+FFFF (such as U+1D4C3, MATHEMATICAL SCRIPT SMALL N). String.charAt would return a UTF-16 surrogate pair, which is not a character, but rather half the character, so to speak. So you have to use String.codePointAt, which returns an int above 0xFFFF (not a char). You would do:

`Character.isUpperCase(s.codePointAt(0));`

Don't feel bad overlooked this; almost all Java coders handle UTF-16 badly, because the terminology misleadingly makes you think that each "char" value represents a character. UTF-16 sucks, because it is almost fixed width but not quite. So non-fixed-width edge cases tend not to get tested. Until one day, some document comes in which contains a character like U+1D4C3, and your entire system blows up.

### RuntimeError on windows trying python multiprocessing

Though the earlier answers are correct, there's a small complication it would help to remark on.

In case your main module imports another module in which global variables or class member variables are defined and initialized to (or using) some new objects, you may have to condition that import in the same way:

``````if __name__ ==  '__main__':
import my_module
``````

### pandas DataFrame: replace nan values with average of columns

``````# To read data from csv file

X = Dataset.iloc[:, :-1].values

# To calculate mean use imputer class
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])
``````

### How to remove ASP.Net MVC Default HTTP Headers?

#### .NET Core

To remove the Server header, within the Program.cs file, add the following option:

``````.UseKestrel(opt => opt.AddServerHeader = false)
``````

For dot net core 1, put add the option inside the .UseKestrel() call. For dot net core 2, add the line after UseStartup().

To remove X-Powered-By header, if deployed to IIS, edit your web.config and add the following section inside the system.webServer tag:

``````<httpProtocol>
<remove name="X-Powered-By" />
</httpProtocol>
``````

#### .NET 4.5.2

``````    protected void Application_BeginRequest(object sender, EventArgs e)
{
string[] headers = { "Server", "X-AspNet-Version" };

{
{
if (c != null && c.Response != null && c.Response.Headers != null)
{
{
{
}
}
}
});
}

}
``````

#### Pre .NET 4.5.2

``````public class RemoveServerHeaderModule : IHttpModule
{
public void Init(HttpApplication context)
{
}

public void Dispose() { }

{
}
}
``````

``````<system.webServer>
....
<modules>
</modules>
``````

However I had a problem where sub-projects couldn't find this module. Not fun.

To remove the ''X-AspNetMvc-Version'' tag, for any version of .NET, modify your ''web.config'' file to include:

``````<system.web>
...
...
</system.web>
``````

Thanks Microsoft for making this unbelievably difficult. Or maybe that was your intention so that you could track IIS and MVC installs across the world ...

### Content Type application/soap+xml; charset=utf-8 was not supported by service

For me, it was very difficult to identify the problem because of a large number of methods and class involved.

What I did is commented (removed) some methods from the WebService interface and try, and then comment another bunch of methods and try, I kept doing this until I found the method that cause the problem.

In my case, it was using a complex object which cannot be serialized.

Good luck!

### How can I resolve the error: "The command [...] exited with code 1"?

For me, in VS 2013, I had to get rid of missing references under References in the UI project (MVC). Turns out, the ones missing were not referenced.

### ERROR in The Angular Compiler requires TypeScript >=3.1.1 and <3.2.0 but 3.2.1 was found instead

``````npm install typescript@">=3.1.1 <3.3.0" --save-dev --save-exact
rm -rf node_modules
npm install
``````

### How to listen to route changes in react router v4?

For functional components try useEffect with props.location.

``````import React, {useEffect} from 'react';

const SampleComponent = (props) => {

useEffect(() => {
console.log(props.location);
}, [props.location]);

}

export default SampleComponent;
``````

### Hive query output to file

To directly save the file in HDFS, use the below command:

``````hive> insert overwrite  directory '/user/cloudera/Sample' row format delimited fields terminated by '\t' stored as textfile select * from table where id >100;
``````

This will put the contents in the folder /user/cloudera/Sample in HDFS.

### Round float to x decimals?

Use the built-in function `round()`:

``````In [23]: round(66.66666666666,4)
Out[23]: 66.6667

In [24]: round(1.29578293,6)
Out[24]: 1.295783
``````

help on `round()`:

round(number[, ndigits]) -> floating point number

Round a number to a given precision in decimal digits (default 0 digits). This always returns a floating point number. Precision may be negative.

### Trim last character from a string

Slightly modified version of @Damian Leszczynski - Vash that will make sure that only a specific character will be removed.

``````public static class StringExtensions
{
public static string TrimLastCharacter(this string str, char character)
{
if (string.IsNullOrEmpty(str) || str[str.Length - 1] != character)
{
return str;
}
return str.Substring(0, str.Length - 1);
}
}
``````

### Recursive query in SQL Server

Try this:

``````;WITH CTE
AS
(
SELECT DISTINCT
M1.Product_ID Group_ID,
M1.Product_ID
FROM matches M1
LEFT JOIN matches M2
ON M1.Product_Id = M2.matching_Product_Id
WHERE M2.matching_Product_Id IS NULL
UNION ALL
SELECT
C.Group_ID,
M.matching_Product_Id
FROM CTE C
JOIN matches M
ON C.Product_ID = M.Product_ID
)
SELECT * FROM CTE ORDER BY Group_ID
``````

You can use `OPTION(MAXRECURSION n)` to control recursion depth.

SQL FIDDLE DEMO

### Cannot execute script: Insufficient memory to continue the execution of the program

Below script works perfectly:

``````sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
``````

Symptoms:

When executing a recovery script with sqlcmd utility, the ‘Sqlcmd: Error: Syntax error at line XYZ near command ‘X’ in file ‘file_name.sql’.’ error is encountered.

Cause:

This is a sqlcmd utility limitation. If the SQL script contains dollar sign (\$) in any form, the utility is unable to properly execute the script, since it is substituting all variables automatically by default.

Resolution:

In order to execute script that has a dollar (\$) sign in any form, it is necessary to add “-x” parameter to the command line.

e.g.

Original: sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql

Fixed: sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x

### Angular CLI - Please add a @NgModule annotation when using latest

In my case, I created a new ChildComponent in Parentcomponent whereas both in the same module but Parent is registered in a shared module so I created ChildComponent using CLI which registered Child in the current module but my parent was registered in the shared module.

So register the ChildComponent in Shared Module manually.

### What is char ** in C?

It is a pointer to a pointer, so yes, in a way it's a 2D character array. In the same way that a `char*` could indicate an array of `char`s, a `char**` could indicate that it points to and array of `char*`s.

### use current date as default value for a column

You can use:

``````Insert into Event(Description,Date) values('teste', GETDATE());
``````

Also, you can change your table so that 'Date' has a default, "GETDATE()"

### best way to get the key of a key/value javascript object

You would iterate inside the object with a for loop:

``````for(var i in foo){
}
``````

Or

``````Object.keys(foo)
.forEach(function eachKey(key) {
});
``````

### TypeError: coercing to Unicode: need string or buffer

Here is the best way I found for Python 2:

``````def inplace_change(file,old,new):
fin = open(file, "rt")
data = data.replace(old, new)
fin.close()

fin = open(file, "wt")
fin.write(data)
fin.close()
``````

An example:

``````inplace_change('/var/www/html/info.txt','youtub','youtube')
``````

### Reading CSV files using C#

I use this here:

http://www.codeproject.com/KB/database/GenericParser.aspx

Last time I was looking for something like this I found it as an answer to this question.

### How do I delete multiple rows with different IDs?

• You can make this.

CREATE PROC [dbo].[sp_DELETE_MULTI_ROW]
@CODE XML ,@ERRFLAG CHAR(1) = '0' OUTPUT

AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

DELETE tb_SampleTest WHERE CODE IN( SELECT Item.value('.', 'VARCHAR(20)') FROM @CODE.nodes('RecordList/ID') AS x(Item) )

IF @@ROWCOUNT = 0 SET @ERRFLAG = 200

SET NOCOUNT OFF

• <'RecordList'><'ID'>1<'/ID'><'ID'>2<'/ID'><'/RecordList'>

### Get Android .apk file VersionName or VersionCode WITHOUT installing apk

``````aapt dump badging test.apk | grep "VersionName" | sed -e "s/.*versionName='//" -e "s/' .*//"
``````

This answers the question by returning only the version number as a result. However......

The goal as previously stated should be to find out if the apk on the server is newer than the one installed BEFORE attempting to download or install it. The easiest way to do this is include the version number in the filename of the apk hosted on the server eg `myapp_1.01.apk`

You will need to establish the name and version number of the apps already installed (if it is installed) in order to make the comparison. You will need a rooted device or a means of installing the aapt binary and busybox if they are not already included in the rom.

This script will get the list of apps from your server and compare with any installed apps. The result is a list flagged for upgrade/installation.

``````#/system/bin/sh
SERVER_LIST=\$(wget -qO- "http://demo.server.com/apk/" | grep 'href' | grep '\.apk' | sed 's/.*href="//' | \
sed 's/".*//' | grep -v '\/' | sed -E "s/%/\\\\x/g" | sed -e "s/x20/ /g" -e "s/\\\\//g")
LOCAL_LIST=\$(for APP in \$(pm list packages -f | sed -e 's/package://' -e 's/=.*//' | sort -u); do \
INFO=\$(echo -n \$(aapt dump badging \$APP | grep -e 'package: name=' -e 'application: label=')) 2>/dev/null; \
PACKAGE=\$(echo \$INFO | sed "s/.*package: name='//" | sed "s/'.*\$//"); \
LABEL=\$(echo \$INFO | sed "s/.*application: label='//" | sed "s/'.*\$//"); if [ -z "\$LABEL" ]; then LABEL="\$PACKAGE"; fi; \
VERSION=\$(echo \$INFO | sed -e "s/.*versionName='//" -e "s/' .*//"); \
NAME=\$LABEL"_"\$VERSION".apk"; echo "\$NAME"; \
done;)
OFS=\$IFS; IFS=\$'\t\n'
for REMOTE in \$SERVER_LIST; do
INSTALLED=0
REMOTE_NAME=\$(echo \$REMOTE | sed 's/_.*//'); REMOTE_VER=\$(echo \$REMOTE | sed 's/^[^_]*_//g' | sed 's/[^0-9]*//g')
for LOCAL in \$LOCAL_LIST; do
LOCAL_NAME=\$(echo \$LOCAL | sed 's/_.*//'); LOCAL_VER=\$(echo \$LOCAL | sed 's/^[^_]*_//g' | sed 's/[^0-9]*//g')
if [ "\$REMOTE_NAME" == "\$LOCAL_NAME" ]; then INSTALLED=1; fi
if [ "\$REMOTE_NAME" == "\$LOCAL_NAME" ] && [ ! "\$REMOTE_VER" == "\$LOCAL_VER" ]; then echo remote=\$REMOTE ver=\$REMOTE_VER local=\$LOCAL ver=\$LOCAL_VER; fi
done
if [ "\$INSTALLED" == "0" ]; then echo "\$REMOTE"; fi
done
IFS=\$OFS
``````

As somebody asked how to do it without using aapt. It is also possible to extract apk info with apktool and a bit of scripting. This way is slower and not simple in android but will work on windows/mac or linux as long as you have working apktool setup.

``````#!/bin/sh
APK=/path/to/your.apk
TMPDIR=/tmp/apktool
rm -f -R \$TMPDIR
apktool d -q -f -s --force-manifest -o \$TMPDIR \$APK
APK=\$(basename \$APK)
VERSION=\$(cat \$TMPDIR/apktool.yml | grep "versionName" | sed -e "s/versionName: //")
LABEL=\$(cat \$TMPDIR/res/values/strings.xml | grep 'string name="title"' | sed -e 's/.*">//' -e 's/<.*//')
rm -f -R \$TMPDIR
echo \${LABEL}_\$(echo \$V).apk
``````

Also consider a drop folder on your server. Upload apks to it and a cron task renames and moves them to your update folder.

``````#!/bin/sh
# Drop Folder script for renaming APKs
# Read apk file from SRC folder and move it to TGT folder while changing filename to APKLABEL_APKVERSION.apk
# If an existing version of the APK exists in the target folder then script will remove it
# Define METHOD as "aapt" or "apktool" depending upon what is available on server

# Variables
METHOD="aapt"
SRC="/home/user/public_html/dropfolders/apk"
TGT="/home/user/public_html/apk"
if [ -d "\$SRC" ];then mkdir -p \$SRC
if [ -d "\$TGT" ]then mkdir -p \$TGT

# Functions
get_apk_filename () {
if [ "\$1" = "" ]; then return 1; fi
local A="\$1"
case \$METHOD in
"apktool")
local D=/tmp/apktool
rm -f -R \$D
apktool d -q -f -s --force-manifest -o \$D \$A
local A=\$(basename \$A)
local V=\$(cat \$D/apktool.yml | grep "versionName" | sed -e "s/versionName: //")
local T=\$(cat \$D/res/values/strings.xml | grep 'string name="title"' | sed -e 's/.*">//' -e 's/<.*//')
rm -f -R \$D<commands>
;;
"aapt")
local A=\$(aapt dump badging \$A | grep -e "application-label:" -e "VersionName")
local V=\$(echo \$A | sed -e "s/.*versionName='//" -e "s/' .*//")
local T=\$(echo \$A | sed -e "s/.*application-label:'//" -e "s/'.*//")
;;
esac
echo \${T}_\$(echo \$V).apk
}

# Begin script
for APK in \$(ls "\$SRC"/*.apk); do
APKNAME=\$(get_apk_filename "\$APK")
rm -f \$TGT/\$(echo APKNAME | sed "s/_.*//")_*.apk
mv "\$APK" "\$TGT"/\$APKNAME
done
``````

### How to redirect from one URL to another URL?

``````location.href = "Pagename.html";
``````

### How to check not in array element

``````\$array1 = "Orange";
\$array2 = array("Apple","Grapes","Orange","Pineapple");
if(in_array(\$array1,\$array2)){
echo \$array1.' exists in array2';
}else{
echo \$array1.'does not exists in array2';
}
``````

### How do you get the current text contents of a QComboBox?

PyQt4 can be forced to use a new API in which QString is automatically converted to and from a Python object:

``````import sip
sip.setapi('QString', 2)
``````

With this API, `QtCore.QString` class is no longer available and `self.ui.comboBox.currentText()` will return a Python string or unicode object.

See Selecting Incompatible APIs from the doc.

Here is a simple threading example for Android. It's very basic but it should help you to get a perspective.

Android code - Main.java

``````package test12.tt;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Test12Activity extends Activity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView txt1 = (TextView) findViewById(R.id.sm);

public void run(){
}
}).start();

}
}
``````

Android application xml - main.xml

``````<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView
android:id = "@+id/sm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"/>

</LinearLayout>
``````

### hash function for string

I have tried these hash functions and got the following result. I have about 960^3 entries, each 64 bytes long, 64 chars in different order, hash value 32bit. Codes from here.

``````Hash function    | collision rate | how many minutes to finish
==============================================================
MurmurHash3      |           6.?% |                      4m15s
Jenkins One..    |           6.1% |                      6m54s
Bob, 1st in link |          6.16% |                      5m34s
SuperFastHash    |            10% |                      4m58s
bernstein        |            20% |       14s only finish 1/20
one_at_a_time    |          6.16% |                       7m5s
crc              |          6.16% |                      7m56s
``````

One strange things is that almost all the hash functions have 6% collision rate for my data.

### Case insensitive comparison NSString

Try this method

``````- (NSComparisonResult)caseInsensitiveCompare:(NSString *)aString
``````

### Combine a list of data frames into one data frame by row

An updated visual for those wanting to compare some of the recent answers (I wanted to compare the purrr to dplyr solution). Basically I combined answers from @TheVTM and @rmf.

Code:

``````library(microbenchmark)
library(data.table)
library(tidyverse)

dflist <- vector(length=10,mode="list")
for(i in 1:100)
{
dflist[[i]] <- data.frame(a=runif(n=260),b=runif(n=260),
c=rep(LETTERS,10),d=rep(LETTERS,10))
}

mb <- microbenchmark(
dplyr::bind_rows(dflist),
data.table::rbindlist(dflist),
purrr::map_df(dflist, bind_rows),
do.call("rbind",dflist),
times=500)

ggplot2::autoplot(mb)
``````

Session Info:

``````sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
``````

Package Versions:

``````> packageVersion("tidyverse")
[1] ‘1.1.1’
> packageVersion("data.table")
[1] ‘1.10.0’
``````

### Enabling refreshing for specific html elements only

Try this:

_x000D_
_x000D_
``````function reload(){_x000D_
var container = document.getElementById("yourDiv");_x000D_
var content = container.innerHTML;_x000D_
container.innerHTML= content; _x000D_
_x000D_
//this line is to watch the result in console , you can remove it later _x000D_
console.log("Refreshed"); _x000D_
}``````
_x000D_
``````<a href="javascript: reload()">Click to Reload</a>_x000D_
<div id="yourDiv">The content that you want to refresh/reload</div>``````
_x000D_
_x000D_
_x000D_

Hope it works. Let me know

### How to go to each directory and execute a command?

If the toplevel folder is known you can just write something like this:

``````for dir in `ls \$YOUR_TOP_LEVEL_FOLDER`;
do
for subdir in `ls \$YOUR_TOP_LEVEL_FOLDER/\$dir`;
do
\$(PLAY AS MUCH AS YOU WANT);
done
done
``````

On the \$(PLAY AS MUCH AS YOU WANT); you can put as much code as you want.

Note that I didn't "cd" on any directory.

Cheers,

### Run Android studio emulator on AMD processor

Tuesday, December 3, 2019

Via AMD Hypervisor, we added support for running the emulator on AMD CPUs on Windows:

• With CPU acceleration
• Without requiring Hyper-V
• With speed on par with HAXM

### What is a JavaBean exactly?

A Java Bean is a component or the basic building block in the JavaBeans architecture. The JavaBeans architecture is a component architecture that benefits from reusability and interoperability of a component-based approach.

A valid component architecture should allow programs to be assembled from software building blocks (Beans in this case), perhaps provided by different vendors and also make it possible for an architect / developer to select a component (Bean), understand its capabilities, and incorporate it into an application.

Since classes/objects are the basic building blocks of an OOP language like Java, they are the natural contenders for being the Bean in the JavaBeans architecture.

The process of converting a plain Java class to a Java bean is actually nothing more than making it a reusable and interoperable component. This would translate into a Java class having abilities like:

1. controlling the properties, events, and methods of a class that are exposed to another application. (You can have a BeanInfo class that reports only those properties, events and methods that the external application needs.)
2. persistence (being serialisable or externizable - this would also imply having no-argument constructors, using transient for fields)
3. ability to register for events and also to generate events (e.g., making use of bound and constraint properties)
4. customizers (to customise the Bean via GUIs or by providing documentation)

In order for a Java class to be termed a Java bean it is not necessary that they need to possess all the above abilities. Instead, it implies to implement a subset of the above relevant to the context (e.g., a bean in a certain framework may not need customizers, some other bean may not need bound and constrained properties, etc.)

Almost all leading frameworks and libraries in Java adhere to the JavaBeans architecture implicitly, in order to reap the above benefits.

### How to insert data into SQL Server

I think you lack to pass `Connection` object to your `command` object. and it is much better if you will use `command` and `parameters` for that.

``````using (SqlConnection connection = new SqlConnection("ConnectionStringHere"))
{
using (SqlCommand command = new SqlCommand())
{
command.Connection = connection;            // <== lacking
command.CommandType = CommandType.Text;
command.CommandText = "INSERT into tbl_staff (staffName, userID, idDepartment) VALUES (@staffName, @userID, @idDepart)";

try
{
connection.Open();
int recordsAffected = command.ExecuteNonQuery();
}
catch(SqlException)
{
// error here
}
finally
{
connection.Close();
}
}
}
``````

### sql query to return differences between two tables

Simple variation on @erikkallen answer that shows which table the row is present in:

``````(   SELECT 'table1' as source, * FROM table1
EXCEPT
SELECT * FROM table2)
UNION ALL
(   SELECT 'table2' as source, * FROM table2
EXCEPT
SELECT * FROM table1)
``````

If you get an error

All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.

then it may help to add

``````(   SELECT 'table1' as source, * FROM table1
EXCEPT
SELECT 'table1' as source, * FROM table2)
UNION ALL
(   SELECT 'table2' as source, * FROM table2
EXCEPT
SELECT 'table2' as source, * FROM table1)
``````

### log4j:WARN No appenders could be found for logger in web.xml

You may get this error when your `log4j.properties` are not present in the classpath.

This means you have to move the `log4j.properties` into the src folder and set the output to the bin folder so that at run time `log4j.properties` will read from the bin folder and your error will be resolved easily.

### Ruby 'require' error: cannot load such file

Just do this:

``````require_relative 'tokenizer'
``````

If you put this in a Ruby file that is in the same directory as `tokenizer.rb`, it will work fine no matter what your current working directory (CWD) is.

#### Explanation of why this is the best way

The other answers claim you should use `require './tokenizer'`, but that is the wrong answer, because it will only work if you run your Ruby process in the same directory that `tokenizer.rb` is in. Pretty much the only reason to consider using `require` like that would be if you need to support Ruby 1.8, which doesn't have `require_relative`.

The `require './tokenizer'` answer might work for you today, but it unnecessarily limits the ways in which you can run your Ruby code. Tomorrow, if you want to move your files to a different directory, or just want to start your Ruby process from a different directory, you'll have to rethink all of those `require` statements.

Using `require` to access files that are on the load path is a fine thing and Ruby gems do it all the time. But you shouldn't start the argument to `require` with a `.` unless you are doing something very special and know what you are doing.

When you write code that makes assumptions about its environment, you should think carefully about what assumptions to make. In this case, there are up to three different ways to require the `tokenizer` file, and each makes a different assumption:

1. `require_relative 'path/to/tokenizer'`: Assumes that the relative path between the two Ruby source files will stay the same.
2. `require 'path/to/tokenizer'`: Assumes that `path/to/tokenizer` is inside one of the directories on the load path (`\$LOAD_PATH`). This generally requires extra setup, since you have to add something to the load path.
3. `require './path/to/tokenizer'`: Assumes that the relative path from the Ruby process's current working directory to `tokenizer.rb` is going to stay the same.

I think that for most people and most situations, the assumptions made in options #1 and #2 are more likely to hold true over time.

### How can I include css files using node, express, and ejs?

I have used the following steps to resolve this problem

1. create new folder (static) and move all js and css file into this folder.
4. restart server to view impact after changes.

### Get variable from PHP to JavaScript

I think the easiest route is to include the jQuery javascript library in your webpages, then use JSON as format to pass data between the two.

In your HTML pages, you can request data from the PHP scripts like this:

``````\$.getJSON('http://foo/bar.php', {'num1': 12, 'num2': 27}, function(e) {
alert('Result from PHP: ' + e.result);
});
``````

In bar.php you can do this:

``````\$num1 = \$_GET['num1'];
\$num2 = \$_GET['num2'];
echo json_encode(array("result" => \$num1 * \$num2));
``````

This is what's usually called AJAX, and it is useful to give web pages a more dynamic and desktop-like feel (you don't have to refresh the entire page to communicate with PHP).

Other techniques are simpler. As others have suggested, you can simply generate the variable data from your PHP script:

``````\$foo = 123;
echo "<script type=\"text/javascript\">\n";
echo "var foo = \${foo};\n";
echo "</script>\n";
``````

Most web pages nowadays use a combination of the two.

### How do I measure separate CPU core usage for a process?

The `ps` solution was nearly what I needed and with some bash thrown in does exactly what the original question asked for: to see per-core usage of specific processes

This shows per-core usage of multi-threaded processes too.

Use like: cpustat `pgrep processname` `pgrep otherprocessname` ...

``````#!/bin/bash

pids=()
while [ \$# != 0 ]; do
pids=("\${pids[@]}" "\$1")
shift
done

if [ -z "\${pids[0]}" ]; then
echo "Usage: \$0 <pid1> [pid2] ..."
exit 1
fi

for pid in "\${pids[@]}"; do
if [ ! -e /proc/\$pid ]; then
echo "Error: pid \$pid doesn't exist"
exit 1
fi
done

while [ true ]; do
echo -e "\033[H\033[J"
for pid in "\${pids[@]}"; do
ps -p \$pid -L -o pid,tid,psr,pcpu,comm=
done
sleep 1
done
``````

Note: These stats are based on process lifetime, not the last X seconds, so you'll need to restart your process to reset the counter.

### Sorting Values of Set

Strings are sorted lexicographically. The behavior you're seeing is correct.

Define your own comparator to sort the strings however you prefer.

It would also work the way you're expecting (5 as the first element) if you changed your collections to Integer instead of using String.

### #1071 - Specified key was too long; max key length is 767 bytes

Replace `utf8mb4` with `utf8` in your import file.

### Free Rest API to retrieve current datetime as string (timezone irrelevant)

TimezoneDb provides a free API: http://timezonedb.com/api

GenoNames also has a RESTful API available to get the current time for a given location: http://www.geonames.org/export/ws-overview.html.

You can use Greenwich, UK if you'd like GMT.

### What does the 'b' character do in front of a string literal?

It turns it into a `bytes` literal (or `str` in 2.x), and is valid for 2.6+.

The `r` prefix causes backslashes to be "uninterpreted" (not ignored, and the difference does matter).

### Android: View.setID(int id) programmatically - how to avoid ID conflicts?

The 'Compat' library now also supports the `generateViewId()` method for API levels prior 17.

Just make sure to use a version of the `Compat` library that is `27.1.0+`

For example, in your `build.gradle` file, put :

`implementation 'com.android.support:appcompat-v7:27.1.1`

Then you can simply use the `generateViewId()` from the `ViewCompat` class instead of the `View` class as follow:

```//Will assign a unique ID myView.id = ViewCompat.generateViewId() ```

Happy coding !

### Private pages for a private Github repo

According to GitHub Pages documentation:

All project repositories are ready to use the generator for publishing. However, please note that private repositories will publish pages that are public.

So no, at this time there is no way to create private GitHub pages from a private GitHub repository.

EDIT:

# A simple workaround

A workaround for some situations that might be helpful is to simply rename the repo to something other than the GitHub pages format while you want it to be private (for example in a development phase) and when ready to make it public then correct the name. Obviously this still doesn't help if you are looking for a way to publish pages that have authentication, but if you just want to hide a GH pages project while it's in progress, this could help.

# An actual Auth Wrapper for Jekyll (GitHub pages)

Alternatively, there is a project called Jekyll Auth that GitHubber @benbalter made for such use. Jekyll Auth provides a basic authentication wrapper for jekyll projects, including GitHub pages. See the repo's README for use.

### GridLayout (not GridView) how to stretch all children evenly

``````       <GridLayout
android:layout_width="match_parent"
android:layout_weight="3"
android:columnCount="2"
android:rowCount="3"
android:background="@drawable/background_down"
android:layout_height="0dp">

<androidx.cardview.widget.CardView
android:layout_height="0dp"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_margin="10dp"
android:elevation="10dp"
>
<LinearLayout
android:weightSum="3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<ImageView
android:layout_weight="2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="15dp"
android:src="@drawable/user" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Users"
android:textSize="16sp"
android:layout_marginStart="15dp"
android:layout_marginLeft="15dp" />
</LinearLayout>

</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_height="0dp"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_margin="10dp"
android:elevation="10dp"
>
<LinearLayout
android:weightSum="3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<ImageView
android:layout_weight="2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="15dp"

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:layout_marginStart="15dp"
android:layout_marginLeft="15dp" />
</LinearLayout>

</androidx.cardview.widget.CardView>

<androidx.cardview.widget.CardView
android:layout_height="0dp"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_margin="10dp"
android:elevation="10dp"
>
<LinearLayout
android:weightSum="3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<ImageView
android:layout_weight="2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="15dp"
android:src="@drawable/newspaper" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Report"
android:textSize="16sp"
android:layout_marginStart="15dp"
android:layout_marginLeft="15dp" />
</LinearLayout>

</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_height="0dp"
android:layout_width="0dp"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_margin="10dp"
android:elevation="10dp"
>
<LinearLayout
android:weightSum="3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<ImageView
android:layout_weight="2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="15dp"
android:src="@drawable/settings" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Settings"
android:textSize="16sp"
android:layout_marginStart="15dp"
android:layout_marginLeft="15dp" />
</LinearLayout>

</androidx.cardview.widget.CardView>

</GridLayout>
``````

you can find the whole tutorials here, Android Grid Layout With CardView and OnItemClickListener

### mongodb/mongoose findMany - find all documents with IDs listed in array

This code works for me just fine as of mongoDB v4.2 and mongoose 5.9.9:

``````const Ids = ['id1','id2','id3']
const results = await Model.find({ _id: Ids})
``````

and the Ids can be of type `ObjectId` or `String`

### Converting Object to JSON and JSON to Object in PHP, (library like Gson for Java)

This should do the trick!

``````// convert object => json
\$json = json_encode(\$myObject);

// convert json => object
\$obj = json_decode(\$json);
``````

Here's an example

``````\$foo = new StdClass();
\$foo->hello = "world";
\$foo->bar = "baz";

\$json = json_encode(\$foo);
echo \$json;
//=> {"hello":"world","bar":"baz"}

print_r(json_decode(\$json));
// stdClass Object
// (
//   [hello] => world
//   [bar] => baz
// )
``````

If you want the output as an Array instead of an Object, pass `true` to `json_decode`

``````print_r(json_decode(\$json, true));
// Array
// (
//   [hello] => world
//   [bar] => baz
// )
``````

### Passing in class names to react components

Just for the reference, for stateless components:

``````// ParentComponent.js
import React from 'react';
import { ChildComponent } from '../child/ChildComponent';

export const ParentComponent = () =>
<div className="parent-component">
<ChildComponent className="parent-component__child">
...
</ChildComponent>
</div>

// ChildComponent.js
import React from 'react';

export const ChildComponent = ({ className, children }) =>
<div className={`some-css-className \${className}`}>
{children}
</div>
``````

Will render:

``````<div class="parent-component">
<div class="some-css-className parent-component__child">
...
</div>
</div>
``````

### What is setContentView(R.layout.main)?

Set the activity content from a layout resource. The resource will be inflated, adding all top-level views to the activity.

• Activity is basically a empty window
• SetContentView is used to fill the window with the UI provided from layout file incase of setContentView(R.layout.somae_file).
• Here layoutfile is inflated to view and added to the Activity context(Window).

### Access images inside public folder in laravel

Just use public_path() it will find public folder and address it itself.

``````<img src=public_path().'/images/imagename.jpg' >
``````

### Delete all rows in table

You can rename the table in question, create a table with an identical schema, and then drop the original table at your leisure.

See the MySQL 5.1 Reference Manual for the [`RENAME TABLE`][1] and [`CREATE TABLE`][2] commands.

``````RENAME TABLE tbl TO tbl_old;

CREATE TABLE tbl LIKE tbl_old;

DROP TABLE tbl_old; -- at your leisure
``````

This approach can help minimize application downtime.

Go to https://university.xamarin.com/resources/working-with-android-emulators . Scroll down to the "Installing Google Play Services" section. Step by step walk through there.

Directly plagarized from xamarin here so I don't get dinged for linking and not including solution. Posting this as I found the hit in stack before I found the solution that worked across the board on the xamarin page.

1. Start the Xamarin Android Player and run one of the supplied images, the following assumes you have started the KitKat Nexus 4 image. Download the proper Google Play Services .zip file from www.teamandroid.com/gapps/ . Make sure to download the image appropriate for your version of Android.
2. Drag the .zip file onto the running emulator and drop it to install the component, here we show it on Mac OS X, but the same mechanism is used in Windows. You will get a prompt to install the package onto the emulator which indicates the image will be restarted
3. Once it restarts, you will get a notification that installation is completed, and the image will now have Google Maps, Google+ and support for the Google Play store. Note that some things do not work correctly and you may get a few errors from some of the services, but you can safely dismiss these and continue the instructions.
4. Next, you will need to associate a Google account so that you can update the services using the Google Play store. It should prompt you for this, but if it does not, you can go into the Google Settings and add a new account. Once you've added the account, you can then update the Google apps by opening the Google Play store application and going into settings from the side bar menu.
5. Select Settings and then scroll down to the Build Version number information and double-tap on it until it tells you it is either up-to-date, or that it will download and install a new version.
6. Power off the device (press and hold the power button in the toolbar on the right) and restart it. Once it restarts, it should indicate that it needs to update the Google Play services, tapping the notification will open the Google Play Store and install the latest version

Now you can run applications that depend on Google Maps in the Xamarin Android Player.

According to the Angular team and this Github issue:

we now have \$viewContentLoaded and \$includeContentLoaded events that are emitted in ng-view and ng-include respectively. I think this is as close as one can get to knowing when we are done with the compilation.

Based on this, it seems this is currently not possible to do in a reliable way, otherwise Angular would have provided the event out of the box.

Bootstrapping the app implies running the digest cycle on the root scope, and there is also not a digest cycle finished event.

According to the Angular 2 design docs:

Because of multiple digests, it is impossible to determine and notify the component that the model is stable. This is because notification can further change data, which can restart the binding process.

According to this, the fact that this is not possible is one the reasons why the decision was taken to go for a rewrite in Angular 2.

### How to add Drop-Down list (<select>) programmatically?

Here's an ES6 version, conversion to vanilla JS shouldn't be too hard but I already have jQuery anyways:

_x000D_
_x000D_
``````function select(options, selected) {_x000D_
return Object.entries(options).reduce((r, [k, v]) => r.append(\$('<option>').val(k).text(v)), \$('<select>')).val(selected);_x000D_
}_x000D_
\$('body').append(select({'option1': 'label 1', 'option2': 'label 2'}, 'option2'));``````
_x000D_
``<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>``
_x000D_
_x000D_
_x000D_

### How to run test methods in specific order in JUnit4?

JUnit 5 update (and my opinion)

I think it's quite important feature for JUnit, if author of JUnit doesn't want the order feature, why?

By default, unit testing libraries don't try to execute tests in the order that occurs in the source file.
JUnit 5 as JUnit 4 work in that way. Why ? Because if the order matters it means that some tests are coupled between them and that is undesirable for unit tests.
So the `@Nested` feature introduced by JUnit 5 follows the same default approach.

But for integration tests, the order of the test method may matter since a test method may change the state of the application in a way expected by another test method. For example when you write an integration test for a e-shop checkout processing, the first test method to be executed is registering a client, the second is adding items in the basket and the last one is doing the checkout. If the test runner doesn't respect that order, the test scenario is flawed and will fail.
So in JUnit 5 (from the 5.4 version) you have all the same the possibility to set the execution order by annotating the test class with `@TestMethodOrder(OrderAnnotation.class)` and by specifying the order with `@Order(numericOrderValue)` for the methods which the order matters.

For example :

``````@TestMethodOrder(OrderAnnotation.class)
class FooTest {

@Order(3)
@Test
void checkoutOrder() {
System.out.println("checkoutOrder");
}

@Order(2)
@Test
}

@Order(1)
@Test
}
}
``````

Output :

checkoutOrder

By the way, specifying `@TestMethodOrder(OrderAnnotation.class)` looks like not needed (at least in the 5.4.0 version I tested).

Side note
About the question : is JUnit 5 the best choice to write integration tests ? I don't think that it should be the first tool to consider (Cucumber and co may often bring more specific value and features for integration tests) but in some integration test cases, the JUnit framework is enough. So that is a good news that the feature exists.

### Debug vs Release in CMake

A lot of the answers here are out of date/bad. So I'm going to attempt to answer it better. Granted I'm answering this question in 2020, so it's expected things would change.

How do I run CMake for each target type (debug/release)?

First off Debug/Release are called configurations in cmake (nitpick).

If you are using a single configuration generator (Ninja/Unix-Makefiles)

Then you need a build folder for each configuration.

Like this:

``````# Configure the build
cmake -S . -B build/Debug -D CMAKE_BUILD_TYPE=Release

# Actually build the binaries
cmake --build build/Debug
``````

For multi-configuration generators it's slightly different (Ninja Multi-Config, Visual Studio)

``````# Configure the build
cmake -S . -B build

# Actually build the binaries
cmake --build build --config Debug
``````

If you are wondering why this is necessary it's because cmake isn't a build system. It's a meta-build system (IE a build system that build's build systems). This is basically the result of handling build systems that support multiple-configurations in 1 build. If you'd like a deeper understanding I'd suggest reading a bit about cmake in Craig Scott's book "Professional CMake: A Practical Guide

How do I specify debug and release C/C++ flags using CMake?

The modern practice is to use target's and properties.

Here is an example:

``````add_library(foobar)

# Add this compile definition for debug builds, this same logic works for
target_compile_definitions(foobar PRIVATE
\$<\$<CONFIG:Debug>:
FOOBAR_DEBUG=1
>
)
``````

NOTE: How I'm using generator expressions to specify the configuration! Using CMAKE_BUILD_TYPE will result in bad builds for any multi-configuration generator!

Further more sometimes you need to set things globally and not just for one target. Use add_compile_definitions, add_compile_options, etc. Those functions support generator expressions. Don't use old style cmake unless you have to (that path is a land of nightmares)

How do I express that the main executable will be compiled with g++ and one nested library with gcc?

Your last question really doesn't make sense.

### What is the equivalent of "none" in django templates?

`None, False and True` all are available within template tags and filters. `None, False`, the empty string (`'', "", """"""`) and empty lists/tuples all evaluate to `False` when evaluated by `if`, so you can easily do

``````{% if profile.user.first_name == None %}
{% if not profile.user.first_name %}
``````

A hint: @fabiocerqueira is right, leave logic to models, limit templates to be the only presentation layer and calculate stuff like that in you model. An example:

``````# someapp/models.py
class UserProfile(models.Model):
user = models.OneToOneField('auth.User')
# other fields

def get_full_name(self):
if not self.user.first_name:
return
return ' '.join([self.user.first_name, self.user.last_name])

# template
{{ user.get_profile.get_full_name }}
``````

Hope this helps :)

It's common for other components to be listening to the change event, or for custom event handlers to be attached that may have side effects. Select2 does not have a custom event (like select2:update) that can be triggered other than change. You can rely on jQuery's event namespacing to limit the scope to Select2 though by triggering the *change.select2 event.

``````\$('#state').trigger('change.select2'); // Notify only Select2 of changes
``````

### How to transfer paid android apps from one google account to another google account

Google has this to say on transferring data between accounts.

It lists certain types of data that CAN be transferred and certain types of data that CAN NOT be transferred. Unfortunately Google Play Apps falls into the NOT category.

It's conveniently titled: "Moving Product Data"

### get the latest fragment in backstack

Actually there's no latest fragment added to the stack because you can add several or fragments to the stack in a single transaction or just remove fragments without adding a new one.

If you really want to have a stack of fragments and to be able to access a fragment by its index in the stack, you'd better have an abstraction layer over the `FragmentManager` and its backstack. Here's how you can do it:

``````public class FragmentStackManager {
private final FragmentManager fragmentManager;
private final int containerId;

private final List<Fragment> fragments = new ArrayList<>();

public FragmentStackManager(final FragmentManager fragmentManager,
final int containerId) {
this.fragmentManager = fragmentManager;
this.containerId = containerId;
}

public Parcelable saveState() {
final Bundle state = new Bundle(fragments.size());
for (int i = 0, count = fragments.size(); i < count; ++i) {
fragmentManager.putFragment(state, Integer.toString(i), fragments.get(i));
}
return state;
}

public void restoreState(final Parcelable state) {
if (state instanceof Bundle) {
final Bundle bundle = (Bundle) state;
int index = 0;
while (true) {
final Fragment fragment =
fragmentManager.getFragment(bundle, Integer.toString(index));
if (fragment == null) {
break;
}

index += 1;
}
}
}

public void replace(final Fragment fragment) {
fragmentManager.popBackStackImmediate(
null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
fragmentManager.beginTransaction()
.replace(containerId, fragment)
.commit();
fragmentManager.executePendingTransactions();

fragments.clear();
}

public void push(final Fragment fragment) {
fragmentManager
.beginTransaction()
.replace(containerId, fragment)
.commit();
fragmentManager.executePendingTransactions();

}

public boolean pop() {
if (isEmpty()) {
return false;
}

fragmentManager.popBackStackImmediate();

fragments.remove(fragments.size() - 1);
return true;
}

public boolean isEmpty() {
return fragments.isEmpty();
}

public int size() {
return fragments.size();
}

public Fragment getFragment(final int index) {
return fragments.get(index);
}
}
``````

Now instead of adding and removing fragments by calling `FragmentManager` directly, you should use `push()`, `replace()`, and `pop()` methods of `FragmentStackManager`. And you will be able to access the topmost fragment by just calling `stack.get(stack.size() - 1)`.

But if you like hacks, I have to other ways of doing similar things. The only thing I have to mention is that these hacks will work only with support fragments.

The first hack is just to get all active fragments added to the fragment manager. If you just replace fragments one by one and pop the from the stack this method will return the topmost fragment:

``````public class BackStackHelper {
public static List<Fragment> getTopFragments(
final FragmentManager fragmentManager) {
final List<Fragment> fragments = fragmentManager.getFragments();
final List<Fragment> topFragments = new ArrayList<>();

for (final Fragment fragment : fragments) {
if (fragment != null && fragment.isResumed()) {
}
}

}
}
``````

The second approach is event more hacky and allows you to get all fragments added in the last transaction for which `addToBackStack` has been called:

``````package android.support.v4.app;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class BackStackHelper {
public static List<Fragment> getTopFragments(
final FragmentManager fragmentManager) {
if (fragmentManager.getBackStackEntryCount() == 0) {
return Collections.emptyList();
}

final List<Fragment> fragments = new ArrayList<>();

final int count = fragmentManager.getBackStackEntryCount();
final BackStackRecord record =
(BackStackRecord) fragmentManager.getBackStackEntryAt(count - 1);
while (op != null) {
switch (op.cmd) {
case BackStackRecord.OP_REPLACE:
case BackStackRecord.OP_SHOW:
case BackStackRecord.OP_ATTACH:
}
op = op.next;
}

return fragments;
}
}
``````

Please notice that in this case you have to put this class into `android.support.v4.app` package.

### css h1 - only as wide as the text

An easy fix for this is to float your H1 element left:

``````.centercol h1{
background: #F2EFE9;
border-left: 3px solid #C6C1B8;
color: #006BB6;
display: block;
float: left;
font-weight: normal;
font-size: 18px;
}
``````

I have put together a simple jsfiddle example that shows the effect of the "float: left" style on the width of your H1 element for anyone looking for a more generic answer:

http://jsfiddle.net/zmEBt/1/

### What does "to stub" mean in programming?

A stub, in this context, means a mock implementation.

That is, a simple, fake implementation that conforms to the interface and is to be used for testing.

### Entity Framework rollback and remove bad migration

For those using EF Core with ASP.NET Core v1.0.0 I had a similar problem and used the following commands to correct it (@DavidSopko's post pointed me in the right direction, but the details are slightly different for EF Core):

``````Update-Database <Name of last good migration>
Remove-Migration
``````

For example, in my current development the command became

``````PM> Update-Database CreateInitialDatabase
Done.
PM> Remove-Migration
Done.
PM>
``````

The Remove-Migration will remove the last migration you applied. If you have a more complex scenario with multiple migrations to remove (I only had 2, the initial and the bad one), I suggest you test the steps in a dummy project.

There doesn't currently appear to be a Get-Migrations command in EF Core (v1.0.0) so you must look in your migrations folder and be familiar with what you have done. However, there is a nice help command:

``````PM> get-help entityframework
``````

Refreshing dastabase in VS2015 SQL Server Object Explorer, all of my data was preserved and the migration that I wanted to revert was gone :)

Initially I tried Remove-Migration by itself and found the error command confusing:

System.InvalidOperationException: The migration '...' has already been applied to the database. Unapply it and try again. If the migration has been applied to other databases, consider reverting its changes using a new migration.

There are already suggestions on improving this wording, but I'd like the error to say something like this:

Run Update-Database (last good migration name) to revert the database schema back to to that state. This command will unapply all migrations that occurred after the migration specified to Update-Database. You may then run Remove-Migration (migration name to remove)

Output from the EF Core help command follows:

`````` PM> get-help entityframework
_/\__
---==/    \\
___  ___   |.    \|\
| __|| __|  |  )   \\\
| _| | _|   \_/ |  //|\\
|___||_|       /   \\\/\\

TOPIC

SHORT DESCRIPTION
Provides information about Entity Framework Core commands.

LONG DESCRIPTION
This topic describes the Entity Framework Core commands. See https://docs.efproject.net for information on Entity Framework Core.

The following Entity Framework cmdlets are included.

Cmdlet                      Description
--------------------------  ---------------------------------------------------

Remove-Migration            Removes the last migration.

Scaffold-DbContext          Scaffolds a DbContext and entity type classes for a specified database.

Script-Migration            Generates a SQL script from migrations.

Update-Database             Updates the database to a specified migration.

Use-DbContext               Sets the default DbContext to use.

Remove-Migration
Scaffold-DbContext
Script-Migration
Update-Database
Use-DbContext
``````

### Delete a database in phpMyAdmin

The delete / drop option in operations is not present in my version.

Go to CPanel -> MySQLDatabase (icon next to PhPMyAdmin) -> check the DB to be delete -> delete.

### Problems when trying to load a package in R due to rJava

If you have this issue with macOS, there is no easy way here: ( Especially, when you want to use R3.4. I have been there already.

R 3.4, rJava, macOS and even more mess

For R3.3 it's a little bit easier (R3.3 was compiled using different compiler).

R, Java, rJava and macOS adventures

### Wrap long lines in Python

I'm surprised no one mentioned the implicit style above. My preference is to use parens to wrap the string while lining the string lines up visually. Personally I think this looks cleaner and more compact than starting the beginning of the string on a tabbed new line.

Note that these parens are not part of a method call — they're only implicit string literal concatenation.

Python 2:

``````def fun():
print ('{0} Here is a really '
'long sentence with {1}').format(3, 5)
``````

Python 3 (with parens for print function):

``````def fun():
print(('{0} Here is a really '
'long sentence with {1}').format(3, 5))
``````

Personally I think it's cleanest to separate concatenating the long string literal from printing it:

``````def fun():
s = ('{0} Here is a really '
'long sentence with {1}').format(3, 5)
print(s)
``````

### How do I check if file exists in Makefile so I can delete it?

One line solution:

``````   [ -f ./myfile ] && echo exists
``````

One line solution with error action:

``````   [ -f ./myfile ] && echo exists || echo not exists
``````

Example used in my `make clean` directives:

``````clean:
@[ -f ./myfile ] && rm myfile || true
``````

And `make clean` works without error messages!

### The maximum recursion 100 has been exhausted before statement completion

Specify the maxrecursion option at the end of the query:

``````...
from EmployeeTree
option (maxrecursion 0)
``````

That allows you to specify how often the CTE can recurse before generating an error. Maxrecursion 0 allows infinite recursion.

### PHP validation/regex for URL

Use the `filter_var()` function to validate whether a string is URL or not:

``````var_dump(filter_var('example.com', FILTER_VALIDATE_URL));
``````

It is bad practice to use regular expressions when not necessary.

EDIT: Be careful, this solution is not unicode-safe and not XSS-safe. If you need a complex validation, maybe it's better to look somewhere else.

### How do you delete an ActiveRecord object?

If you are using Rails 5 and above, the following solution will work.

``````#delete based on id
user_id = 50
User.find(id: user_id).delete_all

#delete based on condition
threshold_age = 20
User.where(age: threshold_age).delete_all
``````

https://www.rubydoc.info/docs/rails/ActiveRecord%2FNullRelation:delete_all

### Detecting value change of input[type=text] in jQuery

just remenber that 'on' is recomended over the 'bind' function, so always try to use a event listener like this:

``````\$("#myTextBox").on("change paste keyup", function() {
});
``````

### Responsive image map

Check out the image-map plugin on Github. It works both with vanilla JavaScript and as a jQuery plugin.

``````\$('img[usemap]').imageMap();     // jQuery

ImageMap('img[usemap]')          // JavaScript
``````

Check out the demo.

### Android: Is it possible to display video thumbnails?

I really suggest you to use the Glide library. It's among the most efficient way to generate and display a video thumbnail for a local video file.

``````compile 'com.github.bumptech.glide:glide:3.7.0'
``````

And it will become as simple as :

``````String filePath = "/storage/emulated/0/Pictures/example_video.mp4";

Glide
.with( context )
.load( Uri.fromFile( new File( filePath ) ) )
.into( imageViewGifAsBitmap );
``````

Cheers !

### How do I encode/decode HTML entities in Ruby?

I think Nokogiri gem is also a good choice. It is very stable and has a huge contributing community.

Samples:

``````a = Nokogiri::HTML.parse "foo&nbsp;b&auml;r"
a.text
=> "foo bär"
``````

or

``````a = Nokogiri::HTML.parse "&iexcl;I&#39;m highly&nbsp;annoyed with character references!"
a.text
=> "¡I'm highly annoyed with character references!"
``````

### PHP Checking if the current date is before or after a set date

``````if(strtotime(\$db_date) > time()) {
echo \$db_date;
} else {
}
``````

### Reverse / invert a dictionary mapping

I would do it that way in python 2.

``````inv_map = {my_map[x] : x for x in my_map}
``````

### Class Diagrams in VS 2017

In addition to @ericgol's answer: In the French version of Visual Studio Community 2017, type "Concepteur de classes" in the search bar.

### How do I conditionally add attributes to React components?

If you use ECMAScript 6, you can simply write like this.

``````// First, create a wrap object.
const wrap = {
[variableName]: true
}
// Then, use it
<SomeComponent {...{wrap}} />
``````

### How to make readonly all inputs in some div in Angular2?

If using reactive forms, you can also disable the entire form or any sub-set of controls in a FormGroup with `myFormGroup.disable()`.

### Case insensitive regular expression without re.compile?

In imports

``````import re
``````

In run time processing:

``````RE_TEST = r'test'
if re.match(RE_TEST, 'TeSt', re.IGNORECASE):
``````

It should be mentioned that not using `re.compile` is wasteful. Every time the above match method is called, the regular expression will be compiled. This is also faulty practice in other programming languages. The below is the better practice.

In app initialization:

``````self.RE_TEST = re.compile('test', re.IGNORECASE)
``````

In run time processing:

``````if self.RE_TEST.match('TeSt'):
``````

### Creating temporary files in bash

`mktemp` is probably the most versatile, especially if you plan to work with the file for a while.

You can also use a process substitution operator `<()` if you only need the file temporarily as input to another command, e.g.:

``````\$ diff <(echo hello world) <(echo foo bar)
``````

### What are the most common font-sizes for H1-H6 tags

Headings are normally bold-faced; that has been turned off for this demonstration of size correspondence. MSIE and Opera interpret these sizes the same, but note that Gecko browsers and Chrome interpret Heading 6 as 11 pixels instead of 10 pixels/font size 1, and Heading 3 as 19 pixels instead of 18 pixels/font size 4 (though it's difficult to tell the difference even in a direct comparison and impossible in use). It seems Gecko also limits text to no smaller than 10 pixels.

### What does the DOCKER_HOST variable do?

Ok, I think I got it.

The client is the `docker` command installed into OS X.

The host is the Boot2Docker VM.

The daemon is a background service running inside Boot2Docker.

This variable tells the client how to connect to the daemon.

When starting Boot2Docker, the terminal window that pops up already has `DOCKER_HOST` set, so that's why `docker` commands work. However, to run Docker commands in other terminal windows, you need to set this variable in those windows.

Failing to set it gives a message like this:

``````\$ docker run hello-world
2014/08/11 11:41:42 Post http:///var/run/docker.sock/v1.13/containers/create:
dial unix /var/run/docker.sock: no such file or directory
``````

One way to fix that would be to simply do this:

``````\$ export DOCKER_HOST=tcp://192.168.59.103:2375
``````

But, as pointed out by others, it's better to do this:

``````\$ \$(boot2docker shellinit)
\$ docker run hello-world
Hello from Docker. [...]
``````

To spell out this possibly non-intuitive Bash command, running `boot2docker shellinit` returns a set of Bash commands that set environment variables:

``````export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/ddavison/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
``````

Hence running `\$(boot2docker shellinit)` generates those commands, and then runs them.

### Invalid syntax when using "print"?

You need parentheses:

``````print(2**100)
``````

### Change the value in app.config file dynamically

`````` XmlReaderSettings _configsettings = new XmlReaderSettings();

XmlDocument doc_config = new XmlDocument();

foreach (XmlNode RootName in doc_config.DocumentElement.ChildNodes)
{
if (RootName.LocalName == "appSettings")
{
if (RootName.HasChildNodes)
{
foreach (XmlNode _child in RootName.ChildNodes)
{
if (_child.Attributes["key"].Value == "HostName")
{
if (_child.Attributes["value"].Value == "false")
_child.Attributes["value"].Value = "true";
}
}
}
}
}
doc_config.Save(ConfigFilePath);
``````

### How to set gradle home while importing existing project in Android studio

OSX (Less han two minutes)

1. Open terminal
2. Check if Gradle installed `gradle --version`, if so, goto step 4
3. If not `brew install gradle` and Goto step 2
4. Copy `/usr/local/opt/gradle/libexec/`
5. Paste it in Import Project Window in Android Studio > Gradle Home
6. Important, Celebrate!

### IntelliJ, can't start simple web application: Unable to ping server at localhost:1099

In windows environment just check the PATH environment variable if Oracle JRE runtime refreshed the path and put himself at the very beginning of the path. In this case even if the JAVA_HOME AND JRE_HOME points to the correct JDK, the JRE will have precedence. And this case IntelliJ will not start Tomcat instance with the mentioned error message.

### "Use of undeclared type" in Swift, even though type is internal, and exists in same module

as others mentioned well and in this thread

use of unneeded swift files in "copy bundle resources"

### Linux : Search for a Particular word in a List of files under a directory

This is a very frequent task in linux. I use grep -rn '' . all the time to do this. -r for recursive (folder and subfolders) -n so it gives the line numbers, the dot stands for the current directory.

``````grep -rn '<word or regex>' <location>
``````

do a

``````man grep
``````

for more options

### Converting VS2012 Solution to VS2010

Simple solution which worked for me.

1. Install Vim editor for windows.
2. Open VS 2012 project solution using Vim editor and modify the version targetting Visual studio solution 10.
3. Open solution with Visual studio 2010.. and continue with your work ;)

### What is "pom" packaging in maven?

pom packaging is simply a specification that states the primary artifact is not a war or jar, but the pom.xml itself.

Often it is used in conjunction with "modules" which are typically contained in sub-directories of the project in question; however, it may also be used in certain scenarios where no primary binary was meant to be built, all the other important artifacts have been declared as secondary artifacts

Think of a "documentation" project, the primary artifact might be a PDF, but it's already built, and the work to declare it as a secondary artifact might be desired over the configuration to tell maven how to build a PDF that doesn't need compiled.

### Change image in HTML page every few seconds

You can load the images at the beginning and change the css attributes to show every image.

``````var images = array();
for( url in your_urls_array ){
var img = document.createElement( "img" );
//here the image attributes ( width, height, position, etc )
images.push( img );
}

function player( position )
{
images[position-1].style.display = "none" //be careful working with the first position
images[position].style.display = "block";
//reset position if needed
timer = setTimeOut( "player( position )", time );
}
``````

### How to get relative path from absolute path

Use:

``````RelPath = AbsPath.Replace(ApplicationPath, ".")
``````

### Line break in SSRS expression

You Can Use This One

``````="Line 1" & "<br>" & "Line 2"
``````

### MS SQL 2008 - get all table names and their row counts in a DB

Posted for completeness.

If you are looking for row count of all tables in all databases (which was what I was looking for) then I found this combination of this and this to work. No idea whether it is optimal or not:

``````SET NOCOUNT ON
DECLARE @AllTables table (DbName sysname,SchemaName sysname, TableName sysname, RowsCount int )
DECLARE
@SQL nvarchar(4000)
SET @SQL='SELECT ''?'' AS DbName, s.name AS SchemaName, t.name AS TableName, p.rows AS RowsCount FROM [?].sys.tables t INNER JOIN sys.schemas s ON t.schema_id=s.schema_id INNER JOIN [?].sys.partitions p ON p.OBJECT_ID = t.OBJECT_ID'

INSERT INTO @AllTables (DbName, SchemaName, TableName, RowsCount)
EXEC sp_msforeachdb @SQL
SET NOCOUNT OFF
SELECT DbName, SchemaName, TableName, SUM(RowsCount), MIN(RowsCount), SUM(1)
FROM @AllTables
WHERE RowsCount > 0
GROUP BY DbName, SchemaName, TableName
ORDER BY DbName, SchemaName, TableName
``````

### How to get input text length and validate user in javascript

JavaScript validation is not secure as anybody can change what your script does in the browser. Using it for enhancing the visual experience is ok though.

``````var textBox = document.getElementById("myTextBox");
var textLength = textBox.value.length;
if(textLength > 5)
{
//red
textBox.style.backgroundColor = "#FF0000";
}
else
{
//green
textBox.style.backgroundColor = "#00FF00";
}
``````

### Entity Framework 6 Code first Default value

Just Overload the default constructor of Model class and pass any relevant parameter which you may or may not use. By this you can easily supply default values for attributes. Below is an example.

``````using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;

namespace Aim.Data.Domain
{
{
{
this.CreatedDate = DateTime.Now;
this.ModifiedDate = DateTime.Now;
this.Culture = "EN-US";
this.IsActive = status;
}

}

{

[Key]
[ScaffoldColumn(false)]
public int Id { get; set; }
[Required]
public string LoginCode { get; set; }
[Required]
public string Password { get; set; }
public string LastPassword { get; set; }
public int UserGroupId { get; set; }
public int FalseAttempt { get; set; }
public bool IsLocked { get; set; }
public int CreatedBy { get; set; }
public System.DateTime CreatedDate { get; set; }
public Nullable<int> ModifiedBy { get; set; }
public Nullable<System.DateTime> ModifiedDate { get; set; }
public string Culture { get; set; }
}

}
``````

### Changing the text on a label

I made a small tkinter application which is sets the label after button clicked

``````#!/usr/bin/env python
from Tkinter import *

class Application:
def __init__(self, master):
frame = Frame(master,width=200,height=200)
frame.pack()

self.log_file_btn = Button(frame, text="Select Log File", command=self.selectLogFile,width=25).grid(row=0)
self.image_folder_btn = Button(frame, text="Select Image Folder", command=self.selectImageFile,width=25).grid(row=1)
self.quite_button = Button(frame, text="QUIT", fg="red", command=frame.quit,width=25).grid(row=5)

self.logFilePath =StringVar()
self.imageFilePath = StringVar()
self.labelFolder = Label(frame,textvariable=self.logFilePath).grid(row=0,column=1)
self.labelImageFile = Label(frame,textvariable = self.imageFilePath).grid(row = 1,column=1)

def selectLogFile(self):
self.logFilePath.set(filename)

def selectImageFile(self):
self.imageFilePath.set(imageFolder)

root = Tk()
root.title("Geo Tagging")
root.geometry("600x100")
app = Application(root)
root.mainloop()
``````

### How to get calendar Quarter from a date in TSQL

Here's how I do it. Pretty brief and doesn't rely on temp tables.

``````CAST(year(TheDate) AS char(4)) + '-Q' +
CAST(CEILING(CAST(month(TheDate) AS decimal(9,2)) / 3) AS char(1))
``````

As an example:

``````SELECT convert(char(10), getdate(), 101) AS TheDate,
CAST(year(getdate()) AS char(4)) + '-Q' +
CAST(CEILING(CAST(month(getdate()) AS decimal(4,2)) / 3) AS char(1)) AS SelectQuarter
``````

This will return:

``````TheDate    SelectQuarter
---------- -------------
07/10/2013 2013-Q3
``````

Obviously the string itself can be changed to suit your own format. Hope this is helpful.

### How to share my Docker-Image without using the Docker-Hub?

Based on this blog, one could share a docker image without a docker registry by executing:

``````docker save --output latestversion-1.0.0.tar dockerregistry/latestversion:1.0.0
``````

Once this command has been completed, one could copy the image to a server and import it as follows:

``````docker load --input latestversion-1.0.0.tar
``````

### Difference between char* and const char*?

``````char *name
``````

You can change the char to which `name` points, and also the char at which it points.

``````const char* name
``````

You can change the char to which `name` points, but you cannot modify the char at which it points.
correction: You can change the pointer, but not the char to which `name` points to (https://msdn.microsoft.com/en-us/library/vstudio/whkd4k6a(v=vs.100).aspx, see "Examples"). In this case, the `const` specifier applies to `char`, not the asterisk.

According to the MSDN page and http://en.cppreference.com/w/cpp/language/declarations, the `const` before the `*` is part of the decl-specifier sequence, while the `const` after `*` is part of the declarator.
A declaration specifier sequence can be followed by multiple declarators, which is why `const char * c1, c2` declares `c1` as `const char *` and `c2` as `const char`.

EDIT:

From the comments, your question seems to be asking about the difference between the two declarations when the pointer points to a string literal.

In that case, you should not modify the char to which `name` points, as it could result in Undefined Behavior. String literals may be allocated in read only memory regions (implementation defined) and an user program should not modify it in anyway. Any attempt to do so results in Undefined Behavior.

So the only difference in that case (of usage with string literals) is that the second declaration gives you a slight advantage. Compilers will usually give you a warning in case you attempt to modify the string literal in the second case.

Online Sample Example:

``````#include <string.h>
int main()
{
char *str1 = "string Literal";
const char *str2 = "string Literal";
char source[] = "Sample string";

strcpy(str1,source);    //No warning or error, just Undefined Behavior
strcpy(str2,source);    //Compiler issues a warning

return 0;
}
``````

Output:

cc1: warnings being treated as errors
prog.c: In function ‘main’:
prog.c:9: error: passing argument 1 of ‘strcpy’ discards qualifiers from pointer target type

Notice the compiler warns for the second case but not for the first.

### Generate random 5 characters string

``````\$rand = substr(md5(microtime()),rand(0,26),5);
``````

Would be my best guess--Unless you're looking for special characters, too:

``````\$seed = str_split('abcdefghijklmnopqrstuvwxyz'
.'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
.'0123456789!@#\$%^&*()'); // and any other characters
shuffle(\$seed); // probably optional since array_is randomized; this may be redundant
\$rand = '';
foreach (array_rand(\$seed, 5) as \$k) \$rand .= \$seed[\$k];
``````

Example

And, for one based on the clock (fewer collisions since it's incremental):

``````function incrementalHash(\$len = 5){
\$charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
\$base = strlen(\$charset);
\$result = '';

\$now = explode(' ', microtime())[1];
while (\$now >= \$base){
\$i = \$now % \$base;
\$result = \$charset[\$i] . \$result;
\$now /= \$base;
}
return substr(\$result, -5);
}
``````

Note: incremental means easier to guess; If you're using this as a salt or a verification token, don't. A salt (now) of "WCWyb" means 5 seconds from now it's "WCWyg")

### Generating random numbers in C

``````#include <stdlib.h>

int main()
{
int x;
x = rand(6);
printf("%d", x);
}
``````

Especially as a beginner, you should ask your compiler to print every warning about bad code that it can generate. Modern compilers know lots of different warnings which help you to program better. For example, when you compile this program with the GNU C Compiler:

``````\$ gcc -W -Wall rand.c
rand.c: In function `main':
rand.c:5: error: too many arguments to function `rand'
rand.c:6: warning: implicit declaration of function `printf'
``````

You get two warnings here. The first one says that the `rand` function only takes zero arguments, not one as you tried. To get a random number between 0 and `n`, you can use the expression `rand() % n`, which is not perfect but ok for small `n`. The resulting random numbers are normally not evenly distributed; smaller values are returned more often.

The second warning tells you that you are calling a function that the compiler doesn't know at that point. You have to tell the compiler by saying `#include <stdio.h>`. Which include files are needed for which functions is not always simple, but asking the Open Group specification for portable operating systems works in many cases: http://www.google.com/search?q=opengroup+rand.

These two warnings tell you much about the history of the C programming language. 40 years back, the definition of a function didn't include the number of parameters or the types of the parameters. It was also ok to call an unknown function, which in most cases worked. If you want to write code today, you should not rely on these old features but instead enable your compiler's warnings, understand the warnings and then fix them properly.

### When to use React "componentDidUpdate" method?

I have used `componentDidUpdate()` in highchart.

Here is a simple example of this component.

``````import React, { PropTypes, Component } from 'react';
window.Highcharts = require('highcharts');

export default class Chartline extends React.Component {
constructor(props) {
super(props);
this.state = {
chart: ''
};
}

public componentDidUpdate() {
// console.log(this.props.candidate, 'this.props.candidate')
if (this.props.category) {
const category = this.props.category ? this.props.category : {};
console.log('category', category);
window.Highcharts.chart('jobcontainer_' + category._id, {
title: {
text: ''
},
plotOptions: {
series: {
cursor: 'pointer'
}
},
chart: {
defaultSeriesType: 'spline'
},
xAxis: {
// categories: candidate.dateArr,
categories: ['Day1', 'Day2', 'Day3', 'Day4', 'Day5', 'Day6', 'Day7'],
showEmpty: true
},
labels: {
style: {
color: 'white',
fontSize: '25px',
fontFamily: 'SF UI Text'
}
},
series: [
{
name: 'Low',
color: '#9B260A',
data: category.lowcount
},
{
name: 'High',
color: '#0E5AAB',
data: category.highcount
},
{
name: 'Average',
color: '#12B499',
data: category.averagecount
}
]
});
}
}
public render() {
const category = this.props.category ? this.props.category : {};
console.log('render category', category);
return <div id={'jobcontainer_' + category._id} style={{ maxWidth: '400px', height: '180px' }} />;
}
}
``````

### Making a flex item float right

You don't need floats. In fact, they're useless because floats are ignored in flexbox.

You also don't need CSS positioning.

There are several flex methods available. `auto` margins have been mentioned in another answer.

Here are two other options:

• Use `justify-content: space-between` and the `order` property.
• Use `justify-content: space-between` and reverse the order of the divs.

_x000D_
_x000D_
``````.parent {_x000D_
display: flex;_x000D_
justify-content: space-between;_x000D_
}_x000D_
_x000D_
.parent:first-of-type > div:last-child { order: -1; }_x000D_
_x000D_
p { background-color: #ddd;}``````
_x000D_
``````<p>Method 1: Use <code>justify-content: space-between</code> and <code>order-1</code></p>_x000D_
_x000D_
<div class="parent">_x000D_
<div class="child" style="float:right"> Ignore parent? </div>_x000D_
<div>another child </div>_x000D_
</div>_x000D_
_x000D_
<hr>_x000D_
_x000D_
<p>Method 2: Use <code>justify-content: space-between</code> and reverse the order of _x000D_
divs in the mark-up</p>_x000D_
_x000D_
<div class="parent">_x000D_
<div>another child </div>_x000D_
<div class="child" style="float:right"> Ignore parent? </div>_x000D_
</div>``````
_x000D_
_x000D_
_x000D_

### How to capture multiple repeated groups?

After reading Byte Commander's answer, I want to introduce a tiny possible improvement:

You can generate a regexp that will match either `n` words, as long as your `n` is predetermined. For instance, if I want to match between 1 and 3 words, the regexp:

``````^([A-Z]+)(?:,([A-Z]+))?(?:,([A-Z]+))?\$
``````

will match the next sentences, with one, two or three capturing groups.

``````HELLO,LITTLE,WORLD
HELLO,WORLD
HELLO
``````

As I said, it is pretty easy to generate this regexp for any groups you want using your favorite language. Since I'm not much of a swift guy, here's a ruby example:

``````def make_regexp(group_regexp, count: 3, delimiter: ",")
regexp_str = "^(#{group_regexp})"
(count - 1).times.each do
regexp_str += "(?:#{delimiter}(#{group_regexp}))?"
end
regexp_str += "\$"
return regexp_str
end

puts make_regexp("[A-Z]+")
``````

That being said, I'd suggest not using regular expression in that case, there are many other great tools from a simple `split` to some tokenization patterns depending on your needs. IMHO, a regular expression is not one of them. For instance in ruby I'd use something like `str.split(",")` or `str.scan(/[A-Z]+/)`

### Error: getaddrinfo ENOTFOUND in nodejs for get call

for me it was because in /etc/hosts file the hostname is not added

### How to use forEach in vueJs?

This is an example of forEach usage:

``````let arr = [];

this.myArray.forEach((value, index) => {
arr.push(value);
console.log(value);
console.log(index);
});
``````

In this case, "myArray" is an array on my data.

You can also loop through an array using filter, but this one should be used if you want to get a new list with filtered elements of your array.

Something like this:

``````const newArray = this.myArray.filter((value, index) => {
console.log(value);
console.log(index);
if (value > 5) return true;
});
``````

and the same can be written as:

``````const newArray = this.myArray.filter((value, index) => value > 5);
``````

Both filter and forEach are javascript methods and will work just fine with VueJs. Also, it might be interesting taking a look at this:

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

This could also be a simple syntax error. I had a syntax error which threw on FF but not Chrome as follows:

``````    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
defer
</script>
``````

### No provider for Router?

No provider for Router

It happens when you try to navigate in `any service.ts`

`this.router.navigate(['/home']);` like codes in services cause that error.

You should handle navigating in your components. for example: at `login.component`

``````login().subscribe(
(res) => this.router.navigate(['/home']),
(error: any) => this.handleError(error));
``````

Annoying errors happens when we are newbie :)

### How to make an element width: 100% minus padding?

`box-sizing: border-box` is a quick, easy way to fix it:

This will work in all modern browsers, and IE8+.

Here's a demo: http://jsfiddle.net/thirtydot/QkmSk/301/

``````.content {
width: 100%;
box-sizing: border-box;
}
``````

The browser prefixed versions (`-webkit-box-sizing`, etc.) are not needed in modern browsers.

### How to extract public key using OpenSSL?

Though, the above technique works for the general case, it didn't work on Amazon Web Services (AWS) PEM files.

I did find in the AWS docs the following command works: `ssh-keygen -y`

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

edit Thanks @makenova for the complete line:

``````ssh-keygen -y -f key.pem > key.pub
``````

### Ansible: copy a directory content to another directory

This I found an ideal solution for copying file from Ansible server to remote.

copying yaml file

``````- hosts: localhost
user: {{ user }}
connection: ssh
become: yes
gather_facts: no
- name: Creation of directory on remote server
file:
path: /var/lib/jenkins/.aws
state: directory
mode: 0755
register: result
- debug:
var: result

- name: get file names to copy
command: "find conf/.aws -type f"
register: files_to_copy

- name: copy files
copy:
src: "{{ item }}"
dest: "/var/lib/jenkins/.aws"
owner: {{ user }}
group: {{ group }}
remote_src: True
mode: 0644
with_items:
- "{{ files_to_copy.stdout_lines }}"
``````

### Calling other function in the same controller?

To call a function inside a same controller in any laravel version follow as bellow

``````\$role = \$this->sendRequest('parameter');
// sendRequest is a public function
``````

### How to avoid annoying error "declared and not used"

You can use a simple "null function" for this, for example:

``````func Use(vals ...interface{}) {
for _, val := range vals {
_ = val
}
}
``````

Which you can use like so:

``````package main

func main() {
a := "declared and not used"
b := "another declared and not used"
c := 123

Use(a, b, c)
}
``````

There's also a package for this so you don't have to define the `Use` function every time:

``````import (
"github.com/lunux2008/xulu"
)

func main() {
// [..]

xulu.Use(a, b, c)
}
``````

### Super-simple example of C# observer/observable with delegates

I've tied together a couple of the great examples above (thank you as always to Mr. Skeet and Mr. Karlsen) to include a couple of different Observables and utilized an interface to keep track of them in the Observer and allowed the Observer to to "observe" any number of Observables via an internal list:

``````namespace ObservablePattern
{
using System;
using System.Collections.Generic;

internal static class Program
{
private static void Main()
{
var observable = new Observable();
var anotherObservable = new AnotherObservable();

using (IObserver observer = new Observer(observable))
{
observable.DoSomething();
anotherObservable.DoSomething();
}

}
}

internal interface IObservable
{
event EventHandler SomethingHappened;
}

internal sealed class Observable : IObservable
{
public event EventHandler SomethingHappened;

public void DoSomething()
{
var handler = this.SomethingHappened;

if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
}

internal sealed class AnotherObservable : IObservable
{
public event EventHandler SomethingHappened;

public void DoSomething()
{
var handler = this.SomethingHappened;

if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
}

internal interface IObserver : IDisposable
{

void Remove(IObservable observable);
}

internal sealed class Observer : IObserver
{
new Lazy<IList<IObservable>>(() => new List<IObservable>());

public Observer()
{
}

public Observer(IObservable observable) : this()
{
}

{
if (observable == null)
{
return;
}

lock (this.observables)
{
observable.SomethingHappened += HandleEvent;
}
}

public void Remove(IObservable observable)
{
if (observable == null)
{
return;
}

lock (this.observables)
{
observable.SomethingHappened -= HandleEvent;
this.observables.Value.Remove(observable);
}
}

public void Dispose()
{
for (var i = this.observables.Value.Count - 1; i >= 0; i--)
{
this.Remove(this.observables.Value[i]);
}
}

private static void HandleEvent(object sender, EventArgs args)
{
Console.WriteLine("Something happened to " + sender);
}
}
}
``````

### How to go back to previous page if back button is pressed in WebView?

Official Kotlin Way:

``````override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
// Check if the key event was the Back button and if there's history
if (keyCode == KeyEvent.KEYCODE_BACK && myWebView.canGoBack()) {
myWebView.goBack()
return true
}
// If it wasn't the Back key or there's no web page history, bubble up to the default
// system behavior (probably exit the activity)
return super.onKeyDown(keyCode, event)
}
``````

https://developer.android.com/guide/webapps/webview.html#NavigatingHistory

### jquery - disable click

If you're using jQuery versions 1.4.3+:

``````\$('selector').click(false);
``````

If not:

``````\$('selector').click(function(){return false;});
``````

### How to split a string literal across multiple lines in C / Objective-C?

Extending the Quote idea for Objective-C:

``````#define NSStringMultiline(...) [[NSString alloc] initWithCString:#__VA_ARGS__ encoding:NSUTF8StringEncoding]

NSString *sql = NSStringMultiline(
SELECT name, age
FROM users
WHERE loggedin = true
);
``````

### How to set selectedIndex of select element using display text?

``````<option value="0" name="Chicken">Chicken</option>
``````

With that you can use the HTMLOptionsCollection.namedItem("Chicken").value to set the value of your select element.

### Why am I not getting a java.util.ConcurrentModificationException in this example?

I had that same problem but in case that I was adding en element into iterated list. I made it this way

``````public static void remove(Integer remove) {
for(int i=0; i<integerList.size(); i++) {
//here is maybe fine to deal with integerList.get(i)==null
if(integerList.get(i).equals(remove)) {
integerList.remove(i);
}
}
}
``````

Now everything goes fine because you don't create any iterator over your list, you iterate over it "manually". And condition `i < integerList.size()` will never fool you because when you remove/add something into List size of the List decrement/increment..

Hope it helps, for me that was solution.

### Android Studio Emulator and "Process finished with exit code 0"

In my case, Emulator: Process finished with exit code 0 error started after I pressed on Restart in the Emulator.

It happened because in Android Studio 3.0 and up versions, the emulator saves the states of the current screen to launch it very quickly at next time. So when I pressed on Restart it closes emulator by saving state as Restart. So when I launch/start the emulator, it executes the Save States as Restart and then after emulator is not started automatically. So basically it stuck in to Save States of Restart.

I don't want to delete existing emulator and create a new one.
My default Boot Option of Emulator was Quick boot in AVD.
By doing Cold Boot Now from AVD (Android Virtual Device) Manager, it starts emulator again in normal mode without Save State.

Cold boot start emulator as from power up.

### Can we set a Git default to fetch all tags during a remote pull?

It's simple. Do a

``````git fetch --all
``````

### Asus Zenfone 5 not detected by computer

Try a different usb cable. My cable was bad. Charging was ok but did not attach the phone.

### What is the fastest factorial function in JavaScript?

This is an iterative solution that uses less stack space and save previously computed values in a self-memoizing way:

``````Math.factorial = function(n){
if(this.factorials[n]){ // memoized
return this.factorials[n];
}
var total=1;
for(var i=n; i>0; i--){
total*=i;
}
this.factorials[n] = total; // save
};
Math.factorials={}; // store
``````

Also note that I am adding this to the Math object which is an object literal so there is no prototype. Rather just binding these to the function directly.

### How to avoid .pyc files?

You could make the directories that your modules exist in read-only for the user that the Python interpreter is running as.

I don't think there's a more elegant option. PEP 304 appears to have been an attempt to introduce a simple option for this, but it appears to have been abandoned.

I imagine there's probably some other problem you're trying to solve, for which disabling .py[co] would appear to be a workaround, but it'll probably be better to attack whatever this original problem is instead.

### How to serialize Object to JSON?

GSON is easy to use and has relatively small memory footprint. If you loke to have even smaller footprint, you can grab:

https://github.com/ko5tik/jsonserializer

Which is tiny wrapper around stripped down GSON libraries for just POJOs

I have got the success using the following commands.

``````git config --unset-all credential.helper
git config --global --unset-all credential.helper
git config --system --unset-all credential.helper
``````

Try and let me know if these are working for you.

### WPF: Setting the Width (and Height) as a Percentage Value

Typically, you'd use a built-in layout control appropriate for your scenario (e.g. use a grid as a parent if you want scaling relative to the parent). If you want to do it with an arbitrary parent element, you can create a ValueConverter do it, but it probably won't be quite as clean as you'd like. However, if you absolutely need it, you could do something like this:

``````public class PercentageConverter : IValueConverter
{
public object Convert(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
return System.Convert.ToDouble(value) *
System.Convert.ToDouble(parameter);
}

public object ConvertBack(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
``````

Which can be used like this, to get a child textbox 10% of the width of its parent canvas:

``````<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<local:PercentageConverter x:Key="PercentageConverter"/>
</Window.Resources>
<Canvas x:Name="canvas">
<TextBlock Text="Hello"
Background="Red"
Width="{Binding
Converter={StaticResource PercentageConverter},
ElementName=canvas,
Path=ActualWidth,
ConverterParameter=0.1}"/>
</Canvas>
</Window>
``````

### Good PHP ORM Library?

MicroMVC has a 13 KB ORM that only relies on a 8 KB database class. It also returns all results as ORM objects themselves and uses late static binding to avoid embedding information about the current object's table and meta data into each object. This results in the cheapest ORM overhead there is.

It works with MySQL, PostgreSQL, and SQLite.

### Best way to include CSS? Why use @import?

I think @import is most useful when writing code for multiple devices. Include a conditional statement to only include the style for the device in question, then only one sheet gets loaded. You can still use the link tag to add any common style elements.

### Align the form to the center in Bootstrap 4

You need to use the various Bootstrap 4 centering methods...

• Use `text-center` for inline elements.
• Use `justify-content-center` for flexbox elements (ie; `form-inline`)

https://codeply.com/go/Am5LvvjTxC

Also, to offset the column, the `col-sm-*` must be contained within a `.row`, and the `.row` must be in a container...

``````<section id="cover">
<div id="cover-caption">
<div id="container" class="container">
<div class="row">
<div class="col-sm-10 offset-sm-1 text-center">
<h1 class="display-3">Welcome to Bootstrap 4</h1>
<div class="info-form">
<form action="" class="form-inline justify-content-center">
<div class="form-group">
<label class="sr-only">Name</label>
<input type="text" class="form-control" placeholder="Jane Doe">
</div>
<div class="form-group">
<label class="sr-only">Email</label>
<input type="text" class="form-control" placeholder="[email protected]">
</div>
<button type="submit" class="btn btn-success ">okay, go!</button>
</form>
</div>
<br>

<a href="#nav-main" class="btn btn-secondary-outline btn-sm" role="button">?</a>
</div>
</div>
</div>
</div>
</section>
``````

### SQL ROWNUM how to return rows between a specific range

You can also do using CTE with clause.

``````WITH maps AS (Select ROW_NUMBER() OVER (ORDER BY Id) AS rownum,*
from maps006 )

SELECT rownum, * FROM maps  WHERE rownum >49 and rownum <101
``````

### How to open select file dialog via js?

For the sake of completeness, Ron van der Heijden's solution in pure JavaScript:

``````<button onclick="document.querySelector('.inputFile').click();">Select File ...</button>
<input class="inputFile" type="file" style="display: none;">
``````

### Can Console.Clear be used to only clear a line instead of whole console?

I think I found why there are a few varying answers for this question. When the window has been resized such that it has a horizontal scroll bar (because the buffer is larger than the window) Console.CursorTop seems to return the wrong line. The following code works for me, regardless of window size or cursor position.

``````public static void ClearLine()
{
Console.SetCursorPosition(0, Console.CursorTop);
Console.Write(new string(' ', Console.WindowWidth));
Console.SetCursorPosition(0, Console.CursorTop - (Console.WindowWidth >= Console.BufferWidth ? 1 : 0));
}
``````

Without the (Console.WindowWidth >= Console.BufferWidth ? 1 : 0), the code may either move the cursor up or down, depending on which version you use from this page, and the state of the window.

### Change language of Visual Studio 2017 RC

You need reinstall VS.

Language Pack Support in Visual Studio 2017 RC

Issue:

This release of Visual Studio supports only a single language pack for the user interface. You cannot install two languages for the user interface in the same instance of Visual Studio. In addition, you must select the language of Visual Studio during the initial install, and cannot change it during Modify.

Workaround:

These are known issues that will be fixed in an upcoming release. To change the language in this release, you can uninstall and reinstall Visual Studio.

(Posting in case someone might have a use of it).

I was looking for a solution for a problem a bit more sophisticated than OP - replacing EVERY occurrence of something with the number by same thing with incremented number

E.g. Replacing something like this:

``````<row id="1" />
<row id="2" />
<row id="1" />
<row id="3" />
<row id="1" />
``````

By this:

``````<row id="2" />
<row id="3" />
<row id="2" />
<row id="4" />
<row id="2" />
``````

Couldnt find the solution online so I wrote my own script in groovy (a bit ugly but does the job):

`````` /**
* <p> Finds words that matches template and increases them by 1.
* '_' in word template represents number.
*
* <p> E.g. if template equals 'Row="_"', then:
* ALL Row=0 will be replaced by Row="1"
* All Row=1 will be replaced by Row="2"
* <p> Warning - your find template might not work properly if _ is the last character of it
* etc.
* <p> Requirments:
* - Original text does not contain tepmlate string
* - Only numbers in non-disrupted sequence are incremented and replaced
* (i.e. from example below, if Row=4 exists in original text, but Row=3 not, than Row=4 will NOT be
* replaced by Row=5)
*/
def replace_inc(String text, int startingIndex, String findTemplate) {
assert findTemplate.contains('_') : 'search template needs to contain "_" placeholder'
assert !(findTemplate.replaceFirst('_','').contains('_')) : 'only one "_" placeholder is allowed'
assert !text.contains('_____') : 'input text should not contain "______" (5 underscores)'
while (true) {
findString = findTemplate.replace("_",(startingIndex).toString())
if (!text.contains(findString)) break;
replaceString = findTemplate.replace("_", "_____"+(++startingIndex).toString())
text = text.replaceAll(findString, replaceString)
}
return text.replaceAll("_____","") // get rid of '_____' character
}

// input
findTemplate = 'Row="_"'
path = /C:\TEMP\working_copy.txt/
startingIndex = 0

// do stuff
f = new File(path)
outText = replace_inc(f.text,startingIndex,findTemplate)
println "Results \n: " + outText
f.withWriter { out -> out.println outText }
println "Results written to \$f"
``````

### PHPExcel - set cell type before writing a value in it

Followed Mark's advise and did this to set the default number formatting to text in the whole workbook:

``````\$objPHPExcel = new PHPExcel();
\$objPHPExcel->getDefaultStyle()
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);
``````

And it works flawlessly. Thank you, Mark Baker.

### Count unique values with pandas per groups

IIUC you want the number of different `ID` for every `domain`, then you can try this:

``````output = df.drop_duplicates()
output.groupby('domain').size()
``````

output:

``````    domain
vk.com          3
dtype: int64
``````

You could also use `value_counts`, which is slightly less efficient.But the best is Jezrael's answer using `nunique`:

``````%timeit df.drop_duplicates().groupby('domain').size()
1000 loops, best of 3: 939 µs per loop
%timeit df.drop_duplicates().domain.value_counts()
1000 loops, best of 3: 1.1 ms per loop
%timeit df.groupby('domain')['ID'].nunique()
1000 loops, best of 3: 440 µs per loop
``````

### HTML.ActionLink vs Url.Action in ASP.NET Razor

`@HTML.ActionLink` generates a `HTML anchor tag`. While `@Url.Action` generates a `URL` for you. You can easily understand it by;

``````// 1. <a href="/ControllerName/ActionMethod">Item Definition</a>

// 2. /ControllerName/ActionMethod
@Url.Action("ActionMethod", "ControllerName")

// 3. <a href="/ControllerName/ActionMethod">Item Definition</a>
<a href="@Url.Action("ActionMethod", "ControllerName")"> Item Definition</a>
``````

Both of these approaches are different and it totally depends upon your need.

### Does swift have a trim method on String?

Truncate String to Specific Length

If you have entered block of sentence/text and you want to save only specified length out of it text. Add the following extension to Class

``````extension String {

func trunc(_ length: Int) -> String {
if self.characters.count > length {
return self.substring(to: self.characters.index(self.startIndex, offsetBy: length))
} else {
return self
}
}

func trim() -> String{
return self.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
}

}
``````

Use

``````var str = "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
//str is length 74
print(str)
//O/P:  Lorem Ipsum is simply dummy text of the printing and typesetting industry.

str = str.trunc(40)
print(str)
//O/P: Lorem Ipsum is simply dummy text of the
``````

### Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Error

`NullPointerException`s are among the easier exceptions to diagnose, frequently. Whenever you get an exception in Java and you see the stack trace ( that's what your second quote-block is called, by the way ), you read from top to bottom. Often, you will see exceptions that start in Java library code or in native implementations methods, for diagnosis you can just skip past those until you see a code file that you wrote.

Then you like at the line indicated and look at each of the objects ( instantiated classes ) on that line -- one of them was not created and you tried to use it. You can start by looking up in your code to see if you called the constructor on that object. If you didn't, then that's your problem, you need to instantiate that object by calling new Classname( arguments ). Another frequent cause of `NullPointerException`s is accidentally declaring an object with local scope when there is an instance variable with the same name.

In your case, the exception occurred in your constructor for Workshop on line 75. `<init>` means the constructor for a class. If you look on that line in your code, you'll see the line

``````denimjeansButton.addItemListener(this);
``````

There are fairly clearly two objects on this line: `denimjeansButton` and `this`. `this` is synonymous with the class instance you are currently in and you're in the constructor, so it can't be `this`. `denimjeansButton` is your culprit. You never instantiated that object. Either remove the reference to the instance variable `denimjeansButton` or instantiate it.

### Using "Object.create" instead of "new"

TL;DR:

`new Computer()` will invoke the constructor function `Computer(){}` for one time, while `Object.create(Computer.prototype)` won't.

All the advantages are based on this point.

Sidenote about performance: Constructor invoking like `new Computer()` is heavily optimized by the engine, so it may be even faster than `Object.create`.

### Remote Connections Mysql Ubuntu

Add few points on top of apesa's excellent post:

1) You can use command below to check the ip address mysql server is listening

``````netstat -nlt | grep 3306

sample result:

tcp 0  0  xxx.xxx.xxx.xxx:3306  0.0.0.0:*   LISTEN
``````

2) Use `FLUSH PRIVILEGES` to force grant tables to be loaded if for some reason the changes not take effective immediately

``````GRANT ALL ON *.* TO 'user'@'localhost' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'user'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
``````

user == the user u use to connect to mysql ex.root
passwd == the password u use to connect to mysql with

3) If netfilter firewall is enabled (`sudo ufw enable`) on mysql server machine, do the following to open port 3306 for remote access:

``````sudo ufw allow 3306
``````

check status using

``````sudo ufw status
``````

4) Once a remote connection is established, it can be verified in either client or server machine using commands

``````netstat -an | grep 3306
netstat -an | grep -i established
``````

### Add context path to Spring Boot application

We can change context root path using a simple entry in the properties file.

`application.properties`

``````### Spring boot 1.x #########
server.contextPath=/ClientApp

### Spring boot 2.x #########
server.servlet.context-path=/ClientApp
``````

### jQuery toggle animation

``````onmouseover="\$('.play-detail').stop().animate({'height': '84px'},'300');"

onmouseout="\$('.play-detail').stop().animate({'height': '44px'},'300');"
``````

Just put two stops -- one onmouseover and one onmouseout.

### how to show alternate image if source image is not found? (onerror working in IE but not in mozilla)

I have got the solution for my query:

i have done something like this:

``````cell.innerHTML="<img height=40 width=40 alt='' src='<%=request.getContextPath()%>/writeImage.htm?' onerror='onImgError(this);' onLoad='setDefaultImage(this);'>"

function setDefaultImage(source){
var cpyImg = new Image();
cpyImg.src = source.src;

if(!cpyImg.width)
{
}

}

function onImgError(source){
source.src = "video.png";
source.onerror = "";
return true;
}
``````

This way it's working in all browsers.

### Automatically scroll down chat div

Dont have to mix jquery and javascript. Use like this,

``````function getMessages(letter) {
var message=\$('#messages');
\$.get('msg_show.php', function(data) {
message.html(data);
message.scrollTop(message[0].scrollHeight);
});
}

setInterval(function() {
getMessages("letter");
}, 100)
``````

Put the `scrollTop()` inside `get()` method.

Also you missed a parameter in the `getMessage` method call..

### How can I convert the "arguments" object to an array in JavaScript?

I recommend using ECMAScript 6 spread operator, which will Bind trailing parameters to an array. With this solution you don't need to touch the `arguments` object and your code will be simplified. The downside of this solution is that it does not work across most browsers, so instead you will have to use a JS compiler such as Babel. Under the hood Babel transforms `arguments` into a Array with a for loop.

``````function sortArgs(...args) {
return args.sort();
}
``````

If you can not use a ECMAScript 6, I recommend looking at some of the other answers such as @Jonathan Fingland

``````function sortArgs() {
var args = Array.prototype.slice.call(arguments);
return args.sort();
}
``````

### Concatenating two std::vectors

``````vector<int> v1 = {1, 2, 3, 4, 5};
vector<int> v2 = {11, 12, 13, 14, 15};
copy(v2.begin(), v2.end(), back_inserter(v1));
``````

### How to restart Activity in Android

This solution worked for me.

First finish the activity and then start it again.

Sample code:

``````public void restartActivity(){
Intent mIntent = getIntent();
finish();
startActivity(mIntent);
}
``````

### String.contains in Java

Similarly:

``````"".contains("");     // Returns true.
``````

Therefore, it appears that an empty string is contained in any `String`.

### compare two list and return not matching items using linq

You can do like this,this is the quickest process

``````Var result = MsgList.Except(MsgList.Where(o => SentList.Select(s => s.MsgID).ToList().Contains(o.MsgID))).ToList();
``````

This will give you expected output.

### In CSS how do you change font size of h1 and h2

`````` h1 { font-size: 150%; }
h2 { font-size: 120%; }
``````

Tune as needed.

### calling javascript function on OnClientClick event of a Submit button

The above solutions must work. However you can try this one:

``````OnClientClick="return SomeMethod();return false;"
``````

and remove return statement from the method.

### Print DIV content by JQuery

You can follow these steps :

1. wrap the div you want to print into another div.
2. set the wrapper div display status to none in css.
3. keep the div you want to print display status as block, anyway it will be hidden as its parent is hidden.
4. simply call `\$('SelectorToPrint').printElement();`

### No more data to read from socket error

Try two things:

1. Set in \$ORACLE_HOME/network/admin/tnsnames.ora on the oracle server server=dedicated to server=shared to allow more than one connection at a time. Restart oracle.
2. If you are using Java this might help you: In `java/jdk1.6.0_31/jre/lib/security/Java.security` change `securerandom.source=file:/dev/urandom` to `securerandom.source=file:///dev/urandom`

### Extract hostname name from string

Code:

``````var regex = /\w+.(com|co\.kr|be)/ig;
'http://youtu.be/ClkQA2Lb_iE',
'http://www.example.com/12xy45',
'http://example.com/random'];

\$.each(urls, function(index, url) {
var convertedUrl = url.match(regex);
console.log(convertedUrl);
});
``````

Result:

``````youtube.com
youtu.be
example.com
example.com
``````

### How to outline text in HTML / CSS

``````.box_textshadow {
text-shadow: 2px 2px 0px #FF0000; /* FF3.5+, Opera 9+, Saf1+, Chrome, IE10 */
}
``````

### Char array to hex string C++

Here is something:

``````char const hex_chars[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

for( int i = data; i < data_length; ++i )
{
char const byte = data[i];

string += hex_chars[ ( byte & 0xF0 ) >> 4 ];
string += hex_chars[ ( byte & 0x0F ) >> 0 ];
}
``````

### Regular Expression to match valid dates

if you didn't get those above suggestions working, I use this, as it gets any date I ran this expression through 50 links, and it got all the dates on each page.

``````^20\d\d-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(0[1-9]|[1-2][0-9]|3[01])\$
``````

### onSaveInstanceState () and onRestoreInstanceState ()

I can do like that (sorry it's c# not java but it's not a problem...) :

``````private int iValue = 1234567890;

function void MyTest()
{
Intent oIntent = new Intent (this, typeof(Camera2Activity));
Bundle oBundle = new Bundle();
oBundle.PutInt("MYVALUE", iValue); //=> 1234567890
oIntent.PutExtras (oBundle);
iRequestCode = 1111;
StartActivityForResult (oIntent, 1111);
}
``````

AND IN YOUR ACTIVITY FOR RESULT

``````private int iValue = 0;

protected override void OnCreate(Bundle bundle)
{
Bundle oBundle =  Intent.Extras;
if (oBundle != null)
{
iValue = oBundle.GetInt("MYVALUE", 0);
//=>1234567890
}
}

private void FinishActivity(bool bResult)
{
Intent oIntent = new Intent();
Bundle oBundle = new Bundle();
oBundle.PutInt("MYVALUE", iValue);//=>1234567890
oIntent.PutExtras(oBundle);
if (bResult)
{
SetResult (Result.Ok, oIntent);
}
else
SetResult(Result.Canceled, oIntent);
GC.Collect();
Finish();
}
``````

FINALLY

``````protected override void OnActivityResult(int iRequestCode, Android.App.Result oResultCode, Intent oIntent)
{
base.OnActivityResult (iRequestCode, oResultCode, oIntent);
iValue = oIntent.Extras.GetInt("MYVALUE", -1); //=> 1234567890
}
``````