Word, Excel and PowerPoint in one app!

Microsoft has officially announced to publicly test a new version of the Office app that combines World, Excel and the PowerPoint app at the Ignite conference in Florida. This app will be available for both Android and iOS.

Microsoft says that with the new Office app users will be able to create new presentations, documents and spreadsheets as well as edit/view existing documents. Further more, you’ll can also “snap a picture of a document” and make it into an editable Word file, create and sign PDFs or “transform tables from a printed page into an Excel spreadsheet!”

New Office app by Microsoft. Image courtesy: iphonehacks

Any can use the unified Office app without signing into a Microsoft account, though signing in will give access to their files to be saved on OneDrive.

Animated GIF - Find & Share on GIPHY
via GIPHY

To be noted, Microsoft also told CNet, that the brand new Office app won’t be replacing the existing 3 individual apps. “We know some users may only need to use any one of the apps and it is the user’s choice to install the app that best fits according to their needs.

If you are interested to try out the new unified Office app for iOS, sign up for the Testflight program here.

Google brings new privacy controls for mobile users

Google launched Incognito Mode for Maps,YouTube and Google Assistant

Returning to Google I / O in May, we saw that Maps and Search are the next two Android apps to add Incognito mode. Google now officially rolls it out so that you can keep your activity off your Google account and search for information. The functionality will be available from within the app’s profile menu.

google launched incognito mode for maps youtube and google assistant
google launched incognito mode for maps youtube and google assistant

Google Maps Incognito mode

Google Maps Incognito mode first introduced at its Google I / O developer conference earlier this year in May.

The incognito mode of Google Maps is based on the similarly named feature found in all modern browsers and present in Chrome since its release back in 2008.

This enables users of Google Maps to search and access locations without adding this information to their history with Google Account.

Google says Google Maps incognito mode will begin rolling out this month on Android, with iOS coming soon. The functionality is not currently available for the internet version of Google Maps.

YouTube history auto-delete

And since we’re on YouTube, there’s also a new feature for Google to include. Google previously introduced this feature in May when it was added to Google Search, Google Maps, and Google Account (which allowed users to remove past use of the app).

Convert currentTimeMillis to a datetime in JAVA(Spring Boot)

Spring Boot

In this tutorial I’ll show how to save Time Stamp in Database in currentTimeMillis and retrieve in Spring Boot

Want precise time for some purpose? Normally, we can save Time Stamp in Database but what if the data need to be converted into several formats?

Let’s say we need to save “2019-6-27 00:59:59” and then convert it to several formats like ’27/2019/6 00:59:59′ and ’20-JUN-1990 08:03:00′. Though “2019-6-27 00:59:59” can be converted but that’s a little bit tough. The ideal solution is to save the data in millisecond format. In millisecond format “2019-6-27 00:59:59” would be “1564167599000”

I assume you already have the datetime picker data in controller, here’s the conversion code:

String expireTime = model.attribute; //your model attribute or request parameter name
Date date = formatter.parse(expireTime);
Timestamp timestamp = new Timestamp(date.getTime());
String expireTime2 = String.valueOf(timestamp.getTime());
//That's it! We've converted '2019-6-27 00:59:59' to '1564167599000'
//Add your save logic

Now the reading part. User can’t read ‘1564167599000’, right? Let’s convert this to readable format:

String convertedExpireTime = "1564167599000";
//Create a calendar instance
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(Long.parseLong(convertedExpireTime));
int mYear = calendar.get(Calendar.YEAR);
int mMonth = calendar.get(Calendar.MONTH);
int mDay = calendar.get(Calendar.DAY_OF_MONTH);
int mHour = calendar.get(Calendar.HOUR_OF_DAY);
int mMin = calendar.get(Calendar.MINUTE);
int mSec = calendar.get(Calendar.SECOND);
String readableFormat = mYear + "-" + mMonth + "-" + mDay + " " + mHour + ":"+ mMin + ":"+ mSec; // The value is now converted to 2019-6-27 0:59:59
//Add some logic

That’s all! We’re done!

If you’ve any confusion please let me know 🙂

Github free users can avail unlimited private repositories now!

GitHub is by far the most popular way to share code. That said, one weakness of the platform is that it limits who can create private repositories – that is, software projects that aren’t visible to the broader public, and are shared only with a handful of pre-defined collaborators – to paying users.

Days are over now! Yay!

No you can create unlimited free private repositories.

How to query data out of the box using Spring data JPA by both Sort and Pageable

Spring Boot

Developing REST API? Clients wants both sort & pagination?

That’s quite simple btw!

Since last few hours was trying to add this simple feature my Spring Boot project. In my project pagination was done using pageable

In this tutorial I’m gonna show how to achieve this.

Let’s copy the code from below:

public List<Model> getAllData(Pageable pageable){
       List<Model> models= new ArrayList<>();
       modelRepository.findAllByOrderByIdDesc(pageable).forEach(models::add);
       return models;
   }
//Model = Your Model where you want to implement this feature. 

That’s all! We’re done!
If you’ve any confusion please let me know 🙂

Windows KMS Activator Ultimate 2018 4.2

Windows KMS Activator Ultimate is the most simple and user-friendly activator for Windows Server, Windows Vista, Windows 7, 8.1, 10. It is a safe activator, without harm to system files. The Windows activation period is 180 days, and you can renew it after its expiry. You can delete all previous activation. You can find out information about your activation and the current activation status of your Windows.

Instructions:
– Install the program
– Run as administrator
– Click “Clean Activation History”.
– Click Update Server to update the Update KMS Server.
– Select your OS type.
– Click “Activate Now”.
– Done, enjoy it!

Latest Windows KMS Activator Ultimate 2017 CAN the BE activated
the Windows 10, all versions
the Windows 8.1, all versions
the Windows 8.1, the Preview all versions
the Windows 8, all versions
the Windows 7 Professional
the Windows 7 Enterprise
the Windows Vista Business
the Windows Vista Enterprise
the Windows Server 12, all versions
the Windows Server 08, all versions

For Permanent Activation
Click on the “Activation Permanent Now” Activate:
Windows Vista Business / Enterprise
Windows 7 Professional / Enterprise
Windows 8 / 8.1 / 10 All
Office 2010/2013/2016 Preview
Windows Server 2008 / 2008R2 / 2012 / 2012R2 / 2016

System Requirements
Net Framework 2.0
Internet connection
What’s new in 4.2
– the add “the Digital License Activation” tool by s1ave77 for permanent activation
– the Can the activate the latest version of windows 10
– Fixed For All Bugs.

So, why are you waiting for? Download from here

 

Show data from two JPA entity tables on same page using Spring Boot and Thymeleaf

spring boot thymeleaf bootstrap 4

Let’s say you want to display multiple table contents in Spring Boot project using Thymeleaf, JPA Entity and Model.

In my project I have mapped a relationship between the two entities I need to retrieve data from and am wondering how to display data from the two tables on list page. I’ve ‘category’ table and ‘product’ table like below:

Spring Boot, Thymeleaf Show data from two JPA entity tables on same page using Spring Boot and Thymeleaf

And in my controller I’ve list of both category and product in respective model. Here is the snippet:

model.addAttribute("products", productService.findAll());
model.addAttribute("categories", categoryService.findAll());

So, I’ve all the required data in the model and I can access them from Thymeleaf. Let’s copy the table code from below (N.B: I’ve used bootstrap table):

<table class="table table-striped table-bordered table-responsive" role="grid">
   <thead>
      <th>Category</th>
      <th>Product</th>
   </thead>
   <tbody>
      <tr role="row" class="odd" th:each="product:${products}">
         <td>
            <p th:each="category : ${categories}" th:if="(${category.id} == ${product.id})" th:text="${category.name}"></p>
         </td>
         <td th:text="${product.name}">
      </tr>
   </tbody>
</table>

It’ll produce something like this:

Spring Boot, Thymeleaf: Display data from two JPA entity tables on same page

That’s all! We’re done!
If you’ve any confusion please let me know 🙂

Thymeleaf select required not working?

thymeleaf

Since last few days trying to add select “required” attribute in my Thymeleaf project.  Neither of these works in Thymeleaf:

  • <select required=”required”>
  • <select required=’required’>
  • <select required=required>
  • <select required=””>
  • <select required=”>
  • <select required>

In this tutorial I’m gonna show how to achieve this.

Let’s copy the code from below:

<select th:name="someName" class="form-control" id="someID" th:required="true">
    <option value="">Select Category</option>
    <option th:each="model: ${someModel}" th:value="${model.id}"
            th:text="${model.Title}"></option>
</select>

Please note that, first/default option value must be set to “” if you put “0” it won’t work!

That’s all! We’re done!
If you’ve any confusion please let me know 🙂

Bootstrap Dynamic Modal with Spring Boot and Thymeleaf

spring boot thymeleaf bootstrap 4

Let’s say you want to dynamically create modal popup in your Spring Boot project using Twitter Bootstrap 4 to show the user a ‘warning popup’ before deleting a data or edit the contents on the fly in same page. Not to mention I’ve used Thymeleaf as my template engine.

In this tutorial I’m gonna show how to achieve this.

I assume you have already included required Bootstrap resources and necessary jQuery library in your project and are ready to implement modal popup. Let’s copy the modal code from below:

<div class="modal modal-warning fade in" id="myModal">
 <div class="modal-dialog">
 <div class="modal-content">
 <div class="modal-header">
 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
 <span aria-hidden="true">×</span></button>
 <h5 class="modal-title">Delete User</h5>
 </div>
 <div class="modal-body">
 <h3>Are you sure want to delete this user?</h3>
 </div>
 <div class="modal-footer">
 <button type="button" class="btn btn-outline pull-left" data-dismiss="modal">Close</button>
 <a type="button" class="btn btn-danger"><i class="fa fa-check"></i>&nbsp;Yes</a>
 </div>
 </div>
 </div>
 </div>

It’ll produce something like this:

Bootstrap Dynamic Modal with Spring Boot and Thymeleaf

Now, the next step actually the final step. Make the modal dynamically generate for all the data in table.

I’ve some data in the table like below now I want to delete a user but before that I want that modal to generate dynamically for all data.

Bootstrap Table in Spring boot

On the ‘Red’ delete button the popup will generate.

<a data-toggle="modal" data-target="#modal-warning" th:attr="data-target='#modal-warning'+${user.id }"><span class="glyphicon glyphicon-trash"></span></a>

Here “${user.id}” is my thymeleaf object.

Now, let’s make the modal dynamic with the id:

<div class="modal modal-warning fade in" th:id="modal-warning+${user.id }" >
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">×</span></button>
                <h5 class="modal-title">Delete User</h5>
            </div>
            <div class="modal-body">
                <h3>Are you sure want to delete this user?</h3>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-outline pull-left" data-dismiss="modal">Close</button>
                <a type="button" class="btn btn-outline" th:href="@{/user/delete/{id}(id=${user.id})}"><i class="fa fa-check"></i>&nbsp;Yes</a>
            </div>
        </div>
    </div>
</div>

Here “th:href=”@{/user/delete/{id}(id=${user.id})}” is your POST URL.
You can also edit any data inside the modal by adding a form.

That’s all! We’re done!
If you’ve any confusion please let me know 🙂

Few Best Alternatives to Github

Being into software development we frequently find ourselves in need to host our code. For the purpose, crowds are blindly following one single medium for this, Github. It can’t be denied that Github users have their choice to use either Git or Subversion for version control. Conjointly there is a facility of unlimited public code repository for all users of Github. Another fascinating feature of Github is that allows to create ‘organizations’, which at its own is a normal account but at least one user account is required to be listed as the owner of the organization.

Apart from providing desktop application for Windows and OSX, Github also offers the facility to its users and organizations to host one website and unlimited project pages for free on the Github’s website.

Choosing a code repository hugely depends on what you require for a repository and how much can it cater to, if not all. Choosing a repository hosting service might not seem like a big deal. But the repo host you choose can have serious consequences for your developers’ productivity and ability to build great products.

1. Bitbucket

Bitbucket

The Bitbucket comes just next to it in terms of usage and global popularity. Bitbucket also provides a free account for the users and organizations as well with limit for five users. Also, it provides access to unlimited private and public repos. One of the features which is noteworthy is its allowance for the users to puch their files using any of the Git client/Git command line.

The domain for your hosted website on Bitbucket will look something like: accountname.bitbucket.org and domain for that of project pages will be like: accountname.bitbucket.org/project. On the other hand Bitbucket also allows its users to use their own domain name for their website.

2. GitLab

GitLab

GitLab’s sub-motto seems to be “Better than GitHub”, ironic for a project that is itself hosted on Github. One if its unique features is that you can install GitLab onto your own server. This gives you the option of using GitLab on a custom domain as well as with a custom host. GitLab also claims to handle large files and repositories better than GitHub. GitLab also lets users have unlimited public AND private repos for free. Also GitLab facilitates its users by providing automated testing and code delivery so that a user can do more work in lesser time without waiting for the tests to pass manually.

3. Beanstalk

Beanstalk

Beanstalk as another good Github alternative but it is not free. It lets you try it out for 2 weeks free of cost, after which you need to pay. Its cheapest package “Bronze” costs $15 and allows up to 5 users, 3 GB storage and a maximum of 10 repositories. Subversion and Git Version Control Systems are supported by Beanstalk.

4. Kiln

Klin

Kiln is a paid source code host developed by Fog Creek, unlike Github Kiln is not a free source to host your software or website. You can try Kiln (with all the bells and whistles) for 30 days trial period, after that users need to upgrade to the premium version (minimum $18 a month) in order to continue working with Kiln. You will need to pay separately for the Code Review Module. Overall, Kiln is more suited for medium to large organizations of 100 -500 people. You will need to pay separately for the Code Review Module. Overall, Kiln is more suited for medium to large organizations of 100 -500 people.
Kiln makes a domain for your company at companyname.kilnhg.com

5. Codeplane


Codeplane is again a paid service, which offers a 30 day free trial.

Codeplane’s VCS -of choice is Git. It allocates 2 GB for your repositories with no limits on users or number of repositories at $9 a month. Suitable for small companies and freelancing teams. Codeplane also automatically takes a backup of your repositories and stores them in the Amazon S3.

 

Comparison Table
Here is a complete comparison of all the features across all 8 source code hosts discussed in this article:

Features Github Bitbucket Gitlab Beanstalk Kiln Codeplane
Pricing* Free Free Free $15/mo $18/mo $9/mo
Private Repo Paid Unlimited, Free Unlimited, Free 10 Paid Unlimited, Paid
Public Repo Unlimited, Free Unlimited, Free Unlimited, Free 10 Paid Unlimited, Paid
Storage Limit 1GB per repo 2GB None 3GB None 2GB
Users Unlimited 5 & Unlimited if public Unlimited 5 5 Unlimited
VCS Git, SVN Git, Hg Git Git, SVN Git, Hg Git
Graphs Yes No Yes No No No
Web Hosting Static sites. Page generator Static sites Static No Yes No
Code Review Yes Yes Yes Yes No No
Wiki Yes Yes Yes No Yes No
Bug Tracking Yes (Login Required) Yes Yes Yes Yes Yes
Discussion Forum No No No $15/mo No No