I was writing a simple script to delete some log files, all the log filenames contain the date of creation in the form YYYYMMDD and I needed to delete the files from previous month keeping the current month. The script will run on the last day of every month.
I thought the task will be very easy as I could use the GNU date command to build the date string, something like:
# The year
date +%Y
Use the date relative option for getting the previous month, something like:
date --date="-1 month" +%m
Then concatenate both strings and build a file pattern using wildcards like ? and *.
The system date was 2019-05-31 ahd I was expecting the 04 string as the output, instead 05 was printed.
I tried several variants and all printed the same, 05:
$ date --date="-1 month" +%m
05
$ date --date="last month" +%m
05
I DuckDuckGoed the Internet and found this answer:
https://stackoverflow.com/questions/13168463/using-date-command-to-get-previous-current-and-next-month
This is from the coreutils manual online:
https://www.gnu.org/software/coreutils/manual/html_node/Relative-items-in-date-strings.html#Relative-items-in-date-strings
$ date --date="$(date +%Y%m15) -1 month" +%m
04
Friday, May 31, 2019
Wednesday, May 8, 2019
PDFs don't open automatically in Chrome
You can normally open PDFs automatically in Chrome by clicking on the file you want to see. If your PDFs are downloading instead of opening automatically in Chrome, Chrome PDF viewer could be turned off.
Open PDFs in Chrome
- On your computer, open Chrome.
- At the top right, click More
Settings.
- At the bottom, click Advanced.
- Under "Privacy and security," click Site settings.
- Near the bottom, click PDF documents.
- Turn off Download PDF files instead of automatically opening them in Chrome.
Chrome will now open PDFs automatically when you click them.
Monday, March 4, 2019
2019 Holiday Schedule
Date | Holiday |
---|---|
Tuesday, January 1 | New Year’s Day |
Monday, January 21 | Birthday of Martin Luther King, Jr. |
Monday, February 18* | Washington’s Birthday |
Monday, May 27 | Memorial Day |
Thursday, July 4 | Independence Day |
Monday, September 2 | Labor Day |
Monday, October 14 | Columbus Day |
Monday, November 11 | Veterans Day |
Thursday, November 28 | Thanksgiving Day |
Wednesday, December 25 | Christmas Day |
*This holiday is designated as "Washington’s Birthday" in section 6103(a) of title 5 of the United States Code, which is the law that specifies holidays for Federal employees. Though other institutions such as state and local governments and private businesses may use other names, it is our policy to always refer to holidays by the names designated in the law.
Taken from: https://www.opm.gov/policy-data-oversight/snow-dismissal-procedures/federal-holidays/#url=2019
Monday, October 1, 2018
How to Find Multiple Missing Integers in Given Array With Duplicates in Java?
I found this interesting problem here:
https://javarevisited.blogspot.com/2014/11/how-to-find-missing-number-on-integer-array-java.html
but I think the solution is too long, see mine below:
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class MissingIntegers {
public static void main(String[] args) {
Set<Integer> s1 = new HashSet<>(Arrays.asList(new Integer[]{1, 2, 3, 4, 9, 8}));
Set<Integer> s2 = new HashSet<>(IntStream.rangeClosed(1, 10).boxed().collect(Collectors.toList()));
s2.removeAll(s1);
System.out.println(s2);
}
}
In fact we don't need the intermediate List in the case of Set 2, we can use the toCollection method of Collectors:
Set<Integer> s2 = IntStream.rangeClosed(1, 10).boxed().collect(Collectors.toCollection(HashSet::new));
Next day I came up with another solution:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class MissingIntegers {
public static void main(String[] args) {
List<Integer> L1 = Arrays.asList(new Integer[]{1, 2, 3, 4, 9, 2, 8});
List<Integer> L2 = IntStream.rangeClosed(1, 10).boxed().collect(Collectors.toCollection(ArrayList::new));
L2.removeAll(L1);
System.out.println(L2);
}
}
Friday, August 31, 2018
Using Apache Ant in Netbeans
The following ant code is run inside the -post-jar target in a Netbeans Java project.
<!--
Copy the .jar file and the zipped directory dist
to deploy folder in Z: drive
-->
<echo message="Zip and copy: ${application.title}" />
<!--
A file name property for the zip file we are going to create
-->
<local name="zipfile" />
<property name="zipfile" value="${application.title}-dist.zip" />
<!-- The creation of the zip file -->
<zip destfile="${zipfile}">
<fileset dir="${dist.dir}/" />
</zip>
<!-- Copying the 2 files -->
<copy todir="Z:/deploy" overwrite="true">
<resources>
<file file="${dist.jar}" />
<file file="${zipfile}" />
</resources>
</copy>
<delete file="${zipfile}" />
<!-- End of the copy -->
<!--
Copy the .jar file and the zipped directory dist
to deploy folder in Z: drive
-->
<echo message="Zip and copy: ${application.title}" />
<!--
A file name property for the zip file we are going to create
-->
<local name="zipfile" />
<property name="zipfile" value="${application.title}-dist.zip" />
<!-- The creation of the zip file -->
<zip destfile="${zipfile}">
<fileset dir="${dist.dir}/" />
</zip>
<!-- Copying the 2 files -->
<copy todir="Z:/deploy" overwrite="true">
<resources>
<file file="${dist.jar}" />
<file file="${zipfile}" />
</resources>
</copy>
<delete file="${zipfile}" />
<!-- End of the copy -->
Tuesday, March 27, 2018
Style Guidelines for Local Variable Type Inference in Java
Stuart W. Marks just published a very useful guidelines for the use of the newly introduced local variable type inference in Java 10:
var list = List.of("One", "Two", 3);
http://openjdk.java.net/projects/amber/LVTIstyle.html
Friday, January 12, 2018
Mastering Multithreading with C++
![Mastering Multithreading with C++ [Video] from Packt Mastering Multithreading with C++ [Video] Book Cover](https://d255esdrn735hr.cloudfront.net/sites/default/files/imagecache/ppv4_main_book_cover/bookretailers/V09707.png)
A very interesting series of videos about multi threading with C++ by Maya Posch:
https://www.packtpub.com//application-development/mastering-multithreading-c-video
The code in GitHub:
https://github.com/PacktPublishing/Mastering-CPP-Multithreading.git
Subscribe to:
Posts (Atom)