Living somewhere in Technology and Language
วันอาทิตย์ที่ 2 มิถุนายน พ.ศ. 2567
Serial USB to LG8F328P
วันพุธที่ 5 มกราคม พ.ศ. 2565
ขยายพื้นที่ Hyper V บน Windows 10
ผมละแปลกใจว่า ตอนสร้างพื้นที่ Hyper V สำหรับ Ubantu แล้วมีพื้นที่ สัก 50 G แต่ตอนใช้งานจริงทำได้แค่ 12 G
แล้วจะทำอย่างไรให้ใช้งานได้เต็มตามที่จองพื้นที่ได้ ผมได้วิธีจาก นักภาษาศาสตร์เขา Post ไว้ ซึ่งก็ทำได้ตามนั้น ผมจดวิธีทำนี้ไว้เผื่อเขาได้ลบหายไป Expand Ubantu disk ซึ่งมีขั้นตอนดังนี้
1. ปิด VM
2. เปิด Hyper V manager > Setting > Hard Drive > Edit > Next
3. เลือกขนาดที่ต้องการขยาย กด > finish
4. เปิด VM อีกครั้ง
5. เปิด terminal แล้วพิมพ์
sudo apt install cloud-guest-utils
6 ขยายพื้นที่ sda
sudo growpart /dev/sda 1
(มีเว้นว่างหนึ่งเคาะ ระหว่าง sda กับ 1)
7. สุดท้ายขยานขนาด
sudo resize2fs /dev/sda1
(ตอนนี้พิมพ์ติดกัน sda1)
8. เปิดโปรแกรม System Monitor ดูพื้นที่อีกครั้งจะได้พื้นที่เต็ม ตามที่ต้องการ 50 G
วันศุกร์ที่ 6 พฤศจิกายน พ.ศ. 2563
Using Netbeans 11 with Weblogic 12
ดูเหมือนว่า Netbeans 11 ไม่มี Plug-in ให้มาด้วย แต่ไม่เป็นไรดาวห์โหลด plug-in จากไฟล์นี้ ต่อไปนำไฟล์นี้ในใส่เป็น plug-in ได้ เมื่อเปิดเซิร์บเวอร์ Weblogic 12 และทำตามเดิมเหมือนที่เคยทำกับ Tomcat แต่พอร์ทที่ติดต่อจะเปลี่ยนเป็น 7001 และผมใช้ เนมสเปส mavenweblogic
http://localhost:7001/mavenweblogic/rest/hello
วันจันทร์ที่ 22 มิถุนายน พ.ศ. 2563
Using Netbeans runs RESTful on Tomcat 9
ที่ทดสอบนี้ใช้ Netbeans IDE 11.3 ใช้ Tomcat 9.0.16
วิธีการก็คล้ายๆ เพียงแต่ใช้เครื่อมมือไม่เหมือนกัน เริ่มทำกันดังนี้
- สร้างโปรเจ็ค File > New Project > Java with Maven > Web Application
- ไฟล์ pom.xml ใส่ dependency :
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.25.1</version>
</dependency> - สร้างไฟล์ web.xml ใน WEB-INF ใส่ข้อความดังนี้
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
<display-name>TomcatNetBeans</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.mycompany.tomcatnetbeans</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
ให้สังเกตว่า namespace ของผมเป็น com.mycompany.tomcatnetbeans ซึ่งต้องเปลี่ยนให้ตรงกับ namespace ที่เครื่องเราใช้ - สร้าง ไฟล์ Hello.java
package com.mycompany.tomcatnetbeans;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class Hello {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String helloText() {
return "Hello, Restful";
}
} - ไปหน้าต่าง Services เพื่อ เพิ่ม Server Tomcat เมื่อเพิ่มแล้ว คลิกขวา เพื่อให้เซิร์บเวอร์ทำงาน
- กด F11 เพื่อ Build Project และ F6 เพื่อ Run
- เปิด เบราเซอร์ ไปที่ http://localhost:8080/TomcatNetBeans/rest/hello
วันพฤหัสบดีที่ 28 พฤษภาคม พ.ศ. 2563
เริ่มต้นใช้ PrimeNg กับ Angular
วันเสาร์ที่ 16 พฤษภาคม พ.ศ. 2563
Array Filter in Observable Angular
import { map } from 'rxjs/operators';
const nums = of(1, 2, 3); const squareValues = filter((val: number) => val %2 == 0); const squaredNums = squareValues(nums); squaredNums.subscribe(x => console.log(x)); ผมก็เข้าใจว่า ตัวแปร nums เป็นอาร์เรย์ทั่วไป จึงใช้ map หรือใช้ filter โดยมีตัววิ่งเป็นข้อมูลแต่ละตัวในอาร์เรย์ ก็ดูไม่มีปัญหาอะไร ผมเลยลองใช้กับอาร์เรย์ของออบเจ็กต์
const users= of(User[])
const filterOf = filter((user:User) => user.id%2==0);
coonst observable = filterOf(users);
ปรากฎว่าใช้ไม่ได้ มีแจ้งว่า ตัวแปรเข้าต้องเป็นอาร์เรย์ User[] แต่ใส่มาเป็น User ผมเลยคิดว่ามันไม่เหมือนกันกับ of(1,2,3) และเป็น number[] เหรอ?
เมื่อไม่ให้ใช้ก็ไม่ใช้ แล้ว จะให้ใส่เป็นอาร์เรย์ User[] ใช่ไหม ได้ แก้ใหม่เป็น
const filterOf = map((uses:User[]) => users.filter((user)=>user.id%2==0));
ปรากฎว่าได้จริงๆ ในตัวอย่างไม่เห็นบอกยกตัวอย่างแบบอาร์เรย์ เลยนึกว่าเป็นอาร์เรย์แล้ว ไม่ใช่เลย แก้โดยใช้ map อีกที และแตกย่อย โดย filter
วันศุกร์ที่ 10 เมษายน พ.ศ. 2563
Raspberry Pi with Serial USB
รายการที่ต้องใช้
- CH340G Breakout
- สายต่อ 3 เส้น (ต่อกับ CH340G Breakout กับ Pin ของ Raspberry Pi)
- สาย USB (ต่อกับ CH340G Breakout กับ คอมพิวเตอร์)
หมายเหตุ ระบบติดต่อนี้ ต้องกำหนด Raspberry Pi ต่อเชื่อมแบบ Serial ได้ เข้าแก้ไขโดยใช้คำสั่ง raspi-config