# Programs & Examples On #Status message

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

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

### How to calculate growth with a positive and negative number?

You could try shifting the number space upward so they both become positive.

To calculate a gain between any two positive or negative numbers, you're going to have to keep one foot in the magnitude-growth world and the other foot in the volume-growth world. You can lean to one side or the other depending on how you want the result gains to appear, and there are consequences to each choice.

Strategy

1. Create a shift equation that generates a positive number relative to the old and new numbers.

2. Add the custom shift to the old and new numbers to get new_shifted and old_shifted.

3. Take the (new_shifted - old_shifted) / old_shifted) calculation to get the gain.

For example:

``````old -> new
-50 -> 30               //Calculate a shift like (2*(50 + 30)) = 160

shifted_old -> shifted_new
110         ->  190

= (new-old)/old
= (190-110)/110 = 72.73%
``````

How to choose a shift function

If your shift function shifts the numbers too far upward, like for example adding 10000 to each number, you always get a tiny growth/decline. But if the shift is just big enough to get both numbers into positive territory, you'll get wild swings in the growth/decline on edge cases. You'll need to dial in the shift function so it makes sense for your particular application. There is no totally correct solution to this problem, you must take the bitter with the sweet.

``````                           shift function
old new  abs_old  abs_new  2*abs(old)+abs(new)   shiftedold  shiftednew    gain
-50  30  50          30          160                110         190        72.73%
-50  40  50          40          180                130         220        69.23%
10   20  10          20          60                 70          80         14.29%
10   30  10          30          80                 90          110        22.22%
1    10  1           10          22                 23          32         39.13%
1    20  1           20          42                 43          62         44.19%
-10  10  10          10          40                 30          50         66.67%
-10  20  10          20          60                 50          80         60.00%
1    100  1          100         202                203         302        48.77%
1    1000 1          1000        2002               2003        3002       49.88%
``````

The gain percentage is affected by the magnitude of the numbers. The numbers above are a bad example and result from a primitive shift function.

You have to ask yourself which critter has the most productive gain:

``````Evaluate the growth of critters A, B, C, and D:
A used to consume 0.01 units of energy and now consumes 10 units.
B used to consume 500 units and now consumes 700 units.
C used to consume -50 units (Producing units!) and now consumes 30 units.
D used to consume -0.01 units (Producing) and now consumes -30 units (producing).
``````

In some ways arguments can be made that each critter is the biggest grower in their own way. Some people say B is best grower, others will say D is a bigger gain. You have to decide for yourself which is better.

The question becomes, can we map this intuitive feel of what we label as growth into a continuous function that tells us what humans tend to regard as "awesome growth" vs "mediocre growth".

Growth a mysterious thing

You then have to take into account that Critter B may have had a far more difficult time than critter D. Critter D may have far more prospects for it in the future than the others. It had an advantage! How do you measure the `opportunity`, `difficulty`, `velocity` and `acceleration` of growth? To be able to predict the future, you need to have an intuitive feel for what constitutes a "major home run" and a "lame advance in productivity".

The first and second derivatives of a function will give you the "velocity of growth" and "acceleration of growth". Learn about those in calculus, they are super important.

Which is growing more? A critter that is accelerating its growth minute by minute, or a critter that is decelerating its growth? What about high and low velocity and high/low rate of change? What about the notion of exhausting opportunities for growth. Cost benefit analysis and ability/inability to capitalize on opportunity. What about adversarial systems (where your success comes from another person's failure) and zero sum games?

There is exponential growth, liner growth. And unsustainable growth. Cost benefit analysis and fitting a curve to the data. The world is far queerer than we can suppose. Plotting a perfect line to the data does not tell you which data point comes next because of the black swan effect. I suggest all humans listen to this lecture on growth, the University of Colorado At Boulder gave a fantastic talk on growth, what it is, what it isn't, and how humans completely misunderstand it. http://www.youtube.com/watch?v=u5iFESMAU58

Fit a line to the temperature of heated water, once you think you've fit a curve, a black swan happens, and the water boils. This effect happens all throughout our universe, and your primitive function (new-old)/old is not going to help you.

Here is Java code that accomplishes most of the above notions in a neat package that suits my needs:

Critter growth - (a critter can be "radio waves", "beetles", "oil temprature", "stock options", anything).

``````public double evaluate_critter_growth_return_a_gain_percentage(
double old_value, double new_value) throws Exception{

double abs_old = Math.abs(old_value);
double abs_new = Math.abs(new_value);

//This is your shift function, fool around with it and see how
//It changes.  Have a full battery of unit tests though before you fiddle.
double biggest_absolute_value = (Math.max(abs_old, abs_new)+1)*2;

if (new_value <= 0 || old_value <= 0){
new_value = new_value + (biggest_absolute_value+1);
old_value = old_value + (biggest_absolute_value+1);
}

if (old_value == 0 || new_value == 0){
old_value+=1;
new_value+=1;
}

if (old_value <= 0)
throw new Exception("This should never happen.");

if (new_value <= 0)
throw new Exception("This should never happen.");

return (new_value - old_value) / old_value;

}
``````

Result

It behaves kind-of sort-of like humans have an instinctual feel for critter growth. When our bank account goes from -9000 to -3000, we say that is better growth than when the account goes from 1000 to 2000.

``````1->2     (1.0)  should be bigger than   1->1 (0.0)
1->2     (1.0)  should be smaller than  1->4 (3.0)
0->1     (0.2)  should be smaller than  1->3 (2.0)
-5-> -3  (0.25) should be smaller than -5->-1 (0.5)
-5->1    (0.75) should be smaller than -5->5 (1.25)
100->200 (1.0)  should be the same as  10->20 (1.0)
-10->1   (0.84) should be smaller than -20->1 (0.91)
-10->10  (1.53) should be smaller than -20->20 (1.73)
-200->200 should not be in outer space (say more than 500%):(1.97)
handle edge case 1-> -4: (-0.41)
1-> -4:  (-0.42) should be bigger than 1-> -9:(-0.45)
``````

If my shift function makes sense for your needs, use it. Be sure to battle test this, if you crash the space shuttle its totally NOT my fault. This method is a heuristic.

### In Swift how to call method with parameters on GCD main thread?

``````//Perform some task and update UI immediately.
DispatchQueue.global(qos: .userInitiated).async {
DispatchQueue.main.async {
// Update UI
}
}

//To call or execute function after some time
}

//If you want to do changes in UI use this
DispatchQueue.main.async(execute: {
//Update UI
})
``````

### The real difference between "int" and "unsigned int"

The `printf` function interprets the value that you pass it according to the format specifier in a matching position. If you tell `printf` that you pass an `int`, but pass `unsigned` instead, `printf` would re-interpret one as the other, and print the results that you see.

### Understanding lambda in python and using it to pass multiple arguments

Why do you need to state both 'x' and 'y' before the ':'?

Because a lambda is (conceptually) the same as a function, just written inline. Your example is equivalent to

``````def f(x, y) : return x + y
``````

just without binding it to a name like `f`.

Also how do you make it return multiple arguments?

The same way like with a function. Preferably, you return a tuple:

``````lambda x, y: (x+y, x-y)
``````

Or a list, or a class, or whatever.

The thing with `self.entry_1.bind` should be answered by Demosthenex.

### Vue component event after render

updated() should be what you're looking for:

Called after a data change causes the virtual DOM to be re-rendered and patched.

The component’s DOM will have been updated when this hook is called, so you can perform DOM-dependent operations here.

### Remove the legend on a matplotlib figure

you have to add the following lines of code:

``````ax = gca()
ax.legend_ = None
draw()
``````

gca() returns the current axes handle, and has that property legend_

### python pandas dataframe to dictionary

The answers by joris in this thread and by punchagan in the duplicated thread are very elegant, however they will not give correct results if the column used for the keys contains any duplicated value.

For example:

``````>>> ptest = p.DataFrame([['a',1],['a',2],['b',3]], columns=['id', 'value'])
>>> ptest
id  value
0  a      1
1  a      2
2  b      3

# note that in both cases the association a->1 is lost:
>>> ptest.set_index('id')['value'].to_dict()
{'a': 2, 'b': 3}
>>> dict(zip(ptest.id, ptest.value))
{'a': 2, 'b': 3}
``````

If you have duplicated entries and do not want to lose them, you can use this ugly but working code:

``````>>> mydict = {}
>>> for x in range(len(ptest)):
...     currentid = ptest.iloc[x,0]
...     currentvalue = ptest.iloc[x,1]
...     mydict.setdefault(currentid, [])
...     mydict[currentid].append(currentvalue)
>>> mydict
{'a': [1, 2], 'b': [3]}
``````

### Using IS NULL or IS NOT NULL on join conditions - Theory question

Your execution plan should make this clear; the JOIN takes precedence, after which the results are filtered.

### Use superscripts in R axis labels

@The Thunder Chimp You can split text in such a way that some sections are affected by super(or sub) script and others aren't through the use of *. For your example, with splitting the word "moment" from "4th" -

``````plot(rnorm(30), xlab = expression('4'^th*'moment'))
``````

### Server cannot set status after HTTP headers have been sent IIS7.5

How about checking this before doing the redirect:

``````if (!Response.IsRequestBeingRedirected)
{
//do the redirect
}
``````

### Number of days in particular month of particular year?

In Java8 you can use get ValueRange from a field of a date.

``````LocalDateTime dateTime = LocalDateTime.now();

ChronoField chronoField = ChronoField.MONTH_OF_YEAR;
long max = dateTime.range(chronoField).getMaximum();
``````

This allows you to parameterize on the field.

### How do you import classes in JSP?

FYI - if you are importing a List into a JSP, chances are pretty good that you are violating MVC principles. Take a few hours now to read up on the MVC approach to web app development (including use of taglibs) - do some more googling on the subject, it's fascinating and will definitely help you write better apps.

If you are doing anything more complicated than a single JSP displaying some database results, please consider using a framework like Spring, Grails, etc... It will absolutely take you a bit more effort to get going, but it will save you so much time and effort down the road that I really recommend it. Besides, it's cool stuff :-)

### How can I rollback a git repository to a specific commit?

When doing branch updates from master, I notice that I sometimes over-click, and cause the branch to merge into the master, too. Found a way to undo that.

If your last commit was a merge, a little more love is needed:

### How can I require at least one checkbox be checked before a form can be submitted?

The issue with the accepted solution above is that is does not allow for the else condition on form submit (if a box has been selected), thereby preventing form submission - at least when I tried it.

I discovered another solution that effects the desired result more completely IMHO, here:

Making sure at least one checkbox is checked

Code as follows:

``````function valthis() {
var checkBoxes = document.getElementsByClassName( 'myCheckBox' );
var isChecked = false;
for (var i = 0; i < checkBoxes.length; i++) {
if ( checkBoxes[i].checked ) {
isChecked = true;
};
};
if ( isChecked ) {
alert( 'At least one checkbox checked!' );
} else {
}
}
``````

Fiddle

That code & answer by Vell

### CSS vertical alignment of inline/inline-block elements

Simply floating both elements left achieves the same result.

``````div {
background:yellow;
vertical-align:middle;
margin:10px;
}

a {
background-color:#FFF;
width:20px;
height:20px;
display:inline-block;
border:solid black 1px;
float:left;
}

span {
background:red;
display:inline-block;
float:left;
}
``````

### Using PropertyInfo to find out the property type

Use `PropertyInfo.PropertyType` to get the type of the property.

``````public bool ValidateData(object data)
{
foreach (PropertyInfo propertyInfo in data.GetType().GetProperties())
{
if (propertyInfo.PropertyType == typeof(string))
{
string value = propertyInfo.GetValue(data, null);

if value is not OK
{
return false;
}
}
}

return true;
}
``````

### Sniff HTTP packets for GET and POST requests from an application

Put `http.request.method == "POST"` in the display filter of wireshark to only show POST requests. Click on the packet, then expand the Hypertext Transfer Protocol field. The POST data will be right there on top.

### request exceeds the configured maxQueryStringLength when using [Authorize]

For anyone else that may encounter this problem and it is not solved by either of the options above, this is what worked for me.

``````1. Click on the website in IIS
2. Double Click on Authentication under IIS
3. Enable Anonymous Authentication
``````

I had disabled this because we were using our own Auth, but that lead to this same problem and the accepted answer did not help in any way.

By 'return non-false', they mean to return any value which would not work out to boolean false. So you could return `true`, `1`, `'non-false'`, or whatever else you can think up.

### What is the effect of extern "C" in C++?

It changes the linkage of a function in such a way that the function is callable from C. In practice that means that the function name is not mangled.

### Java array reflection: isArray vs. instanceof

If you ever have a choice between a reflective solution and a non-reflective solution, never pick the reflective one (involving Class objects). It's not that it's "Wrong" or anything, but anything involving reflection is generally less obvious and less clear.

### Can I have H2 autocreate a schema in an in-memory database?

If you are using spring with application.yml the following will work for you

```spring: datasource: url: jdbc:h2:mem:mydb;DB_CLOSE_ON_EXIT=FALSE;MODE=PostgreSQL;INIT=CREATE SCHEMA IF NOT EXISTS calendar```

### Copying formula to the next row when inserting a new row

Private Sub Worksheet_Change(ByVal Target As Range)

``````'data starts on row 3 which has the formulas
'the sheet is protected - input cells not locked - formula cells locked
'this routine is triggered on change of any cell on the worksheet so first check if
' it's a cell that we're interested in - and the row doesn't already have formulas
If Target.Column = 3 And Target.Row > 3 _
And Range("M" & Target.Row).Formula = "" Then

On Error GoTo ERROR_OCCURRED

'unprotect the sheet - otherwise can't copy and paste
ActiveSheet.Unprotect
'disable events - this prevents this routine from triggering again when
'copy and paste below changes the cell values
Application.EnableEvents = False

'copy col D (with validation list) from row above to new row (not locked)
Range("D" & Target.Row - 1).Copy
Range("D" & Target.Row).PasteSpecial

'copy col M to P (with formulas) from row above to new row
Range("M" & Target.Row - 1 & ":P" & Target.Row - 1).Copy
Range("M" & Target.Row).PasteSpecial
``````

'make sure if an error occurs (or not) events are re-enabled and sheet re-protected

ERROR_OCCURRED:

``````    If Err.Number <> 0 Then
MsgBox "An error occurred. Formulas may not have been copied." & vbCrLf & vbCrLf & _
Err.Number & " - " & Err.Description
End If

're-enable events
Application.EnableEvents = True
're-protect the sheet
ActiveSheet.Protect

'put focus back on the next cell after routine was triggered
Range("D" & Target.Row).Select

End If
``````

End Sub

### Heroku deployment error H10 (App crashed)

In my case I was performing `git push heroku master` when I am not on the master branch. I had to go to master branch first, merge the code with my other branch and then git pushed.

### Call PHP function from jQuery?

This is exactly what ajax is for. See here:

Basically, you ajax/test.php and put the returned HTML code to the element which has the result id.

``````\$('#result').load('ajax/test.php');
``````

Of course, you will need to put the functionality which takes time to a new php file (or call the old one with a GET parameter which will activate that functionality only).

### SQL Server - INNER JOIN WITH DISTINCT

You can use CTE to get the distinct values of the second table, and then join that with the first table. You also need to get the distinct values based on LastName column. You do this with a Row_Number() partitioned by the LastName, and sorted by the FirstName.

Here's the code

``````;WITH SecondTableWithDistinctLastName AS
(
SELECT  *
FROM    (
SELECT  *,
ROW_NUMBER() OVER (PARTITION BY LastName ORDER BY FirstName) AS [Rank]
)
AS      tableWithRank
WHERE   tableWithRank.[Rank] = 1
)
SELECT          a.FirstName, a.LastName, S.District
FROM            SecondTableWithDistinctLastName AS S
ON          a.LastName = S.LastName
ORDER   BY      a.FirstName
``````

### iptables v1.4.14: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)

Short version :

run iptables on the host before to run it in the virtual server (I'm pretty sure this is some sort of LXC or OpenVZ container here).

Long version :

The problem is due to the fact that the ip_table module is loaded on demand. So, after a reboot, on any machine that does not have any iptables rules loaded at boot time, the ip_tables module is not loaded (no demand for the modules == the module is not loaded). Consequently, the LXC or OpenVZ containers cannot use iptables (since they share the host kernel but cannot modify which modules are loaded) until the host has somehow loaded the ip_tables module.

### Gradle: How to Display Test Results in the Console in Real Time?

As a follow up to Shubham's great answer I like to suggest using enum values instead of strings. Please take a look at the documentation of the TestLogging class.

``````import org.gradle.api.tasks.testing.logging.TestExceptionFormat

testLogging {
events TestLogEvent.FAILED,
TestLogEvent.PASSED,
TestLogEvent.SKIPPED,
TestLogEvent.STANDARD_ERROR,
TestLogEvent.STANDARD_OUT
exceptionFormat TestExceptionFormat.FULL
showCauses true
showExceptions true
showStackTraces true
}
}
``````

### jQuery .each() with input elements

You can use:

``````\$(formId).serializeArray();
``````

### MVC ajax post to controller action method

``````\$('#loginBtn').click(function(e) {
e.preventDefault(); /// it should not have this code or else it wont continue
//....
});
``````

### When should I use cross apply over inner join?

Can anyone give me a good example of when CROSS APPLY makes a difference in those cases where INNER JOIN will work as well?

See the article in my blog for detailed performance comparison:

`CROSS APPLY` works better on things that have no simple `JOIN` condition.

This one selects `3` last records from `t2` for each record from `t1`:

``````SELECT  t1.*, t2o.*
FROM    t1
CROSS APPLY
(
SELECT  TOP 3 *
FROM    t2
WHERE   t2.t1_id = t1.id
ORDER BY
t2.rank DESC
) t2o
``````

It cannot be easily formulated with an `INNER JOIN` condition.

You could probably do something like that using `CTE`'s and window function:

``````WITH    t2o AS
(
SELECT  t2.*, ROW_NUMBER() OVER (PARTITION BY t1_id ORDER BY rank) AS rn
FROM    t2
)
SELECT  t1.*, t2o.*
FROM    t1
INNER JOIN
t2o
ON      t2o.t1_id = t1.id
AND t2o.rn <= 3
``````

, but this is less readable and probably less efficient.

Update:

Just checked.

`master` is a table of about `20,000,000` records with a `PRIMARY KEY` on `id`.

This query:

``````WITH    q AS
(
SELECT  *, ROW_NUMBER() OVER (ORDER BY id) AS rn
FROM    master
),
t AS
(
SELECT  1 AS id
UNION ALL
SELECT  2
)
SELECT  *
FROM    t
JOIN    q
ON      q.rn <= t.id
``````

runs for almost `30` seconds, while this one:

``````WITH    t AS
(
SELECT  1 AS id
UNION ALL
SELECT  2
)
SELECT  *
FROM    t
CROSS APPLY
(
SELECT  TOP (t.id) m.*
FROM    master m
ORDER BY
id
) q
``````

is instant.

### jQuery: find element by text

``````<div>hhhhhh
<div>This is a test</div>
<div>Another Div</div>
</div>
``````

I simply modified his DEMO here and you can see the root DOM is selected.

``````\$('div:contains("test"):last').css('background-color', 'red');
``````

add ":last" selector in the code to fix this.

### Hashcode and Equals for Hashset

You should read up on how to ensure that you've implemented equals and hashCode properly. This is a good starting point: What issues should be considered when overriding equals and hashCode in Java?

### How to do parallel programming in Python?

You can use the multiprocessing module. For this case I might use a processing pool:

``````from multiprocessing import Pool
pool = Pool()
result1 = pool.apply_async(solve1, [A])    # evaluate "solve1(A)" asynchronously
result2 = pool.apply_async(solve2, [B])    # evaluate "solve2(B)" asynchronously
``````

This will spawn processes that can do generic work for you. Since we did not pass `processes`, it will spawn one process for each CPU core on your machine. Each CPU core can execute one process simultaneously.

If you want to map a list to a single function you would do this:

``````args = [A, B]
results = pool.map(solve1, args)
``````

Don't use threads because the GIL locks any operations on python objects.

In Visual Studio 2017, unchecked the ContextSwitchDeadlock option by:

Debug > Windows > Exception Settings

In Exception Setting Windows: Uncheck the ContextSwitchDeadlock option

### The create-react-app imports restriction outside of src directory

You don't need to eject, you can modify the `react-scripts` config with the rescripts library

This would work then:

``````module.exports = config => {
const scopePluginIndex = config.resolve.plugins.findIndex(
({ constructor }) => constructor && constructor.name === "ModuleScopePlugin"
);

config.resolve.plugins.splice(scopePluginIndex, 1);

return config;
};
``````

### How to apply font anti-alias effects in CSS?

CSS does not have techniques which affect the rendering of fonts in the browser; only the system can do that.

Obviously, text sharpness can easily be achieved with pixel-dense screens, but if you're using a normal PC that's gonna be hard to achieve.

There are some newer fonts that are smooth but at the sacrifice of it appearing somewhat blurry (look at most of Adobe's fonts, for example). You can also find some smooth-but-blurry-by-design fonts at Google Fonts, however.

There are some new CSS3 techniques for font rendering and text effects though the consistency, performance, and reliability of these techniques vary so largely to the point where you generally shouldn't rely on them too much.

### Android, How to limit width of TextView (and add three dots at the end of text)?

I got the desired result by using

``````android:maxLines="2"
android:minLines="2"
android:ellipsize="end"
``````

The trick is set maxLines and minLines to the same value... and Not just android:lines = "2", dosen't do the trick. Also you are avoiding any deprecated attributes.

### Using external images for CSS custom cursors

I found out that you need to add the pointer eg:

``````div{
cursor: url('cursorurl.png'), pointer;
}
``````

### Add ArrayList to another ArrayList in java

Wouldn't it just be a case of:

``````ArrayList<ArrayList<String>> outer = new ArrayList<ArrayList<String>>();
ArrayList<String> nodeList = new ArrayList<String>();

// Fill in nodeList here...

``````

Repeat as necesary.

This should return you a list in the format you specified.

### INSERT and UPDATE a record using cursors in oracle

This is a highly inefficient way of doing it. You can use the `merge` statement and then there's no need for cursors, looping or (if you can do without) PL/SQL.

``````MERGE INTO studLoad l
USING ( SELECT studId, studName FROM student ) s
ON (l.studId = s.studId)
WHEN MATCHED THEN
UPDATE SET l.studName = s.studName
WHERE l.studName != s.studName
WHEN NOT MATCHED THEN
INSERT (l.studID, l.studName)
VALUES (s.studId, s.studName)
``````

Make sure you `commit`, once completed, in order to be able to see this in the database.

To actually answer your question I would do it something like as follows. This has the benefit of doing most of the work in SQL and only updating based on the rowid, a unique address in the table.

It declares a type, which you place the data within in bulk, 10,000 rows at a time. Then processes these rows individually.

However, as I say this will not be as efficient as `merge`.

``````declare

cursor c_data is
select b.rowid as rid, a.studId, a.studName
from student a
on a.studId = b.studId
and a.studName <> b.studName
;

type t__data is table of c_data%rowtype index by binary_integer;
t_data t__data;

begin

open c_data;
loop
fetch c_data bulk collect into t_data limit 10000;

exit when t_data.count = 0;

for idx in t_data.first .. t_data.last loop
if t_data(idx).rid is null then
values (t_data(idx).studId, t_data(idx).studName);
else
set studName = t_data(idx).studName
where rowid = t_data(idx).rid
;
end if;
end loop;

end loop;
close c_data;

end;
/
``````

### Can you disable tabs in Bootstrap?

Suppose, this is your TAB and you want to disable it

``````<li class="" id="groups"><a data-toggle="tab" class="navuserli" href="#groups" aria-expanded="false">Groups</a></li>
``````

So you can also disable this tab by adding dynamic css

``````\$('#groups').css('pointer-events', 'none')
``````

### Add element to a JSON file?

One possible issue I see is you set your JSON unconventionally within an array/list object. I would recommend using JSON in its most accepted form, i.e.:

``````test_json = { "a": 1, "b": 2}
``````

Once you do this, adding a json element only involves the following line:

``````test_json["c"] = 3
``````

This will result in:

``````{'a': 1, 'b': 2, 'c': 3}
``````

Afterwards, you can add that json back into an array or a list of that is desired.

### What Ruby IDE do you prefer?

Most IDEs present the project structure in a top down manner. This is great way to explore at a high level when joining an existing project. However, after working on the same project for more than a year, I realized that this approach can become counter-productive.

After Oracle declared the end of Ruby in NetBeans, I switched to Vim. By using a command line and an editor as the only tools, I was forced to mentally switch to a bottom-up perspective. To my amazement, I discovered that this made me more focused and productive. As a bonus, I got first class HAML and SASS syntax support.

I recommend Vim + Rails plugin for anyone that will work on a single project for an extended period of time.

### List files ONLY in the current directory

You can use `os.listdir` for this purpose. If you only want files and not directories, you can filter the results using `os.path.isfile`.

example:

``````files = os.listdir(os.curdir)  #files and directories
``````

or

``````files = filter(os.path.isfile, os.listdir( os.curdir ) )  # files only
files = [ f for f in os.listdir( os.curdir ) if os.path.isfile(f) ] #list comprehension version.
``````

### C++ performance vs. Java/C#

My understanding is that C/C++ produces native code to run on a particular machine architecture. Conversely, languages like Java and C# run on top of a virtual machine which abstracts away the native architecture. Logically it would seem impossible for Java or C# to match the speed of C++ because of this intermediate step, however I've been told that the latest compilers ("hot spot") can attain this speed or even exceed it.

That is illogical. The use of an intermediate representation does not inherently degrade performance. For example, llvm-gcc compiles C and C++ via LLVM IR (which is a virtual infinite-register machine) to native code and it achieves excellent performance (often beating GCC).

Perhaps this is more of a compiler question than a language question, but can anyone explain in plain English how it is possible for one of these virtual machine languages to perform better than a native language?

Here are some examples:

• Virtual machines with JIT compilation facilitate run-time code generation (e.g. `System.Reflection.Emit` on .NET) so you can compile generated code on-the-fly in languages like C# and F# but must resort to writing a comparatively-slow interpreter in C or C++. For example, to implement regular expressions.

• Parts of the virtual machine (e.g. the write barrier and allocator) are often written in hand-coded assembler because C and C++ do not generate fast enough code. If a program stresses these parts of a system then it could conceivably outperform anything that can be written in C or C++.

• Dynamic linking of native code requires conformance to an ABI that can impede performance and obviates whole-program optimization whereas linking is typically deferred on VMs and can benefit from whole-program optimizations (like .NET's reified generics).

I'd also like to address some issues with paercebal's highly-upvoted answer above (because someone keeps deleting my comments on his answer) that presents a counter-productively polarized view:

The code processing will be done at compilation time...

Hence template metaprogramming only works if the program is available at compile time which is often not the case, e.g. it is impossible to write a competitively performant regular expression library in vanilla C++ because it is incapable of run-time code generation (an important aspect of metaprogramming).

...playing with types is done at compile time...the equivalent in Java or C# is painful at best to write, and will always be slower and resolved at runtime even when the types are known at compile time.

In C#, that is only true of reference types and is not true for value types.

No matter the JIT optimization, nothing will go has fast as direct pointer access to memory...if you have contiguous data in memory, accessing it through C++ pointers (i.e. C pointers... Let's give Caesar its due) will goes times faster than in Java/C#.

People have observed Java beating C++ on the SOR test from the SciMark2 benchmark precisely because pointers impede aliasing-related optimizations.

Also worth noting that .NET does type specialization of generics across dynamically-linked libraries after linking whereas C++ cannot because templates must be resolved before linking. And obviously the big advantage generics have over templates is comprehensible error messages.

### Counter exit code 139 when running, but gdb make it through

exit code 139 (people say this means memory fragmentation)

No, it means that your program died with signal `11` (`SIGSEGV` on Linux and most other UNIXes), also known as `segmentation fault`.

Could anybody tell me why the run fails but debug doesn't?

Your program exhibits undefined behavior, and can do anything (that includes appearing to work correctly sometimes).

Your first step should be running this program under Valgrind, and fixing all errors it reports.

If after doing the above, the program still crashes, then you should let it dump core (`ulimit -c unlimited; ./a.out`) and then analyze that core dump with GDB: `gdb ./a.out core`; then use `where` command.

### Postgres could not connect to server

This can sometimes be an issue with a postgres upgrade.

In my case, it happened when upgrading from 9.3 to 9.4.

OS X/Homebrew:

Try running `postgres -D /usr/local/var/postgres` -- it will give you a much more verbose output if postgres fails to start.

In my case, running `rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8` removed my old databases and then reinitialized the postgres db schema.

Thanks to https://github.com/Homebrew/homebrew/issues/35240 for that solution.

After regenerating my databases (with `rake db:create`) everything worked fine again.

### Merge 2 DataTables and store in a new one

``````dtAll = dtOne.Copy();
dtAll.Merge(dtTwo,true);
``````

The parameter TRUE preserve the changes.

For more details refer to MSDN.

### Change the borderColor of the TextBox

set Text box Border style to None then write this code to container form "paint" event

``````private void Form1_Paint(object sender, PaintEventArgs e)
{
System.Drawing.Rectangle rect = new Rectangle(TextBox1.Location.X,
TextBox1.Location.Y, TextBox1.ClientSize.Width, TextBox1.ClientSize.Height);

rect.Inflate(1, 1); // border thickness
System.Windows.Forms.ControlPaint.DrawBorder(e.Graphics, rect,
Color.DeepSkyBlue, ButtonBorderStyle.Solid);
}
``````

### SQL Server: Extract Table Meta-Data (description, fields and their data types)

If it is OK to use .NET code I'd suggest using SMO: http://msdn.microsoft.com/en-us/library/ms162169.aspx, In your particular case it would be the Table class http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.table.aspx This would be a more portable solution than using version specific system views and tables.

If this is something you are going to use on a regular basis - you might want to write a simple console application, perhaps with a runtime T4 code generator http://msdn.microsoft.com/en-us/library/ee844259.aspx

If it's just a one-off task - you could use my LiveDoco's( http://www.livedoco.com ) export to XML feature with an optional XSLT transform or I'm sure there are free tools out there that can do this. This one looks okay: http://sqldbdoc.codeplex.com/ - supports XML via XSLT, but I'm not sure if you can run it for a selection of tables though (With LiveDoco you can).

### CSS div 100% height

Set the html tag, too. This way no weird position hacks are required.

`html, body {height: 100%}`

### Size of character ('a') in C/C++

In C, the type of a character constant like `'a'` is actually an `int`, with size of 4 (or some other implementation-dependent value). In C++, the type is `char`, with size of 1. This is one of many small differences between the two languages.

### Could not load file or assembly '' or one of its dependencies

I had the same problem i solved it via the instructions below:

1. open tools menu and select option
2. in options, window go to Projects and Solutions/Web Projects
3. check `use the 64bit version of IIS ...`

### How to hide Bootstrap previous modal when you opening new one?

The best that I've been able to do is

``````\$(this).closest('.modal').modal('toggle');
``````

This gets the modal holding the DOM object you triggered the event on (guessing you're clicking a button). Gets the closest parent '.modal' and toggles it. Obviously only works because it's inside the modal you clicked.

You can however do this:

``````\$(".modal:visible").modal('toggle');
``````

This gets the modal that is displaying (since you can only have one open at a time), and triggers the 'toggle' This would not work without ":visible"

### How to add text at the end of each line in Vim?

I have `<M-DOWN>`(alt down arrow) mapped to `<DOWN>.` so that I can repeat the last command on a series of lines very quickly. with this mapping I can:

``````A,<ESC>
``````

And then hold alt while pressing down repeatedly to append the comma to the end of each line.
This works well for me because it allows very good control over what lines do and do not get the change.
(I also have the other arrows mapped similarly to allow for easy repeating of `.`)

Here's the mapping line to paste into your vimrc:

``````map <M-DOWN> <DOWN>.
``````

### iconv - Detected an illegal character in input string

this bellow solution worked for me

``````\$result_encr="##Sƒ";

iconv("cp1252", "utf-8//IGNORE", \$result_encr);
``````

### How can I upgrade NumPy?

The error you mentioned happens when you have two versions of NumPy on your system. As you mentioned, the version of NumPy you imported is still not upgraded since you tried to upgrade it through pip (it will upgrade the version existing in `'/Library/Python/2.7/site-packages'` ).

However Python still loads the packages from ` '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy'` where the pre-installed packages live.

In order to upgrade that version you have to use `easy_install`. The other way around this problem is using `virtualenv` and setting up a new environment with all the requirements you need.

### "%%" and "%/%" for the remainder and the quotient

In R, you can assign your own operators using `%[characters]%`. A trivial example:

``````'%p%' <- function(x, y){x^2 + y}

2 %p% 3 # result: 7
``````

While I agree with BlueTrin that `%%` is pretty standard, I have a suspicion `%/%` may have something to do with the sort of operator definitions I showed above - perhaps it was easier to implement, and makes sense: `%/%` means do a special sort of division (integer division)

### Get Enum from Description attribute

You need to iterate through all the enum values in Animal and return the value that matches the description you need.

### What is PostgreSQL equivalent of SYSDATE from Oracle?

`SYSDATE` is an Oracle only function.

The ANSI standard defines `current_date` or `current_timestamp` which is supported by Postgres and documented in the manual:
http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT

(Btw: Oracle supports `CURRENT_TIMESTAMP` as well)

You should pay attention to the difference between `current_timestamp`, `statement_timestamp()` and `clock_timestamp()` (which is explained in the manual, see the above link)

This statement:

`select up_time from exam where up_time like sysdate`

Does not make any sense at all. Neither in Oracle nor in Postgres. If you want to get rows from "today", you need something like:

``````select up_time
from exam
where up_time = current_date
``````

Note that in Oracle you would probably want `trunc(up_time) = trunc(sysdate)` to get rid of the time part that is always included in Oracle.

### How to take screenshot of a div with JavaScript?

``````<script src="/assets/backend/js/html2canvas.min.js"></script>

<script>
html2canvas(\$("#printform"), {
onrendered: function (canvas) {
var url = canvas.toDataURL();

}
});
})
</script>
``````

quotation

### Pandas DataFrame Groupby two columns and get counts

Inserting data into a pandas dataframe and providing column name.

``````import pandas as pd
df = pd.DataFrame([['A','C','A','B','C','A','B','B','A','A'], ['ONE','TWO','ONE','ONE','ONE','TWO','ONE','TWO','ONE','THREE']]).T
df.columns = [['Alphabet','Words']]
print(df)   #printing dataframe.
``````

This is our printed data:

For making a group of dataframe in pandas and counter,
You need to provide one more column which counts the grouping, let's call that column as, "COUNTER" in dataframe.

Like this:

``````df['COUNTER'] =1       #initially, set that counter to 1.
group_data = df.groupby(['Alphabet','Words'])['COUNTER'].sum() #sum function
print(group_data)
``````

OUTPUT:

### How to add LocalDB to Visual Studio 2015 Community's SQL Server Object Explorer?

``````My App.config looks as below:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
``````

I noticed that there is localDB in the path that you mentioned above and has the version v11.0. So I entered (LocalDB\V11.0) in Add Connection dialogue and it worked for me.

### Remote Linux server to remote linux server dir copy. How?

scp as mentioned above is usually a best way, but don't forget colon in the remote directory spec otherwise you'll get copy of source directory on local machine.

There could be following things in your settings.py:

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',

'DIRS': ["templates"],

'APP_DIRS': True,

'OPTIONS': {
# ... some options here ...
},
}, ]

OR

STATIC_URL = '/static/'

OR

STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), )

### CSS: how to position element in lower right?

Set the CSS `position: relative;` on the box. This causes all absolute positions of objects inside to be relative to the corners of that box. Then set the following CSS on the "Bet 5 days ago" line:

``````position: absolute;
bottom: 0;
right: 0;
``````

If you need to space the text farther away from the edge, you could change `0` to `2px` or similar.

### What's an Aggregate Root?

The aggregate root is a complex name for a simple idea.

#### General idea

Well designed class diagram encapsulates its internals. Point through which you access this structure is called `aggregate root`.

Internals of your solution may be very complicated, but users of this hierarchy will just use `root.doSomethingWhichHasBusinessMeaning()`.

#### Example

Check this simple class hierarchy

How do you want to ride your car? Chose better API

Option A (it just somehow works):

``````car.ride();
``````

``````if(car.getTires().getUsageLevel()< Car.ACCEPTABLE_TIRE_USAGE)
for (Wheel w: car:getWheels()){
w.spin();
}
}
``````

If you think that option A is better then congratulations. You get the main reason behind `aggregate root`.

Aggregate root encapsulates multiple classes. you can manipulate the whole hierarchy only through the main object.

### how to draw directed graphs using networkx in python?

Instead of regular nx.draw you may want to use:

``````nx.draw_networkx(G[, pos, arrows, with_labels])
``````

For example:

``````nx.draw_networkx(G, arrows=True, **options)
``````

You can add options by initialising that ** variable like this:

``````options = {
'node_color': 'blue',
'node_size': 100,
'width': 3,
'arrowstyle': '-|>',
'arrowsize': 12,
}
``````

Also some functions support the `directed=True parameter` In this case this state is the default one:

``````G = nx.DiGraph(directed=True)
``````

The networkx reference is found here.

### What does the "__block" keyword mean?

__block is a storage qualifier that can be used in two ways:

1. Marks that a variable lives in a storage that is shared between the lexical scope of the original variable and any blocks declared within that scope. And clang will generate a struct to represent this variable, and use this struct by reference(not by value).

2. In MRC, __block can be used to avoid retain object variables a block captures. Careful that this doesn't work for ARC. In ARC, you should use __weak instead.

You can refer to apple doc for detailed information.

### How to set a timeout on a http.request() in Node?

Elaborating on the answer @douwe here is where you would put a timeout on a http request.

``````// TYPICAL REQUEST
var req = https.get(http_options, function (res) {
var data = '';

res.on('data', function (chunk) { data += chunk; });
res.on('end', function () {
if (res.statusCode === 200) { /* do stuff with your data */}
else { /* Do other codes */}
});
});
req.on('error', function (err) { /* More serious connection problems. */ });

// TIMEOUT PART
req.setTimeout(1000, function() {
console.log("Server connection timeout (after 1 second)");
req.abort();
});
``````

this.abort() is also fine.

### Excel VBA - read cell value from code

I think you need this ..

``````Dim n as Integer

For n = 5 to 17
msgbox cells(n,3) '--> sched waste
msgbox cells(n,4) '--> type of treatm
msgbox format(cells(n,5),"dd/MM/yyyy") '--> Lic exp
msgbox cells(n,6) '--> email col
Next
``````

### How to fix 'Microsoft Excel cannot open or save any more documents'

If none of the above worked, try these as well:

• In `Component services >Computes >My Computer>Dcom config>Microsoft Excel Application>Properties`, go to security tab, click on customize on all three sections and add the user that want to run the application, and give full permissions to the user.

• Go to `C:\Windows\Temp` make sure it exists and it doesn't prompt you for entering.

### Finding the 'type' of an input element

Check the `type` property. Would that suffice?

### How can I compare strings in C using a `switch` statement?

If you have many cases and do not want to write a ton of `strcmp()` calls, you could do something like:

``````switch(my_hash_function(the_string)) {
case HASH_B1: ...
/* ...etc... */
}
``````

You just have to make sure your hash function has no collisions inside the set of possible values for the string.

### Casting string to enum

As an extra, you can take the `Enum.Parse` answers already provided and put them in an easy-to-use static method in a helper class.

``````public static T ParseEnum<T>(string value)
{
return (T)Enum.Parse(typeof(T), value, ignoreCase: true);
}
``````

And use it like so:

``````{
Content = ParseEnum<ContentEnum>(fileContentMessage);
};
``````

Especially helpful if you have lots of (different) Enums to parse.

### How do I handle a click anywhere in the page, even when a certain element stops the propagation?

What you really want to do is bind the event handler for the capture phase of the event. However, that isn't supported in IE as far as I know, so that might not be all that useful.

http://www.quirksmode.org/js/events_order.html

Related questions:

### anaconda - graphviz - can't import after installation

To install graphviz,

``````conda install -c anaconda graphviz
pip install graphviz
``````

``````export PATH=~/anaconda/bin:\$PATH
conda --version # to check your conda version
``````

Difference between conda and pip installation,

### What is the difference between Scope_Identity(), Identity(), @@Identity, and Ident_Current()?

`Scope Identity`: Identity of last record added within the stored procedure being executed.

`@@Identity`: Identity of last record added within the query batch, or as a result of the query e.g. a procedure that performs an insert, the then fires a trigger that then inserts a record will return the identity of the inserted record from the trigger.

`IdentCurrent`: The last identity allocated for the table.

### PostgreSQL wildcard LIKE for any of a list of words

All currently supported versions (9.5 and up) allow pattern matching in addition to `LIKE`.

### Android studio, gradle and NDK

A good answer automating the packaging of readily compiled `.so`-files is given in another (closed) thread. To get that working, I had to change the line:

``````from fileTree(dir: 'libs', include: '**/*.so')
``````

into:

``````from fileTree(dir: 'src/main/libs', include: '**/*.so')
``````

Without this change the `.so` files were not found, and the task for packaging them would therefore never run.

### Why does the Google Play store say my Android app is incompatible with my own device?

I have experienced this problem too while developing an application for a customer that wanted to have videos offline available from their application. I have written a blogpost about why the app I worked on for months wouldn't show up in the play store for my device (post can be found here). I found the same as @Greg Hewgill found: Cache partition limitations on some devices.

The journey didn't stop for me there. The customer wanted to have these videos in the application and didn't want the quality of the video to be decreased. After some research I figured out that using expansion files was the perfect solution to our problem.

To share my knowledge with the Android community I held a talk at droidconNL 2012 about expansion files. I created a presentation and sample code to illustrate how easy it can be to start using expansion files. For any of you out there wanting to use expansion files to solve this problem feel free to check out the post containing the presentation and the sample code

### How to programmatically empty browser cache?

Here is a single-liner of how you can delete ALL browser network cache using Cache.delete()

``````caches.keys().then((keyList) => Promise.all(keyList.map((key) => caches.delete(key))))
``````

Works on Chrome 40+, Firefox 39+, Opera 27+ and Edge.

### How do I connect to a specific Wi-Fi network in Android programmatically?

I also tried to connect to the network. None of the solutions proposed above works for hugerock t70. Function wifiManager.disconnect(); doesn't disconnect from current network. ?nd therefore cannot reconnect to the specified network. I have modified the above code. For me the code bolow works perfectly:

``````String networkSSID = "test";
String networkPass = "pass";

WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";
conf.wepKeys[0] = "\"" + networkPass + "\"";
conf.wepTxKeyIndex = 0;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
conf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
conf.preSharedKey = "\""+ networkPass +"\"";

WifiManager wifiManager =
(WifiManager)context.getSystemService(Context.WIFI_SERVICE);

wifi_inf = wifiManager.getConnectionInfo();

/////important!!!
wifiManager.disableNetwork(wifi_inf.getNetworkId());
/////////////////

wifiManager.enableNetwork(networkId, true);
``````

### What is the theoretical maximum number of open TCP connections that a modern Linux box can have

If you are thinking of running a server and trying to decide how many connections can be served from one machine, you may want to read about the C10k problem and the potential problems involved in serving lots of clients simultaneously.

### How to Configure SSL for Amazon S3 bucket

As mentioned before, you cannot create free certificates for S3 buckets. However, you can create Cloud Front distribution and then assign the certificate for the Cloud Front instead. You request the certificate for your domain and then just assign it to the Cloud Front distribution in the Cloud Front settings. I've used this method to serve static websites via SSL as well as serve static files.

For static website creation Amazon is the go to place. It is really affordable to get a static website with SSL.

### Global keyboard capture in C# application

As requested by dube I'm posting my modified version of Siarhei Kuchuk's answer.
If you want to check my changes search for `// EDT`. I've commented most of it.

The Setup

``````class GlobalKeyboardHookEventArgs : HandledEventArgs
{
public GlobalKeyboardHook.KeyboardState KeyboardState { get; private set; }
public GlobalKeyboardHook.LowLevelKeyboardInputEvent KeyboardData { get; private set; }

public GlobalKeyboardHookEventArgs(
GlobalKeyboardHook.LowLevelKeyboardInputEvent keyboardData,
GlobalKeyboardHook.KeyboardState keyboardState)
{
KeyboardData = keyboardData;
KeyboardState = keyboardState;
}
}

//Based on https://gist.github.com/Stasonix
class GlobalKeyboardHook : IDisposable
{
public event EventHandler<GlobalKeyboardHookEventArgs> KeyboardPressed;

// EDT: Added an optional parameter (registeredKeys) that accepts keys to restict
// the logging mechanism.
/// <summary>
///
/// </summary>
/// <param name="registeredKeys">Keys that should trigger logging. Pass null for full logging.</param>
public GlobalKeyboardHook(Keys[] registeredKeys = null)
{
RegisteredKeys = registeredKeys;
_windowsHookHandle = IntPtr.Zero;
_user32LibraryHandle = IntPtr.Zero;
_hookProc = LowLevelKeyboardProc; // we must keep alive _hookProc, because GC is not aware about SetWindowsHookEx behaviour.

if (_user32LibraryHandle == IntPtr.Zero)
{
int errorCode = Marshal.GetLastWin32Error();
throw new Win32Exception(errorCode, \$"Failed to load library 'User32.dll'. Error {errorCode}: {new Win32Exception(Marshal.GetLastWin32Error()).Message}.");
}

_windowsHookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, _hookProc, _user32LibraryHandle, 0);
if (_windowsHookHandle == IntPtr.Zero)
{
int errorCode = Marshal.GetLastWin32Error();
throw new Win32Exception(errorCode, \$"Failed to adjust keyboard hooks for '{Process.GetCurrentProcess().ProcessName}'. Error {errorCode}: {new Win32Exception(Marshal.GetLastWin32Error()).Message}.");
}
}

protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// because we can unhook only in the same thread, not in garbage collector thread
if (_windowsHookHandle != IntPtr.Zero)
{
if (!UnhookWindowsHookEx(_windowsHookHandle))
{
int errorCode = Marshal.GetLastWin32Error();
throw new Win32Exception(errorCode, \$"Failed to remove keyboard hooks for '{Process.GetCurrentProcess().ProcessName}'. Error {errorCode}: {new Win32Exception(Marshal.GetLastWin32Error()).Message}.");
}
_windowsHookHandle = IntPtr.Zero;

// ReSharper disable once DelegateSubtraction
_hookProc -= LowLevelKeyboardProc;
}
}

if (_user32LibraryHandle != IntPtr.Zero)
{
if (!FreeLibrary(_user32LibraryHandle)) // reduces reference to library by 1.
{
int errorCode = Marshal.GetLastWin32Error();
throw new Win32Exception(errorCode, \$"Failed to unload library 'User32.dll'. Error {errorCode}: {new Win32Exception(Marshal.GetLastWin32Error()).Message}.");
}
_user32LibraryHandle = IntPtr.Zero;
}
}

~GlobalKeyboardHook()
{
Dispose(false);
}

public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

private IntPtr _windowsHookHandle;
private IntPtr _user32LibraryHandle;
private HookProc _hookProc;

delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);

[DllImport("kernel32.dll")]
private static extern IntPtr LoadLibrary(string lpFileName);

[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
private static extern bool FreeLibrary(IntPtr hModule);

/// <summary>
/// The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain.
/// You would install a hook procedure to monitor the system for certain types of events. These events are
/// associated either with a specific thread or with all threads in the same desktop as the calling thread.
/// </summary>
/// <param name="idHook">hook type</param>
/// <param name="lpfn">hook procedure</param>
/// <param name="hMod">handle to application instance</param>
/// <returns>If the function succeeds, the return value is the handle to the hook procedure.</returns>
[DllImport("USER32", SetLastError = true)]
static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, int dwThreadId);

/// <summary>
/// The UnhookWindowsHookEx function removes a hook procedure installed in a hook chain by the SetWindowsHookEx function.
/// </summary>
/// <param name="hhk">handle to hook procedure</param>
/// <returns>If the function succeeds, the return value is true.</returns>
[DllImport("USER32", SetLastError = true)]
public static extern bool UnhookWindowsHookEx(IntPtr hHook);

/// <summary>
/// The CallNextHookEx function passes the hook information to the next hook procedure in the current hook chain.
/// A hook procedure can call this function either before or after processing the hook information.
/// </summary>
/// <param name="hHook">handle to current hook</param>
/// <param name="code">hook code passed to hook procedure</param>
/// <param name="wParam">value passed to hook procedure</param>
/// <param name="lParam">value passed to hook procedure</param>
/// <returns>If the function succeeds, the return value is true.</returns>
[DllImport("USER32", SetLastError = true)]
static extern IntPtr CallNextHookEx(IntPtr hHook, int code, IntPtr wParam, IntPtr lParam);

[StructLayout(LayoutKind.Sequential)]
public struct LowLevelKeyboardInputEvent
{
/// <summary>
/// A virtual-key code. The code must be a value in the range 1 to 254.
/// </summary>
public int VirtualCode;

// EDT: added a conversion from VirtualCode to Keys.
/// <summary>
/// The VirtualCode converted to typeof(Keys) for higher usability.
/// </summary>
public Keys Key { get { return (Keys)VirtualCode; } }

/// <summary>
/// A hardware scan code for the key.
/// </summary>
public int HardwareScanCode;

/// <summary>
/// The extended-key flag, event-injected Flags, context code, and transition-state flag. This member is specified as follows. An application can use the following values to test the keystroke Flags. Testing LLKHF_INJECTED (bit 4) will tell you whether the event was injected. If it was, then testing LLKHF_LOWER_IL_INJECTED (bit 1) will tell you whether or not the event was injected from a process running at lower integrity level.
/// </summary>
public int Flags;

/// <summary>
/// The time stamp stamp for this message, equivalent to what GetMessageTime would return for this message.
/// </summary>
public int TimeStamp;

/// <summary>
/// Additional information associated with the message.
/// </summary>
}

public const int WH_KEYBOARD_LL = 13;
//const int HC_ACTION = 0;

public enum KeyboardState
{
KeyDown = 0x0100,
KeyUp = 0x0101,
SysKeyDown = 0x0104,
SysKeyUp = 0x0105
}

// EDT: Replaced VkSnapshot(int) with RegisteredKeys(Keys[])
public static Keys[] RegisteredKeys;
const int KfAltdown = 0x2000;
public const int LlkhfAltdown = (KfAltdown >> 8);

public IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam)
{
bool fEatKeyStroke = false;

var wparamTyped = wParam.ToInt32();
if (Enum.IsDefined(typeof(KeyboardState), wparamTyped))
{
object o = Marshal.PtrToStructure(lParam, typeof(LowLevelKeyboardInputEvent));
LowLevelKeyboardInputEvent p = (LowLevelKeyboardInputEvent)o;

var eventArguments = new GlobalKeyboardHookEventArgs(p, (KeyboardState)wparamTyped);

// EDT: Removed the comparison-logic from the usage-area so the user does not need to mess around with it.
// Either the incoming key has to be part of RegisteredKeys (see constructor on top) or RegisterdKeys
// has to be null for the event to get fired.
var key = (Keys)p.VirtualCode;
if (RegisteredKeys == null || RegisteredKeys.Contains(key))
{
EventHandler<GlobalKeyboardHookEventArgs> handler = KeyboardPressed;
handler?.Invoke(this, eventArguments);

fEatKeyStroke = eventArguments.Handled;
}
}

return fEatKeyStroke ? (IntPtr)1 : CallNextHookEx(IntPtr.Zero, nCode, wParam, lParam);
}
}
``````

The Usage differences can be seen here

``````public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private GlobalKeyboardHook _globalKeyboardHook;

private void buttonHook_Click(object sender, EventArgs e)
{
// Hooks only into specified Keys (here "A" and "B").
_globalKeyboardHook = new GlobalKeyboardHook(new Keys[] { Keys.A, Keys.B });

// Hooks into all keys.
_globalKeyboardHook = new GlobalKeyboardHook();
_globalKeyboardHook.KeyboardPressed += OnKeyPressed;
}

private void OnKeyPressed(object sender, GlobalKeyboardHookEventArgs e)
{
// EDT: No need to filter for VkSnapshot anymore. This now gets handled
// through the constructor of GlobalKeyboardHook(...).
if (e.KeyboardState == GlobalKeyboardHook.KeyboardState.KeyDown)
{
// Now you can access both, the key and virtual code
Keys loggedKey = e.KeyboardData.Key;
int loggedVkCode = e.KeyboardData.VirtualCode;
}
}
}
``````

Thanks to Siarhei Kuchuk for his post. Even tho I've simplified the usage this initial code was very useful for me.

### How to getElementByClass instead of GetElementById with JavaScript?

``````document.getElementsByClassName('CLASSNAME')[0].style.display = 'none';
``````

Acyually by using getElementsByClassName, it returns an array of multiple classes. Because same class name could be used in more than one instance inside same HTML page. We use array element id to target the class we need, in my case, it's first instance of the given class name.So I've used [0]

### Copy/Paste from Excel to a web page

Excel 2007 has a feature for doing this under the "Data" tab that works pretty nicely.

### What is the syntax for Typescript arrow functions with generics?

If you're in a `.tsx` file you cannot just write `<T>`, but this works:

``````const foo = <T, >(x: T) => x;
``````

As opposed to the `extends {}` hack, this hack at least preserves the intent.

### Use Awk to extract substring

You just want to set the field separator as `.` using the `-F` option and print the first field:

``````\$ echo aaa0.bbb.ccc | awk -F'.' '{print \$1}'
aaa0
``````

Same thing but using cut:

``````\$ echo aaa0.bbb.ccc | cut -d'.' -f1
aaa0
``````

Or with `sed`:

``````\$ echo aaa0.bbb.ccc | sed 's/[.].*//'
aaa0
``````

Even `grep`:

``````\$ echo aaa0.bbb.ccc | grep -o '^[^.]*'
aaa0
``````

`\${varname}` is just a naming convention jQuery developers use to distinguish variables that are holding jQuery elements.

Plain `{varname}` is used to store general stuffs like texts and strings. `\${varname}` holds elements returned from jQuery.

You can use plain `{varname}` to store jQuery elements as well, but as I said in the beginning this distinguishes it from the plain variables and makes it much easier to understand (imagine confusing it for a plain variable and searching all over to understand what it holds).

For example :

``````var \$blah = \$(this).parents('.blahblah');
``````

Here, blah is storing a returned jQuery element.

So, when someone else see the `\$blah` in the code, they'll understand it's not just a string or a number, it's a jQuery element.

### What is the default font of Sublime Text?

Yes. You can use Console of Sublime with (Linux):

``````Ctrl + `
``````

And type:

``````view.settings().get('font_face')
``````

Get any setting the same way.

### Xcode process launch failed: Security

Ok this this seems late and I was testing the app with internet connection off to test my app for some functionality. As I turned off the internet it gave me such error. After I turned on the internet I can install again. I know this is silly but this might be helpful to someone

### What is a race condition?

A race condition is an undesirable situation that occurs when a device or system attempts to perform two or more operations at the same time, but because of the nature of the device or system, the operations must be done in the proper sequence in order to be done correctly.

In computer memory or storage, a race condition may occur if commands to read and write a large amount of data are received at almost the same instant, and the machine attempts to overwrite some or all of the old data while that old data is still being read. The result may be one or more of the following: a computer crash, an "illegal operation," notification and shutdown of the program, errors reading the old data, or errors writing the new data.

### How to find which git branch I am on when my disk is mounted on other server

`git branch` with no arguments displays the current branch marked with an asterisk in front of it:

``````user@host:~/gittest\$ git branch
* master
someotherbranch
``````

In order to not have to type this all the time, I can recommend git prompt:

https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh

In the AIX box how I can see that I am using master or inside a particular branch. What changes inside .git that drives which branch I am on?

Git stores the `HEAD` in the file `.git/HEAD`. If you're on the `master` branch, it could look like this:

``````\$ cat .git/HEAD
``````

### "dd/mm/yyyy" date format in excel through vba

Your issue is with attempting to change your month by adding 1. 1 in date serials in Excel is equal to 1 day. Try changing your month by using the following:

``````NewDate = Format(DateAdd("m",1,StartDate),"dd/mm/yyyy")
``````

### Call removeView() on the child's parent first

I was calling parentView.removeView(childView) and childView was still showing. I eventually realized that a method was somehow being triggered twice and added the childView to the parentView twice.

So, use parentView.getChildCount() to determine how many children the parent has before you add a view and afterwards. If the child is added too many times then the top most child is being removed and the copy childView remains-which looks like removeView is working even when it is.

Also, you shouldn't use View.GONE to remove a view. If it's truly removed then you won't need to hide it, otherwise it's still there and you're just hiding it from yourself :(

### How to combine multiple inline style objects?

I have built an module for this if you want to add styles based on a condition like this:

``````multipleStyles(styles.icon, { [styles.iconRed]: true })
``````

https://www.npmjs.com/package/react-native-multiple-styles

### Style disabled button with CSS

consider the following solution

``````.disable-button{
pointer-events: none;
background-color: #edf1f2;
}
``````

### Replace specific characters within strings

Summarizing 2 ways to replace strings:

``````group<-data.frame(group=c("12357e", "12575e", "197e18", "e18947"))
``````

1) Use `gsub`

``````group\$group.no.e <- gsub("e", "", group\$group)
``````

2) Use the `stringr` package

``````group\$group.no.e <- str_replace_all(group\$group, "e", "")
``````

Both will produce the desire output:

``````   group group.no.e
1 12357e      12357
2 12575e      12575
3 197e18      19718
4 e18947      18947
``````

### R dplyr: Drop multiple columns

also try

``````## Notice the lack of quotes
iris %>% select (-c(Sepal.Length, Sepal.Width))
``````

### Chrome javascript debugger breakpoints don't do anything?

I need my damn breakpoints! Very strange behavior - the normally red spot in Sources was going grey; these and `debugger;` breakpoints would still appear to hit but show somewhere in some non-executable HTML.

After a couple hours of hacking away code the breakpoints were finally being hit correctly, however had more or less just the equivalent of "Hello World" left. Hahaha.

So I had some serverside data being output in the page (in my case in a @razor statement), but it would be the same in any similar case.

There was some incorrectly formed 0A/0D chars in the server output - the old carriage returns - causing Chrome the confusion with its own line numbering.

Cleaning the server injected HTML and I got my breakpoint.

Now let's see how much of this code I can CTRL-Z back...

### hasOwnProperty in JavaScript

Try this:

```function welcomeMessage()
{
var shape1 = new Shape();
}
```

When working with reflection in JavaScript, member objects are always refered to as the name as a string. For example:

`for(i in obj) { ... }`

The loop iterator i will be hold a string value with the name of the property. To use that in code you have to address the property using the array operator like this:

``` for(i in obj) {
alert("The value of obj." + i + " = " + obj[i]);
}
```

### Write string to output stream

Wrap your OutputStream with a PrintWriter and use the print methods on that class. They take in a String and do the work for you.

### What's alternative to angular.copy in Angular

Had the same Issue, and didn't wanna use any plugins just for deep cloning:

``````static deepClone(object): any {
const cloneObj = (<any>object.constructor());
const attributes = Object.keys(object);
for (const attribute of attributes) {
const property = object[attribute];

if (typeof property === 'object') {
cloneObj[attribute] = this.deepClone(property);
} else {
cloneObj[attribute] = property;
}
}
return cloneObj;
}
``````

### How to read a text file directly from Internet using Java?

Use this code to read an Internet resource into a `String`:

``````public static String readToString(String targetURL) throws IOException
{
URL url = new URL(targetURL);

StringBuilder stringBuilder = new StringBuilder();

String inputLine;
{
stringBuilder.append(inputLine);
stringBuilder.append(System.lineSeparator());
}

return stringBuilder.toString().trim();
}
``````

This is based on here.

### How to create empty data frame with column names specified in R?

Just create a `data.frame` with 0 length variables

eg

``````nodata <- data.frame(x= numeric(0), y= integer(0), z = character(0))
str(nodata)

## 'data.frame':    0 obs. of  3 variables:
##  \$ x: num
##  \$ y: int
##  \$ z: Factor w/ 0 levels:
``````

or to create a data.frame with 5 columns named a,b,c,d,e

``````nodata <- as.data.frame(setNames(replicate(5,numeric(0), simplify = F), letters[1:5]))
``````

### Why do I have ORA-00904 even when the column is present?

I use Toad for Oracle and if the table is owned by another username than the one you logged in as and you have access to read the table, you still may need to add the original table owner to the table name.

For example, lets say the table owner's name is 'OWNER1' and you are logged in as 'USER1'. This query may give you a ORA-00904 error:

``````select * from table_name where x='test';
``````

Prefixing the table_name with the table owner eliminated the error and gives results:

``````select * from
``````

### Get an array of list element contents in jQuery

kimstik was close, but not quite.

Here's how to do it in a convenient one-liner:

``````\$.map( \$('li'), function (element) { return \$(element).text() });
``````

Here's the full documentation for jQuery's map function, it's quite handy: http://api.jquery.com/jQuery.map/

Just to answer fully, here's the complete functionality you were looking for:

``````\$.map( \$('li'), function (element) { return \$(element).text() }).join(', ');
``````

### When do you use the "this" keyword?

It depends on the coding standard I'm working under. If we are using _ to denote an instance variable then "this" becomes redundant. If we are not using _ then I tend to use this to denote instance variable.

### Passing data between view controllers

There are many solutions for passing data in Swift.

Passing data forward

My two favorite ways to pass data forwardly is dependency injection (DI) and Property Observers

Dependency Injection

``````class CustomView : UIView {
init(_ with model : Model) {
// Do what you want with data
}
}
``````

Property Observers

``````class CustomView : UIView {
var model : Model? {
didSet {
// Do what you want with data after assign data to model
}
willSet {
// Do what you want with data before assign data to model
}
}
}
``````

Passing data backward

Also favorite ways to passing data to the previous VC/view:

Protocol and Delegate

``````protocol CustomViewDelegate : class {
}

weak var delegate : CustomViewDelegate?

class AnotherCustomView: UIView {

let customView = AnotherCustomView()

init() {
customView.delegate = self
}
}

extention AnotherCustomView : CustomViewDelegate {
func addItemViewController(_ with data: Model?) {
// Do what you want with data
}
}
``````

Closure

``````class AnotherCustomView : UIView {
init(addItem: @escaping (_ value : Model?) -> ()) {
// Do what you want with data
}
}

class CustomView : UIView {

init() {
let customView = AnotherCustomView { [weak self] model in
// Do what you want with data
}
}
}
``````

### Update MySQL using HTML Form and PHP

``````\$sql = mysql_query("UPDATE anstalld....
``````

only

``````\$sql = "UPDATE anstalld...
``````

### Convert HTML + CSS to PDF

Just to bump the thread, I've tried DOMPDF and it worked perfectly. I've used `DIV` and other block level elements to position everything, I kept it strictly CSS 2.1 and it played very nicely.

### Media Queries - In between two widths

You need to switch your values:

``````/* No greater than 900px, no less than 400px */
@media (max-width:900px) and (min-width:400px) {
.foo {
display:none;
}
}?
``````

Demo: http://jsfiddle.net/xf6gA/ (using background color, so it's easier to confirm)

### How can I represent an 'Enum' in Python?

Here is a nice Python recipe that I found here: http://code.activestate.com/recipes/577024-yet-another-enum-for-python/

``````def enum(typename, field_names):
"Create a new enumeration type"

if isinstance(field_names, str):
field_names = field_names.replace(',', ' ').split()
d = dict((reversed(nv) for nv in enumerate(field_names)), __slots__ = ())
return type(typename, (object,), d)()
``````

Example Usage:

``````STATE = enum('STATE', 'GET_QUIZ, GET_VERSE, TEACH')
``````

More details can be found on the recipe page.

### Convert string to date then format the date

``````String start_dt = "2011-01-31";

DateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
Date date = (Date) parser.parse(start_dt);

DateFormat formatter = new SimpleDateFormat("MM-dd-yyyy");
System.out.println(formatter.format(date));
``````

Prints: 01-31-2011

### Cannot serve WCF services in IIS on Windows 8

For Windows Server 2012, the solution is very similar to faester's (see above). From the Server Manager, click on `Add roles and features`, select the appropriate server, then select `Features`. Under `.NET Framework 4.5 Features`, you'll see `WCF Services`, and under that, you'll find `HTTP Activation`.

### Undo git stash pop that results in merge conflict

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

must work, if your previous state is clean.

### How to check if a query string value is present via JavaScript?

You could also use a regular expression:

``````/[?&]q=/.test(location.search)
``````

### Is the sizeof(some pointer) always equal to four?

The reason the size of your pointer is 4 bytes is because you are compiling for a 32-bit architecture. As FryGuy pointed out, on a 64-bit architecture you would see 8.

### How to check if keras tensorflow backend is GPU or CPU version?

According to the documentation.

If you are running on the TensorFlow or CNTK backends, your code will automatically run on GPU if any available GPU is detected.

You can check what all devices are used by tensorflow by -

``````from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
``````

Also as suggested in this answer

``````import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
``````

This will print whether your tensorflow is using a CPU or a GPU backend. If you are running this command in jupyter notebook, check out the console from where you have launched the notebook.

If you are sceptic whether you have installed the tensorflow gpu version or not. You can install the gpu version via pip.

`pip install tensorflow-gpu`

### Windows- Pyinstaller Error "failed to execute script " When App Clicked

``````import sys, os
def resource_path(relative_path):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, relative_path)
return os.path.join(os.path.abspath("."), relative_path)
``````

Refer to your data files by calling the function `resource_path()`, like this:

``````resource_path('myimage.gif')
``````

Then use this command:

``````pyinstaller --onefile --windowed --add-data todo.ico;. script.py
``````

### On delete cascade with doctrine2

Here is simple example. A contact has one to many associated phone numbers. When a contact is deleted, I want all its associated phone numbers to also be deleted, so I use ON DELETE CASCADE. The one-to-many/many-to-one relationship is implemented with by the foreign key in the phone_numbers.

``````CREATE TABLE contacts
(contact_id BIGINT AUTO_INCREMENT NOT NULL,
name VARCHAR(75) NOT NULL,
PRIMARY KEY(contact_id)) ENGINE = InnoDB;

CREATE TABLE phone_numbers
(phone_id BIGINT AUTO_INCREMENT NOT NULL,
phone_number CHAR(10) NOT NULL,
contact_id BIGINT NOT NULL,
PRIMARY KEY(phone_id),
UNIQUE(phone_number)) ENGINE = InnoDB;

ALTER TABLE phone_numbers ADD FOREIGN KEY (contact_id) REFERENCES \
``````

By adding "ON DELETE CASCADE" to the foreign key constraint, phone_numbers will automatically be deleted when their associated contact is deleted.

``````INSERT INTO table contacts(name) VALUES('Robert Smith');
INSERT INTO table phone_numbers(phone_number, contact_id) VALUES('8963333333', 1);
INSERT INTO table phone_numbers(phone_number, contact_id) VALUES('8964444444', 1);
``````

Now when a row in the contacts table is deleted, all its associated phone_numbers rows will automatically be deleted.

``````DELETE TABLE contacts as c WHERE c.id=1; /* delete cascades to phone_numbers */
``````

To achieve the same thing in Doctrine, to get the same DB-level "ON DELETE CASCADE" behavoir, you configure the @JoinColumn with the onDelete="CASCADE" option.

``````<?php
namespace Entities;

use Doctrine\Common\Collections\ArrayCollection;

/**
* @Entity
* @Table(name="contacts")
*/
class Contact
{

/**
*  @Id
*  @Column(type="integer", name="contact_id")
*  @GeneratedValue
*/
protected \$id;

/**
* @Column(type="string", length="75", unique="true")
*/
protected \$name;

/**
* @OneToMany(targetEntity="Phonenumber", mappedBy="contact")
*/
protected \$phonenumbers;

public function __construct(\$name=null)
{
\$this->phonenumbers = new ArrayCollection();

if (!is_null(\$name)) {

\$this->name = \$name;
}
}

public function getId()
{
return \$this->id;
}

public function setName(\$name)
{
\$this->name = \$name;
}

{
if (!\$this->phonenumbers->contains(\$p)) {

\$this->phonenumbers[] = \$p;
\$p->setContact(\$this);
}
}

public function removePhonenumber(Phonenumber \$p)
{
\$this->phonenumbers->remove(\$p);
}
}

<?php
namespace Entities;

/**
* @Entity
* @Table(name="phonenumbers")
*/
class Phonenumber
{

/**
* @Id
* @Column(type="integer", name="phone_id")
* @GeneratedValue
*/
protected \$id;

/**
* @Column(type="string", length="10", unique="true")
*/
protected \$number;

/**
* @ManyToOne(targetEntity="Contact", inversedBy="phonenumbers")
*/
protected \$contact;

public function __construct(\$number=null)
{
if (!is_null(\$number)) {

\$this->number = \$number;
}
}

public function setPhonenumber(\$number)
{
\$this->number = \$number;
}

public function setContact(Contact \$c)
{
\$this->contact = \$c;
}
}
?>

<?php

\$em = \Doctrine\ORM\EntityManager::create(\$connectionOptions, \$config);

\$contact = new Contact("John Doe");

\$phone1 = new Phonenumber("8173333333");
\$phone2 = new Phonenumber("8174444444");
\$em->persist(\$phone1);
\$em->persist(\$phone2);

\$em->persist(\$contact);
try {

\$em->flush();
} catch(Exception \$e) {

\$m = \$e->getMessage();
echo \$m . "<br />\n";
}
``````

If you now do

``````# doctrine orm:schema-tool:create --dump-sql
``````

you will see that the same SQL will be generated as in the first, raw-SQL example

### How can I check if a scrollbar is visible?

A No Framework JavaScript Approach, checks for both vertical and horizontal

`````` /*
* hasScrollBars
*
* Checks to see if an element has scrollbars
*
* @returns {object}
*/
Element.prototype.hasScrollBars = function() {
return {"vertical": this.scrollHeight > this.style.height, "horizontal": this.scrollWidth > this.style.width};
}
``````

Use it like this

``````if(document.getElementsByTagName("body")[0].hasScrollBars().vertical){
}

if(document.getElementsByTagName("body")[0].hasScrollBars().horizontal){
}
``````

### How to make button look like a link?

I think this is very easy to do with very few lines. here is my solution

_x000D_
_x000D_
``````.buttonToLink{
background: none;
border: none;
color: red
}

background: none;
text-decoration: underline;
}``````
_x000D_
``<button  class="buttonToLink">A simple link button</button>``
_x000D_
_x000D_
_x000D_

### disable Bootstrap's Collapse open/close animation

If you find the 1px jump before expanding and after collapsing when using the CSS solution a bit annoying, here's a simple JavaScript solution for Bootstrap 3...

``````\$(document).ready(
\$('.collapse').on('show.bs.collapse hide.bs.collapse', function(e) {
e.preventDefault();
}),
\$('[data-toggle="collapse"]').on('click', function(e) {
e.preventDefault();
\$(\$(this).data('target')).toggleClass('in');
})
);
``````

### How do I point Crystal Reports at a new database

Use the Database menu and "Set Datasource Location" menu option to change the name or location of each table in a report.

This works for changing the location of a database, changing to a new database, and changing the location or name of an individual table being used in your report.

To change the datasource connection, go the Database menu and click Set Datasource Location.

1. Change the Datasource Connection:
1. From the Current Data Source list (the top box), click once on the datasource connection that you want to change.
2. In the Replace with list (the bottom box), click once on the new datasource connection.
3. Click Update.
2. Change Individual Tables:
1. From the Current Data Source list (the top box), expand the datasource connection that you want to change.
2. Find the table for which you want to update the location or name.
3. In the Replace with list (the bottom box), expand the new datasource connection.
4. Find the new table you want to update to point to.
5. Click Update.
6. Note that if the table name has changed, the old table name will still appear in the Field Explorer even though it is now using the new table. (You can confirm this be looking at the Table Name of the table's properties in Current Data Source in Set Datasource Location. Screenshot http://i.imgur.com/gzGYVTZ.png) It's possible to rename the old table name to the new name from the context menu in Database Expert -> Selected Tables.
3. Change Subreports:
1. Repeat each of the above steps for any subreports you might have embedded in your report.
2. Close the Set Datasource Location window.
4. Any Commands or SQL Expressions:
1. Go to the Database menu and click Database Expert.
2. If the report designer used "Add Command" to write custom SQL it will be shown in the Selected Tables box on the right.
3. Right click that command and choose "Edit Command".
4. Check if that SQL is specifying a specific database. If so you might need to change it.
5. Close the Database Expert window.
6. In the Field Explorer pane on the right, right click any SQL Expressions.
7. Check if the SQL Expressions are specifying a specific database. If so you might need to change it also.
8. Save and close your Formula Editor window when you're done editing.

And try running the report again.

The key is to change the datasource connection first, then any tables you need to update, then the other stuff. The connection won't automatically change the tables underneath. Those tables are like goslings that've imprinted on the first large goose-like animal they see. They'll continue to bypass all reason and logic and go to where they've always gone unless you specifically manually change them.

To make it more convenient, here's a tip: You can "Show SQL Query" in the Database menu, and you'll see table names qualified with the database (like "Sales"."dbo"."Customers") for any tables that go straight to a specific database. That might make the hunting easier if you have a lot of stuff going on. When I tackled this problem I had to change each and every table to point to the new table in the new database.

### How to redirect page after click on Ok button on sweet alert?

``````function confirmDetete(ctl, event) {

debugger;
event.preventDefault();
var defaultAction = \$(ctl).prop("href");
swal({
title: "Are you sure?",
text: "You will  be able to add it back again!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
cancelButtonText: "Cancel",
closeOnConfirm: false,
closeOnCancel: false
},
function (isConfirm) {
if (isConfirm) {
\$.get(ctl);
swal({
title: "success",
text: "Deleted",
confirmButtonText: "ok",
allowOutsideClick: "true"
}, function () { window.location.href = ctl })

// \$("#signupform").submit();
} else {
swal("Cancelled", "Is safe :)", "success");

}
});
}
``````

### How to increase size of DOSBox window?

Looking again at your question, I think I see what's wrong with your conf file. You set:

fullresolution=1366x768 windowresolution=1366x768

That's why you're getting the letterboxing (black on either side). You've essentially told Dosbox that your screen is the same size as your window, but your screen is actually bigger, 1600x900 (or higher) per the Googled specs for that computer. So the 'difference' shows up in black. So you either should change fullresolution to your actual screen resolution, or revert to fullresolution=original default, and only specify the window resolution.

So now I wonder if you really want fullscreen, though your question asks about only a window. For you are getting a window, but you sized it short of your screen, hence the two black stripes (letterboxing). If you really want fullscreen, then you need to specify the actual resolution of your screen. 1366x768 is not big enough.

The next issue is, what's the resolution of the program itself? It won't go past its own resolution. So if the program/game is (natively) say 1280x720 (HD), then your window resolution setting shouldn't be bigger than that (remember, it's fixed not dynamic when you use AxB as windowresolution).

Example: DOS Lotus 123 will only extend eight columns and 20 rows. The bigger the Dosbox, the bigger the text, but not more columns and rows. So setting a higher windowresolution for that, only results in bigger text, not more columns and rows. After that you'll have letterboxing.

Hope this helps you better.

### Adding timestamp to a filename with mv in BASH

The few lines you posted from your script look okay to me. It's probably something a bit deeper.

You need to find which line is giving you this error. Add `set -xv` to the top of your script. This will print out the line number and the command that's being executed to STDERR. This will help you identify where in your script you're getting this particular error.

BTW, do you have a shebang at the top of your script? When I see something like this, I normally expect its an issue with the Shebang. For example, if you had `#! /bin/bash` on top, but your bash interpreter is located in `/usr/bin/bash`, you'll see this error.

# EDIT

New question: How can I save the file correctly in the first place, to avoid having to perform this fix every time I resend the file?

Two ways:

1. Select the Edit->EOL Conversion->Unix Format menu item when you edit a file. Once it has the correct line endings, Notepad++ will keep them.
2. To make sure all new files have the correct line endings, go to the Settings->Preferences menu item, and pull up the Preferences dialog box. Select the New Document/Default Directory tab. Under New Document and Format, select the Unix radio button. Click the Close button.

### Read a file in Node.js

With Node 0.12, it's possible to do this synchronously now:

``````  var fs = require('fs');
var path = require('path');

// Buffer mydata
var BUFFER = bufferFile('../public/mydata.png');

function bufferFile(relPath) {
}
``````

`fs` is the file system. readFileSync() returns a Buffer, or string if you ask.

`fs` correctly assumes relative paths are a security issue. `path` is a work-around.

To load as a string, specify the encoding:

``````return fs.readFileSync(path,{ encoding: 'utf8' });
``````

### How do I remove carriage returns with Ruby?

``````irb(main):003:0> my_string = "Some text with a carriage return \r"
=> "Some text with a carriage return \r"
irb(main):004:0> my_string.gsub(/\r/,"")
=> "Some text with a carriage return "
irb(main):005:0>
``````

Or...

``````irb(main):007:0> my_string = "Some text with a carriage return \r\n"
=> "Some text with a carriage return \r\n"
irb(main):008:0> my_string.gsub(/\r\n/,"\n")
=> "Some text with a carriage return \n"
irb(main):009:0>
``````

Try the following in `viewDidLoad`

``````self.navigationItem.title = "Your Title"
``````

### What is the difference between Python and IPython?

Even after viewing this thread, I had thought that ipython was a synonym for the python shell, in other words that typing python at the command line put one into ipython mode.

It is in fact, as referenced above, a very cool interactive shell (command line program) that can be installed from iPython.org or simply by running

``````pip install ipython
``````

or the more extensive:

``````pip install ipython[notebook]
``````

from the command line.

### XPath query to get nth instance of an element

This seems to work:

``````/descendant::input[@id="search_query"][2]
``````

I go this from "XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition" by Michael Kay.

There is also a note in the "Abbreviated Syntax" section of the XML Path Language specification http://www.w3.org/TR/xpath/#path-abbrev that provided a clue.

### Get key from a HashMap using the value

if you what to obtain "ONE" by giving in 100 then

initialize hash map by

`hashmap = new HashMap<Object,String>();`

`haspmap.put(100,"one");`

and retrieve value by `hashMap.get(100)`

hope that helps.

### How to handle ETIMEDOUT error?

In case if you are using node js, then this could be the possible solution

``````const express = require("express");
const app = express();
const server = app.listen(8080);
server.keepAliveTimeout = 61 * 1000;
``````

https://medium.com/hk01-tech/running-eks-in-production-for-2-years-the-kubernetes-journey-at-hk01-68130e603d76

### How is OAuth 2 different from OAuth 1?

OAuth 2.0 promises to simplify things in following ways:

1. SSL is required for all the communications required to generate the token. This is a huge decrease in complexity because those complex signatures are no longer required.
2. Signatures are not required for the actual API calls once the token has been generated -- SSL is also strongly recommended here.
3. Once the token was generated, OAuth 1.0 required that the client send two security tokens on every API call, and use both to generate the signature. OAuth 2.0 has only one security token, and no signature is required.
4. It is clearly specified which parts of the protocol are implemented by the "resource owner," which is the actual server that implements the API, and which parts may be implemented by a separate "authorization server." That will make it easier for products like Apigee to offer OAuth 2.0 support to existing APIs.

### Creating a dictionary from a CSV file

Create a dictionary, then iterate over the result and stuff the rows in the dictionary. Note that if you encounter a row with a duplicate date, you will have to decide what to do (raise an exception, replace the previous row, discard the later row, etc...)

Here's test.csv:

``````Date,Foo,Bar
123,456,789
abc,def,ghi
``````

and the corresponding program:

``````import csv

result = {}
key = row[0]
if key in result:
# implement your duplicate row handling here
pass
result[key] = row[1:]
print(result)
``````

yields:

``````{'Date': ['Foo', 'Bar'], '123': ['456', '789'], 'abc': ['def', 'ghi']}
``````

``````import csv

result = {}
key = row.pop('Date')
if key in result:
# implement your duplicate row handling here
pass
result[key] = row
print(result)
``````

results in:

``````{'123': {'Foo': '456', 'Bar': '789'}, 'abc': {'Foo': 'def', 'Bar': 'ghi'}}
``````

Or perhaps you want to map the column headings to a list of values for that column:

``````import csv

result = {}
for column, value in row.items():  # consider .iteritems() for Python 2
result.setdefault(column, []).append(value)
print(result)
``````

That yields:

``````{'Date': ['123', 'abc'], 'Foo': ['456', 'def'], 'Bar': ['789', 'ghi']}
``````

### Error : Index was outside the bounds of the array.

``````public int[] posStatus;

public UsersInput()
{
//It means postStatus will contain 9 elements from index 0 to 8.
this.posStatus = new int[9];
}

int intUsersInput = 0;

if (posStatus[intUsersInput-1] == 0) //if i input 9, it should go to 8?
{
posStatus[intUsersInput-1] += 1; //set it to 1
}
``````

### Mocha / Chai expect.to.throw not catching thrown errors

You have to pass a function to `expect`. Like this:

``````expect(model.get.bind(model, 'z')).to.throw('Property does not exist in model schema.');
expect(model.get.bind(model, 'z')).to.throw(new Error('Property does not exist in model schema.'));
``````

The way you are doing it, you are passing to `expect` the result of calling `model.get('z')`. But to test whether something is thrown, you have to pass a function to `expect`, which `expect` will call itself. The `bind` method used above creates a new function which when called will call `model.get` with `this` set to the value of `model` and the first argument set to `'z'`.

A good explanation of `bind` can be found here.

### change text of button and disable button in iOS

Assuming that the button is a `UIButton`:

``````UIButton *button = …;
[button setEnabled:NO]; // disables
[button setTitle:@"Foo" forState:UIControlStateNormal]; // sets text
``````

See the documentation for `UIButton`.

### How to push changes to github after jenkins build completes?

Once you set your Global Jenkins credentials, you can apply this step:

``````stage('Update GIT') {
steps {
script {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh "git config user.email [email protected]"
sh "git config user.name example"
sh "git commit -m 'Triggered Build: \${env.BUILD_NUMBER}'"
}
}
}
}
}
``````

### matplotlib does not show my drawings although I call pyplot.show()

Adding the following two lines before importing pylab seems to work for me

``````import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np
``````

### How to blur background images in Android

You can have a view with Background color as black and set alpha for the view as 0.7 or whatever as per your requirement.

``````<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/onboardingimg1">
<View
android:id="@+id/opacityFilter"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:layout_alignParentBottom="true"
android:alpha="0.7">
</View>

</RelativeLayout>
``````

### How to import functions from different js file in a Vue+webpack+vue-loader project

I like the answer of Anacrust, though, by the fact "console.log" is executed twice, I would like to do a small update for `src/mylib.js`:

``````let test = {
foo () { return 'foo' },
bar () { return 'bar' },
baz () { return 'baz' }
}

export default test
``````

All other code remains the same...

### How to Copy Text to Clip Board in Android?

Yesterday I made this class. Take it, it's for all API Levels

``````import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import android.annotation.SuppressLint;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.net.Uri;
import android.util.Log;
import de.lochmann.nsafirewall.R;

public class MyClipboardManager {

@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
public boolean copyToClipboard(Context context, String text) {
try {
int sdk = android.os.Build.VERSION.SDK_INT;
if (sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) context
.getSystemService(context.CLIPBOARD_SERVICE);
clipboard.setText(text);
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) context
.getSystemService(context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData
.newPlainText(
context.getResources().getString(
R.string.message), text);
clipboard.setPrimaryClip(clip);
}
return true;
} catch (Exception e) {
return false;
}
}

@SuppressLint("NewApi")
int sdk = android.os.Build.VERSION.SDK_INT;
if (sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) context
.getSystemService(context.CLIPBOARD_SERVICE);
return clipboard.getText().toString();
} else {
ClipboardManager clipboard = (ClipboardManager) context
.getSystemService(Context.CLIPBOARD_SERVICE);

// Gets a content resolver instance
ContentResolver cr = context.getContentResolver();

// Gets the clipboard data from the clipboard
ClipData clip = clipboard.getPrimaryClip();
if (clip != null) {

String text = null;
String title = null;

// Gets the first item from the clipboard data
ClipData.Item item = clip.getItemAt(0);

// Tries to get the item's contents as a URI pointing to a note
Uri uri = item.getUri();

// If the contents of the clipboard wasn't a reference to a
// note, then
// this converts whatever it is to text.
if (text == null) {
text = coerceToText(context, item).toString();
}

return text;
}
}
return "";
}

@SuppressLint("NewApi")
public CharSequence coerceToText(Context context, ClipData.Item item) {
// If this Item has an explicit textual value, simply return that.
CharSequence text = item.getText();
if (text != null) {
return text;
}

// If this Item has a URI value, try using that.
Uri uri = item.getUri();
if (uri != null) {

// First see if the URI can be opened as a plain text stream
// (of any sub-type). If so, this is the best textual
// representation for it.
FileInputStream stream = null;
try {
// Ask for a stream of the desired type.
AssetFileDescriptor descr = context.getContentResolver()
.openTypedAssetFileDescriptor(uri, "text/*", null);
stream = descr.createInputStream();
"UTF-8");

// Got it... copy the stream into a local string and return it.
StringBuilder builder = new StringBuilder(128);
char[] buffer = new char[8192];
int len;
builder.append(buffer, 0, len);
}
return builder.toString();

} catch (FileNotFoundException e) {
// Unable to open content URI as text... not really an
// error, just something to ignore.

} catch (IOException e) {
return e.toString();

} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
}
}
}

// If we couldn't open the URI as a stream, then the URI itself
// probably serves fairly well as a textual representation.
return uri.toString();
}

// Finally, if all we have is an Intent, then we can just turn that
// into text. Not the most user-friendly thing, but it's something.
Intent intent = item.getIntent();
if (intent != null) {
return intent.toUri(Intent.URI_INTENT_SCHEME);
}

// Shouldn't get here, but just in case...
return "";
}

}
``````

### How can I read large text files in Python, line by line, without loading it into memory?

How about this? Divide your file into chunks and then read it line by line, because when you read a file, your operating system will cache the next line. If you are reading the file line by line, you are not making efficient use of the cached information.

Instead, divide the file into chunks and load the whole chunk into memory and then do your processing.

``````def chunks(file,size=1024):
while 1:

startat=fh.tell()
print startat #file's object current position from the start
fh.seek(size,1) #offset from current postion -->1
yield startat,fh.tell()-startat #doesnt store whole list in memory
if not data:
break
if os.path.isfile(fname):
try:
fh=open(fname,'rb')
except IOError as e: #file --> permission denied
print "I/O error({0}): {1}".format(e.errno, e.strerror)
except Exception as e1: #handle other exceptions such as attribute errors
print "Unexpected error: {0}".format(e1)
for ele in chunks(fh):
fh.seek(ele[0])#startat
print data
``````

### Delete specific line number(s) from a text file using sed?

This is very often a symptom of an antipattern. The tool which produced the line numbers may well be replaced with one which deletes the lines right away. For example;

``````grep -nh error logfile | cut -d: -f1 | deletelines logfile
``````

(where `deletelines` is the utility you are imagining you need) is the same as

``````grep -v error logfile
``````

Having said that, if you are in a situation where you genuinely need to perform this task, you can generate a simple `sed` script from the file of line numbers. Humorously (but perhaps slightly confusingly) you can do this with `sed`.

``````sed 's%\$%d%' linenumbers
``````

This accepts a file of line numbers, one per line, and produces, on standard output, the same line numbers with `d` appended after each. This is a valid `sed` script, which we can save to a file, or (on some platforms) pipe to another `sed` instance:

``````sed 's%\$%d%' linenumbers | sed -f - logfile
``````

On some platforms, `sed -f` does not understand the option argument `-` to mean standard input, so you have to redirect the script to a temporary file, and clean it up when you are done, or maybe replace the lone dash with `/dev/stdin` or `/proc/\$pid/fd/1` if your OS (or shell) has that.

As always, you can add `-i` before the `-f` option to have `sed` edit the target file in place, instead of producing the result on standard output. On *BSDish platforms (including OSX) you need to supply an explicit argument to `-i` as well; a common idiom is to supply an empty argument; `-i ''`.

### How can prepared statements protect from SQL injection attacks?

Here is SQL for setting up an example:

``````CREATE TABLE employee(name varchar, paymentType varchar, amount bigint);

INSERT INTO employee VALUES('Aaron', 'salary', 100);
INSERT INTO employee VALUES('Aaron', 'bonus', 50);
INSERT INTO employee VALUES('Bob', 'salary', 50);
INSERT INTO employee VALUES('Bob', 'bonus', 0);
``````

The Inject class is vulnerable to SQL injection. The query is dynamically pasted together with user input. The intent of the query was to show information about Bob. Either salary or bonus, based on user input. But the malicious user manipulates the input corrupting the query by tacking on the equivalent of an 'or true' to the where clause so that everything is returned, including the information about Aaron which was supposed to be hidden.

``````import java.sql.*;

public class Inject {

public static void main(String[] args) throws SQLException {

Connection conn = DriverManager.getConnection(url);

Statement stmt = conn.createStatement();
String sql = "SELECT paymentType, amount FROM employee WHERE name = 'bob' AND paymentType='" + args[0] + "'";
System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);

while (rs.next()) {
System.out.println(rs.getString("paymentType") + " " + rs.getLong("amount"));
}
}
}
``````

Running this, the first case is with normal usage, and the second with the malicious injection:

``````c:\temp>java Inject salary
SELECT paymentType, amount FROM employee WHERE name = 'bob' AND paymentType='salary'
salary 50

c:\temp>java Inject "salary' OR 'a'!='b"
SELECT paymentType, amount FROM employee WHERE name = 'bob' AND paymentType='salary' OR 'a'!='b'
salary 100
bonus 50
salary 50
bonus 0
``````

You should not build your SQL statements with string concatenation of user input. Not only is it vulnerable to injection, but it has caching implications on the server as well (the statement changes, so less likely to get a SQL statement cache hit whereas the bind example is always running the same statement).

Here is an example of Binding to avoid this kind of injection:

``````import java.sql.*;

public class Bind {

public static void main(String[] args) throws SQLException {

Connection conn = DriverManager.getConnection(url);

String sql = "SELECT paymentType, amount FROM employee WHERE name = 'bob' AND paymentType=?";
System.out.println(sql);

PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, args[0]);

ResultSet rs = stmt.executeQuery();

while (rs.next()) {
System.out.println(rs.getString("paymentType") + " " + rs.getLong("amount"));
}
}
}
``````

Running this with the same input as the previous example shows the malicious code does not work because there is no paymentType matching that string:

``````c:\temp>java Bind salary
SELECT paymentType, amount FROM employee WHERE name = 'bob' AND paymentType=?
salary 50

c:\temp>java Bind "salary' OR 'a'!='b"
SELECT paymentType, amount FROM employee WHERE name = 'bob' AND paymentType=?
``````

If you see below error message, when try into `phpyAdmin`:

``````New XAMPP security concept:
Access to the requested directory is only available from the local network.
This setting can be configured in the file "httpd-xampp.conf".
``````

You can do next (for XAMPP, deployed on the UNIX-system): You can try change configuration for `<Directory "/opt/lampp/phpmyadmin">`

``````# vi /opt/lampp/etc/extra/httpd-xampp.conf
``````

and change security settings to

``````#LoadModule perl_module        modules/mod_perl.so

AllowOverride AuthConfig Limit
Order allow,deny
Allow from all
Require all granted
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>
``````

First - comment pl module, second - change config for node Directory. After it, you should restart `httpd` daemon

``````# /opt/lampp/xampp restart
``````

### Angular: conditional class with *ngClass

You can use ngClass to apply the class name both conditionally and not in Angular

For Example

``````[ngClass]="'someClass'">
``````

Conditional

``````[ngClass]="{'someClass': property1.isValid}">
``````

Multiple Condition

`````` [ngClass]="{'someClass': property1.isValid && property2.isValid}">
``````

Method expression

``````[ngClass]="getSomeClass()"
``````

This method will inside of your component

`````` getSomeClass(){
const isValid=this.property1 && this.property2;
return {someClass1:isValid , someClass2:isValid};
}
``````

### Regex to validate password strength

Another solution:

``````import re

^(?=.*[A-Z].*[A-Z])                # at least two capital letters
(?=.*[!@#\$&*])                     # at least one of these special c-er
(?=.*[0-9].*[0-9])                 # at least two numeric digits
(?=.*[a-z].*[a-z].*[a-z])          # at least three lower case letters
.{8,}                              # at least 8 total digits
\$
)''', re.VERBOSE)

while True:
m = input()
if (not mo):
print('''
two digits, two uppercase and three lowercase charachter. Length: 8+ ch-ers.

else:
return
``````

### Get month name from date in Oracle

If you are trying to pull the value from a field, you could use:

``````select extract(month from [field_name])
from [table_name]
``````

You can also insert day or year for the "month" extraction value above.

### Setting default checkbox value in Objective-C?

Documentation on UISwitch says:

``[mySwitch setOn:NO]; ``

In Interface Builder, select your switch and in the Attributes inspector you'll find State which can be set to on or off.

### Angular: How to update queryParams without changing route

First, we need to import the router module from angular router and declare its alias name

``````import { Router } from '@angular/router'; ---> import
class AbcComponent implements OnInit(){
constructor(
private router: Router ---> decalre alias name
) { }
}
``````

1. You can change query params by using "router.navigate" function and pass the query parameters

``````this.router.navigate([], { queryParams: {_id: "abc", day: "1", name: "dfd"}
});
``````

It will update query params in the current i.e activated route

1. The below will redirect to abc page with _id, day and name as query params

this.router.navigate(['/abc'], { queryParams: {_id: "abc", day: "1", name: "dfd"} });

It will update query params in the "abc" route along with three query paramters

For fetching query params:-

``````    import { ActivatedRoute } from '@angular/router'; //import activated routed

export class ABC implements OnInit {

constructor(
private route: ActivatedRoute //declare its alias name
) {}

ngOnInit(){
console.log(this.route.snapshot.queryParamMap.get('_id')); //this will fetch the query params
}
``````

### How can I make a CSS glass/blur effect work for an overlay?

...apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent.

### two divs the same line, one dynamic width, one fixed

@Yijie; Check the link maybe that's you want http://jsfiddle.net/sandeep/NCkL4/7/

EDIT:

http://jsfiddle.net/sandeep/NCkL4/8/

OR SEE THE FOLLOWING SNIPPET

_x000D_
_x000D_
``````#parent{_x000D_
overflow:hidden;_x000D_
background:yellow;_x000D_
position:relative;_x000D_
display:table;_x000D_
}_x000D_
.left{_x000D_
display:table-cell;_x000D_
}_x000D_
.right{_x000D_
background:red;_x000D_
width:50px;_x000D_
height:100%;_x000D_
display:table-cell;_x000D_
}_x000D_
body{_x000D_
margin:0;_x000D_
}``````
_x000D_
``````<div id="parent">_x000D_
<div class="left">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>_x000D_
<div class="right">fixed</div>_x000D_
</div>``````
_x000D_
_x000D_
_x000D_

### UTF-8: General? Bin? Unicode?

You should also be aware of the fact, that with utf8_general_ci when using a varchar field as unique or primary index inserting 2 values like 'a' and 'á' would give a duplicate key error.

### LINQ - Full Outer Join

I decided to add this as a separate answer as I am not positive it is tested enough. This is a re-implementation of the `FullOuterJoin` method using essentially a simplified, customized version of `LINQKit` `Invoke`/`Expand` for `Expression` so that it should work the Entity Framework. There's not much explanation as it is pretty much the same as my previous answer.

``````public static class Ext {
private static Expression<Func<TP, TC, TResult>> CastSMBody<TP, TC, TResult>(LambdaExpression ex, TP unusedP, TC unusedC, TResult unusedRes) => (Expression<Func<TP, TC, TResult>>)ex;

public static IQueryable<TResult> LeftOuterJoin<TLeft, TRight, TKey, TResult>(
this IQueryable<TLeft> leftItems,
IQueryable<TRight> rightItems,
Expression<Func<TLeft, TKey>> leftKeySelector,
Expression<Func<TRight, TKey>> rightKeySelector,
Expression<Func<TLeft, TRight, TResult>> resultSelector) {

// (lrg,r) => resultSelector(lrg.left, r)
var sampleAnonLR = new { left = default(TLeft), rightg = default(IEnumerable<TRight>) };
var parmP = Expression.Parameter(sampleAnonLR.GetType(), "lrg");
var parmC = Expression.Parameter(typeof(TRight), "r");
var argLeft = Expression.PropertyOrField(parmP, "left");
var newleftrs = CastSMBody(Expression.Lambda(resultSelector.Apply(argLeft, parmC), parmP, parmC), sampleAnonLR, default(TRight), default(TResult));

return leftItems.GroupJoin(rightItems, leftKeySelector, rightKeySelector, (left, rightg) => new { left, rightg }).SelectMany(r => r.rightg.DefaultIfEmpty(), newleftrs);
}

public static IQueryable<TResult> RightOuterJoin<TLeft, TRight, TKey, TResult>(
this IQueryable<TLeft> leftItems,
IQueryable<TRight> rightItems,
Expression<Func<TLeft, TKey>> leftKeySelector,
Expression<Func<TRight, TKey>> rightKeySelector,
Expression<Func<TLeft, TRight, TResult>> resultSelector) {

// (lgr,l) => resultSelector(l, lgr.right)
var sampleAnonLR = new { leftg = default(IEnumerable<TLeft>), right = default(TRight) };
var parmP = Expression.Parameter(sampleAnonLR.GetType(), "lgr");
var parmC = Expression.Parameter(typeof(TLeft), "l");
var argRight = Expression.PropertyOrField(parmP, "right");
var newrightrs = CastSMBody(Expression.Lambda(resultSelector.Apply(parmC, argRight), parmP, parmC), sampleAnonLR, default(TLeft), default(TResult));

return rightItems.GroupJoin(leftItems, rightKeySelector, leftKeySelector, (right, leftg) => new { leftg, right })
.SelectMany(l => l.leftg.DefaultIfEmpty(), newrightrs);
}

private static Expression<Func<TParm, TResult>> CastSBody<TParm, TResult>(LambdaExpression ex, TParm unusedP, TResult unusedRes) => (Expression<Func<TParm, TResult>>)ex;

public static IQueryable<TResult> RightAntiSemiJoin<TLeft, TRight, TKey, TResult>(
this IQueryable<TLeft> leftItems,
IQueryable<TRight> rightItems,
Expression<Func<TLeft, TKey>> leftKeySelector,
Expression<Func<TRight, TKey>> rightKeySelector,
Expression<Func<TLeft, TRight, TResult>> resultSelector) where TLeft : class where TRight : class where TResult : class {

// newrightrs = lgr => resultSelector(default(TLeft), lgr.right)
var sampleAnonLgR = new { leftg = (IEnumerable<TLeft>)null, right = default(TRight) };
var parmLgR = Expression.Parameter(sampleAnonLgR.GetType(), "lgr");
var argLeft = Expression.Constant(default(TLeft), typeof(TLeft));
var argRight = Expression.PropertyOrField(parmLgR, "right");
var newrightrs = CastSBody(Expression.Lambda(resultSelector.Apply(argLeft, argRight), parmLgR), sampleAnonLgR, default(TResult));

return rightItems.GroupJoin(leftItems, rightKeySelector, leftKeySelector, (right, leftg) => new { leftg, right }).Where(lgr => !lgr.leftg.Any()).Select(newrightrs);
}

public static IQueryable<TResult> FullOuterJoin<TLeft, TRight, TKey, TResult>(
this IQueryable<TLeft> leftItems,
IQueryable<TRight> rightItems,
Expression<Func<TLeft, TKey>> leftKeySelector,
Expression<Func<TRight, TKey>> rightKeySelector,
Expression<Func<TLeft, TRight, TResult>> resultSelector)  where TLeft : class where TRight : class where TResult : class {

return leftItems.LeftOuterJoin(rightItems, leftKeySelector, rightKeySelector, resultSelector).Concat(leftItems.RightAntiSemiJoin(rightItems, leftKeySelector, rightKeySelector, resultSelector));
}

public static Expression Apply(this LambdaExpression e, params Expression[] args) {
var b = e.Body;

foreach (var pa in e.Parameters.Cast<ParameterExpression>().Zip(args, (p, a) => (p, a))) {
b = b.Replace(pa.p, pa.a);
}

return b.PropagateNull();
}

public static Expression Replace(this Expression orig, Expression from, Expression to) => new ReplaceVisitor(from, to).Visit(orig);
public class ReplaceVisitor : System.Linq.Expressions.ExpressionVisitor {

public ReplaceVisitor(Expression _from, Expression _to) {
from = _from;
to = _to;
}

public override Expression Visit(Expression node) => node == from ? to : base.Visit(node);
}

public static Expression PropagateNull(this Expression orig) => new NullVisitor().Visit(orig);
public class NullVisitor : System.Linq.Expressions.ExpressionVisitor {
public override Expression Visit(Expression node) {
if (node is MemberExpression nme && nme.Expression is ConstantExpression nce && nce.Value == null)
return Expression.Constant(null, nce.Type.GetMember(nme.Member.Name).Single().GetMemberType());
else
return base.Visit(node);
}
}

public static Type GetMemberType(this MemberInfo member) {
switch (member) {
case FieldInfo mfi:
return mfi.FieldType;
case PropertyInfo mpi:
return mpi.PropertyType;
case EventInfo mei:
return mei.EventHandlerType;
default:
throw new ArgumentException("MemberInfo must be if type FieldInfo, PropertyInfo or EventInfo", nameof(member));
}
}
}
``````

### Store images in a MongoDB database

Please see the GridFS docs for details on storing such binary data.

Support for your specific language should be linked to at the bottom of the screen.

### Using .text() to retrieve only text not nested in child tags

``````jQuery.fn.ownText = function () {
return \$(this).contents().filter(function () {
return this.nodeType === Node.TEXT_NODE;
}).text();
};
``````

### Convert JSONArray to String Array

Bit late for an answer, but here's what I came up with using Gson:

for a jsonarray foo: [{"test": "bar"}, {"test": "bar2"}]

``````JsonArray foo = getJsonFromWherever();
String[] test = new String[foo.size()]
foo.forEach(x -> {test = ArrayUtils.add(test, x.get("test").getAsString());});
``````

### When should I use nil and NULL in Objective-C?

This will help you to understand the difference between nil, NIL and null.

http://nshipster.com/nil/

nil -> literal null value for Objective-C objects.

Nil -> literal null value for Objective-C classes.

NULL -> literal null value for C pointers.

NSNULL -> singleton object used to represent null.

### How to fix: "You need to use a Theme.AppCompat theme (or descendant) with this activity"

Used to face the same problem. The reason was in incorrect context passing to `AlertDialog.Builder(here)`. use like AlertDialog.Builder(Homeactivity.this)

### Radio buttons not checked in jQuery

``````if (\$("input").is(":not(:checked)"))
``````

AFAIK, this should work, tested against the latest stable jQuery (1.2.6).

### Where will log4net create this log file?

Log4net is saving into your project folder. Something like: `\SolutionFolder\ProjectFolder\bin\SolutionConfiguration\logs\log-file.txt`.

Where:

• SolutionFolder is where you save your solution
• ProjectFolder is the folder where your project lives into the solution and
• SolutionConfiguration is the folder that contais all the binaries of your project (the default is Debug or Release)

Hope this helps!

### How to check if a variable is null or empty string or all whitespace in JavaScript?

A non-jQuery solution that more closely mimics `IsNullOrWhiteSpace`, but to detect null, empty or all-spaces only:

``````function isEmptyOrSpaces(str){
return str === null || str.match(/^ *\$/) !== null;
}
``````

...then:

``````var addr = '  ';

// error
}
``````

* EDIT * Please note that op specifically states:

I need to check to see if a var is null or has any empty spaces or for that matter just blank.

So while yes, "white space" encompasses more than null, spaces or blank my answer is intended to answer op's specific question. This is important because op may NOT want to catch things like tabs, for example.

### SQL Server: IF EXISTS ; ELSE

EDIT

I want to add the reason that your `IF` statement seems to not work. When you do an `EXISTS` on an aggregate, it's always going to be `true`. It returns a value even if the `ID` doesn't exist. Sure, it's `NULL`, but its returning it. Instead, do this:

``````if exists(select 1 from table where id = 4)
``````

and you'll get to the `ELSE` portion of your `IF` statement.

Now, here's a better, set-based solution:

``````update b
set code = isnull(a.value, 123)
from #b b
left join (select id, max(value) from #a group by id) a
on b.id = a.id
where
b.id = yourid
``````

This has the benefit of being able to run on the entire table rather than individual ids.

### SQL: parse the first, middle and last name from a fullname field

Employee table has column "Name" and we had to split it into First, Middle and Last Name. This query will handle to keep middle name as null if name column has value of two words like 'James Thomas'.

``````UPDATE Employees
SET [First Name] = CASE
WHEN (len(name) - len(Replace(name, '.', ''))) = 2
THEN PARSENAME(Name, 3)
WHEN (len(name) - len(Replace(name, '.', ''))) = 1
THEN PARSENAME(Name, 2)
ELSE PARSENAME(Name, 1)
END
,[Middle Name] = CASE
WHEN (len(name) - len(Replace(name, '.', ''))) = 2
THEN PARSENAME(Name, 2)
ELSE NULL
END
,[Last Name] = CASE
WHEN (len(name) - len(Replace(name, '.', ''))) = 2
THEN PARSENAME(Name, 1)
WHEN (len(name) - len(Replace(name, '.', ''))) = 1
THEN PARSENAME(Name, 1)
ELSE NULL
END GO

UPDATE Employee
SET [Name] = Replace([Name], '.', ' ') GO
``````

### Finding duplicate values in MySQL

``````SELECT DISTINCT a.email FROM `users` a LEFT JOIN `users` b ON a.email = b.email WHERE a.id != b.id;
``````

### Add params to given URL in Python

I find this more elegant than the two top answers:

``````from urllib.parse import urlencode, urlparse, parse_qs

def merge_url_query_params(url: str, additional_params: dict) -> str:
url_components = urlparse(url)
original_params = parse_qs(url_components.query)
# Before Python 3.5 you could update original_params with
# additional_params, but here all the variables are immutable.
updated_query = urlencode(merged_params, doseq=True)
# _replace() is how you can create a new NamedTuple with a changed field
return url_components._replace(query=updated_query).geturl()

assert merge_url_query_params(
'http://example.com/search?q=question',
{'lang':'en','tag':'python'},
) == 'http://example.com/search?q=question&lang=en&tag=python'
``````

The most important things I dislike in the top answers (they are nevertheless good):

• Lukasz: having to remember the index at which the `query` is in the URL components
• Sapphire64: the very verbose way of creating the updated `ParseResult`

What's bad about my response is the magically looking `dict` merge using unpacking, but I prefer that to updating an already existing dictionary because of my prejudice against mutability.

### Installing tensorflow with anaconda in windows

I was able to install tensorflow on windows following the instructions on tensorflow.org, using the conda method of installation, as given here: https://www.tensorflow.org/get_started/os_setup#anaconda_installation. There are small differences on how to activate an 'environment' on windows, you call 'activate' directly without the 'source'. So, for me after installing anaconda the steps where:

``````C:\Users\Dunschm>conda create -n tensorflow python=3.5
C:\Users\Dunschm>activate tensorflow
(tensorflow) C:\Users\Dunschm>conda install -c conda-forge tensorflow
``````

### Mock MVC - Add Request Parameter to test

If anyone came to this question looking for ways to add multiple parameters at the same time (my case), you can use `.params` with a MultivalueMap instead of adding each `.param` :

``````LinkedMultiValueMap<String, String> requestParams = new LinkedMultiValueMap<>()

mockMvc.perform(get("my/endpoint").params(requestParams)).andExpect(status().isOk())
``````

### Commit history on remote repository

``````git log remotename/branchname
``````

Will display the log of a given remote branch in that repository, but only the logs that you have "fetched" from their repository to your personal "copy" of the remote repository.

Remember that your clone of the repository will update its state of any remote branches only by doing `git fetch`. You can't connect directly to the server to check the log there, what you do is download the state of the server with `git fetch` and then locally see the log of the remote branches.

Perhaps another useful command could be:

``````git log HEAD..remote/branch
``````

which will show you the commits that are in the remote branch, but not in your current branch (`HEAD`).

### Detect if the app was launched/opened from a push notification

Swift 2.0 For 'Not Running' State (Local & Remote Notification)

``````func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

if (launchOptions != nil) {

if let something = localNotificationInfo.userInfo!["yourKey"] as? String {
}

} else

if let something = remoteNotification["yourKey"] as? String {
}
}

}

return true
}
``````

### How to remove border from specific PrimeFaces p:panelGrid?

Use below style modification to remove border for Primefaces radio button

``````.ui-selectoneradio td, .ui-selectoneradio tr
{
border-style: none !important
}
``````

### VB.net: Date without time

Either use one of the standard date and time format strings which only specifies the date (e.g. "D" or "d"), or a custom date and time format string which only uses the date parts (e.g. "yyyy/MM/dd").

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

Update with .NET 4.6.2. Check Release value in the same registry as in previous responses:

``````RegistryKey registry_key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full");
if (registry_key == null)
return false;
var val = registry_key.GetValue("Release", 0);
UInt32 Release = Convert.ToUInt32(val);

if (Release >= 394806) // 4.6.2 installed on all other Windows (different than Windows 10)
return true;
if (Release >= 394802) // 4.6.2 installed on Windows 10 or later
return true;
``````

### Multiple submit buttons on HTML form – designate one button as default

My suggestion is don't fight this behaviour. You can effectively alter the order using floats. For example:

``````<p id="buttons">
<input type="submit" name="next" value="Next">
<input type="submit" name="prev" value="Previous">
</p>
``````

with:

``````#buttons { overflow: hidden; }
#buttons input { float: right; }
``````

will effectively reverse the order and thus the "Next" button will be the value triggered by hitting enter.

This kind of technique will cover many circumstances without having to resort to more hacky JavaScript methods.

### Windows batch: sleep

To wait 10 seconds:

``````choice /T 10 /C X /D X /N
``````

### Convert Json String to C# Object List

Please make sure that all properties are both the getter and setter. In case, any property is getter only, it will cause the reverting the List to original data as the JSON string is typed.

Please refer to the following code snippet for the same: Model:

`````` public class Person
{
public int ID { get; set; }
// following 2 lines are cause of error
//public string Name { get { return string.Format("{0} {1}", First, Last); } }
//public string Country { get { return Countries[CountryID]; } }
public int CountryID { get; set; }
public bool Active { get; set; }
public string First { get; set; }
public string Last { get; set; }
public DateTime Hired { get; set; }
}
public class ModelObj
{
public string Str { get; set; }
public List<Person> Persons { get; set; }
}
``````

Controller:

`````` [HttpPost]
public ActionResult Index(FormCollection collection)
{
var data = new ModelObj();
data.Str = (string)collection.GetValue("Str").ConvertTo(typeof(string));
var personsString = (string)collection.GetValue("Persons").ConvertTo(typeof(string));
{
{
data.Persons = new JsonSerializer().Deserialize(reader, typeof(List<Person>)) as List<Person>;
}
}

return View(data);
}
``````

### Get name of object or class

All we need:

1. Wrap a constant in a function (where the name of the function equals the name of the object we want to get)
2. Use arrow functions inside the object

_x000D_
_x000D_
``````console.clear();_x000D_
function App(){ // name of my constant is App_x000D_
return {_x000D_
a: {_x000D_
b: {_x000D_
c: ()=>{ // very important here, use arrow function _x000D_
console.log(this.constructor.name)_x000D_
}_x000D_
}_x000D_
}_x000D_
}_x000D_
}_x000D_
const obj = new App(); // usage_x000D_
_x000D_
obj.a.b.c(); // App_x000D_
_x000D_
// usage with react props etc, _x000D_
// For instance, we want to pass this callback to some component_x000D_
_x000D_
const myComponent = {};_x000D_
myComponent.customProps = obj.a.b.c;_x000D_
myComponent.customProps(); // App``````
_x000D_
_x000D_
_x000D_

### How can I draw vertical text with CSS cross-browser?

Updated this answer with recent information (from CSS Tricks). Kudos to Matt and Douglas for pointing out the filter implementation.

``````.rotate {
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);

/* also accepts left, right, top, bottom coordinates; not required, but a good idea for styling */
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
transform-origin: 50% 50%;

/* Should be unset in IE9+ I think. */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
``````

For FF 3.5 or Safari/Webkit 3.1, check out: -moz-transform (and -webkit-transform). IE has a Matrix filter(v5.5+), but I'm not certain how to use it. Opera has no transformation capabilities yet.

``````.rot-neg-90 {
/* rotate -90 deg, not sure if a negative number is supported so I used 270 */
-moz-transform: rotate(270deg);
-moz-transform-origin: 50% 50%;
-webkit-transform: rotate(270deg);
-webkit-transform-origin: 50% 50%;
/* IE support too convoluted for the time I've got on my hands... */
}
``````

### Android- Error:Execution failed for task ':app:transformClassesWithDexForRelease'

Just Change the google play services in gradle (module app) from 9.x.x to the lower version 8.4.0 is work for me

### Best way to return a value from a python script

If you want your script to return values, just do `return [1,2,3]` from a function wrapping your code but then you'd have to import your script from another script to even have any use for that information:

# Return values (from a wrapping-function)

(again, this would have to be run by a separate Python script and be imported in order to even do any good):

``````import ...
def main():
# calculate stuff
return [1,2,3]
``````

# Exit codes as indicators

(This is generally just good for when you want to indicate to a governor what went wrong or simply the number of bugs/rows counted or w/e. Normally 0 is a good exit and >=1 is a bad exit but you could inter-prate them in any way you want to get data out of it)

``````import sys
# calculate and stuff
sys.exit(100)
``````

And exit with a specific exit code depending on what you want that to tell your governor. I used exit codes when running script by a scheduling and monitoring environment to indicate what has happened.

(`os._exit(100)` also works, and is a bit more forceful)

If not you'd have to use stdout to communicate with the outside world (like you've described). But that's generally a bad idea unless it's a parser executing your script and can catch whatever it is you're reporting to.

``````import sys
# calculate stuff
sys.stdout.write('Bugs: 5|Other: 10\n')
sys.stdout.flush()
sys.exit(0)
``````

Are you running your script in a controlled scheduling environment then exit codes are the best way to go.

# Files as conveyors

There's also the option to simply write information to a file, and store the result there.

``````# calculate
with open('finish.txt', 'wb') as fh:
fh.write(str(5)+'\n')
``````

And pick up the value/result from there. You could even do it in a CSV format for others to read simplistically.

# Sockets as conveyors

If none of the above work, you can also use network sockets locally *(unix sockets is a great way on nix systems). These are a bit more intricate and deserve their own post/answer. But editing to add it here as it's a good option to communicate between processes. Especially if they should run multiple tasks and return values.

### Is there a stopwatch in Java?

Simple out of the box Stopwatch class:

``````import java.time.Duration;
import java.time.Instant;

public class StopWatch {

Instant startTime, endTime;
Duration duration;
boolean isRunning = false;

public void start() {
if (isRunning) {
throw new RuntimeException("Stopwatch is already running.");
}
this.isRunning = true;
startTime = Instant.now();
}

public Duration stop() {
this.endTime = Instant.now();
if (!isRunning) {
throw new RuntimeException("Stopwatch has not been started yet");
}
isRunning = false;
Duration result = Duration.between(startTime, endTime);
if (this.duration == null) {
this.duration = result;
} else {
this.duration = duration.plus(result);
}

return this.getElapsedTime();
}

public Duration getElapsedTime() {
return this.duration;
}

public void reset() {
if (this.isRunning) {
this.stop();
}
this.duration = null;
}
}
``````

Usage:

``````StopWatch sw = new StopWatch();
sw.start();
// doWork()
sw.stop();
System.out.println( sw.getElapsedTime().toMillis() + "ms");
``````

### Convert or extract TTC font to TTF - how to?

This is what worked for me for extracting TTFs from .dfont and .ttc files from Mac OS X: http://transfonter.org/ttc-unpack

The resulting TTFs work fine in Windows 7.

### Test for array of string type in TypeScript

I know this has been answered, but TypeScript introduced type guards: https://www.typescriptlang.org/docs/handbook/advanced-types.html#typeof-type-guards

If you have a type like: `Object[] | string[]` and what to do something conditionally based on what type it is - you can use this type guarding:

``````function isStringArray(value: any): value is string[] {
if (value instanceof Array) {
value.forEach(function(item) { // maybe only check first value?
if (typeof item !== 'string') {
return false
}
})
return true
}
return false
}

function join<T>(value: string[] | T[]) {
if (isStringArray(value)) {
return value.join(',') // value is string[] here
} else {
return value.map((x) => x.toString()).join(',') // value is T[] here
}
}
``````

There is an issue with an empty array being typed as `string[]`, but that might be okay

### Force hide address bar in Chrome on Android

Check this has everything you need

http://www.html5rocks.com/en/mobile/fullscreen/

The Chrome team has recently implemented a feature that tells the browser to launch the page fullscreen when the user has added it to the home screen. It is similar to the iOS Safari model.

``````<meta name="mobile-web-app-capable" content="yes">
``````

### TextView - setting the text size programmatically doesn't seem to work

In Kotlin, you can use simply use like this,

`textview.textSize = 20f`

### Eclipse plugin for generating a class diagram

Try eUML2. its a single click generator no need to drag n drop.

### Does Android support near real time push notification?

I cannot find where I read it at, but I believe gmail utilizes an open TCP connection to do the e-mail push.

I found better way to do it. if you want to use something like this

Use this dependency

``````   compile 'com.nex3z:notification-badge:0.1.0'
``````

create one xml file in drawable and Save it as Badge.xml

``````<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item>
<shape android:shape="oval">
<solid android:color="#66000000"/>
<size android:width="30dp" android:height="40dp"/>
</shape>
</item>
<item android:bottom="1dp" android:right="0.6dp">
<shape android:shape="oval">
<solid android:color="@color/Error_color"/>
<size android:width="20dp" android:height="20dp"/>
</shape>
</item>
</layer-list>
``````

Now wherever you want to use that badge use following code in xml. with the help of this you will be able to see that badge on top-right corner of your image or anything.

``````  <com.nex3z.notificationbadge.NotificationBadge
android:layout_toRightOf="@id/Your_ICON/IMAGE"
android:layout_alignTop="@id/Your_ICON/IMAGE"
android:layout_marginLeft="-16dp"
android:layout_marginTop="-8dp"
android:layout_width="28dp"
android:layout_height="28dp"
app:maxTextLength="2"
``````

Now finally on yourFile.java use this 2 simple thing.. 1) Define

`````` NotificationBadge mBadge;
``````

2) where your loop or anything which is counting this number use this:

`````` mBadge.setNumber(your_LoopCount);
``````

here, `mBadge.setNumber(0)` will not show anything.

Hope this help.

### CSS to stop text wrapping under image

Wrap a div around the image and the span and add the following to CSS like so:

HTML

``````        <li id="CN2787">
<div><img class="fav_star" src="images/fav.png"></div>
<div><span>Text, text and more text</span></div>
</li>
``````

CSS

``````            #CN2787 > div {
display: inline-block;
vertical-align: top;
}

#CN2787 > div:first-of-type {
width: 35%;
}

#CN2787 > div:last-of-type {
width: 65%;
}
``````

LESS

``````        #CN2787 {
> div {
display: inline-block;
vertical-align: top;
}

> div:first-of-type {
width: 35%;
}
> div:last-of-type {
width: 65%;
}
}
``````

### How do I make the text box bigger in HTML/CSS?

``````.textbox {
height: 40px;
}

<div id=signin>
<input type="text" class="textbox" size="25%" height="50"/></br>
<input type="text" class="textbox" size="25%" height="50"/>
``````

Make the font size larger and add height (or line height to the input boxes) I would not recommend adding those size and height attributes in the HTML as that can be handled by CSS. I have made a class text-box that can be used for multiple input boxes