Wednesday, March 7, 2018
Friday, February 23, 2018
Saturday, January 27, 2018
Saturday, December 23, 2017
Tuesday, December 5, 2017
Monday, December 4, 2017
Sunday, December 3, 2017
Friday, November 24, 2017
Java JSP FN Functions
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<c:set var = "normalizedStateName" value = "${fn:toLowerCase(fn:replace(state.name, ' ', '-'))}"/>
<c:set var = "normalizedStateName" value = "${fn:toLowerCase(fn:replace(state.name, ' ', '-'))}"/>
Friday, November 17, 2017
Tuesday, October 3, 2017
Display UTC Date in User's Local Time with .toString()
$('.publishedDateString').each(function(){
$(this).text(new Date($(this).text()).toString());
});
$(this).text(new Date($(this).text()).toString());
});
Friday, September 8, 2017
MusicEvent JSON-LD
<script type="application/ld+json">{
"@context": "http://schema.org",
"@type": "MusicEvent",
"location":{
"@type": "MusicVenue",
"name": "Rachel M. Schlesinger Concert, Alexandria, VA 22302, USA",
"address": "Rachel M. Schlesinger Concert, Alexandria, VA 22302, USA"
},
"name": "Lam Phương 68 Năm - Tình Người & Tình Quê",
"description": "Show Ca Nhạc Lam Phương 68 Năm - Tình Người & Tình Quê is at Rachel M. Schlesinger Concert, Alexandria, VA 22302, USA on 2017-10-15 13:00 with Anh Dũng,Diễm Liên,Hà Thanh Xuân,Hồ Hoàng Yến,Mạnh Quỳnh,Ngọc Hạ,Thanh Tuyền,Thế Sơn,Ban Nhạc Hoàng Thi Thi.",
"image": "https://lh3.googleusercontent.com/VYYZ0POhoRg09EMJMvbpDB5ZpmtSgGJYb0RZFioX2QKeyiB6KpvhSvaEXoAZugRJhLZia34ebbe7wOeSNqne38mM=s0",
"startDate": "2017-10-15 13:00",
"endDate": "2017-10-15 16:00",
"performer": [
{
"@type": "Person",
"name": "Anh Dũng",
"sameAs": "https://showcanhac.com/shows?q=Anh+Dũng"
},
{
"@type": "Person",
"name": "Ban Nhạc Hoàng Thi Thi",
"sameAs": "https://showcanhac.com/shows?q=Ban+Nhạc+Hoàng+Thi+Thi"
},
{
"@type": "Person",
"name": "Diễm Liên",
"sameAs": "https://showcanhac.com/shows?q=Diễm+Liên"
},
{
"@type": "Person",
"name": "Hà Thanh Xuân",
"sameAs": "https://showcanhac.com/shows?q=Hà+Thanh+Xuân"
},
{
"@type": "Person",
"name": "Hồ Hoàng Yến",
"sameAs": "https://showcanhac.com/shows?q=Hồ+Hoàng+Yến"
},
{
"@type": "Person",
"name": "Mạnh Quỳnh",
"sameAs": "https://showcanhac.com/shows?q=Mạnh+Quỳnh"
},
{
"@type": "Person",
"name": "Ngọc Hạ",
"sameAs": "https://showcanhac.com/shows?q=Ngọc+Hạ"
},
{
"@type": "Person",
"name": "Thanh Tuyền",
"sameAs": "https://showcanhac.com/shows?q=Thanh+Tuyền"
},
{
"@type": "Person",
"name": "Thế Sơn",
"sameAs": "https://showcanhac.com/shows?q=Thế+Sơn"
}
]
}
</script>
"@context": "http://schema.org",
"@type": "MusicEvent",
"location":{
"@type": "MusicVenue",
"name": "Rachel M. Schlesinger Concert, Alexandria, VA 22302, USA",
"address": "Rachel M. Schlesinger Concert, Alexandria, VA 22302, USA"
},
"name": "Lam Phương 68 Năm - Tình Người & Tình Quê",
"description": "Show Ca Nhạc Lam Phương 68 Năm - Tình Người & Tình Quê is at Rachel M. Schlesinger Concert, Alexandria, VA 22302, USA on 2017-10-15 13:00 with Anh Dũng,Diễm Liên,Hà Thanh Xuân,Hồ Hoàng Yến,Mạnh Quỳnh,Ngọc Hạ,Thanh Tuyền,Thế Sơn,Ban Nhạc Hoàng Thi Thi.",
"image": "https://lh3.googleusercontent.com/VYYZ0POhoRg09EMJMvbpDB5ZpmtSgGJYb0RZFioX2QKeyiB6KpvhSvaEXoAZugRJhLZia34ebbe7wOeSNqne38mM=s0",
"startDate": "2017-10-15 13:00",
"endDate": "2017-10-15 16:00",
"performer": [
{
"@type": "Person",
"name": "Anh Dũng",
"sameAs": "https://showcanhac.com/shows?q=Anh+Dũng"
},
{
"@type": "Person",
"name": "Ban Nhạc Hoàng Thi Thi",
"sameAs": "https://showcanhac.com/shows?q=Ban+Nhạc+Hoàng+Thi+Thi"
},
{
"@type": "Person",
"name": "Diễm Liên",
"sameAs": "https://showcanhac.com/shows?q=Diễm+Liên"
},
{
"@type": "Person",
"name": "Hà Thanh Xuân",
"sameAs": "https://showcanhac.com/shows?q=Hà+Thanh+Xuân"
},
{
"@type": "Person",
"name": "Hồ Hoàng Yến",
"sameAs": "https://showcanhac.com/shows?q=Hồ+Hoàng+Yến"
},
{
"@type": "Person",
"name": "Mạnh Quỳnh",
"sameAs": "https://showcanhac.com/shows?q=Mạnh+Quỳnh"
},
{
"@type": "Person",
"name": "Ngọc Hạ",
"sameAs": "https://showcanhac.com/shows?q=Ngọc+Hạ"
},
{
"@type": "Person",
"name": "Thanh Tuyền",
"sameAs": "https://showcanhac.com/shows?q=Thanh+Tuyền"
},
{
"@type": "Person",
"name": "Thế Sơn",
"sameAs": "https://showcanhac.com/shows?q=Thế+Sơn"
}
]
}
</script>
Google Search Gallery
The search gallery shows how structured data can produce rich results in Google Search. In addition to single Rich Card results, host lists can feature a carousel from a single site. Host lists require markup on list pages.
https://developers.google.com/search/docs/guides/search-gallery
https://developers.google.com/search/docs/guides/search-gallery
Thursday, September 7, 2017
Download the App Engine SDK for Java
There is a new version of the SDK available.
-----------
Latest SDK:
Release: 1.9.55
Timestamp: Wed Aug 30 16:42:17 EDT 2017
API versions: [1.0]
-----------
Your SDK:
Release: 1.9.34
Timestamp: Thu Feb 11 14:36:15 EST 2016
API versions: [1.0]
-----------
Please visit https://developers.google.com/appengine/downloads for the latest SDK.
-----------
Latest SDK:
Release: 1.9.55
Timestamp: Wed Aug 30 16:42:17 EDT 2017
API versions: [1.0]
-----------
Your SDK:
Release: 1.9.34
Timestamp: Thu Feb 11 14:36:15 EST 2016
API versions: [1.0]
-----------
Please visit https://developers.google.com/appengine/downloads for the latest SDK.
Saturday, September 2, 2017
How to link to Google Maps
<c:if test="${not empty show.locationName }">
<div>
<span class="glyphicon glyphicon-map-marker" aria-hidden="true" title="Location"></span> <a href='http://maps.google.com/maps?q=${show.locationLatitude},${show.locationLongitude }&ll=${show.locationLatitude},${show.locationLongitude }&z=17' title='View location in Google Maps'><c:out value="${show.locationName }"></c:out></a>
</div>
</c:if>
<div>
<span class="glyphicon glyphicon-map-marker" aria-hidden="true" title="Location"></span> <a href='http://maps.google.com/maps?q=${show.locationLatitude},${show.locationLongitude }&ll=${show.locationLatitude},${show.locationLongitude }&z=17' title='View location in Google Maps'><c:out value="${show.locationName }"></c:out></a>
</div>
</c:if>
Tuesday, August 29, 2017
product-list.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'pm-products',
templateUrl: './product-list.component.html'
})
export class ProductListComponent {
pageTitle: string = 'Product List';
}
@Component({
selector: 'pm-products',
templateUrl: './product-list.component.html'
})
export class ProductListComponent {
pageTitle: string = 'Product List';
}
Thursday, August 24, 2017
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'pm-root',
template: `
<div><h1>{{pageTitle}}</h1>
<pm-products></pm-products>
</div>
`
})
export class AppComponent {
pageTitle: string = 'Product Management';
}
@Component({
selector: 'pm-root',
template: `
<div><h1>{{pageTitle}}</h1>
<pm-products></pm-products>
</div>
`
})
export class AppComponent {
pageTitle: string = 'Product Management';
}
Thursday, July 13, 2017
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { ProductListComponent } from './products/product-list.component';
@NgModule({
declarations: [
AppComponent,
ProductListComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
Thursday, July 6, 2017
index.html
<!doctype html>
<html lang="en">
<head>
<title>ProductManagement</title>
<base href="/">
</head>
<body>
<pm-root></pm-root>
</body>
</html>
<html lang="en">
<head>
<title>ProductManagement</title>
<base href="/">
</head>
<body>
<pm-root></pm-root>
</body>
</html>
Monday, June 19, 2017
Friday, May 5, 2017
Wednesday, April 5, 2017
Sunday, March 5, 2017
Saturday, February 11, 2017
Subscribe to:
Posts (Atom)