You can try this it will help for you.You can't get path from WhatsApp directly.If you need an file path first copy file and send new file path. Using the code below
public static String getFilePathFromURI(Context context, Uri contentUri) {
String fileName = getFileName(contentUri);
if (!TextUtils.isEmpty(fileName)) {
File copyFile = new File(TEMP_DIR_PATH + fileName+".jpg");
copy(context, contentUri, copyFile);
return copyFile.getAbsolutePath();
}
return null;
}
public static String getFileName(Uri uri) {
if (uri == null) return null;
String fileName = null;
String path = uri.getPath();
int cut = path.lastIndexOf('/');
if (cut != -1) {
fileName = path.substring(cut + 1);
}
return fileName;
}
public static void copy(Context context, Uri srcUri, File dstFile) {
try {
InputStream inputStream = context.getContentResolver().openInputStream(srcUri);
if (inputStream == null) return;
OutputStream outputStream = new FileOutputStream(dstFile);
IOUtils.copy(inputStream, outputStream);
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
Then IOUtils class is like below
public class IOUtils {
private static final int BUFFER_SIZE = 1024 * 2;
private IOUtils() {
// Utility class.
}
public static int copy(InputStream input, OutputStream output) throws Exception, IOException {
byte[] buffer = new byte[BUFFER_SIZE];
BufferedInputStream in = new BufferedInputStream(input, BUFFER_SIZE);
BufferedOutputStream out = new BufferedOutputStream(output, BUFFER_SIZE);
int count = 0, n = 0;
try {
while ((n = in.read(buffer, 0, BUFFER_SIZE)) != -1) {
out.write(buffer, 0, n);
count += n;
}
out.flush();
} finally {
try {
out.close();
} catch (IOException e) {
Log.e(e.getMessage(), e.toString());
}
try {
in.close();
} catch (IOException e) {
Log.e(e.getMessage(), e.toString());
}
}
return count;
}
}
First thing you need to do here is correct the hibernate dialect version like @JavaLearner has explained. Then you have make sure that all the versions of hibernate dependencies you are using are upto date. Typically you would need: database driver like mysql-connector-java
, hibernate dependency: hibernate-core
and hibernate entity manager: hibernate-entitymanager
. Lastly don't forget to check that the database tables you are using are not the reserved words like order
, group
, limit
, etc. It might save you a lot of headache.
In case of a large project, it's difficult to fix each of these exceptions. At the same time, using Silent
is not advised. I have written a script to remove all the unnecessary stubbings given a list of them.
https://gist.github.com/cueo/da1ca49e92679ac49f808c7ef594e75b
We just need to copy-paste the mvn
output and write the list of these exceptions using regex and let the script take care of the rest.
You can use the WebFont module, which greatly simplifies the process.
render(){
webfont.load({
custom: {
families: ['MyFont'],
urls: ['/fonts/MyFont.woff']
}
});
return (
<div style={your style} >
your text!
</div>
);
}
In my case, I need to add:
sql_mode="STRICT_TRANS_TABLES"
under [mysqld]
in the file my.ini
located in C:\xampp\mysql\bin
.
Laravel Server Requirements mention that BCMath
, Ctype
, JSON
, Mbstring
, OpenSSL
, PDO
, Tokenizer
, and XML
extensions are required. Most of the extensions are installed and enabled by default.
You can run the following command in Ubuntu to make sure the extensions are installed.
sudo apt install openssl php-common php-curl php-json php-mbstring php-mysql php-xml php-zip
PHP version specific installation (if PHP 7.4 installed)
sudo apt install php7.4-common php7.4-bcmath openssl php7.4-json php7.4-mbstring
You may need other PHP extensions for your composer packages. Find from links below.
PHP extensions for Ubuntu 20.04 LTS (Focal Fossa)
PHP extensions for Ubuntu 18.04 LTS (Bionic)
PHP extensions for Ubuntu 16.04 LTS (Xenial)
Claiming that the C++ compiler can produce more optimal code than a competent assembly language programmer is a very bad mistake. And especially in this case. The human always can make the code better than the compiler can, and this particular situation is a good illustration of this claim.
The timing difference you're seeing is because the assembly code in the question is very far from optimal in the inner loops.
(The below code is 32-bit, but can be easily converted to 64-bit)
For example, the sequence function can be optimized to only 5 instructions:
.seq:
inc esi ; counter
lea edx, [3*eax+1] ; edx = 3*n+1
shr eax, 1 ; eax = n/2
cmovc eax, edx ; if CF eax = edx
jnz .seq ; jmp if n<>1
The whole code looks like:
include "%lib%/freshlib.inc"
@BinaryType console, compact
options.DebugMode = 1
include "%lib%/freshlib.asm"
start:
InitializeAll
mov ecx, 999999
xor edi, edi ; max
xor ebx, ebx ; max i
.main_loop:
xor esi, esi
mov eax, ecx
.seq:
inc esi ; counter
lea edx, [3*eax+1] ; edx = 3*n+1
shr eax, 1 ; eax = n/2
cmovc eax, edx ; if CF eax = edx
jnz .seq ; jmp if n<>1
cmp edi, esi
cmovb edi, esi
cmovb ebx, ecx
dec ecx
jnz .main_loop
OutputValue "Max sequence: ", edi, 10, -1
OutputValue "Max index: ", ebx, 10, -1
FinalizeAll
stdcall TerminateAll, 0
In order to compile this code, FreshLib is needed.
In my tests, (1 GHz AMD A4-1200 processor), the above code is approximately four times faster than the C++ code from the question (when compiled with -O0
: 430 ms vs. 1900 ms), and more than two times faster (430 ms vs. 830 ms) when the C++ code is compiled with -O3
.
The output of both programs is the same: max sequence = 525 on i = 837799.
In PHP you can add the headers:
<?php
header ("Access-Control-Allow-Origin: *");
header ("Access-Control-Expose-Headers: Content-Length, X-JSON");
header ("Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS");
header ("Access-Control-Allow-Headers: *");
...
To use arrow functions with function.prototype.call
, I made a helper function on the object prototype:
// Using
// @func = function() {use this here} or This => {use This here}
using(func) {
return func.call(this, this);
}
usage
var obj = {f:3, a:2}
.using(This => This.f + This.a) // 5
Edit
You don't NEED a helper. You could do:
var obj = {f:3, a:2}
(This => This.f + This.a).call(undefined, obj); // 5
These steps are working on CentOS 6.5 so they should work on CentOS 7 too:
(EDIT - exactly the same steps work for MariaDB 10.3 on CentOS 8)
yum remove mariadb mariadb-server
rm -rf /var/lib/mysql
If your datadir in /etc/my.cnf points to a different directory, remove that directory instead of /var/lib/mysqlrm /etc/my.cnf
the file might have already been deleted at step 1rm ~/.my.cnf
yum install mariadb mariadb-server
[EDIT] - Update for MariaDB 10.1 on CentOS 7
The steps above worked for CentOS 6.5 and MariaDB 10.
I've just installed MariaDB 10.1 on CentOS 7 and some of the steps are slightly different.
Step 1 would become:
yum remove MariaDB-server MariaDB-client
Step 5 would become:
yum install MariaDB-server MariaDB-client
The other steps remain the same.
Rather than adding libraries which increases your apk size, I will suggest you to convert Svg to drawable using http://inloop.github.io/svg2android/ .
and add vectorDrawables.useSupportLibrary = true
in gradle,
Back in 2011 I spent a weekend fine-tuning a macro-based solution and ended up never using it.
My current procedure is to start Vim, copy the enumerators in an empty switch body, start a new macro, transform the first enumerator into a case statement, move the cursor to the beginning of the next line, stop the macro and generate the remaining case statements by running the macro on the other enumerators.
Vim macros are more fun than C++ macros.
Real-life example:
enum class EtherType : uint16_t
{
ARP = 0x0806,
IPv4 = 0x0800,
VLAN = 0x8100,
IPv6 = 0x86DD
};
I will create this:
std::ostream& operator<< (std::ostream& os, EtherType ethertype)
{
switch (ethertype)
{
case EtherType::ARP : return os << "ARP" ;
case EtherType::IPv4: return os << "IPv4";
case EtherType::VLAN: return os << "VLAN";
case EtherType::IPv6: return os << "IPv6";
// omit default case to trigger compiler warning for missing cases
};
return os << static_cast<std::uint16_t>(ethertype);
}
And that's how I get by.
Native support for enum stringification would be much better though. I'm very interested to see the results of the reflection workgroup in C++17.
An alternative way to do it was posted by @sehe in the comments.
TL;DR: To access newer versions of mysql/mariadb after as the root user, after a new install, you need to be in a root shell (ie sudo mysql -u root
, or mysql -u root
inside a shell started by su -
or sudo -i
first)
Having just done the same upgrade, on Ubuntu, I had the same issue.
What was odd was that
sudo /usr/bin/mysql_secure_installation
Would accept my password, and allow me to set it, but I couldn't log in as root
via the mysql
client
I had to start mariadb with
sudo mysqld_safe --skip-grant-tables
to get access as root, whilst all the other users could still access fine.
Looking at the mysql.user
table I noticed for root the plugin
column is set to unix_socket
whereas all other users it is set to 'mysql_native_password'. A quick look at this page: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ explains that the Unix Socket enables logging in by matching uid
of the process running the client with that of the user in the mysql.user
table. In other words to access mariadb as root
you have to be logged in as root.
Sure enough restarting my mariadb daemon with authentication required I can login as root with
sudo mysql -u root -p
or
sudo su -
mysql -u root -p
Having done this I thought about how to access without having to do the sudo, which is just a matter of running these mysql queries
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
(replacing <password>
with your desired mysql root password). This enabled password logins for the root user.
Alternatively running the mysql query:
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;
Will change the root account to use password login without changing the password, but this may leave you with a mysql/mariadb install with no root password on it.
After either of these you need to restarting mysql/mariadb:
sudo service mysql restart
And voila I had access from my personal account via mysql -u root -p
PLEASE NOTE THAT DOING THIS IS REDUCING SECURITY Presumably the MariaDB developers have opted to have root access work like this for a good reason.
Thinking about it I'm quite happy to have to sudo mysql -u root -p
so I'm switching back to that, but I thought I'd post my solution as I couldn't find one elsewhere.
Some lambda function :
import org.junit.Test;
import java.awt.event.ActionListener;
import java.util.function.Function;
public class TestLambda {
@Test
public void testLambda() {
System.out.println("test some lambda function");
////////////////////////////////////////////
//1-any input | any output:
//lambda define:
Runnable lambda1 = () -> System.out.println("no parameter");
//lambda execute:
lambda1.run();
////////////////////////////////////////////
//2-one input(as ActionEvent) | any output:
//lambda define:
ActionListener lambda2 = (p) -> System.out.println("One parameter as action");
//lambda execute:
lambda2.actionPerformed(null);
////////////////////////////////////////////
//3-one input | by output(as Integer):
//lambda define:
Function<String, Integer> lambda3 = (p1) -> {
System.out.println("one parameters: " + p1);
return 10;
};
//lambda execute:
lambda3.apply("test");
////////////////////////////////////////////
//4-two input | any output
//lambda define:
TwoParameterFunctionWithoutReturn<String, Integer> lambda4 = (p1, p2) -> {
System.out.println("two parameters: " + p1 + ", " + p2);
};
//lambda execute:
lambda4.apply("param1", 10);
////////////////////////////////////////////
//5-two input | by output(as Integer)
//lambda define:
TwoParameterFunctionByReturn<Integer, Integer> lambda5 = (p1, p2) -> {
System.out.println("two parameters: " + p1 + ", " + p2);
return p1 + p2;
};
//lambda execute:
lambda5.apply(10, 20);
////////////////////////////////////////////
//6-three input(Integer,Integer,String) | by output(as Integer)
//lambda define:
ThreeParameterFunctionByReturn<Integer, Integer, Integer> lambda6 = (p1, p2, p3) -> {
System.out.println("three parameters: " + p1 + ", " + p2 + ", " + p3);
return p1 + p2 + p3;
};
//lambda execute:
lambda6.apply(10, 20, 30);
}
@FunctionalInterface
public interface TwoParameterFunctionWithoutReturn<T, U> {
public void apply(T t, U u);
}
@FunctionalInterface
public interface TwoParameterFunctionByReturn<T, U> {
public T apply(T t, U u);
}
@FunctionalInterface
public interface ThreeParameterFunctionByReturn<M, N, O> {
public Integer apply(M m, N n, O o);
}
}
This problem also arise when we don't give the single or double quotes to the database value.
Wrong way:
$query ="INSERT INTO tabel_name VALUE ($value1,$value2)";
As database inserting values must be in quotes ' '/" "
Right way:
$query ="INSERT INTO STUDENT VALUE ('$roll_no','$name','$class')";
I don't think desc
takes an na.rm
argument... I'm actually surprised it doesn't throw an error when you give it one. If you just want to remove NA
s, use na.omit
(base) or tidyr::drop_na
:
outcome.df %>%
na.omit() %>%
group_by(Hospital, State) %>%
arrange(desc(HeartAttackDeath)) %>%
head()
library(tidyr)
outcome.df %>%
drop_na() %>%
group_by(Hospital, State) %>%
arrange(desc(HeartAttackDeath)) %>%
head()
If you only want to remove NA
s from the HeartAttackDeath column, filter with is.na
, or use tidyr::drop_na
:
outcome.df %>%
filter(!is.na(HeartAttackDeath)) %>%
group_by(Hospital, State) %>%
arrange(desc(HeartAttackDeath)) %>%
head()
outcome.df %>%
drop_na(HeartAttackDeath) %>%
group_by(Hospital, State) %>%
arrange(desc(HeartAttackDeath)) %>%
head()
As pointed out at the dupe, complete.cases
can also be used, but it's a bit trickier to put in a chain because it takes a data frame as an argument but returns an index vector. So you could use it like this:
outcome.df %>%
filter(complete.cases(.)) %>%
group_by(Hospital, State) %>%
arrange(desc(HeartAttackDeath)) %>%
head()
The same error is produced in MariaDB (10.1.36-MariaDB) by using the combination of parenthesis and the COLLATE statement. My SQL was different, the error was the same, I had:
SELECT *
FROM table1
WHERE (field = 'STRING') COLLATE utf8_bin;
Omitting the parenthesis was solving it for me.
SELECT *
FROM table1
WHERE field = 'STRING' COLLATE utf8_bin;
I've just had this problem with MariaDB/InnoDB and was able to fix it by
Try this, then try to install compass again
apt-get install ruby-dev
I hit the same issue and none of the solutions worked. I then bumped an answer in stackexchange dba which lead to this link. So here is what I did:
sudo mysqld_safe --skip-grant-tables --skip-networking &
sudo mysql -uroot
and got into mysql consoleALTER USER root@localhost identified via unix_socket;
and flush privileges;
consecutively to allow for password-less loginIf you want to set the password then you need to do one more step, that is running ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;
and SET PASSWORD = PASSWORD('YourPasswordHere');
consecutively.
UPDATE
Faced this issue recently and here is how I resolved it with recent version, but before that some background. Mariadb does not require a password when is run as root. So first run it as a root. Then once in the Mariadb console, change password there. If you are content with running it as admin, you can just keep doing it but I find that cumbersome especially because I cannot use that with DB Admin Tools. TL;DR here is how I did it on Mac (should be similar for *nix systems)
sudo mariadb-secure-installation
then follow instructions on the screen!
Hope this will help someone and serve me a reference for future problems
Your ''.join()
expression is filtering, removing anything non-ASCII; you could use a conditional expression instead:
return ''.join([i if ord(i) < 128 else ' ' for i in text])
This handles characters one by one and would still use one space per character replaced.
Your regular expression should just replace consecutive non-ASCII characters with a space:
re.sub(r'[^\x00-\x7F]+',' ', text)
Note the +
there.
I encountered this error whenever I omitted a parameter while inflating the view for a fragment in the onCreateView()
method like so:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_reject, container);
return view;
}
The solution is to change the view inflation line to:
View view=inflater.inflate(R.layout.fragment_reject, container,false);
The explanation can be found at the Android guide for fragments
Quoting from the guide, the final parameter in the view initialization statement is false because:
"the system is already inserting the inflated layout into the container—passing true would create a redundant view group in the final layout"
Follow the given steps in order to setup it up to use MySQL database:
1) Install MySQL Database Connector :
sudo apt-get install libmysqlclient-dev
2) Install the mysqlclient library :
pip install mysqlclient
3) Install MySQL server, with the following command :
sudo apt-get install mysql-server
4) Create the Database :
i) Verify that the MySQL service is running:
systemctl status mysql.service
ii) Log in with your MySQL credentials using the following command where -u is the flag for declaring your username and -p is the flag that tells MySQL that this user requires a password :
mysql -u db_user -p
iii) CREATE DATABASE db_name;
iv) Exit MySQL server, press CTRL + D.
5) Add the MySQL Database Connection to your Application:
i) Navigate to the settings.py file and replace the current DATABASES lines with the following:
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/etc/mysql/my.cnf',
},
}
}
...
ii) Next, let’s edit the config file so that it has your MySQL credentials. Use vi as sudo to edit the file and add the following information:
sudo vi /etc/mysql/my.cnf
database = db_name
user = db_user
password = db_password
default-character-set = utf8
6) Once the file has been edited, we need to restart MySQL for the changes to take effect :
systemctl daemon-reload
systemctl restart mysql
7) Test MySQL Connection to Application:
python manage.py runserver your-server-ip:8000
% mysql --user=root mysql
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' WITH GRANT OPTION;
CREATE USER 'admin'@'localhost';
GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
CREATE USER 'dummy'@'localhost';
FLUSH PRIVILEGES;
Suppose we have streaming in video tag and id is video - <video id="video"></video>
then we should have following code -
var videoEl = document.getElementById('video');
// now get the steam
stream = videoEl.srcObject;
// now get all tracks
tracks = stream.getTracks();
// now close each track by having forEach loop
tracks.forEach(function(track) {
// stopping every track
track.stop();
});
// assign null to srcObject of video
videoEl.srcObject = null;
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
font-family: 'Open Sans'; font-weight: 600; important to change to a different font-family
This dplyr
method works nicely when piping.
For selected columns:
library(dplyr)
iris %>%
select(Sepal.Width, Species) %>%
t %>% c %>% unique
[1] "3.5" "setosa" "3.0" "3.2" "3.1"
[6] "3.6" "3.9" "3.4" "2.9" "3.7"
[11] "4.0" "4.4" "3.8" "3.3" "4.1"
[16] "4.2" "2.3" "versicolor" "2.8" "2.4"
[21] "2.7" "2.0" "2.2" "2.5" "2.6"
[26] "virginica"
Or for the whole dataframe:
iris %>% t %>% c %>% unique
[1] "5.1" "3.5" "1.4" "0.2" "setosa" "4.9"
[7] "3.0" "4.7" "3.2" "1.3" "4.6" "3.1"
[13] "1.5" "5.0" "3.6" "5.4" "3.9" "1.7"
[19] "0.4" "3.4" "0.3" "4.4" "2.9" "0.1"
[25] "3.7" "4.8" "1.6" "4.3" "1.1" "5.8"
[31] "4.0" "1.2" "5.7" "3.8" "1.0" "3.3"
[37] "0.5" "1.9" "5.2" "4.1" "5.5" "4.2"
[43] "4.5" "2.3" "0.6" "5.3" "7.0" "versicolor"
[49] "6.4" "6.9" "6.5" "2.8" "6.3" "2.4"
[55] "6.6" "2.7" "2.0" "5.9" "6.0" "2.2"
[61] "6.1" "5.6" "6.7" "6.2" "2.5" "1.8"
[67] "6.8" "2.6" "virginica" "7.1" "2.1" "7.6"
[73] "7.3" "7.2" "7.7" "7.4" "7.9"
The problem is that static imports from Hamcrest and Mockito have similar names, but return Matchers and real values, respectively.
One work-around is to simply copy the Hamcrest and/or Mockito classes and delete/rename the static functions so they are easier to remember and less show up in the auto complete. That's what I did.
Also, when using mocks, I try to avoid assertThat
in favor other other assertions
and verify
, e.g.
assertEquals(1, 1);
verify(someMock).someMethod(eq(1));
instead of
assertThat(1, equalTo(1));
verify(someMock).someMethod(eq(1));
If you remove the classes from your Favorites in Eclipse, and type out the long name e.g. org.hamcrest.Matchers.equalTo
and do CTRL+SHIFT+M to 'Add Import' then autocomplete will only show you Hamcrest matchers, not any Mockito matchers. And you can do this the other way so long as you don't mix matchers.
The most common representations are probably these two:
Of these two the adjacency matrix is the simplest, as long as you don't mind having a (possibly huge) n * n
array, where n
is the number of vertices. Depending on the base type of the array, you can even store edge weights for use in e.g. shortest path discovery algorithms.
You can use pydoc
.
Open your terminal and type python -m pydoc list.append
The advantage of pydoc
over help()
is that you do not have to import a module to look at its help text.
For instance python -m pydoc random.randint
.
Also you can start an HTTP server to interactively browse documentation by typing python -m pydoc -b
(python 3)
For more information python -m pydoc
Concatenate the string separating the slash and the word script in this way.
Response.Write("<script language='javascript'>alert('Especifique Usuario y Contraseña');</" + "script>");
Hi try this it will create directory + file inside it
File mediaDir = new File("/sdcard/download/media");
if (!mediaDir.exists()){
mediaDir.mkdir();
}
File resolveMeSDCard = new File("/sdcard/download/media/hello_file.txt");
resolveMeSDCard.createNewFile();
FileOutputStream fos = new FileOutputStream(resolveMeSDCard);
fos.write(string.getBytes());
fos.close();
System.out.println("Your file has been written");
Try comparing the value of the column to the DBNull.Value
value to filter and manage null values in whatever way you see fit.
foreach(DataRow row in table.Rows)
{
object value = row["ColumnName"];
if (value == DBNull.Value)
// do something
else
// do something else
}
More information about the DBNull class
If you want to check if a null value exists in the table you can use this method:
public static bool HasNull(this DataTable table)
{
foreach (DataColumn column in table.Columns)
{
if (table.Rows.OfType<DataRow>().Any(r => r.IsNull(column)))
return true;
}
return false;
}
which will let you write this:
table.HasNull();
Following code will solve json response if there Basic Authentication and Proxy implemented.Also IIS 7.5 Hosting Problm will resolve.
public string HttpGetByWebRequ(string uri, string username, string password)
{
//For Basic Authentication
string authInfo = username + ":" + password;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
//For Proxy
WebProxy proxy = new WebProxy("http://10.127.0.1:8080", true);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
request.Accept = "application/json; charset=utf-8";
request.Proxy = proxy;
request.Headers["Authorization"] = "Basic " + authInfo;
var response = (HttpWebResponse)request.GetResponse();
string strResponse = "";
using (var sr = new StreamReader(response.GetResponseStream()))
{
strResponse= sr.ReadToEnd();
}
return strResponse;
}
To add previous iOS simulator to Xcode 4.2, you need old xcode_3.2.6_and_ios_sdk_4.3.dmg (or similar version) installer file and do as following:
Now there are a list of your installed simulator.
Visibility change itself can be easy animated by overriding setVisibility method. Look at complete code:
public class SimpleViewAnimator extends FrameLayout
{
private Animation inAnimation;
private Animation outAnimation;
public SimpleViewAnimator(Context context)
{
super(context);
}
public void setInAnimation(Animation inAnimation)
{
this.inAnimation = inAnimation;
}
public void setOutAnimation(Animation outAnimation)
{
this.outAnimation = outAnimation;
}
@Override
public void setVisibility(int visibility)
{
if (getVisibility() != visibility)
{
if (visibility == VISIBLE)
{
if (inAnimation != null) startAnimation(inAnimation);
}
else if ((visibility == INVISIBLE) || (visibility == GONE))
{
if (outAnimation != null) startAnimation(outAnimation);
}
}
super.setVisibility(visibility);
}
}
Well, I assume you are not on Interactive Mode and you used this code to decode your string:
import base64
your_string = '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Q6D0xkRFicRDUY2nREWKAkIfGvhERYpAAAAAAERFin4AAAAAREWKvAAAAABERYr6AAAAAERFjiAAAAAAREWOXgAAAABERY6cAAAAAERFjtoAAAAAREWPGEK9GuBERY9WQ2Ml50RFj5RDoK7UREWP0kOl+WhERZAQQ22uP0RFkE5Coc28REWQjAAAAABERZDKAAAAAERFkQgAAAAAREWRRgAAAABER8aUAAAAAERHxtQAAAAAREfHEwAAAABER8dTAAAAAERHx5JDh8FaREfH0UO9DJBER8gRQ9bfKERHyFBDzkoWREfIkEOuMHxER8jPAAAAAERHyQ4AAAAAREfJTgAAAABER8mNAAAAAERIbk4AAAAAREhujgAAAABESG7OAAAAAERIbw4AAAAAREhvTkMM9UlESG+NQ083Y0RIb81DOgL9REhwDUK2XghESHBNAAAAAERIcI0AAAAAREhwzQAAAABESHEMAAAAAERKh+IAAAAAREqIIwAAAABESohkAAAAAERKiKYAAAAAREqI50Lh96RESokoQ35MV0RKiWlDnMTYREqJqkNxeg9ESonrQr2M/kRKii0AAAAAREqKbgAAAABESoqvAAAAAERKivAAAAAAREvFtwAAAABES8X5AAAAAERLxjsAAAAAREvGfQAAAABES8a/QwTfiURLxwFDcL+ZREvHQ0OJfrJES8eFQ2HTSURLx8dDAQzpREvICQAAAABES8hLAAAAAERLyI0AAAAAREvIzwAAAABES8wpAAAAAERLzGsAAAAAREvMrQAAAABES8zvAAAAAERLzTFC78e2REvNc0NWbJ9ES821Q5QpeERLzfdDbnPBREvOOUJOhwhES857AAAAAERLzrwAAAAAREvO/gAAAABES89AAAAAAERMDGoAAAAAREwMrQAAAABETAzvAAAAAERMDTEAAAAAREwNc0MbaL1ETA21Q4XDPkRMDfdDlMa4REwOOkNYuqFETA58QoUC7kRMDr4AAAAAREwPAAAAAABETA9CAAAAAERMD4QAAAAARE+u2AAAAABET68dAAAAAERPr2EAAAAARE+vpgAAAABET6/qQyyLhURPsC9DWN/HRE+wc0NkY0tET7C4QxkM20RPsPwAAAAARE+xQQAAAABET7GFAAAAAERPscoAAAAARFAOCQAAAABEUA5OAAAAAERQDpMAAAAARFAO1wAAAABEUA8cQwDAqURQD2FDdvAjRFAPpkOL1RJEUA/qQ0OKJURQEC9CXTp0RFAQdAAAAABEUBC5AAAAAERQEP4AAAAARFARQgAAAABEVcuoAAAAAERVy/AAAAAARFXMOQAAAABEVcyCAAAAAERVzMpCzsoORFXNE0NaGXFEVc1bQ3R5C0RVzaRDKbY/RFXN7QAAAABEVc41AAAAAERVzn4AAAAARFXOxwAAAABEV5BlAAAAAERXkK4AAAAARFeQ+AAAAABEV5FCAAAAAERXkYxDKSu1RFeR1kNbVSFEV5IgQ1lH20RXkmlDOlYfRFeSs0M4QDVEV5L9Q0YP/0RXk0dDMzG5RFeTkQAAAABEV5PaAAAAAERXlCQAAAAARFeUbgAAAABEV6FpAAAAAERXobMAAAAARFeh/QAAAABEV6JHAAAAAERXopFDDVORRFei20NxGSNEV6MlQ22aoURXo25C9lnCRFejuAAAAABEV6QCAAAAAERXpEwAAAAARFeklgAAAABEV6W9AAAAAERXpgcAAAAARFemUQAAAABEV6abAAAAAERXpuVDLnHjRFenL0M9OBdEV6d5QxBdL0RXp8MAAAAARFeoDQAAAABEV6hWAAAAAERXqKAAAAAARF33JAAAAABEXfdzAAAAAERd98EAAAAARF34DwAAAABEXfheQy+tTURd+KxDS93XRF34+kM42jtEXflIQswuZkRd+ZcAAAAARF355QAAAABEXfozAAAAAERd+oEAAAAARF5M4QAAAABEXk0wAAAAAEReTX4AAAAARF5NzQAAAABEXk4bQrksMkReTmpDvnVcRF5OuEQoL11EXk8HREPcqkReT1VEI/uQRF5PpEPTigZEXk/zQ4LN9kReUEFDX7PhRF5QkAAAAABEXlDeAAAAAEReUS0AAAAARF5RewAAAABEXo0MAAAAAERejVsAAAAARF6NqQAAAABEXo34AAAAAERejkdDA7iRRF6OlUOCrD5EXo7kQ8vYCkRejzND56FuRF6PgUO0Y8BEXo/QQyOz3URekB8AAAAARF6QbgAAAABEXpC8AAAAAERekQsAAAAARF7MvgAAAABEXs0NAAAAAERezVwAAAAARF7NqgAAAABEXs35Q478yERezkhDw2IoRF7Ol0PtNthEXs7mQ+gZFERezzVDnL2ORF7PhAAAAABEXs/TAAAAAERe0CEAAAAARF7QcAAAAABEYs8hAAAAAERiz3MAAAAARGLPxQAAAABEYtAXAAAAAERi0GhCk7m4RGLQukOaFH5EYtEMQ8gFaERi0V1DoL7mRGLRr0MQ5L1EYtIBAAAAAERi0lMAAAAARGLSpAAAAABEYtL2AAAAAERjTncAAAAARGNOyQAAAABEY08bAAAAAERjT20AAAAARGNPv0MdKfNEY1ARQ4lspERjUGNDjNEARGNQtkM/hM9EY1EIQkeJ4ERjUVoAAAAARGNRrAAAAABEY1H+AAAAAERjUlAAAAAARGbfpAAAAABEZt/5AAAAAERm4E4AAAAARGbgogAAAABEZuD3Qw3sj0Rm4UxDPHMvRGbhoEMBtoVEZuH1AAAAAERm4koAAAAARGbingAAAABEZuLzAAAAAERnjyUAAAAARGePegAAAABEZ4/PAAAAAERnkCQAAAAARGeQeULWDGZEZ5DPQ061J0RnkSRDan7BRGeReUNAkQdEZ5HOQuC5/kRnkiMAAAAARGeSeQAAAABEZ5LOAAAAAERnkyMAAAAARG8fawAAAABEbx/GAAAAAERvICEAAAAARG8gfAAAAABEbyDXQrehxkRvITJDR2/vRG8hjUNuIblEbyHnQ1BEK0RvIkJDLuhfRG8inQAAAABEbyL4AAAAAERvI1MAAAAARG8jrgAAAABEcM5fAAAAAERwzrsAAAAARHDPFwAAAABEcM9zAAAAAERwz89DK5xDRHDQK0OGgeZEcNCHQ26Re0Rw0ONC5uMORHDRQAAAAABEcNGcAAAAAERw0fgAAAAARHDSVAAAAABEcQ4hAAAAAERxDn0AAAAARHEO2gAAAABEcQ82AAAAAERxD5JC/8MCRHEP70PZhmhEcRBLRCsGMERxEKdEHpPpRHERBEOzPEpEcRFgQpyPfERxEbwAAAAARHESGQAAAABEcRJ1AAAAAERxEtEAAAAARHFNqQAAAABEcU4FAAAAAERxTmIAAAAARHFOvgAAAABEcU8bQWGokERxT3dDXYpdRHFP1EPRHHxEcVAwQ/Hb1kRxUI1DyFA0RHFQ6UN6Ck1EcVFGQzioDURxUaNDau5XRHFR/0NnQT9EcVJcQxBEBURxUrgAAAAARHFTFQAAAABEcVNxAAAAAERxU84AAAAARHUP2wAAAABEdRA6AAAAAER1EJkAAAAARHUQ+QAAAABEdRFYQoIpDER1EbhDbzAjRHUSF0OZA/BEdRJ2Q5gAnkR1EtZDj7qGRHUTNUN1fidEdROVQxFdtUR1E/QAAAAARHUUUwAAAABEdRSzAAAAAER1FRIAAAAARIFNGgAAAABEgU1PAAAAAESBTYQAAAAARIFNuQAAAABEgU3uQy178USBTiNDb4JRRIFOWEOhvR5EgU6NQ7dIFESBTsNDkg3MRIFO+ELaUAREgU8tAAAAAESBT2IAAAAARIFPlwAAAABEgU/MAAAAAESBpzIAAAAARIGnZwAAAABEgaecAAAAAESBp9IAAAAARIGoB0Jew0REgag9QzrtF0SBqHJDhC78RIGop0NtEDlEgajdQy4kQ0SBqRIAAAAARIGpSAAAAABEgal9AAAAAESBqbMAAAAARIHnXgAAAABEgeeUAAAAAESB58kAAAAARIHn/wAAAABEgeg1QwZ+g0SB6GpDhNUoRIHooEOId6xEgejWQvQoEkSB6QsAAAAARIHpQQAAAABEgel2AAAAAESB6awAAAAARIIHpwAAAABEggfdAAAAAESCCBMAAAAARIIISAAAAABEggh+Qv4nckSCCLRDWj6rRIII6kNbO+tEggkfQwvuw0SCCVUAAAAARIIJiwAAAABEggnBAAAAAESCCfYAAAAARIInlQAAAABEgifLAAAAAESCKAAAAAAARIIoNgAAAABEgihsQpgZsESCKKJDTqwDRIIo2ENlUilEgikOQwzsVUSCKUMAAAAARIIpeQAAAABEgimvAAAAAESCKeUAAAAARIJjZgAAAABEgmOcAAAAAESCY9IAAAAARIJkCAAAAABEgmQ+QxAFj0SCZHRDUubtRIJkq0NEJytEgmThQrRT7ESCZRcAAAAARIJlTQAAAABEgmWDAAAAAESCZbkAAAAARILgJgAAAABEguBcAAAAAESC4JMAAAAARILgyQAAAABEguEAQykld0SC4TZDdX0HRILhbENFmp9EguGjQb3PWESC4dkAAAAARILiEAAAAABEguJGAAAAAESC4n0AAAAARILldwAAAABEguWtAAAAAESC5eMAAAAARILmGgAAAABEguZQQwBjuUSC5odDV6cNRILmvUM6wtdEgub0QqvdxESC5yoAAAAARILnYQAAAABEgueXAAAAAESC580AAAAARIQHrQAAAABEhAfl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'
base64.b64decode(your_string)
Well first of all you need to assign the finished product to a variable to be able to be printed out:
code_string = base64.b64decode(your_string)
Then like any beginner programmer would know, you would print the results out: Python 2.7x:
print code_string
Python 3.x:
print(code_string)
After the successful decoding, you will get a string about the size of the not yet decoded string. I hope this helps you!
Using mysql CLI with -e option as Waverly360 suggests is a good one, but that might go out of memory and get killed on large results. (Havent find the reason behind it). If that is the case, and you need all records, my solution is: mysqldump + mysqldump2csv:
wget https://raw.githubusercontent.com/jamesmishra/mysqldump-to-csv/master/mysqldump_to_csv.py
mysqldump -u username -p --host=hostname database table | python mysqldump_to_csv.py > table.csv
Topstyle 4 is the only one I've com e across with HTML5 (and CSS3) support. Its early stages but it works enough for the most part.
Observations:
#include <cstring>
should introduce std::strcpy().using namespace std;
(as written in medico.h) introduces any identifiers from std::
into the global namespace.Aside from using namespace std;
being somewhat clumsy once the application grows larger (as it introduces one hell of a lot of identifiers into the global namespace), and that you should never use using
in a header file (see below!), using namespace
does not affect identifiers introduced after the statement.
(using namespace std
is written in the header, which is included in medico.cpp, but #include <cstring>
comes after that.)
My advice: Put the using namespace std;
(if you insist on using it at all) into medico.cpp, after any includes, and use explicit std::
in medico.h.
strcmpi()
is not a standard function at all; while being defined on Windows, you have to solve case-insensitive compares differently on Linux.
(On general terms, I would like to point to this answer with regards to "proper" string handling in C and C++ that takes Unicode into account, as every application should. Summary: The standard cannot handle these things correctly; do use ICU.)
warning: deprecated conversion from string constant to ‘char*’
A "string constant" is when you write a string literal (e.g. "Hello"
) in your code. Its type is const char[]
, i.e. array of constant characters (as you cannot change the characters). You can assign an array to a pointer, but assigning to char *
, i.e. removing the const
qualifier, generates the warning you are seeing.
OT clarification: using
in a header file changes visibility of identifiers for anyone including that header, which is usually not what the user of your header file wants. For example, I could use std::string
and a self-written ::string
just perfectly in my code, unless I include your medico.h, because then the two classes will clash.
Don't use using
in header files.
And even in implementation files, it can introduce lots of ambiguity. There is a case to be made to use explicit namespacing in implementation files as well.
For convenience, here's an implementation that works for 0 to 70 arguments, and works in Visual Studio, GCC, and Clang. I believe it will work in Visual Studio 2010 and later, but have only tested it in VS2013.
#ifdef _MSC_VER // Microsoft compilers
# define GET_ARG_COUNT(...) INTERNAL_EXPAND_ARGS_PRIVATE(INTERNAL_ARGS_AUGMENTER(__VA_ARGS__))
# define INTERNAL_ARGS_AUGMENTER(...) unused, __VA_ARGS__
# define INTERNAL_EXPAND(x) x
# define INTERNAL_EXPAND_ARGS_PRIVATE(...) INTERNAL_EXPAND(INTERNAL_GET_ARG_COUNT_PRIVATE(__VA_ARGS__, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
# define INTERNAL_GET_ARG_COUNT_PRIVATE(_1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _10_, _11_, _12_, _13_, _14_, _15_, _16_, _17_, _18_, _19_, _20_, _21_, _22_, _23_, _24_, _25_, _26_, _27_, _28_, _29_, _30_, _31_, _32_, _33_, _34_, _35_, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, count, ...) count
#else // Non-Microsoft compilers
# define GET_ARG_COUNT(...) INTERNAL_GET_ARG_COUNT_PRIVATE(0, ## __VA_ARGS__, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
# define INTERNAL_GET_ARG_COUNT_PRIVATE(_0, _1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _10_, _11_, _12_, _13_, _14_, _15_, _16_, _17_, _18_, _19_, _20_, _21_, _22_, _23_, _24_, _25_, _26_, _27_, _28_, _29_, _30_, _31_, _32_, _33_, _34_, _35_, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, count, ...) count
#endif
static_assert(GET_ARG_COUNT() == 0, "GET_ARG_COUNT() failed for 0 arguments");
static_assert(GET_ARG_COUNT(1) == 1, "GET_ARG_COUNT() failed for 1 argument");
static_assert(GET_ARG_COUNT(1,2) == 2, "GET_ARG_COUNT() failed for 2 arguments");
static_assert(GET_ARG_COUNT(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70) == 70, "GET_ARG_COUNT() failed for 70 arguments");
You assigned a string "Red". Your Background property should be of type Color:
using System.Windows;
using System.ComponentModel;
namespace TestBackground88238
{
public partial class Window1 : Window, INotifyPropertyChanged
{
#region ViewModelProperty: Background
private Color _background;
public Color Background
{
get
{
return _background;
}
set
{
_background = value;
OnPropertyChanged("Background");
}
}
#endregion
//...//
}
Then you can use the binding to the SolidColorBrush like this:
public Window1()
{
InitializeComponent();
DataContext = this;
Background = Colors.Red;
Message = "This is the title, the background should be " + Background.toString() + ".";
}
not 100% sure about the .toString() method on Color-Object. It might tell you it is a Color-Class, but you will figur this out ;)
strncpy fills the destination up with '\0' for the size of source, eventhough the size of the destination is smaller....
manpage:
If the length of src is less than n, strncpy() pads the remainder of dest with null bytes.
and not only the remainder...also after this until n characters is reached. And thus you get an overflow... (see the man page implementation)
I found the actual solution...There is a problem in invoking your service from the client.. check the following things.
Make sure all [datacontract], [datamember] attribute are placed properly i.e. make sure WCF is error free
The WCF client, either web.config or any window app config, make sure config entries are properly pointing to the right ones.. binding info, url of the service..etc..etc
Then above problem : tempuri issue is resolved.. it has nothing to do with namespace.. though you are sure you lived with default,
Hope it saves your number of hours!
If you are willing to give up "pure" Python but gain a lot of firepower, there is Sage - example here:
sage: a = 15
sage: a.binary()
'1111'
You'll note that it returns as a string, so to use it as a number you'd want to do something like
sage: eval('0b'+b)
15
C99 way, also supported by VC++ compiler.
#define FOO(fmt, ...) printf(fmt, ##__VA_ARGS__)
If you're on the main display, then
export DISPLAY=:0.0
or if you're using csh or tcsh
setenv DISPLAY :0.0
before running your app.
Actually, I'm surprised it isn't set automatically. Are you trying to start this application from a non-graphic terminal? If not, have you modified the default .profile, .login, .bashrc or .cshrc?
Note that setting the DISPLAY to :0.0 pre-supposes that you're sitting at the main display, as I said, or at least that the main display is logged on to your user id. If it's not logged on, or it's a different userid, this will fail.
If you're coming in from another machine, and you're at the main display of that machine and it's running X, then you can use "ssh -X hostname" to connect to that host, and ssh will forward the X display back. ssh will also make sure that the DISPLAY environment variable is set correctly (providing it isn't being messed with in the various dot files I mentioned above). In a "ssh -X" session, the DISPLAY environment variable will have a value like "localhost:11.0", which will point to the socket that ssh is tunnelling to your local box.
can gridmove be of any assistance?
very handy tool on larger screens...
The argparse
documentation is reasonably good but leaves out a few useful details which might not be obvious. (@Diego Navarro already mentioned some of this but I'll try to expand on his answer slightly.) Basic usage is as follows:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--my-foo', default='foobar')
parser.add_argument('-b', '--bar-value', default=3.14)
args = parser.parse_args()
The object you get back from parse_args()
is a 'Namespace' object: An object whose member variables are named after your command-line arguments. The Namespace
object is how you access your arguments and the values associated with them:
args = parser.parse_args()
print args.my_foo
print args.bar_value
(Note that argparse
replaces '-' in your argument names with underscores when naming the variables.)
In many situations you may wish to use arguments simply as flags which take no value. You can add those in argparse like this:
parser.add_argument('--foo', action='store_true')
parser.add_argument('--no-foo', action='store_false')
The above will create variables named 'foo' with value True, and 'no_foo' with value False, respectively:
if (args.foo):
print "foo is true"
if (args.no_foo is False):
print "nofoo is false"
Note also that you can use the "required" option when adding an argument:
parser.add_argument('-o', '--output', required=True)
That way if you omit this argument at the command line argparse
will tell you it's missing and stop execution of your script.
Finally, note that it's possible to create a dict structure of your arguments using the vars
function, if that makes life easier for you.
args = parser.parse_args()
argsdict = vars(args)
print argsdict['my_foo']
print argsdict['bar_value']
As you can see, vars
returns a dict with your argument names as keys and their values as, er, values.
There are lots of other options and things you can do, but this should cover the most essential, common usage scenarios.
Clear answers are already provided. But it's worth mentioning how devDependencies
affects installing packages:
By default, npm install will install all modules listed as dependencies in package.json . With the --production flag (or when the NODE_ENV environment variable is set to production ), npm will not install modules listed in devDependencies .
From an interaction perspective, Flot by far will get you as close as possible to Flash graphing as you can get with jQuery
. Whilst the graph output is pretty slick, and great looking, you can also interact with data points. What I mean by this is you can have the ability to hover over a data point and get visual feedback on the value of that point in the graph.
The trunk version of flot supports pie charts.
Flot Zoom capability.
On top of this, you also have the ability to select a chunk of the graph to get data back for a particular “zone”. As a secondary feature to this “zoning”, you can also select an area on a graph and zoom in to see the data points a little more closely. Very cool.
Sparklines is my favourite mini graphing tool out there. Really great for dashboard style graphs (think Google Analytics dashboard next time you login). Because they’re so tiny, they can be included in line (as in the example above). Another nice idea which can be used in all graphing plugins is the self-refresh capabilities. Their Mouse-Speed demo shows you the power of live charting at its best.
jQuery Chart 0.21 isn’t the nicest looking charting plugin out there it has to be said. It’s pretty basic in functionality when it comes to the charts it can handle, however it can be flexible if you can put in some time and effort into it.
Adding values into a chart is relatively simple:
.chartAdd({
"label" : "Leads",
"type" : "Line",
"color" : "#008800",
"values" : ["100","124","222","44","123","23","99"]
});
jQchart is an odd one, they’ve built in animation transistions and drag/drop functionality into the chart, however it’s a little clunky – and seemingly pointless. It does generate nice looking charts if you get the CSS
setup right, but there are better out there.
Tuftegraph sells itself as “pretty bar graphs that you would show your mother”. It comes close, Flot is prettier, but Tufte does lend itself to be very lightweight. Although with that comes restrictions – there are few options to choose from, so you get what you’re given. Check it out for a quick win bar chart.
Simplest way I've found:
in your activity XML add these lines:
<ListView
...
android:choiceMode="singleChoice"
android:listSelector="#666666"
/>
or programatically set these properties:
listView.setSelector(Drawable selector)
listView.setSelector(int resourceId)
My particular example:
<ListView
android:choiceMode="singleChoice"
android:listSelector="#666666"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView"/>
thanks to AJG: https://stackoverflow.com/a/25131125/1687010
I had the exact same issue. My problem stemmed from beginning app development under a free developer account and then switching app development to subscription (paid) developer account. The original free developer account already had registered the bundle identifier that your paid developer account is trying to use.
You can verify that this is the problem by going to Xcode -> Preferences -> Accounts -> and then look under Team. If you see both your free (personal) team and your new paid team both listed then your probably having the same issue I had. The two teams are interfering with each other and you need to remove the free (personal) team now that you want to use your paid developer account.
Unfortunately, the only solution is to call apple development support at 1-800-633-2152 (US & Canada) and have them deactivate the free (personal) account from the app so that your paid developer account can register the bundle identifier.
Basically what you do is correct. Looking at redmine docs you linked to, it seems that suffix after the dot in the url denotes type of posted data (.json for JSON, .xml for XML), which agrees with the response you get - Processing by AttachmentsController#upload as XML
. I guess maybe there's a bug in docs and to post binary data you should try using http://redmine/uploads
url instead of http://redmine/uploads.xml
.
Btw, I highly recommend very good and very popular Requests library for http in Python. It's much better than what's in the standard lib (urllib2). It supports authentication as well but I skipped it for brevity here.
import requests
with open('./x.png', 'rb') as f:
data = f.read()
res = requests.post(url='http://httpbin.org/post',
data=data,
headers={'Content-Type': 'application/octet-stream'})
# let's check if what we sent is what we intended to send...
import json
import base64
assert base64.b64decode(res.json()['data'][len('data:application/octet-stream;base64,'):]) == data
UPDATE
To find out why this works with Requests but not with urllib2 we have to examine the difference in what's being sent. To see this I'm sending traffic to http proxy (Fiddler) running on port 8888:
Using Requests
import requests
data = 'test data'
res = requests.post(url='http://localhost:8888',
data=data,
headers={'Content-Type': 'application/octet-stream'})
we see
POST http://localhost:8888/ HTTP/1.1
Host: localhost:8888
Content-Length: 9
Content-Type: application/octet-stream
Accept-Encoding: gzip, deflate, compress
Accept: */*
User-Agent: python-requests/1.0.4 CPython/2.7.3 Windows/Vista
test data
and using urllib2
import urllib2
data = 'test data'
req = urllib2.Request('http://localhost:8888', data)
req.add_header('Content-Length', '%d' % len(data))
req.add_header('Content-Type', 'application/octet-stream')
res = urllib2.urlopen(req)
we get
POST http://localhost:8888/ HTTP/1.1
Accept-Encoding: identity
Content-Length: 9
Host: localhost:8888
Content-Type: application/octet-stream
Connection: close
User-Agent: Python-urllib/2.7
test data
I don't see any differences which would warrant different behavior you observe. Having said that it's not uncommon for http servers to inspect User-Agent
header and vary behavior based on its value. Try to change headers sent by Requests one by one making them the same as those being sent by urllib2 and see when it stops working.
Due to the disadvantages described below, I would recommend following the accepted answer:
Use
npm install --save-dev [package_name]
then execute scripts with:$ npm run lint $ npm run build $ npm test
My original but not recommended answer follows.
Instead of using a global install, you could add the package to your devDependencies
(--save-dev
) and then run the binary from anywhere inside your project:
"$(npm bin)/<executable_name>" <arguments>...
In your case:
"$(npm bin)"/node.io --help
This engineer provided an npm-exec
alias as a shortcut. This engineer uses a shellscript called env.sh
. But I prefer to use $(npm bin)
directly, to avoid any extra file or setup.
Although it makes each call a little larger, it should just work, preventing:
sudo
Disadvantages:
$(npm bin)
won't work on Windows.npm bin
folder. (Install npm-run or npm-which to find them.)It seems a better solution is to place common tasks (such as building and minifying) in the "scripts" section of your package.json
, as Jason demonstrates above.
Note: This assumes that you will declare constants for row and column indexes named COLUMN_HEADING_ROW
, FIRST_COL
, and LAST_COL
, and that _xlSheet
is the name of the ExcelSheet
(using Microsoft.Interop.Excel
)
First, define the range:
var columnHeadingsRange = _xlSheet.Range[
_xlSheet.Cells[COLUMN_HEADING_ROW, FIRST_COL],
_xlSheet.Cells[COLUMN_HEADING_ROW, LAST_COL]];
Then, set the background color of that range:
columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue;
Finally, set the font color:
columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite;
And here's the code combined:
var columnHeadingsRange = _xlSheet.Range[
_xlSheet.Cells[COLUMN_HEADING_ROW, FIRST_COL],
_xlSheet.Cells[COLUMN_HEADING_ROW, LAST_COL]];
columnHeadingsRange.Interior.Color = XlRgbColor.rgbSkyBlue;
columnHeadingsRange.Font.Color = XlRgbColor.rgbWhite;
Worked For me
object item = dgwLoadItems.SelectedItem;
string ID = (dgwLoadItems.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text;
MessageBox.Show(ID);
Your code won't work; you need or
instead of ||
.
Try
'0' <= strg[:1] <= '9'
or
strg[:1] in '0123456789'
or, if you are really crazy about startswith
,
strg.startswith(('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'))
for whole row
insert into xyz select * from xyz2 where id="1";
for selected column
insert into xyz(t_id,v_id,f_name) select t_id,v_id,f_name from xyz2 where id="1";
The only option I have found to do this is find some exact wording and put that under the "Has the words" option. Its not the best option, but it works.
This is more of an xpath question, but like this, assuming the context is the parent element:
<xsl:value-of select="name/@attribute1" />
You could use a batch file with the following script:
@echo off
SET count=1
FOR /f "tokens=*" %%G IN ('dir "%CD%\src\*.java" /b /s') DO (type "%%G") >> lines.txt
SET count=1
FOR /f "tokens=*" %%G IN ('type lines.txt') DO (set /a lines+=1)
echo Your Project has currently totaled %lines% lines of code.
del lines.txt
PAUSE
Old question but this is a rather simple task that can be solved properly with core JS... without the Class abstraction of ES6. In fact as far as i can tell, the Class abstraction do not even solve this problem.
We can do this job both with the good old constructor function or even better with Object.create()
. Lets go with the constructor first. This will essentially be a similar solution to georgebrock's answer which is criticised because all restaurants created by the Restaurant
constructor will have the same private methods. I will try to overcome that limitation.
function restaurantFactory(name,menu){
function Restaurant(name){
this.name = name;
}
function prototypeFactory(menu){
// This is a private function
function calculateBill(item){
return menu[item] || 0;
}
// This is the prototype to be
return { constructor: Restaurant
, askBill : function(...items){
var cost = items.reduce((total,item) => total + calculateBill(item) ,0)
return "Thank you for dining at " + this.name + ". Total is: " + cost + "\n"
}
, callWaiter : function(){
return "I have just called the waiter at " + this.name + "\n";
}
}
}
Restaurant.prototype = prototypeFactory(menu);
return new Restaurant(name,menu);
}
var menu = { water: 1
, coke : 2
, beer : 3
, beef : 15
, rice : 2
},
name = "Silver Scooop",
rest = restaurantFactory(name,menu);
console.log(rest.callWaiter());
console.log(rest.askBill("beer", "beef"));
_x000D_
Now obviously we can not access menu
from outside but we may easily rename the name
property of a restaurant.
This can also be done with Object.create()
in which case we skip the constructor function and simply do like var rest = Object.create(prototypeFactory(menu))
and add the name property to the rest
object afterwards like rest.name = name
.
Yes, it is possible to change a CSS class dynamically according to the situation, but not with th:if
. This is done with the elvis operator.
<a href="lorem-ipsum.html" th:class="${isAdmin}? adminclass : userclass">Lorem Ipsum</a>
I think you need something like this....
b="HELLO,THERE,WORLD"
re.findall('[\w]+',b)
Which in Python3 will return
['HELLO', 'THERE', 'WORLD']
ASCX files are server-side Web application framework designed for Web development to produce dynamic Web pages.They like DLL codes but you can use there's TAGS You can write them once and use them in any places in your ASP pages.If you have a file named "Controll.ascx" then its code will named "Controll.ascx.cs". You can embed it in a ASP page to use it:
More detailed information are available in the platform
module.
It's 2020 now, use python3 consistently
I meet the same problem when I install selenium using pip3
, but run scripts using python
.
Your command is right, but the error shows that you didn't create your ssh key yet. To generate new ssh key enter the following command into the terminal.
ssh-keygen
After entering the command then you will be asked to enter file name and passphrase. Normally you don't need to change this. Just press enter. Then your key will be generated in ~/.ssh
directory. After this, you can copy your key by the following command.
pbcopy < ~/.ssh/id_rsa.pub
or
cat .ssh/id_rsa.pub | pbcopy
You can find more about this here ssh.
You need to look at the return value of the call to showConfirmDialog
. I.E.:
int dialogResult = JOptionPane.showConfirmDialog (null, "Would You Like to Save your Previous Note First?","Warning",dialogButton);
if(dialogResult == JOptionPane.YES_OPTION){
// Saving code here
}
You were testing against dialogButton
, which you were using to set the buttons that should be displayed by the dialog, and this variable was never updated - so dialogButton
would never have been anything other than JOptionPane.YES_NO_OPTION
.
Per the Javadoc for showConfirmDialog
:
Returns: an integer indicating the option selected by the user
java.time has the Temporal interface which you can use to create Instant objects from most of the the time classes. Instant represents milliseconds on the timeline in the Epoch - the base reference for all other dates and times.
We need to convert the Date into a ZonedDateTime, with a Time and a Zone, to do the conversion:
LocalDate ldate = ...;
Instant instant = Instant.from(ldate.atStartOfDay(ZoneId.of("GMT")));
Date date = Date.from(instant);
Both
-Djavax.net.ssl.trustStore=path/to/trustStore.jks
and
System.setProperty("javax.net.ssl.trustStore", "cacerts.jks");
do the same thing and have no difference working wise. In your case you just have a typo. You have misspelled trustStore
in javax.net.ssl.trustStore.
Have a look at this article, it's not an exact match to your problem, but suits it:
The semantics of setTimeout are roughly the same as in a web browser: the timeout arg is a minimum number of ms to wait before executing, not a guarantee. Furthermore, passing 0, a non-number, or a negative number, will cause it to wait a minimum number of ms. In Node, this is 1ms, but in browsers it can be as much as 50ms.
The reason for this is that there is no preemption of JavaScript by JavaScript. Consider this example:
setTimeout(function () {
console.log('boo')
}, 100)
var end = Date.now() + 5000
while (Date.now() < end) ;
console.log('imma let you finish but blocking the event loop is the best bug of all TIME')
The flow here is:
If this was not the case, then you could have one bit of JavaScript "interrupt" another. We'd have to set up mutexes and semaphors and such, to prevent code like this from being extremely hard to reason about:
var a = 100;
setTimeout(function () {
a = 0;
}, 0);
var b = a; // 100 or 0?
The single-threadedness of Node's JavaScript execution makes it much simpler to work with than most other styles of concurrency. Of course, the trade-off is that it's possible for a badly-behaved part of the program to block the whole thing with an infinite loop.
Is this a better demon to battle than the complexity of preemption? That depends.
you could use C++ 11 time class:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
time_t now = chrono::system_clock::to_time_t(chrono::system_clock::now());
cout << put_time(localtime(&now), "%F %T") << endl;
return 0;
}
out put:
2017-08-25 12:30:08
This situation happens when the IDE looks for src folder, and it cannot find it in the path. Select the project root (F4 in windows) > Go to Modules on Side Tab > Select Sources > Select appropriate folder with source files in it> Click on the blue sources folder icon (for adding sources) > Click on Green Test Sources folder ( to add Unit test folders).
i ran mvn generate-resources and then marked the /target/generated-resources folder as "sources" (Project Structure -> Project Settings -> Modules -> Select /target/generated-resources -> Click on blue "Sources" icon.
Probably due to the fact that I could not explain well you do not really understand my question. In general, I found the solution.
Sorry for my english
In Java 8 this can be made a little cleaner, assuming you have a static import for org.mockito.Mockito.doAnswer
:
doAnswer(i -> {
// Do stuff with i.getArguments() here
return null;
}).when(*mock*).*method*(*methodArguments*);
The return null;
is important and without it the compile will fail with some fairly obscure errors as it won't be able to find a suitable override for doAnswer
.
For example an ExecutorService
that just immediately executes any Runnable
passed to execute()
could be implemented using:
doAnswer(i -> {
((Runnable) i.getArguments()[0]).run();
return null;
}).when(executor).execute(any());
File SongsTableSeeder.php should be in database/seeds directory or in its subdirectory.
You need to run:
composer dump-autoload
and then:
php artisan db:seed
or:
php artisan db:seed --class=SongsTableSeeder
It depends on what database you are using. In MySQL, you would use the "ALTER TABLE" syntax. I don't remember exactly how, but it would go something like this if you wanted to add a column called 'newcol' that was a 200 character varchar:
ALTER TABLE example ADD newCol VARCHAR(200) AFTER otherCol;
The above did not work for me but this did
<%= link_to "text_to_show_in_url", action_controller_path(:gender => "male", :param2=> "something_else") %>
You don't have to modify bootstrap-responsive by removing @media (max-width:1200px)
...
My application has a max-width
of 1600px. Here's how it worked for me:
Create bootstrap-custom.css - As much as possible, I don't want to override my original bootstrap css.
Inside bootstrap-custom.css, override the container-fluid by including this code:
Like this:
/* set a max-width for horizontal fluid layout and make it centered */
.container-fluid {
margin-right: auto;
margin-left: auto;
max-width: 1600px; /* or 950px */
}
Python offers a stepping stone into the world of programming. Even though Python Programming Language has been around for 25 years, it is still rising in popularity. Some of the biggest advantage of Python are it's
As a general purpose programming language, Python can be used for multiple things. Python can be easily used for small, large, online and offline projects. The best options for utilizing Python are web development, simple scripting and data analysis. Below are a few examples of what Python will let you do:
Web Development:
You can use Python to create web applications on many levels of complexity. There are many excellent Python web frameworks including, Pyramid, Django and Flask, to name a few.
Data Analysis:
Python is the leading language of choice for many data scientists. Python has grown in popularity, within this field, due to its excellent libraries including; NumPy and Pandas and its superb libraries for data visualisation like Matplotlib and Seaborn.
Machine Learning:
What if you could predict customer satisfaction or analyse what factors will affect household pricing or to predict stocks over the next few days, based on previous years data? There are many wonderful libraries implementing machine learning algorithms such as Scikit-Learn, NLTK and TensorFlow.
Computer Vision:
You can do many interesting things such as Face detection, Color detection while using Opencv and Python.
Internet Of Things With Raspberry Pi:
Raspberry Pi is a very tiny and affordable computer which was developed for education and has gained enormous popularity among hobbyists with do-it-yourself hardware and automation. You can even build a robot and automate your entire home. Raspberry Pi can be used as the brain for your robot in order to perform various actions and/or react to the environment. The coding on a Raspberry Pi can be performed using Python. The Possibilities are endless!
Game Development:
Create a video game using module Pygame. Basically, you use Python to write the logic of the game. PyGame applications can run on Android devices.
Web Scraping:
If you need to grab data from a website but the site does not have an API to expose data, use Python to scraping data.
Writing Scripts:
If you're doing something manually and want to automate repetitive stuff, such as emails, it's not difficult to automate once you know the basics of this language.
Browser Automation:
Perform some neat things such as opening a browser and posting a Facebook status, you can do it with Selenium with Python.
GUI Development:
Build a GUI application (desktop app) using Python modules Tkinter, PyQt to support it.
Rapid Prototyping:
Python has libraries for just about everything. Use it to quickly built a (lower-performance, often less powerful) prototype. Python is also great for validating ideas or products for established companies and start-ups alike.
Python can be used in so many different projects. If you're a programmer looking for a new language, you want one that is growing in popularity. As a newcomer to programming, Python is the perfect choice for learning quickly and easily.
Here's another approach, in case you want split a string with a delimiter.
import pyspark.sql.functions as f
df = spark.createDataFrame([("1:a:2001",),("2:b:2002",),("3:c:2003",)],["value"])
df.show()
+--------+
| value|
+--------+
|1:a:2001|
|2:b:2002|
|3:c:2003|
+--------+
df_split = df.select(f.split(df.value,":")).rdd.flatMap(
lambda x: x).toDF(schema=["col1","col2","col3"])
df_split.show()
+----+----+----+
|col1|col2|col3|
+----+----+----+
| 1| a|2001|
| 2| b|2002|
| 3| c|2003|
+----+----+----+
I don't think this transition back and forth to RDDs is going to slow you down... Also don't worry about last schema specification: it's optional, you can avoid it generalizing the solution to data with unknown column size.
For those using QT having this error, add this to .pro file
QMAKE_CXXFLAGS_WARN_ON += -Wno-reorder
I had the same problem where the OK button in camera app did nothing, both on emulator and on nexus one.
The problem went away after specifying a safe filename that is without white spaces, without special characters, in MediaStore.EXTRA_OUTPUT
Also, if you are specifying a file that resides in a directory that has not yet been created, you have to create it first. Camera app doesn't do mkdir for you.
Similarly to the RTTI, NO-RTTI discussion above, this problem can also occur if you use dynamic_cast and fail to include the object code containing the class implementation.
I ran into this problem building on Cygwin and then porting code to Linux. The make files, directory structure and even the gcc versions (4.8.2) were identical in both cases, but the code linked and operated correctly on Cygwin but failed to link on Linux. Red Hat Cygwin has apparently made compiler/linker modifications that avoid the object code linking requirement.
The Linux linker error message properly directed me to the dynamic_cast line, but earlier messages in this forum had me looking for missing function implementations rather than the actual problem: missing object code. My workaround was to substitute a virtual type function in the base and derived class, e.g. virtual int isSpecialType(), rather than use dynamic_cast. This technique avoids the requirement to link object implementation code just to get dynamic_cast to work properly.
billmanH's solution helped me but didn't work until i switched from:
n = data.loc[row,'json_column']
to:
n = data.iloc[[row]]['json_column']
here's the rest of it, converting to a dictionary is helpful for working with json data.
import json
for row in range(len(data)):
n = data.iloc[[row]]['json_column'].item()
jsonDict = json.loads(n)
if ('mykey' in jsonDict):
display(jsonDict['mykey'])
MongoDB has what is called capped collections
and tailable cursors
that allows MongoDB to push data to the listeners.
A capped collection
is essentially a collection that is a fixed size and only allows insertions. Here's what it would look like to create one:
db.createCollection("messages", { capped: true, size: 100000000 })
Ruby
coll = db.collection('my_collection')
cursor = Mongo::Cursor.new(coll, :tailable => true)
loop do
if doc = cursor.next_document
puts doc
else
sleep 1
end
end
PHP
$mongo = new Mongo();
$db = $mongo->selectDB('my_db')
$coll = $db->selectCollection('my_collection');
$cursor = $coll->find()->tailable(true);
while (true) {
if ($cursor->hasNext()) {
$doc = $cursor->getNext();
print_r($doc);
} else {
sleep(1);
}
}
Python (by Robert Stewart)
from pymongo import Connection
import time
db = Connection().my_db
coll = db.my_collection
cursor = coll.find(tailable=True)
while cursor.alive:
try:
doc = cursor.next()
print doc
except StopIteration:
time.sleep(1)
Perl (by Max)
use 5.010;
use strict;
use warnings;
use MongoDB;
my $db = MongoDB::Connection->new;
my $coll = $db->my_db->my_collection;
my $cursor = $coll->find->tailable(1);
for (;;)
{
if (defined(my $doc = $cursor->next))
{
say $doc;
}
else
{
sleep 1;
}
}
An article talking about tailable cursors in more detail.
PHP, Ruby, Python, and Perl examples of using tailable cursors.
Just use:
console.dir(object);
you will get a nice clickable object representation. Works in Chrome and Firefox
Reverse of a user input values in one line code:
for i in input()[::-1]: print(i,end='')
You can make your own itoa
, with this function:
void my_utoa(int dataIn, char* bffr, int radix){
int temp_dataIn;
temp_dataIn = dataIn;
int stringLen=1;
while ((int)temp_dataIn/radix != 0){
temp_dataIn = (int)temp_dataIn/radix;
stringLen++;
}
//printf("stringLen = %d\n", stringLen);
temp_dataIn = dataIn;
do{
*(bffr+stringLen-1) = (temp_dataIn%radix)+'0';
temp_dataIn = (int) temp_dataIn / radix;
}while(stringLen--);}
and this is example:
char buffer[33];
int main(){
my_utoa(54321, buffer, 10);
printf(buffer);
printf("\n");
my_utoa(13579, buffer, 10);
printf(buffer);
printf("\n");
}
I used IntelliJ to create my .jar, which included some unpacked jars from my libraries. One of these other jars had some signed stuff in the MANIFEST which prevented the .jar from being loaded. No warnings, or anything, just didn't work. Could not find or load main class
Removing the unpacked jar which contained the manifest fixed it.
Well, this can take long time to figure out. Few points to narrow it down:
With the introduction of C# 6.0 and the syntax for Auto-Property Initializers, private setters are no longer needed for properties that are only set upon initialization, either inline or within the constructor.
These new syntaxes now compile:
Inline initialized property
public class MyClass1 {
public string MyProperty { get; } = "Aloha!"
}
Constructor initialized property
public class MyClass2 {
public string MyProperty { get; }
public MyClass2(string myProperty) {
MyProperty = myProperty;
}
}
Going back to Servlet days, web.xml can have only one <context-param>
, so only one context object gets created when server loads an application and the data in that context is shared among all resources (Ex: Servlets and JSPs). It is same as having Database driver name in the context, which will not change. In similar way, when we declare contextConfigLocation param in <contex-param>
Spring creates one Application Context object.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.myApp.ApplicationContext</param-value>
</context-param>
You can have multiple Servlets in an application. For example you might want to handle /secure/* requests in one way and /non-seucre/* in other way. For each of these Servlets you can have a context object, which is a WebApplicationContext.
<servlet>
<servlet-name>SecureSpringDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>com.myapp.secure.SecureContext</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SecureSpringDispatcher</servlet-name>
<url-pattern>/secure/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>NonSecureSpringDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>com.myapp.non-secure.NonSecureContext</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>NonSecureSpringDispatcher</servlet-name>
<url-pattern>/non-secure/*</url-patten>
</servlet-mapping>
Hmm, there are a few things going wrong here.
for f in os.listdir(src_dir):
os.path.join(src_dir, f)
You're not storing the result of join
. This should be something like:
for f in os.listdir(src_dir):
f = os.path.join(src_dir, f)
This open call is is the cause of your IOError
. (Because without storing the result of the join
above, f
was still just 'file.csv', not 'src_dir/file.csv'.)
Also, the syntax:
with open(f):
is close, but the syntax isn't quite right. It should be with open(file_name) as file_object:
. Then, you use to the file_object
to perform read or write operations.
And finally:
write(line)
You told python what you wanted to write, but not where to write it. Write is a method on the file object. Try file_object.write(line)
.
Edit: You're also clobbering your input file. You probably want to open
the output file and write lines to it as you're reading them in from the input file.
See: input / output in python.
Register org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
as the message converter and return the object directly from the method.
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"/>
</property>
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
and the controller:
@RequestMapping(method=RequestMethod.GET, value="foo/bar")
public @ResponseBody Object fooBar(){
return myService.getActualObject();
}
This requires the dependency org.springframework:spring-webmvc
.
One solution is to generate the form and submit it. One implementation is
function post_to_url(url, params) {
var form = document.createElement('form');
form.action = url;
form.method = 'POST';
for (var i in params) {
if (params.hasOwnProperty(i)) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = i;
input.value = params[i];
form.appendChild(input);
}
}
form.submit();
}
So I can implement a URL shortening bookmarklet with a simple
javascript:post_to_url('http://is.gd/create.php', {'URL': location.href});
Take a look at Blaze-Persistence Entity Views which works on top of JPA and provides first class DTO support. You can project anything to attributes within Entity Views and it will even reuse existing join nodes for associations if possible.
Here is an example mapping
@EntityView(Order.class)
interface OrderSummary {
Integer getId();
@Mapping("SUM(orderPositions.price * orderPositions.amount * orderPositions.tax)")
BigDecimal getOrderAmount();
@Mapping("COUNT(orderPositions)")
Long getItemCount();
}
Fetching this will generate a JPQL/HQL query similar to this
SELECT
o.id,
SUM(p.price * p.amount * p.tax),
COUNT(p.id)
FROM
Order o
LEFT JOIN
o.orderPositions p
GROUP BY
o.id
Here is a blog post about custom subquery providers which might be interesting to you as well: https://blazebit.com/blog/2017/entity-view-mapping-subqueries.html
One way is to get system properties that give you the path separator for the operating system, this tutorial explains how. You can then use a standard string join using the file.separator
.
Here's my more robust version of Gor's answer (using fragments.size()is unreliable due to size not being decremented after fragment is popped)
getFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
if (getFragmentManager() != null) {
Fragment topFrag = NavigationHelper.getCurrentTopFragment(getFragmentManager());
if (topFrag != null) {
if (topFrag instanceof YourFragment) {
//This fragment is being shown.
} else {
//Navigating away from this fragment.
}
}
}
}
});
And the 'getCurrentTopFragment' method:
public static Fragment getCurrentTopFragment(FragmentManager fm) {
int stackCount = fm.getBackStackEntryCount();
if (stackCount > 0) {
FragmentManager.BackStackEntry backEntry = fm.getBackStackEntryAt(stackCount-1);
return fm.findFragmentByTag(backEntry.getName());
} else {
List<Fragment> fragments = fm.getFragments();
if (fragments != null && fragments.size()>0) {
for (Fragment f: fragments) {
if (f != null && !f.isHidden()) {
return f;
}
}
}
}
return null;
}
You can use file prefix to load the external application context file some thing like this
<context:property-placeholder location="file:///C:/Applications/external/external.properties"/>
This is a style choice. It does not impact the performance of the code in the least, it just makes it more verbose for the reader.
Checking the file extension is not considered best practice. The preferred method of accomplishing this task is by checking the files MIME type.
From PHP:
<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // Return MIME type
foreach (glob("*") as $filename) {
echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>
The above example will output something similar to which you should be checking.
text/html
image/gif
application/vnd.ms-excel
Although MIME types can also be tricked (edit the first few bytes of a file and modify the magic numbers), it's harder than editing a filename. So you can never be 100% sure what that file type actually is, and care should be taken about handling files uploaded/emailed by your users.
This error may be due to less field size than your entered data.
For e.g. if you have data type nvarchar(7)
and if your value is 'aaaaddddf' then error is shown as:
string or binary data would be truncated
If your error handling is very sophisticated and therefore might throw an error itself, it is useful to add a flag indicating if you are already in "errorHandling-Mode". Like so:
var appIsHandlingError = false;
window.onerror = function() {
if (!appIsHandlingError) {
appIsHandlingError = true;
handleError();
}
};
function handleError() {
// graceful error handling
// if successful: appIsHandlingError = false;
}
Otherwise you could find yourself in an infinite loop.
Yes, you can use a script like this to generate another script
SET NOCOUNT ON;
DECLARE @NewRole varchar(100), @SourceRole varchar(100);
-- Change as needed
SELECT @SourceRole = 'Giver', @NewRole = 'Taker';
SELECT
state_desc + ' ' + permission_name + ' ON ' + OBJECT_NAME(major_id) + ' TO ' + @NewRole
FROM
sys.database_permissions
WHERE
grantee_principal_id = DATABASE_PRINCIPAL_ID(@SourceRole) AND
-- 0 = DB, 1 = object/column, 3 = schema. 1 is normally enough
class <= 3
This worked for me (using Guzzle 6)
$client = new Client();
$result = $client->post('http://api.example.com', [
'json' => [
'value_1' => 'number1',
'Value_group' =>
array("value_2" => "number2",
"value_3" => "number3")
]
]);
echo($result->getBody()->getContents());
There is actually a way to test methods from a private member with Mockito. Let's say you have a class like this:
public class A {
private SomeOtherClass someOtherClass;
A() {
someOtherClass = new SomeOtherClass();
}
public void method(boolean b){
if (b == true)
someOtherClass.method1();
else
someOtherClass.method2();
}
}
public class SomeOtherClass {
public void method1() {}
public void method2() {}
}
If you want to test a.method
will invoke a method from SomeOtherClass
, you can write something like below.
@Test
public void testPrivateMemberMethodCalled() {
A a = new A();
SomeOtherClass someOtherClass = Mockito.spy(new SomeOtherClass());
ReflectionTestUtils.setField( a, "someOtherClass", someOtherClass);
a.method( true );
Mockito.verify( someOtherClass, Mockito.times( 1 ) ).method1();
}
ReflectionTestUtils.setField();
will stub the private member with something you can spy on.
Something like:
>>> bytes.fromhex('4a4b4c').decode('utf-8')
'JKL'
Just put the actual encoding you are using.
try this
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
this is work for me.. capture.png
You can find some useful query here:
Investigating the Cause of SQL Server High CPU
For me this helped a lot:
SELECT s.session_id,
r.status,
r.blocking_session_id 'Blk by',
r.wait_type,
wait_resource,
r.wait_time / (1000 * 60) 'Wait M',
r.cpu_time,
r.logical_reads,
r.reads,
r.writes,
r.total_elapsed_time / (1000 * 60) 'Elaps M',
Substring(st.TEXT,(r.statement_start_offset / 2) + 1,
((CASE r.statement_end_offset
WHEN -1
THEN Datalength(st.TEXT)
ELSE r.statement_end_offset
END - r.statement_start_offset) / 2) + 1) AS statement_text,
Coalesce(Quotename(Db_name(st.dbid)) + N'.' + Quotename(Object_schema_name(st.objectid, st.dbid)) + N'.' +
Quotename(Object_name(st.objectid, st.dbid)), '') AS command_text,
r.command,
s.login_name,
s.host_name,
s.program_name,
s.last_request_end_time,
s.login_time,
r.open_transaction_count
FROM sys.dm_exec_sessions AS s
JOIN sys.dm_exec_requests AS r
ON r.session_id = s.session_id
CROSS APPLY sys.Dm_exec_sql_text(r.sql_handle) AS st
WHERE r.session_id != @@SPID
ORDER BY r.cpu_time desc
In the fields of status, wait_type and cpu_time you can find the most cpu consuming task that is running right now.
File.expand_path File.dirname(__FILE__)
will return the directory relative to the file this command is called from.
But Dir.pwd
returns the working directory (results identical to executing pwd
in your terminal)
If you'd like to see this feature added natively, along with all of the advanced functionality, I'd suggest upvoting the open GitHub issue here.
It's rather interesting to see how .NET get this internally to say the least... It's as "simple" as below:
namespace System.Threading
{
using System;
using System.Runtime.CompilerServices;
internal static class PlatformHelper
{
private const int PROCESSOR_COUNT_REFRESH_INTERVAL_MS = 0x7530;
private static volatile int s_lastProcessorCountRefreshTicks;
private static volatile int s_processorCount;
internal static bool IsSingleProcessor
{
get
{
return (ProcessorCount == 1);
}
}
internal static int ProcessorCount
{
get
{
int tickCount = Environment.TickCount;
int num2 = s_processorCount;
if ((num2 == 0) || ((tickCount - s_lastProcessorCountRefreshTicks) >= 0x7530))
{
s_processorCount = num2 = Environment.ProcessorCount;
s_lastProcessorCountRefreshTicks = tickCount;
}
return num2;
}
}
}
}
I would like this:
class String
# \n returns the capture group of "n" index
def snikize
self.gsub(/::/, '/')
.gsub(/([a-z\d])([A-Z])/, "\1_\2")
.downcase
end
# or
def snikize
self.gsub(/::/, '/')
.gsub(/([a-z\d])([A-Z])/) do
"#{$1}_#{$2}"
end
.downcase
end
end
Monkey patch of String
class. There are class that begin with two or more letters in uppercase.
If your class is non-activity class, and creating an instance of it from the activiy, you can pass an instance of context via constructor of the later as follows:
class YourNonActivityClass{
// variable to hold context
private Context context;
//save the context recievied via constructor in a local variable
public YourNonActivityClass(Context context){
this.context=context;
}
}
You can create instance of this class from the activity as follows:
new YourNonActivityClass(this);
I had the same exact problem and my issue was that I had 2 IP addresses from 2 different networks configured in the etc/hosts as below.
10.xxx.x.xxx localhost
192.xxx.x.xxx localhost
This should be because there was a conflict as to which IP to be used for the other devices to reach the rmiregistry over the network.
Once I removed the extra-record that is not required, I was able to solve the issue.
So my etc/hosts file had only the following record.
10.xxx.x.xxx localhost
Type this code to your onCreate
method before setContentView
:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
Well,
The container div is very good to have, because if You want the site centered, You just can't do it just with body or html... But You can, with divs. Why container? Its usually used, just because the code itselve has to be clean and readable. So that is container... It contains all website, in case You want to mess with it around :)
Good luck
SELECT * FROM foo WHERE id>4 ORDER BY id LIMIT 1
Yes, it is 128, except for temp tables, whose names can only be up to 116 character long. It is perfectly explained here.
And the verification can be easily made with the following script contained in the blog post before:
DECLARE @i NVARCHAR(800)
SELECT @i = REPLICATE('A', 116)
SELECT @i = 'CREATE TABLE #'+@i+'(i int)'
PRINT @i
EXEC(@i)
Here is a good discussion about superclass constructor calling rules. You always want the base class constructor to be called before the derived class constructor in order to form an object properly. Which is why this form is used
B( int v) : A( v )
{
}
This worked for me, converts to nested JSON to easy to read YAML
string JSONDeserialized {get; set;}
public int indentLevel;
private bool JSONDictionarytoYAML(Dictionary<string, object> dict)
{
bool bSuccess = false;
indentLevel++;
foreach (string strKey in dict.Keys)
{
string strOutput = "".PadLeft(indentLevel * 3) + strKey + ":";
JSONDeserialized+="\r\n" + strOutput;
object o = dict[strKey];
if (o is Dictionary<string, object>)
{
JSONDictionarytoYAML((Dictionary<string, object>)o);
}
else if (o is ArrayList)
{
foreach (object oChild in ((ArrayList)o))
{
if (oChild is string)
{
strOutput = ((string)oChild);
JSONDeserialized += strOutput + ",";
}
else if (oChild is Dictionary<string, object>)
{
JSONDictionarytoYAML((Dictionary<string, object>)oChild);
JSONDeserialized += "\r\n";
}
}
}
else
{
strOutput = o.ToString();
JSONDeserialized += strOutput;
}
}
indentLevel--;
return bSuccess;
}
usage
Dictionary<string, object> JSONDic = new Dictionary<string, object>();
JavaScriptSerializer js = new JavaScriptSerializer();
try {
JSONDic = js.Deserialize<Dictionary<string, object>>(inString);
JSONDeserialized = "";
indentLevel = 0;
DisplayDictionary(JSONDic);
return JSONDeserialized;
}
catch (Exception)
{
return "Could not parse input JSON string";
}
I would recommend using the LINQ extension methods. You can easily do it with one line of code like so:
list2 = list2.Except(list1).ToList();
This is assuming of course the objects in list1 that you are removing from list2 are the same instance.
x ~= 0 or 1
is the same as ((x ~= 0) or 1)
x ~=(0 or 1)
is the same as (x ~= 0)
.
try something like this instead.
function isNot0Or1(x)
return (x ~= 0 and x ~= 1)
end
print( isNot0Or1(-1) == true )
print( isNot0Or1(0) == false )
print( isNot0Or1(1) == false )
What constitutes, "internal knowledge?" Does knowing that such-and-such algorithm was used to solve a problem qualify or does the tester have to see every line of code for it to be "internal?"
I think in any test case, there should be expected results given by the specification used and not determined by how the tester decides to interpret the specification as this can lead to issues where each thinks they are right and blaming the other for the problem.
To connect from the localhost you need to add '--net host':
docker run --name some-postgres --net host -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
You can access the server directly without using exec from your localhost, by using:
psql -h localhost -p 5432 -U postgres
Try WindowsIdentity.GetCurrent()
. You need to add reference to System.Security.Principal
Don't panic. You have you copied the servlet code? Ok,
@WebServlet("/HelloWord")
public class HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L;
You gave the same path @WebServlet("/HelloWord")
for both servlets with different names.
If you create a web.xml
file, then check the classpath
.
I have done it something like below for sending my model class from the Second Activity to First Activity. I used LiveData to achieve this, with the help of answers from Rupesh and TheCodeFather.
Second Activity
public static MutableLiveData<AudioListModel> getLiveSong() {
MutableLiveData<AudioListModel> result = new MutableLiveData<>();
result.setValue(liveSong);
return result;
}
"liveSong" is AudioListModel declared globally
Call this method in the First Activity
PlayerActivity.getLiveSong().observe(this, new Observer<AudioListModel>() {
@Override
public void onChanged(AudioListModel audioListModel) {
if (PlayerActivity.mediaPlayer != null && PlayerActivity.mediaPlayer.isPlaying()) {
Log.d("LiveSong--->Changes-->", audioListModel.getSongName());
}
}
});
May this help for new explorers like me.
A real working solution with no other dependencies than angularjs (tested with v.1.0.6)
html
<input type="file" name="file" onchange="angular.element(this).scope().uploadFile(this.files)"/>
Angularjs (1.0.6) not support ng-model on "input-file" tags so you have to do it in a "native-way" that pass the all (eventually) selected files from the user.
controller
$scope.uploadFile = function(files) {
var fd = new FormData();
//Take the first selected file
fd.append("file", files[0]);
$http.post(uploadUrl, fd, {
withCredentials: true,
headers: {'Content-Type': undefined },
transformRequest: angular.identity
}).success( ...all right!... ).error( ..damn!... );
};
The cool part is the undefined content-type and the transformRequest: angular.identity that give at the $http the ability to choose the right "content-type" and manage the boundary needed when handling multipart data.
run
ps -ef | grep name-related-to-process
above command will give all the details like pid, start time about the process.
like if you want all java realted process give java or if you have name of process place the name
import re
mystr = "I want to Remove all white \t spaces, new lines \n and tabs \t"
print re.sub(r"\W", "", mystr)
Output : IwanttoRemoveallwhitespacesnewlinesandtabs
Most likely these classes are already defined by Bootstrap, make sure that your CSS file that you want to override the classes with is called AFTER the Bootstrap CSS.
<link rel="stylesheet" href="css/bootstrap.css" /> <!-- Call Bootstrap first -->
<link rel="stylesheet" href="css/bootstrap-override.css" /> <!-- Call override CSS second -->
Otherwise, you can put !important
at the end of your CSS like this: color:#ffffff!important;
but I would advise against using !important
at all costs.
iOS 8+, OSX 10.9+, Objective-C
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *tomorrow = [cal dateByAddingUnit:NSCalendarUnitDay
value:1
toDate:[NSDate date]
options:0];
I've solved it, it can be done executing:
netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33
To remove forwarding:
netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111
If you like a chained operation, you can also use compress
function:
test = pd.Series({
383: 3.000000,
663: 1.000000,
726: 1.000000,
737: 9.000000,
833: 8.166667
})
test.compress(lambda x: x != 1)
# 383 3.000000
# 737 9.000000
# 833 8.166667
# dtype: float64
try this following snippet, its working fine.
private void button1_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog openfile1 = new OpenFileDialog();
if (openfile1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.textBox1.Text = openfile1.FileName;
}
{
string pathconn = "Provider = Microsoft.jet.OLEDB.4.0; Data source=" + textBox1.Text + ";Extended Properties=\"Excel 8.0;HDR= yes;\";";
OleDbConnection conn = new OleDbConnection(pathconn);
OleDbDataAdapter MyDataAdapter = new OleDbDataAdapter("Select * from [" + textBox2.Text + "$]", conn);
DataTable dt = new DataTable();
MyDataAdapter.Fill(dt);
dataGridView1.DataSource = dt;
}
}
catch { }
}
After you ensure you have enabled USB debugging unlock your phone and plug it into your machine via USB. You will be then asked to authorize communication with the computer you have connected to. It will also show computers RSA key fingerprint.
Accept it and you are good to go!
Try pasting this code in CMD:
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
use .filter(':has(:checkbox:checked)'
ie:
$('#mytable tr').filter(':has(:checkbox:checked)').each(function() {
$('#out').append(this.id);
});
Multiple SQL statements must be executed with the mysqli_multi_query()
function.
Example (MySQLi Object-oriented):
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO names (firstname, lastname)
VALUES ('inpute value here', 'inpute value here');";
$sql .= "INSERT INTO phones (landphone, mobile)
VALUES ('inpute value here', 'inpute value here');";
if ($conn->multi_query($sql) === TRUE) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
First add the OWIN Auth Class and then enable OWIN:AutomaticAppStartup key in your web.config like Now it will fire
Simulator: it is similar to interpreter. i.e. it actually executes the real code in line by line to mimic the behaviour
Emulator: it is similar executable. i.e. it takes compiled code and executes it.
It's highly probable that you want to have a text next to the checkbox. In that case, you can put the checkbox inside a label like I do below:
<label style="width: 150px;"><input type="checkbox" name="damageTypeItems" value="72" aria-required="true" class="error"> All Over</label>
<label style="width: 150px;"><input type="checkbox" name="damageTypeItems" value="73" aria-required="true" class="error"> All Over X2</label>
The problem is that when the error message is displayed, it's going to be inserted after the checkbox but before the text, making it unreadable. In order to fix that, I changed the error placement function:
if (element.is(":checkbox")) {
error.insertAfter(element.parent().parent());
}
else {
error.insertAfter(element);
}
It depends on your layout but what I did is to have a special error placement for checkbox controls. I get the parent of the checkbox, which is a label, and then I get the parent of it, which is a div in my case. This way, the error is placed below the list of checkbox controls.
To format an Instant
a time-zone is required. Without a time-zone, the formatter does not know how to convert the instant to human date-time fields, and therefore throws an exception.
The time-zone can be added directly to the formatter using withZone()
.
DateTimeFormatter formatter =
DateTimeFormatter.ofLocalizedDateTime( FormatStyle.SHORT )
.withLocale( Locale.UK )
.withZone( ZoneId.systemDefault() );
If you specifically want an ISO-8601 format with no explicit time-zone (as the OP asked), with the time-zone implicitly UTC, you need
DateTimeFormatter.ISO_LOCAL_DATE_TIME.withZone(ZoneId.from(ZoneOffset.UTC))
Now use that formatter to generate the String representation of your Instant.
Instant instant = Instant.now();
String output = formatter.format( instant );
Dump to console.
System.out.println("formatter: " + formatter + " with zone: " + formatter.getZone() + " and Locale: " + formatter.getLocale() );
System.out.println("instant: " + instant );
System.out.println("output: " + output );
When run.
formatter: Localized(SHORT,SHORT) with zone: US/Pacific and Locale: en_GB
instant: 2015-06-02T21:34:33.616Z
output: 02/06/15 14:34
Why don't you just use CopyToDataTable
DataTable dt = (DataTable)Session["dtAllOrders"];
DataTable dtSpecificOrders = new DataTable();
DataTable orderRows = dt.Select("CustomerID = 2").CopyToDataTable();
I go with Mark Longair's solution and comments and recommend anyone reads those before acting, but I'd suggest the emphasis should be on
git branch -f <branchname> <commit>
Here is a scenario where I have needed to do this.
Develop on the wrong branch and hence need to reset it.
Cleanly develop and release some software.
Mistake: Accidentally stay on the release branch while developing further.
"OH NO! I accidentally developed on the release branch." The workspace is maybe cluttered with half changed files that represent work-in-progress and we really don't want to touch and mess with. We'd just like git to flip a few pointers to keep track of the current state and put that release branch back how it should be.
Create a branch for the development that is up to date holding the work committed so far and switch to it.
git branch development
git checkout development
Now we are in the problem situation and need its solution! Rectify the mistake (of taking the release branch forward with the development) and put the release branch back how it should be.
Correct the release branch to point back to the last real release.
git branch -f release release2
The release branch is now correct again, like this ...
git push -f <remote> <branch>
is well described in another thread, though the word "overwrite" in the title is misleading.
Force "git push" to overwrite remote files
var x = parseInt(455/10);
The parseInt() function parses a string and returns an integer.
The radix parameter is used to specify which numeral system to be used, for example, a radix of 16 (hexadecimal) indicates that the number in the string should be parsed from a hexadecimal number to a decimal number.
If the radix parameter is omitted, JavaScript assumes the following:
If the string begins with "0x", the radix is 16 (hexadecimal) If the string begins with "0", the radix is 8 (octal). This feature is deprecated If the string begins with any other value, the radix is 10 (decimal)
datetime
is a builtin module, so there is no (Python) source file.
For modules coming from .py
(or .pyc
) files, you can use mymodule.__file__
, e.g.
> import random
> random.__file__
'C:\\Python25\\lib\\random.pyc'
public bool MojTestPalindrome (string word)
{
bool yes = false;
char[]test1 = word.ToArray();
char[] test2 = test1.Reverse().ToArray();
for (int i=0; i< test2.Length; i++)
{
if (test1[i] != test2[test2.Length - 1 - i])
{
yes = false;
break;
}
else {
yes = true;
}
}
if (yes == true)
{
return true;
}
else
return false;
}
There's not much of one in everyday work.
However, according to the documentation for both functions (accessed by putting a ?
before the function name and hitting enter), require
is used inside functions, as it outputs a warning and continues if the package is not found, whereas library
will throw an error.
If you are using IIS Express and VS 2017:
Go to the Web Application Properties > Web Tab > Servers Section > And change the Bitness to x64.
Is there a way to do this from the XML?
No, sorry. You can only specify the built-in typefaces through XML.
Is there a way to do it from code in one place, to say that the whole application and all the components should use the custom typeface instead of the default one?
Not that I am aware of.
There are a variety of options for these nowadays:
Font resources and backports in the Android SDK, if you are using appcompat
Third-party libraries for those not using appcompat
, though not all will support defining the font in layout resources
1) JTable knows JCheckbox with built-in Boolean TableCellRenderers and TableCellEditor by default, then there is contraproductive declare something about that,
2) AbstractTableModel should be useful, where is in the JTable
required to reduce/restrict/change nested and inherits methods by default implemented in the DefaultTableModel
,
3) consider using DefaultTableModel
, (if you are not sure about how to works) instead of AbstractTableModel
,
could be generated from simple code:
import javax.swing.*;
import javax.swing.table.*;
public class TableCheckBox extends JFrame {
private static final long serialVersionUID = 1L;
private JTable table;
public TableCheckBox() {
Object[] columnNames = {"Type", "Company", "Shares", "Price", "Boolean"};
Object[][] data = {
{"Buy", "IBM", new Integer(1000), new Double(80.50), false},
{"Sell", "MicroSoft", new Integer(2000), new Double(6.25), true},
{"Sell", "Apple", new Integer(3000), new Double(7.35), true},
{"Buy", "Nortel", new Integer(4000), new Double(20.00), false}
};
DefaultTableModel model = new DefaultTableModel(data, columnNames);
table = new JTable(model) {
private static final long serialVersionUID = 1L;
/*@Override
public Class getColumnClass(int column) {
return getValueAt(0, column).getClass();
}*/
@Override
public Class getColumnClass(int column) {
switch (column) {
case 0:
return String.class;
case 1:
return String.class;
case 2:
return Integer.class;
case 3:
return Double.class;
default:
return Boolean.class;
}
}
};
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TableCheckBox frame = new TableCheckBox();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setLocation(150, 150);
frame.setVisible(true);
}
});
}
}
Use the Format function.
Format(Date, "yyyy-mm-dd hh:MM:ss")
You are probably looking for val()
This is probably slower than what you want, but you can do:
>>> tostring = vectorize(lambda x: str(x))
>>> numpy.where(tostring(phis).astype('float64') != phis)
(array([], dtype=int64),)
It looks like it rounds off the values when it converts to str from float64, but this way you can customize the conversion however you like.
Assuming it's the user's address, some mail servers do allow the SMTP VRFY command to actually verify the email address against its mailboxes. Most of the major site won't give you much information; the gmail response is "if you try to mail it, we'll try to deliver it" or something clever like that.
I developed an algorithm for this as part of a science project once.
You basically recursively divide the board into a bunch of overlapping 2x2 rects, testing the different possible combinations for winning on a 2x2 square.
It is slow, but it has the advantage of working on any sized board, with fairly linear memory requirements.
I wish I could find my implementation
As it was mentioned by Davos you can use the IDLEX
It happens that I'm using Linux version and from all extensions I needed only LineNumbers. So I've downloaded IDLEX archive, took LineNumbers.py from it, copied it to Python's lib folder ( in my case its /usr/lib/python3.5/idlelib ) and added following lines to configuration file in my home folder which is ~/.idlerc/config-extensions.cfg:
[LineNumbers]
enable = 1
enable_shell = 0
visible = True
[LineNumbers_cfgBindings]
linenumbers-show =
Your function would work like this:
CREATE OR REPLACE FUNCTION prc_tst_bulk(sql text)
RETURNS TABLE (name text, rowcount integer) AS
$$
BEGIN
RETURN QUERY EXECUTE '
WITH v_tb_person AS (' || sql || $x$)
SELECT name, count(*)::int FROM v_tb_person WHERE nome LIKE '%a%' GROUP BY name
UNION
SELECT name, count(*)::int FROM v_tb_person WHERE gender = 1 GROUP BY name$x$;
END
$$ LANGUAGE plpgsql;
Call:
SELECT * FROM prc_tst_bulk($$SELECT a AS name, b AS nome, c AS gender FROM tbl$$)
You cannot mix plain and dynamic SQL the way you tried to do it. The whole statement is either all dynamic or all plain SQL. So I am building one dynamic statement to make this work. You may be interested in the chapter about executing dynamic commands in the manual.
The aggregate function count()
returns bigint
, but you had rowcount
defined as integer
, so you need an explicit cast ::int
to make this work
I use dollar quoting to avoid quoting hell.
However, is this supposed to be a honeypot for SQL injection attacks or are you seriously going to use it? For your very private and secure use, it might be ok-ish - though I wouldn't even trust myself with a function like that. If there is any possible access for untrusted users, such a function is a loaded footgun. It's impossible to make this secure.
Craig (a sworn enemy of SQL injection!) might get a light stroke, when he sees what you forged from his piece of code in the answer to your preceding question. :)
The query itself seems rather odd, btw. But that's beside the point here.
Thank you Guys to give me many suggestions. Finally I got a solution. That is i have started the NetErrorPage intent two times. One time, i have checked the net connection availability and started the intent in page started event. second time, if the page has error, then i have started the intent in OnReceivedError event. So the first time dialog is not closed, before that the second dialog is called. So that i got a error.
Reason for the Error: I have called the showInfoMessageDialog method two times before closing the first one.
Now I have removed the second call and Cleared error :-).
I'm glad that worked out, so I guess you had to explicitly set 'auto' on IE6 in order for it to mimic other browsers!
I actually recently found another technique for scaling images, again designed for backgrounds. This technique has some interesting features:
The markup relies on a wrapper element:
<div id="wrap"><img src="test.png" /></div>
Given the above markup you then use these rules:
#wrap {
height: 100px;
width: 100px;
}
#wrap img {
min-height: 100%;
min-width: 100%;
}
If you then control the size of wrapper you get the interesting scale effects that I list above.
To be explicit, consider the following base state: A container that is 100x100 and an image that is 10x10. The result is a scaled image of 100x100.
So, in other words, the image is always at least as big as the container, but will scale beyond it to maintain it's aspect ratio.
This probably isn't useful for your site, and it doesn't work in IE6. But, it is useful to get a scaled background for your view port or container.
This function trims a string from left and right. Also it removes carriage returns from the string, an action which is not done by the LTRIM and RTRIM
IF OBJECT_ID(N'dbo.TRIM', N'FN') IS NOT NULL
DROP FUNCTION dbo.TRIM;
GO
CREATE FUNCTION dbo.TRIM (@STR NVARCHAR(MAX)) RETURNS NVARCHAR(MAX)
BEGIN
RETURN(LTRIM(RTRIM(REPLACE(REPLACE(@STR ,CHAR(10),''),CHAR(13),''))))
END;
GO
After return forward method you can simply do this:
return null;
It will break the current scope.
Now there is a package pyclean on PyPI, which is easy to use, and cross-platform. User just need a simple command line to clean all __pycache__
files in current dir:
pyclean .
I also ran into this issue, but in my case I was inadvertently changing the internal state of my source object key when constructing the destination key:
source_objects.each do |item|
key = item.key.sub!(source_prefix, dest_prefix)
item.copy_to(bucket: dest_bucket, key: key)
end
I'm new to Ruby and missed that sub!
has side effects and sub
should have been used instead.
A control that is missing from the original set of WPF controls, but much used, is the NumericUpDown control. It is a neat way to get users to select a number from a fixed range, in a small area. A slider could be used, but for compact forms with little horizontal real-estate, the NumericUpDown is essential.
Solution A (via WindowsFormsHost)
You can use the Windows Forms NumericUpDown control in WPF by hosting it in a WindowsFormsHost. Pay attention that you have to include a reference to System.Windows.Forms.dll assembly.
<Window x:Class="WpfApplication61.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<WindowsFormsHost>
<wf:NumericUpDown/>
</WindowsFormsHost>
...
Solution B (custom)
There are several commercial and codeplex versions around, but both involve installing 3rd party dlls and overheads to your project. Far simpler to build your own, and a aimple way to do that is with the ScrollBar.
A vertical ScrollBar with no Thumb (just the repeater buttons) is in fact just what we want. It inherits rom RangeBase, so it has all the properties we need, like Min, Max, and SmallChange (set to 1, to restrict it to Integer values)
So we change the ScrollBar ControlTemplate. First we remove the Thumb and Horizontal trigger actions. Then we group the remains into a grid and add a TextBlock for the number:
<Grid Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" FontSize="20" MinWidth="25" Text="{Binding Value, RelativeSource={RelativeSource TemplatedParent}}"/>
<Grid Grid.Column="1" x:Name="GridRoot" Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" Background="{TemplateBinding Background}">
<Grid.RowDefinitions>
<RowDefinition MaxHeight="18"/>
<RowDefinition Height="0.00001*"/>
<RowDefinition MaxHeight="18"/>
</Grid.RowDefinitions>
<RepeatButton x:Name="DecreaseRepeat" Command="ScrollBar.LineDownCommand" Focusable="False">
<Grid>
<Path x:Name="DecreaseArrow" Stroke="{TemplateBinding Foreground}" StrokeThickness="1" Data="M 0 4 L 8 4 L 4 0 Z"/>
</Grid>
</RepeatButton>
<RepeatButton Grid.Row="2" x:Name="IncreaseRepeat" Command="ScrollBar.LineUpCommand" Focusable="False">
<Grid>
<Path x:Name="IncreaseArrow" Stroke="{TemplateBinding Foreground}" StrokeThickness="1" Data="M 0 0 L 4 4 L 8 0 Z"/>
</Grid>
</RepeatButton>
</Grid>
</Grid>
Sources:
jobs -p does not work in all shells if called in a sub-shell, possibly unless its output is redirected into a file but not a pipe. (I assume it was originally intended for interactive use only.)
What about the following:
trap 'while kill %% 2>/dev/null; do jobs > /dev/null; done' INT TERM EXIT [...]
The call to "jobs" is needed with Debian's dash shell, which fails to update the current job ("%%") if it is missing.
you could read and write to a seperately like others. But if you want to write into the same one, you could try with this:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
double data[size of your data];
std::ifstream input("file.txt");
for (int i = 0; i < size of your data; i++) {
input >> data[i];
std::cout<< data[i]<<std::endl;
}
}
If you could use List
as a data structure to store your data, instead of using Map
to store the result in the value of the Map, you can use following snippet and store the result in the same object.
Here is a Node class:
private class Node {
public int row, col, distance;
public Node(int row, int col, int distance) {
this.row = row;
this.col = col;
this.distance = distance;
}
public boolean equals(Object o) {
return (o instanceof Node &&
row == ((Node) o).row &&
col == ((Node) o).col);
}
}
If you store your result in distance variable and the items in the list are checked based on their coordinates, you can use the following to change the distance to a new one with the help of lastIndexOf method as long as you only need to store one element for each data:
List<Node> nodeList;
nodeList = new ArrayList<>(Arrays.asList(new Node(1, 2, 1), new Node(3, 4, 5)));
Node tempNode = new Node(1, 2, 10);
if(nodeList.contains(tempNode))
nodeList.get(nodeList.lastIndexOf(tempNode)).distance += tempNode.distance;
It is basically reimplementing Set
whose items can be accessed and changed.
The And
operator will check all conditions in the statement before continuing, whereas the Andalso operator will stop if it knows the condition is false. For example:
if x = 5 And y = 7
Checks if x is equal to 5, and if y is equal to 7, then continues if both are true.
if x = 5 AndAlso y = 7
Checks if x is equal to 5. If it's not, it doesn't check if y is 7, because it knows that the condition is false already. (This is called short-circuiting.)
Generally people use the short-circuiting method if there's a reason to explicitly not check the second part if the first part is not true, such as if it would throw an exception if checked. For example:
If Not Object Is Nothing AndAlso Object.Load()
If that used And
instead of AndAlso
, it would still try to Object.Load()
even if it were nothing
, which would throw an exception.
Even if you're willing to look up what behavior your implementation defines, multi-character constants will still vary with endianness.
Better to use a (POD) struct { char[4] }; ... and then use a UDL like "WAVE"_4cc to easily construct instances of that class
Section 6.6 of The C Programming Language presents a simple dictionary (hashtable) data structure. I don't think a useful dictionary implementation could get any simpler than this. For your convenience, I reproduce the code here.
struct nlist { /* table entry: */
struct nlist *next; /* next entry in chain */
char *name; /* defined name */
char *defn; /* replacement text */
};
#define HASHSIZE 101
static struct nlist *hashtab[HASHSIZE]; /* pointer table */
/* hash: form hash value for string s */
unsigned hash(char *s)
{
unsigned hashval;
for (hashval = 0; *s != '\0'; s++)
hashval = *s + 31 * hashval;
return hashval % HASHSIZE;
}
/* lookup: look for s in hashtab */
struct nlist *lookup(char *s)
{
struct nlist *np;
for (np = hashtab[hash(s)]; np != NULL; np = np->next)
if (strcmp(s, np->name) == 0)
return np; /* found */
return NULL; /* not found */
}
char *strdup(char *);
/* install: put (name, defn) in hashtab */
struct nlist *install(char *name, char *defn)
{
struct nlist *np;
unsigned hashval;
if ((np = lookup(name)) == NULL) { /* not found */
np = (struct nlist *) malloc(sizeof(*np));
if (np == NULL || (np->name = strdup(name)) == NULL)
return NULL;
hashval = hash(name);
np->next = hashtab[hashval];
hashtab[hashval] = np;
} else /* already there */
free((void *) np->defn); /*free previous defn */
if ((np->defn = strdup(defn)) == NULL)
return NULL;
return np;
}
char *strdup(char *s) /* make a duplicate of s */
{
char *p;
p = (char *) malloc(strlen(s)+1); /* +1 for ’\0’ */
if (p != NULL)
strcpy(p, s);
return p;
}
Note that if the hashes of two strings collide, it may lead to an O(n)
lookup time. You can reduce the likelihood of collisions by increasing the value of HASHSIZE
. For a complete discussion of the data structure, please consult the book.
Assuming your php install has the CURL extension, it is probably the easiest way (and most complete, if you wish).
Sample snippet:
//set POST variables
$url = 'http://domain.com/get-post.php';
$fields = array(
'lname'=>urlencode($last_name),
'fname'=>urlencode($first_name),
'email'=>urlencode($email)
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
Credits go to http://php.dzone.com. Also, don't forget to visit the appropriate page(s) in the PHP Manual
Note that usage of a SerialPort.DataReceived
event is optional. You can set proper timeout using SerialPort.ReadTimeout
and continuously call SerialPort.Read()
after you wrote something to a port until you get a full response.
Moreover you can use SerialPort.BaseStream
property to extract an underlying Stream
instance. The benefit of using a Stream
is that you can easily utilize various decorators with it:
var port = new SerialPort();
// LoggingStream inherits Stream, implements IDisposable, needen abstract methods and
// overrides needen virtual methods.
Stream portStream = new LoggingStream(port.BaseStream);
portStream.Write(...); // Logs write buffer.
portStream.Read(...); // Logs read buffer.
For more information check:
Regex is a very bad choice for this kind of task. Try to find a web service or an address database or a product which can clean address data instead.
Related:
This worked for me, found it long time ago somewhere.
// SortableObservableCollection
public class SortableObservableCollection<T> : ObservableCollection<T>
{
public SortableObservableCollection(List<T> list)
: base(list)
{
}
public SortableObservableCollection()
{
}
public void Sort<TKey>(Func<T, TKey> keySelector, System.ComponentModel.ListSortDirection direction)
{
switch (direction)
{
case System.ComponentModel.ListSortDirection.Ascending:
{
ApplySort(Items.OrderBy(keySelector));
break;
}
case System.ComponentModel.ListSortDirection.Descending:
{
ApplySort(Items.OrderByDescending(keySelector));
break;
}
}
}
public void Sort<TKey>(Func<T, TKey> keySelector, IComparer<TKey> comparer)
{
ApplySort(Items.OrderBy(keySelector, comparer));
}
private void ApplySort(IEnumerable<T> sortedItems)
{
var sortedItemsList = sortedItems.ToList();
foreach (var item in sortedItemsList)
{
Move(IndexOf(item), sortedItemsList.IndexOf(item));
}
}
}
Usage:
MySortableCollection.Sort(x => x, System.ComponentModel.ListSortDirection.Ascending);
Well, in my case I had to test a Phone Number with the help of regex, and I was getting the same error,
Invalid regular expression: /+923[0-9]{2}-(?!1234567)(?!1111111)(?!7654321)[0-9]{7}/: Nothing to repeat'
So, what was the error in my case was that +
operator after the /
in the start of the regex. So enclosing the +
operator with square brackets [+]
, and again sending the request, worked like a charm.
Following will work:
/[+]923[0-9]{2}-(?!1234567)(?!1111111)(?!7654321)[0-9]{7}/
This answer may be helpful for those, who got the same type of error, but their chances of getting the error from this point of view, as mine! Cheers :)
None of these worked for me using 4.1 video.js CDN. This code kills the video playing in a modal when the (.closemodal
) is clicked. I had 3 videos. Someone else can refactor.
var myPlayer = videojs("my_video_1");
var myPlayer2 = videojs("my_video_2");
var myPlayer3 = videojs("my_video_3");
$(".closemodal").click(function(){
myPlayer.pause();
myPlayer2.pause();
myPlayer3.pause();
});
});
as per their Api docs.
I've developed my own MySQL escape method in Java (if useful for anyone).
See class code below.
Warning: wrong if NO_BACKSLASH_ESCAPES SQL mode is enabled.
private static final HashMap<String,String> sqlTokens;
private static Pattern sqlTokenPattern;
static
{
//MySQL escape sequences: http://dev.mysql.com/doc/refman/5.1/en/string-syntax.html
String[][] search_regex_replacement = new String[][]
{
//search string search regex sql replacement regex
{ "\u0000" , "\\x00" , "\\\\0" },
{ "'" , "'" , "\\\\'" },
{ "\"" , "\"" , "\\\\\"" },
{ "\b" , "\\x08" , "\\\\b" },
{ "\n" , "\\n" , "\\\\n" },
{ "\r" , "\\r" , "\\\\r" },
{ "\t" , "\\t" , "\\\\t" },
{ "\u001A" , "\\x1A" , "\\\\Z" },
{ "\\" , "\\\\" , "\\\\\\\\" }
};
sqlTokens = new HashMap<String,String>();
String patternStr = "";
for (String[] srr : search_regex_replacement)
{
sqlTokens.put(srr[0], srr[2]);
patternStr += (patternStr.isEmpty() ? "" : "|") + srr[1];
}
sqlTokenPattern = Pattern.compile('(' + patternStr + ')');
}
public static String escape(String s)
{
Matcher matcher = sqlTokenPattern.matcher(s);
StringBuffer sb = new StringBuffer();
while(matcher.find())
{
matcher.appendReplacement(sb, sqlTokens.get(matcher.group(1)));
}
matcher.appendTail(sb);
return sb.toString();
}
Try this:
<SCRIPT LANGUAGE="JavaScript">
function WriteToFile(passForm) {
set fso = CreateObject("Scripting.FileSystemObject");
set s = fso.CreateTextFile("C:\test.txt", True);
s.writeline("HI");
s.writeline("Bye");
s.writeline("-----------------------------");
s.Close();
}
</SCRIPT>
</head>
<body>
<p>To sign up for the Excel workshop please fill out the form below:
</p>
<form onSubmit="WriteToFile(this)">
Type your first name:
<input type="text" name="FirstName" size="20">
<br>Type your last name:
<input type="text" name="LastName" size="20">
<br>
<input type="submit" value="submit">
</form>
This will work only on IE
json_decode($json, true);
// the second param being true will return associative array. This one is easy.
if you don't know the value of XML Element, you can use
$value = (string) $xml->code[0]->lat;
if (ctype_digit($value)) {
// the value is probably an integer because consists only of digits
}
It works when you need to determine if value is a number, because (string)
will always return string and is_int($value)
returns false
You need to have a doGet method as:
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hola</title>");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
out.println("</body>");
out.println("</html>");
}
You can see this link for a simple hello world servlet
Why all the complication?
The simple answer to the original question is just:
#include <stdio.h>
int main()
{
int x = 10;
while (x > 0)
{
printf("%d ", x);
x = x-1;
}
}
It does the same thing. I am not saying you should do it like this, but it does the same thing and would have answered the question in one post.
The x--
is just shorthand for the above, and >
is just a normal greater-than operator
. No big mystery!
There are too many people making simple things complicated nowadays ;)
You found the shorthand to set privileges for all existing tables in the given schema. The manual clarifies:
(but note that
ALL TABLES
is considered to include views and foreign tables).
Bold emphasis mine. serial
columns are implemented with nextval()
on a sequence as column default and, quoting the manual:
For sequences, this privilege allows the use of the
currval
andnextval
functions.
So if there are serial
columns, you'll also want to grant USAGE
(or ALL PRIVILEGES
) on sequences
GRANT USAGE ON ALL SEQUENCES IN SCHEMA foo TO mygrp;
Note: identity columns in Postgres 10 or later use implicit sequences that don't require additional privileges. (Consider upgrading serial
columns.)
You'll also be interested in DEFAULT PRIVILEGES
for users or schemas:
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT ALL PRIVILEGES ON TABLES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT USAGE ON SEQUENCES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo REVOKE ...;
This sets privileges for objects created in the future automatically - but not for pre-existing objects.
Default privileges are only applied to objects created by the targeted user (FOR ROLE my_creating_role
). If that clause is omitted, it defaults to the current user executing ALTER DEFAULT PRIVILEGES
. To be explicit:
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo GRANT ...;
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo REVOKE ...;
Note also that all versions of pgAdmin III have a subtle bug and display default privileges in the SQL pane, even if they do not apply to the current role. Be sure to adjust the FOR ROLE
clause manually when copying the SQL script.
Brian, also worth throwing in here - the others are of course correct that you don't need to declare a string variable. However, next time you want to declare a string you don't need to do the following:
NSString *myString = [[NSString alloc] initWithFormat:@"SomeText"];
Although the above does work, it provides a retained NSString variable which you will then need to explicitly release after you've finished using it.
Next time you want a string variable you can use the "@" symbol in a much more convenient way:
NSString *myString = @"SomeText";
This will be autoreleased when you've finished with it so you'll avoid memory leaks too...
Hope that helps!
Here is the code snippet that does the inner join and select the columns from both dataframe and alias the same column to different column name.
emp_df = spark.read.csv('Employees.csv', header =True);
dept_df = spark.read.csv('dept.csv', header =True)
emp_dept_df = emp_df.join(dept_df,'DeptID').select(emp_df['*'], dept_df['Name'].alias('DName'))
emp_df.show()
dept_df.show()
emp_dept_df.show()
Output for 'emp_df.show()':
+---+---------+------+------+
| ID| Name|Salary|DeptID|
+---+---------+------+------+
| 1| John| 20000| 1|
| 2| Rohit| 15000| 2|
| 3| Parth| 14600| 3|
| 4| Rishabh| 20500| 1|
| 5| Daisy| 34000| 2|
| 6| Annie| 23000| 1|
| 7| Sushmita| 50000| 3|
| 8| Kaivalya| 20000| 1|
| 9| Varun| 70000| 3|
| 10|Shambhavi| 21500| 2|
| 11| Johnson| 25500| 3|
| 12| Riya| 17000| 2|
| 13| Krish| 17000| 1|
| 14| Akanksha| 20000| 2|
| 15| Rutuja| 21000| 3|
+---+---------+------+------+
Output for 'dept_df.show()':
+------+----------+
|DeptID| Name|
+------+----------+
| 1| Sales|
| 2|Accounting|
| 3| Marketing|
+------+----------+
Join Output:
+---+---------+------+------+----------+
| ID| Name|Salary|DeptID| DName|
+---+---------+------+------+----------+
| 1| John| 20000| 1| Sales|
| 2| Rohit| 15000| 2|Accounting|
| 3| Parth| 14600| 3| Marketing|
| 4| Rishabh| 20500| 1| Sales|
| 5| Daisy| 34000| 2|Accounting|
| 6| Annie| 23000| 1| Sales|
| 7| Sushmita| 50000| 3| Marketing|
| 8| Kaivalya| 20000| 1| Sales|
| 9| Varun| 70000| 3| Marketing|
| 10|Shambhavi| 21500| 2|Accounting|
| 11| Johnson| 25500| 3| Marketing|
| 12| Riya| 17000| 2|Accounting|
| 13| Krish| 17000| 1| Sales|
| 14| Akanksha| 20000| 2|Accounting|
| 15| Rutuja| 21000| 3| Marketing|
+---+---------+------+------+----------+
Logistic Regression is used in predicting categorical outputs like Yes/No, Low/Medium/High etc. You have basically 2 types of logistic regression Binary Logistic Regression (Yes/No, Approved/Disapproved) or Multi-class Logistic regression (Low/Medium/High, digits from 0-9 etc)
On the other hand, linear regression is if your dependent variable (y) is continuous. y = mx + c is a simple linear regression equation (m = slope and c is the y-intercept). Multilinear regression has more than 1 independent variable (x1,x2,x3 ... etc)
I wanted a function that would join tables without requiring you to define the columns using an anonymous type selector, but had a hard time finding any. I ended up having to make my own. Hopefully this will help anyone in the future who searches for this:
private DataTable JoinDataTables(DataTable t1, DataTable t2, params Func<DataRow, DataRow, bool>[] joinOn)
{
DataTable result = new DataTable();
foreach (DataColumn col in t1.Columns)
{
if (result.Columns[col.ColumnName] == null)
result.Columns.Add(col.ColumnName, col.DataType);
}
foreach (DataColumn col in t2.Columns)
{
if (result.Columns[col.ColumnName] == null)
result.Columns.Add(col.ColumnName, col.DataType);
}
foreach (DataRow row1 in t1.Rows)
{
var joinRows = t2.AsEnumerable().Where(row2 =>
{
foreach (var parameter in joinOn)
{
if (!parameter(row1, row2)) return false;
}
return true;
});
foreach (DataRow fromRow in joinRows)
{
DataRow insertRow = result.NewRow();
foreach (DataColumn col1 in t1.Columns)
{
insertRow[col1.ColumnName] = row1[col1.ColumnName];
}
foreach (DataColumn col2 in t2.Columns)
{
insertRow[col2.ColumnName] = fromRow[col2.ColumnName];
}
result.Rows.Add(insertRow);
}
}
return result;
}
An example of how you might use this:
var test = JoinDataTables(transactionInfo, transactionItems,
(row1, row2) =>
row1.Field<int>("TransactionID") == row2.Field<int>("TransactionID"));
One caveat: This is certainly not optimized, so be mindful when getting to row counts above 20k. If you know that one table will be larger than the other, try to put the smaller one first and the larger one second.
You can just sum
and set param axis=1
to sum the rows, this will ignore none numeric columns:
In [91]:
df = pd.DataFrame({'a': [1,2,3], 'b': [2,3,4], 'c':['dd','ee','ff'], 'd':[5,9,1]})
df['e'] = df.sum(axis=1)
df
Out[91]:
a b c d e
0 1 2 dd 5 8
1 2 3 ee 9 14
2 3 4 ff 1 8
If you want to just sum specific columns then you can create a list of the columns and remove the ones you are not interested in:
In [98]:
col_list= list(df)
col_list.remove('d')
col_list
Out[98]:
['a', 'b', 'c']
In [99]:
df['e'] = df[col_list].sum(axis=1)
df
Out[99]:
a b c d e
0 1 2 dd 5 3
1 2 3 ee 9 5
2 3 4 ff 1 7
Whenever you create child class object then that object has all the features of parent class. Here Super() is the facilty for accession parent.
If you write super() at that time parents's default constructor is called. same if you write super.
this keyword refers the current object same as super key word facilty for accessing parents.
from Using Windows PowerShell to remove obj, bin and ReSharper folders
very similar to Robert H answer with shorter syntax
paste and run below script
dir .\ -include bin,obj,resharper* -recurse | foreach($) { rd $_.fullname –Recurse –Force}
matching empty string or email
(^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)
matching empty string or email but also matching any amount of whitespace
(^\s*$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)
see more about the email matching regex itself:
Using the javascript engine that is shipped with Java 6:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class Wow
{
public static void main(String[] args) throws Exception
{
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval("print(encodeURIComponent('\"A\" B ± \"'))");
}
}
Output: %22A%22%20B%20%c2%b1%20%22
The case is different but it's closer to what you want.
All that's needed is that the format specifiers and the types agree, and you can always cast to make that true. long
is at least 32 bits, so %lu
together with (unsigned long)k
is always correct:
uint32_t k;
printf("%lu\n", (unsigned long)k);
size_t
is trickier, which is why %zu
was added in C99. If you can't use that, then treat it just like k
(long
is the biggest type in C89, size_t
is very unlikely to be larger).
size_t sz;
printf("%zu\n", sz); /* C99 version */
printf("%lu\n", (unsigned long)sz); /* common C89 version */
If you don't get the format specifiers correct for the type you are passing, then printf
will do the equivalent of reading too much or too little memory out of the array. As long as you use explicit casts to match up types, it's portable.
This answer relevant for Vue.js version 2
<th
class="initial "
v-on:click="myFilter"
v-bind:class="{ active: isActive }"
>
<span class="wkday">M</span>
</th>
The rest of the answer by Douglas is still applicable (setting up the new Vue instance with isActive: false
, etc).
Relevant docs: https://vuejs.org/v2/guide/class-and-style.html#Object-Syntax and https://vuejs.org/v2/guide/events.html#Method-Event-Handlers
You can add script tags in your HTML document, ideally inside the which points to your javascript files. Order of the script tags are important. Load the jQuery before your script files if you want to use jQuery from your script.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="relative/path/to/your/javascript.js"></script>
Then in your javascript file you can refer to jQuery either using $
sign or jQuery
.
Example:
jQuery.each(arr, function(i) { console.log(i); });
I would use time.time() to get a timestamp in seconds since the epoch.
import time
time.time()
Output:
1369550494.884832
For the standard CPython implementation on most platforms this will return a UTC value.
Every class in Java has the toString()
method in it by default, which is called if you pass some object of that class to System.out.println()
. By default, this call returns the className@hashcode of that object.
{
SomeClass sc = new SomeClass();
// Class @ followed by hashcode of object in Hexadecimal
System.out.println(sc);
}
You can override the toString method of a class to get different output. See this example
class A {
String s = "I am just a object";
@Override
public String toString()
{
return s;
}
}
class B {
public static void main(String args[])
{
A obj = new A();
System.out.println(obj);
}
}
I would first suggest that you step back and look at organizing your plays to not require such complexity, but if you really really do, use the following:
vars:
myvariable: "{{[param1|default(''), param2|default(''), param3|default('')]|join(',')}}"
Try this Code
<select name="forma" onchange="location = this.options[this.selectedIndex].value;">
<option value="Home.php">Home</option>
<option value="Contact.php">Contact</option>
<option value="Sitemap.php">Sitemap</option>
</select>
Try that:
if(WIN32)
set(ADDITIONAL_LIBRARIES wsock32)
else()
set(ADDITIONAL_LIBRARIES "")
endif()
target_link_libraries(${PROJECT_NAME} bioutils ${ADDITIONAL_LIBRARIES})
You can find other useful variables here.
To second Paul's response: yes, ctags (especially exuberant-ctags (http://ctags.sourceforge.net/)) is great. I have also added this to my vimrc, so I can use one tags file for an entire project:
set tags=tags;/
StringValues
is an array of strings. You can get your string value by providing an index, e.g. HttpContext.Request.Query["page"][0]
.
Use __cplusplus
as suggested.
Only one note for Microsoft compiler, use Zc:__cplusplus
compiler switch to enable __cplusplus
Source https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
To Install cURL 7.49.0 on Ubuntu 16.04 and Derivatives
wget http://curl.haxx.se/download/curl-7.49.0.tar.gz
tar -xvf curl-7.49.0.tar.gz
cd curl-7.49.0/
./configure
make
sudo make install
new SizedBox(
width: 100.0,
child: new RaisedButton(...),
)
maybe you want to take a look java.util.Stack
class.
it has push, pop methods. and implemented List interface.
for shift/unshift, you can reference @Jon's answer.
however, something of ArrayList you may want to care about , arrayList is not synchronized. but Stack is. (sub-class of Vector). If you have thread-safe requirement, Stack may be better than ArrayList.
Drag the variable from Variables pane to Watch pane and voila!
One more method is to Define the Layout inside the View:
@{
Layout = "~/Views/Shared/_MyAdminLayout.cshtml";
}
More Ways to do, can be found here, hope this helps someone.
SELECT * FROM TABLE ORDER BY ID DESC LIMIT 1
Yes this is mysql, SQL Server:
SELECT TOP 1 * FROM Table ORDER BY ID DESC
You need to handle it via ajax
submit.
Something like this:
$(function(){
$('#subscribe-email-form').on('submit', function(e){
e.preventDefault();
$.ajax({
url: url, //this is the submit URL
type: 'GET', //or POST
data: $('#subscribe-email-form').serialize(),
success: function(data){
alert('successfully submitted')
}
});
});
});
A better way would be to use a django form, and then render the following snippet:
<form>
<div class="modal-body">
<input type="email" placeholder="email"/>
<p>This service will notify you by email should any issue arise that affects your plivo service.</p>
</div>
<div class="modal-footer">
<input type="submit" value="SUBMIT" class="btn"/>
</div>
</form>
via the context - example : {{form}}
.
You can edit the page in SharePoint designer, convert the List View web part to an XSLT Data View. (by right click + "Convert to XSLT Data View").
Then you can edit the XSLT - find the A
tag and add an attribute target="_blank"
You are assigning to a function call:
invest(initial_amount,top_company(5,year,year+1)) = subsequent_amount
which is illegal in Python. The question is, what do you want to do? What does invest()
do? I suppose it returns a value, namely what you're trying to use as subsequent_amount
, right?
If so, then something like this should work:
amount = invest(amount,top_company(5,year,year+1),year)
I faced the same 415
http error when sending objects, serialized into JSON, via PUT/PUSH requests to my JAX-rs services, in other words my server was not able to de-serialize the objects from JSON.
In my case, the server was able to serialize successfully the same objects in JSON when sending them into its responses.
As mentioned in the other responses I have correctly set the Accept
and Content-Type
headers to application/json
, but it doesn't suffice.
Solution
I simply forgot a default constructor with no parameters for my DTO objects. Yes this is the same reasoning behind @Entity objects, you need a constructor with no parameters for the ORM to instantiate objects and populate the fields later.
Adding the constructor with no parameters to my DTO objects solved my issue. Here follows an example that resembles my code:
Wrong
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class NumberDTO {
public NumberDTO(Number number) {
this.number = number;
}
private Number number;
public Number getNumber() {
return number;
}
public void setNumber(Number string) {
this.number = string;
}
}
Right
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class NumberDTO {
public NumberDTO() {
}
public NumberDTO(Number number) {
this.number = number;
}
private Number number;
public Number getNumber() {
return number;
}
public void setNumber(Number string) {
this.number = string;
}
}
I lost hours, I hope this'll save yours ;-)
You may want to try running eclipse with the -clean startup option - it tries re-building eclipse's metadata of the workspace.
It's part of the exception handling. The gcc EH mechanism allows to mix various EH models, and a personality routine is invoked to determine if an exception match, what finalization to invoke, etc. This specific personality routine is for C++ exception handling (as opposed to, say, gcj/Java exception handling).
xcopy "$(TargetDir)*$(TargetExt)" "$(SolutionDir)\Scripts\MigrationScripts\Library\" /F /R /Y /I
/F – Displays full source & target file names
/R – This will overwrite read-only files
/Y – Suppresses prompting to overwrite an existing file(s)
/I – Assumes that destination is directory (but must ends with )
A little trick – in target you must end with character \ to tell xcopy that target is directory and not file!
This should work:
SELECT field,CONVERT(SUBSTRING_INDEX(field,'-',-1),UNSIGNED INTEGER) AS num
FROM table
ORDER BY num;
One way to live-stream a RTSP-based webcam to a HTML5 client (involves re-encoding, so expect quality loss and needs some CPU-power):
On the machine receiving the stream from the camera, don't use FFMPEG but gstreamer. It is able to receive and decode the RTSP-stream, re-encode it and stream it to the icecast server. Example pipeline (only video, no audio):
gst-launch-1.0 rtspsrc location=rtsp://192.168.1.234:554 user-id=admin user-pw=123456 ! rtph264depay ! avdec_h264 ! vp8enc threads=2 deadline=10000 ! webmmux streamable=true ! shout2send password=pass ip=<IP_OF_ICECAST_SERVER> port=12000 mount=cam.webm
=> You can then use the <video> tag with the URL of the icecast-stream (http://127.0.0.1:12000/cam.webm) and it will work in every browser and device that supports webm
from datetime import datetime
import time
from calendar import timegm
d = datetime.utcnow()
d = d.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
utc_time = time.strptime(d,"%Y-%m-%dT%H:%M:%S.%fZ")
epoch_time = timegm(utc_time)
None of the answers above is doing the job.
Rob solution hangs and 'Mark Byers' solution get the disposed exception.(I tried the "solutions" of the other answers).
So I decided to suggest another solution:
public void GetProcessOutputWithTimeout(Process process, int timeoutSec, CancellationToken token, out string output, out int exitCode)
{
string outputLocal = ""; int localExitCode = -1;
var task = System.Threading.Tasks.Task.Factory.StartNew(() =>
{
outputLocal = process.StandardOutput.ReadToEnd();
process.WaitForExit();
localExitCode = process.ExitCode;
}, token);
if (task.Wait(timeoutSec, token))
{
output = outputLocal;
exitCode = localExitCode;
}
else
{
exitCode = -1;
output = "";
}
}
using (var process = new Process())
{
process.StartInfo = ...;
process.Start();
string outputUnicode; int exitCode;
GetProcessOutputWithTimeout(process, PROCESS_TIMEOUT, out outputUnicode, out exitCode);
}
This code debugged and works perfectly.
let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]
For CodeIgniter 3
<form action="<?php echo base_url('index.php/TestingController/insertdata') ?>" method="POST"
enctype="multipart/form-data">
<div class="form-group">
<label for="">title</label>
<input type="text" name="title" id="title" class="form-control">
</div>
<div class="form-group">
<label for="">File</label>
<input type="file" name="files" id="files" class="form-control">
</div>
<input type="submit" value="Submit" class="btn btn-primary">
</form>
public function insertdatanew()
{
$this->load->library('upload');
$files = $_FILES;
$cpt = count($_FILES['filesdua']['name']);
for ($i = 0; $i < $cpt; $i++) {
$_FILES['filesdua']['name'] = $files['filesdua']['name'][$i];
$_FILES['filesdua']['type'] = $files['filesdua']['type'][$i];
$_FILES['filesdua']['tmp_name'] = $files['filesdua']['tmp_name'][$i];
$_FILES['filesdua']['error'] = $files['filesdua']['error'][$i];
$_FILES['filesdua']['size'] = $files['filesdua']['size'][$i];
// fungsi uploud
$config['upload_path'] = './uploads/testing/';
$config['allowed_types'] = '*';
$config['max_size'] = 0;
$config['max_width'] = 0;
$config['max_height'] = 0;
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('filesdua')) {
$error = array('error' => $this->upload->display_errors());
var_dump($error);
// $this->load->view('welcome_message', $error);
} else {
// menambil nilai value yang di upload
$data = array('upload_data' => $this->upload->data());
$nilai = $data['upload_data'];
$filename = $nilai['file_name'];
var_dump($filename);
// $this->load->view('upload_success', $data);
}
}
// var_dump($cpt);
}
Don't know if this will help anyone, but I solved a similar problem by specifying specific width sizes in percentage for each column. Obviously, this would work best if each column has content with width that doesn't vary too widely.
Remember that the US date format is different from the UK. Using the UK format, it needs to be, e.g.
-- dd/mm/ccyy hh:mm:ss
dbo.no_time(at.date_stamp) between '22/05/2016 00:00:01' and '22/07/2016 23:59:59'
There is no need for using NSAttributedString
. All you need is a simple label with the proper textColor
. Plus this simple solution will work with all versions of iOS, not just iOS 6.
But if you needlessly wish to use NSAttributedString
, you can do something like this:
UIColor *color = [UIColor redColor]; // select needed color
NSString *string = ... // the string to colorize
NSDictionary *attrs = @{ NSForegroundColorAttributeName : color };
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:string attributes:attrs];
self.scanLabel.attributedText = attrStr;
you can use Random.Next() also to generate a random number. you can see the MSDN link: http://msdn.microsoft.com/en-us/library/9b3ta19y.aspx
For quick and dirty, you can do
import java.awt.Color;
private Color dropPrecision(Color c,int threshold){
return new Color((c.getRed()/threshold),
(c.getGreen()/threshold),
(c.getBlue()/threshold));
}
public boolean inThreshold(Color _1,Color _2,int threshold){
return dropPrecision(_1,threshold)==dropPrecision(_2,threshold);
}
making use of integer division to quantize the colors.
Synalyze It! allows to compare text or bytes in all encodings the ICU library offers. Using that feature you usually see immediately which code page makes sense for your data.
Use os.chdir
. Here's a full example:
https://colab.research.google.com/notebook#fileId=1CSPBdmY0TxU038aKscL8YJ3ELgCiGGju
Compactly:
!mkdir abc
!echo "file" > abc/123.txt
import os
os.chdir('abc')
# Now the directory 'abc' is the current working directory.
# and will show 123.txt.
!ls
https://github.com/dipeshsukhia/laravel-remove-public-url
you can use this package
composer require dipeshsukhia/laravel-remove-public-url --dev
php artisan vendor:publish --tag=LaravelRemovePublicUrl
I think we have multiple solutions here:
Why? In Java every class is inherited from the Object class itself. So if you have a variable and you would like to know its type. You can use
or
or
isPrimitive()
public static void main(String[] args) {
ClassDemo classOne = new ClassDemo();
Class classOneClass = classOne();
int i = 5;
Class iClass = int.class;
// checking for primitive type
boolean retval1 = classOneClass.isPrimitive();
System.out.println("classOneClass is primitive type? = " + retval1);
// checking for primitive type?
boolean retval2 = iClass.isPrimitive();
System.out.println("iClass is primitive type? = " + retval2);
}
This going to give us:
Find out more here: How to determine the primitive type of a primitive variable?
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
http://docs.oracle.com/cd/E26806_01/wlp.1034/e14255/com/bea/p13n/expression/operator/Instanceof.html
You simply need to use simpleCart
It is a free and open-source javascript shopping cart that easily integrates with your current website.
You will get the full source code at github
However you can use eval function to bring concurrency TO SOME EXTENT
/* content of the threads to be run */
var threads = [
[
"document.write('Foo <br/>');",
"document.write('Foo <br/>');",
"document.write('Foo <br/>');",
"document.write('Foo <br/>');",
"document.write('Foo <br/>');",
"document.write('Foo <br/>');",
"document.write('Foo <br/>');",
"document.write('Foo <br/>');",
"document.write('Foo <br/>');",
"document.write('Foo <br/>');"
],
[
"document.write('Bar <br/>');",
"document.write('Bar <br/>');",
"document.write('Bar <br/>');",
"document.write('Bar <br/>');",
"document.write('Bar <br/>');",
"document.write('Bar <br/>');",
"document.write('Bar <br/>');",
"document.write('Bar <br/>');",
"document.write('Bar <br/>');"
]
];
window.onload = function() {
var lines = 0, quantum = 3, max = 0;
/* get the longer thread length */
for(var i=0; i<threads.length; i++) {
if(max < threads[i].length) {
max = threads[i].length;
}
}
/* execute them */
while(lines < max) {
for(var i=0; i<threads.length; i++) {
for(var j = lines; j < threads[i].length && j < (lines + quantum); j++) {
eval(threads[i][j]);
}
}
lines += quantum;
}
}
Calling
if (a == b)
Will work most of the time, but it's not guaranteed to always work, so do not use it.
The most proper way to compare two Integer classes for equality, assuming they are named 'a' and 'b' is to call:
if(a != null && a.equals(b)) {
System.out.println("They are equal");
}
You can also use this way which is slightly faster.
if(a != null && b != null && (a.intValue() == b.intValue())) {
System.out.println("They are equal");
}
On my machine 99 billion operations took 47 seconds using the first method, and 46 seconds using the second method. You would need to be comparing billions of values to see any difference.
Note that 'a' may be null since it's an Object. Comparing in this way will not cause a null pointer exception.
For comparing greater and less than, use
if (a != null && b!=null) {
int compareValue = a.compareTo(b);
if (compareValue > 0) {
System.out.println("a is greater than b");
} else if (compareValue < 0) {
System.out.println("b is greater than a");
} else {
System.out.println("a and b are equal");
}
} else {
System.out.println("a or b is null, cannot compare");
}
Here is a code to make the conversions between JSON and NSData in Swift 2.0
// Convert from NSData to json object
func nsdataToJSON(data: NSData) -> AnyObject? {
do {
return try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers)
} catch let myJSONError {
print(myJSONError)
}
return nil
}
// Convert from JSON to nsdata
func jsonToNSData(json: AnyObject) -> NSData?{
do {
return try NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions.PrettyPrinted)
} catch let myJSONError {
print(myJSONError)
}
return nil;
}
open looks in the current working directory, which in your case is ~
, since you are calling your script from the ~
directory.
You can fix the problem by either
cd
ing to the directory containing data.csv
before executing the script, or
by using the full path to data.csv
in your script, or
open
and os.listdir
) may be affected by this.