ปัญหานี้ เกิดขึ้นจาก การตั้งเส้นทาง PYTHONHOME วิธีการแก้คือ ลบ path นี้ทิ้งซะ (เผื่อใครติดปัญหานี้)
วันจันทร์ที่ 16 ธันวาคม พ.ศ. 2567
วันอาทิตย์ที่ 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
วันจันทร์ที่ 6 เมษายน พ.ศ. 2563
Raspberry Pi Zero (RPZ) VNC
การต่อเมื่อกับ RPZ ก็ใช้ PuTTY กรณีที่รู้เลข IP ก็ใส่ได้เลย แต่ปัญหามักพบว่าในตอนแรกจะไม่ทราบ ไอพี แก้ปัญหาโดยการติดต่อโดยใช้ PuTTY ติดต่อใช้ Host Name : raspberrypi.local และ Port: 22
เมื่อ login ได้แล้ว
ตอนี้หาจะดูไอพี ใช้คำสั่ง
ifconfig
ต่อมาถ้าต้องการการเข้าโหมด WindowX บ้าง ใช้คำสั่ง
sudo startx
ในขั้นตอนนี้ PuTTY จะทำงานในโหมดกราฟฟิกไม่ได้แล้ว ให้เปิด
วันจันทร์ที่ 30 ธันวาคม พ.ศ. 2562
Tiny AVR ISP ATtiny44 USBTinyISP Programmer
ซื้อมา ตามภาพ เพียงแต่มาต่อขาเอง และเชื่อมกับ Arduino UNO
https://learn.adafruit.com/usbtinyisp/drivers
ผมทดลองกับ Windows 10
ทดลองกับโปรแกรม Example/ 01.Basik/ Blinking
ถ้าไม่มีอะไรผิดพลาด ก็จะได้ผลตามโปรแกรม Blink
ทำกลับให้เหมือนเดิม ใช้ Burn Bootloader (ตอนนี้ยังต่อสายเหมือนเดิม)
วันเสาร์ที่ 29 มิถุนายน พ.ศ. 2562
Hello Max II EMP204T100C5
แล้วทดลองเขียนโปรแกรม VHDL ให้ LED ต่อกับขา 21 (ตามเลขบนบอร์ด)
library ieee;
use ieee.std_logic_1164.all;
entity Hello is
port(
LED_0: out std_logic -- Pin 21
);
end Hello;
architecture rtl of Hello is
begin
LED_0 <= '1'; -- Output to LED_0
end rtl;
ทำงานได้จริง
โปรแกรมที่ใช้ Quartus Prime 18.1.0 Lite Edition
XOR logic
ทดลองอีกที ครานี้เขียนด้วยภาษา Verilog จากตัวอย่างที่ให้มากับโปรแกรม Quartus Prime
module xor_logic (x1, x2, f);
input x1, x2;
output f;
assign f = (x1 & ~x2)|(~x1 & x2);
endmodule
ให้ทำการ compile เลือกไอคอน สีเขียวรูปสามเหลี่ยม(run) แล้วค่อยกำหนดพิน
และเมื่อคอมไพล์เสร็จ จึงค่อยกำหนดพินดังรูปนี่้
ให้พิน PIN_1, PIN_2 แทน x1, x2, และ PIN_7 แทน f
เมื่อ กำนหนด pins ทั้งหมดแล้ว ขั้นตอนไป คือ upload ไปยัง board MaxII emp240
วิธีการคือ ต้องต่อกับ usb blaster ให้คลิกที่เมนู Programmer แล้วเลือก ตามรูปต่อไปนี้ แล้วให้คลิก Start รอจนครบ 100% ถือว่าสำเร็จ
ทดสอบโลจิกนี้ เหมือนกันได้จริง ต่างกันเป็นเท็จ ทดสอบกับ LED ดังรูปนี้
วันพุธที่ 26 มิถุนายน พ.ศ. 2562
Sipeed Tang / Lichee Tang
Sipeed Tang / Lichee Tang
วันพุธที่ 8 พฤษภาคม พ.ศ. 2562
STM32F103C8T6
STM32F103C8T6
ผมได้ทดลองการใช้งาน STM32F103C8T6 ตามวิธีในเว็บต่างๆ เช่น Meetjoeblog แต่ พบปัญหาอย่างหนึ่งคือ upload ไม่ได้ ของผมทดลองกับ Windows 10วิธีแก้ปัญหาคือ ไป download โปรแกรม STM32 Flash loader demonstrator เพื่อล้างหน่วยความได้ที่ถูกล็อกก่อน ซึ่งต่อไปก็จะใช้งานได้





















