teleren/devto huggingface dataset:
Phần mềm Ôn Tập Mô Phỏng các tình huống giao thông v2.0.0
Tags: oto
Published: 2024-03-13 01:58:04

---
title: Phần mềm Ôn Tập Mô Phỏng các tình huống giao thông v2.0.0
published: true
date: 2024-02-29 14:54:57 UTC
tags: oto
canonical_url: https://eplus.dev/phan-mem-on-tap-mo-phong-cac-tinh-huong-giao-thong-v200
---

### Link bộ cài: dung lượng **5.5 GB**

**Bộ cài phiên bản 64-bit (x64):**

1. [Tải về OnTapMoPhongSetup\_v200\_x64 (Link gốc)](https://www.mophonggiaothong.com/PMMP/OnTapMoPhong/OnTapMoPhongSetup_v200_x64.rar)

2. [Tải về OnTapMoPhongSetup\_v200\_x64 (Link Google Drive)](https://drive.google.com/file/d/1aFXHuYWF_bCNk_zrQ22hA0yW8WKVqk3L/view?usp=sharing)

**Bộ cài phiên bản 32-bit (x86):**

[Tải về OnTapMoPhongSetup\_v200\_x86.rar](https://www.mophonggiaothong.com/PMMP/OnTapMoPhong/OnTapMoPhongSetup_v200_x86.rar)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1709218293399/b5b4edc8-fd3f-4b61-bf51-e1f237b300d4.png align="center")

### Hướng dẫn

Mật khẩu giải nén file rar: <mark>mophonggiaothong2024</mark>

Chạy file **setup.exe** và thực hiện tuần tự từng bước để cài đặt

### Chi tiết cập nhật

**1.    Điều chỉnh đồ họa các tình huống:** [  
](https://www.mophonggiaothong.com/PMMP/OnTapMoPhong/OnTapMoPhongSetup_v200_x64.rar)\- Đồ họa lại một số tình huống để nâng cao chất lượng hình ảnh, giúp người học dễ quan sát, nhận biết (19 tình huống)  
\- Đồ họa lại 12 video tình huống thực tế (ảnh mờ, độ phân giải thấp) thành clip 3D để đồng nhất, nâng cao chất lượng video, giúp người học nhận diện tình huống dễ hơn  
\- Kéo dài mốc thời gian chấm điểm (mốc 5đ, mốc 0đ) để giúp người học dễ nhận biết, dễ xử lý tình huống so với phần mềm trước  
**2.    Thay đổi tính năng phần mềm:**  
***a)    Phần mềm ôn tập: thêm 3 tính năng***  
\-    Bổ sung và hiển thị tên tình huống khi play video để gợi nhớ  
\-    Bổ sung các nút cho phép chuyển sang các tình huống Trước/Sau và Hiển thị thanh và cờ chấm điểm cho từng tình huống   
\-    Phần THI THỬ được thiết kế giao diện như khi sát hạch để học viên làm quen  
***b)    Phần mềm sát hạch: thêm 2 tính năng***  
\-    Tăng thời gian đếm ngược (nghỉ) giữa các tình huống từ 3s lên 10s để học viên có thêm thời gian chuẩn bị  
\-    Điều chỉnh không cho click đúp vào phần video; khi mở phần mềm thì giao diện chiếm toàn màn hình, không hiển thị thanh taskbar của Windows (hạn chế mất focus)  
***c)    Phần mềm quản trị: thêm 2 tính năng***  
\-    Bổ sung thêm xuất danh sách Vắng, đạt, trượt với định dạng pdf (trước đây là exel) để có thể in luôn  
\-    Chỉnh sửa biểu mẫu in kết quả (hiển thị thêm version để phân biệt với các phiên bản trước)

---

> Từ ngày 5/1/2024, Cục Đường bộ Việt Nam đã tổ chức tập huấn và cập nhật phần mềm mô phỏng tình huống giao thông. Phần mềm mới được điều chỉnh đồ họa, tăng thời gian chuẩn bị và kéo dài thời gian chấm điểm, nhằm nâng cao hiệu quả đào tạo và sát hạch lái xe. Các cơ sở đào tạo dự kiến sẽ cập nhật phần mềm mới từ 1/2/2024.

---------
https://eplus.dev/phan-mem-on-tap-mo-phong-cac-tinh-huong-giao-thong-v200
Http Request Form Data at Golang
Tags: go, backend
Published: 2024-02-29 15:41:24


There are several things you need to remember to insert data into a request
import package bytes and net/url.

```
import "bytes"
import "net/url"

```
Create a new function, the content is a request to http://localhost:8080/user with the data
inserted is ID .
`func fetchUser(ID string) (student, error) {
 var err error
 var client = &http.Client{}
 var data student
 var param = url.Values{}
 param.Set("id", ID)
 var payload = bytes.NewBufferString(param.Encode())
 request, err := http.NewRequest("POST", baseURL+"/user", payload)
 if err != nil {
 return data, err
 }
 request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
 response, err := client.Do(request)
 if err != nil {
 return data, err
 }
 defer response.Body.Close()
 err = json.NewDecoder(response.Body).Decode(&data)
 if err != nil {
 return data, err
 }
 return data, nil
}
`
The contents of the function above can be seen to have some similarities with the function
fetchUsers() before.
The url.Values{} statement will produce an object that will later be used
as a data request form. On this object what data needs to be set
want to be sent using the Set() function as in param.Set("id", ID) .
The statement bytes.NewBufferString(param.Encode()) means, a form data object
encoded and then converted into bytes.Buffer form, which is later inserted
in the third parameter of the http.NewRequest() function call.
Because the data to be sent is encoded, the header needs to be set to a type
the content of the request. The code request.Header.Set("Content-Type", "application/x www-form-urlencoded") means that the request content type is set as application/x www-form-urlencoded .

The response from the /user endpoint is not a slice, but an object. Then on
When decoding, you need to ensure the type of variable that contains the decoded response data
is student (not []student ).
Continue to coding, finally, implement fetchUser() in the function
main() .
`func main() {
  var user1, err = fetchUser("E001")
  if err != nil {
  fmt.Println("Error!", err.Error())
  returns
  }
  fmt.Printf("ID: %s\t Name: %s\t Grade: %d\n", user1.ID, user1.Name, user1.G
}`
For testing purposes, we hardcode the ID value "E001" . Run the program
to test whether the data returned is appropriate.
My leap day wish Feb 29
Tags: productivity
Published: 2024-02-29 15:38:13

**2024** 
I am working as a Software Engineer in Singapore.
I will have an AWS SA certification in this year.
I will try to release one small web product on production. 
I will try to do web full stack development additional Vue or React in my full-time job.
I will try to get a solid discipline on my daily schedule to achieve the above goals. 

**_At the end of 2024, I want to become a AWS certified full-stack engineer._**

**2025** 
I will be still working as a Software Engineer in Singapore. 
I will try to upgrade my requirements in my professional career.

**2026**
I will be still working as Software Engineer in Singapore. 
I will try to promote the next level at my professional career job.
3 years later, I want to become a solid senior software engineer at my professional career job.

**2027**
I might stay working as software engineer in Singapore or might relocate to USA or might train the Big tech interview questions alone to get the full-time job at Big tech companies.

At 2027 next leap year, I will review myself again to become a better person than this leap year 2024.

Anyways, I love to live in this moment 2024 Feb 29.
previous 4 years ago, I started working as junior web developer and learned the new things, found my passion and live my life step by step. now I am here and all is going well for me. I am still living in my dream , breathing in and out, stay knowing myself.

All is well, I love to breath every single day. 
Good luck to me!
最佳 FunCaptcha 解算器 - 工作
Published: 2024-02-29 15:37:26

随着在线安全措施的持续发展，FunCaptcha作为一种有趣且有效的CAPTCHA变体脱颖而出。FunCaptcha通过提供互动性强和视觉上吸引人的谜题，与传统的基于文本的挑战不同，它提高了用户体验的同时保持了高水平的安全性。然而，手动解决FunCaptcha挑战可能既耗时又会影响用户体验。为此，高级CAPTCHA解决方案已经彻底改变了我们处理FunCaptcha挑战的方式。本文将探讨2024年最快的FunCaptcha解决服务——Capsolver，它是顶级CAPTCHA解决方案，提供了一个全面指南，讲述了如何高效解决FunCaptcha挑战。

此外，这里有一个Capsolver的特别代码：***WSC***。兑换后，每次充值都会获得额外5%的奖励。

### 深入了解FunCaptcha:
FunCaptcha通过提供有趣的互动谜题从众多CAPTCHA变体中脱颖而出。这些谜题不仅仅是选择特定物体或解决拼图等视觉上吸引人的任务，还能提升用户体验并保持高度的安全性。

### 快速CAPTCHA解决方案的需求:
随着在线活动的不断增加，对于高效且快速的CAPTCHA解决方案的需求也随之上升。手动解决FunCaptcha挑战不仅耗时，还会阻碍生产力和用户体验。快速的CAPTCHA解决方案提供了一种自动化的解决办法，能够迅速分析并解决FunCaptcha挑战，使用户能够无缝地通过验证过程。

### 2024年顶级CAPTCHA解决方案:
**Capsolver**：最快的FunCaptcha解决服务：
Capsolver以其先进的功能和尖端技术而在2024年成为最快的FunCaptcha解决服务。Capsolver的亮点包括：

- **自动识别**：Capsolver采用先进的图像处理技术和机器学习算法，自动识别并解释FunCaptcha谜题。这确保了即使是复杂挑战也能准确高效地解决。

- **无缝集成**：Capsolver提供了用户友好的Chrome扩展，使得在浏览器中的集成变得容易。安装后，扩展会自动检测FunCaptcha挑战并无缝处理解决过程。

- **CAPTCHA解决方案**：Capsolver为FunCaptcha挑战提供了一种可靠有效的解决方案，迅速完成验证过程，使用户可以继续他们所需的在线活动而无需不必要的延迟。

### 创建FunCaptcha任务:
要解决FunCaptcha，首先需要使用createTask方法创建一个任务。这需要您提供某些详细信息，如任务类型、使用FunCaptcha的网站URL、公共域密钥等。以下是任务对象结构的概览：

```json
{
  "clientKey":"YOUR_API_KEY",
  "task":
  {
    "type": "FunCaptchaTask",
    "websiteURL":"https://funcaptcha.com/",
    "websitePublicKey":"00000000-0000-0000-0000-000000000000",
    "proxy":"Your_own_proxy"
  }
}
```

提交任务后，如果成功，您应该在响应中收到一个“任务ID”。

### 检索任务结果:
创建任务后，可以使用getTaskResult方法检索结果。根据系统负载，结果

可在1至20秒内获得。

```json
POST https://api.capsolver.com/getTaskResult
Content-Type: application/json

{
  "clientKey": "YOUR_API_KEY",
  "taskId": "从createTask方法收到的任务ID"
}
```

### 使用Capsolver SDK与Python解决Funcaptcha:
Capsolver为python提供了SDK，这使得将Capsolver集成到现有项目中变得更加容易。以下是如何在Python中使用Capsolver SDK的示例：

```python
import capsolver

solution = capsolver.solve({
    "type": "FunCaptchaTask",
    "websitePublicKey": "",
    "websiteURL": "",
    "proxy": "ip:port:username:password"
})
```

### 结论:
Capsolver作为2024年CAPTCHA解决服务的领导者，为FunCaptcha挑战提供了最快速且最可靠的解决方案。通过利用先进的图像处理、机器学习算法和无缝集成，Capsolver确保了高效准确的FunCaptcha解决。借助顶级CAPTCHA解决方案Capsolver，轻松克服FunCaptcha挑战，提升在线互动体验。
What is Go 2024 Edition
Tags: go, google, programming, beginners
Published: 2024-02-29 15:26:41

Its 2024 and Go also known as Golang gets 15 years old many opensource projects like Kubernetes are built using Go and now its a perfect time to start learning the language. In this blogpost I will provide you some resources learning Go to start your coding journey with it.

What is Go and what is it used for?

Go was created in 2007 by Robert Griesemer, Rob Pike and Ken Thompson at Google and was announced in November 2009.

Go is also known as C for the 21st century and it shares similarities with C programming language. Its pretty easy today to get started with Go and here are some resources so you can start learning it.

Tour of Go
https://go.dev/tour/welcome/1

The Tour of Go lets you start learning Go with simple little exercises learning Go.

Go by Example

https://gobyexample.com/

Go by Example as the name implies shows you Go with coding example anyone can follow.


Getting help learning Go

The Go forum is a great place to ask questions about Go.

https://forum.golangbridge.org/



What about books?

Go In Action is a great book about Go written by William Kennedy , Brain Ketelsen and Erik St. Martin.
You can order it by Manning Publications following the link below.
 https://www.manning.com/books/go-in-action

So you now have some resources learning Go if you#re in interested in more blogpost like this comment below and don't forget to follow me on Twitter: https://twitter.com/NorbertFuhs

Thanks for reading have a nice day!
Introducing LectureKit: Headless Platform for Creating & Managing Online Courses
Tags: saas, developers, ai, api
Published: 2024-02-29 15:23:53

Hey there, Dev Community!

I'm excited to introduce LectureKit, a headless platform designed to revolutionize the way developers create and manage online courses. Whether you're an educator, a course creator, or a developer looking to integrate eLearning functionality into your platform, LectureKit has you covered.

[https://www.lecturekit.io](https://www.lecturekit.io)

### Crafting Engaging eLearning Experiences

LectureKit empowers developers to craft custom course platforms with its powerful editor and flexible API. Here's what sets LectureKit apart:

#### 1. Drag-and-Drop Course Builder

Say goodbye to complex course building with LectureKit's user-friendly drag-and-drop course builder. Easily create captivating online courses without the need for technical expertise.

#### 2. AI-Powered Course Creation

Let AI assist you in generating course outlines and crafting compelling content, saving you time and effort in course creation.

#### 3. Project-Based Management

Stay organized by grouping multiple courses within projects. Collaborate with your team and manage everything seamlessly in one place.

#### 4. Hosted LMS

Host your videos and content securely on LectureKit's scalable platform, ensuring high uptime, fast loading times, and worry-free maintenance.

#### 5. Analytics & Insights

Gain valuable insights into your course performance, assess engagement, and fine-tune your content to maximize impact.

### How it Works

Launching courses with LectureKit is as easy as 1-2-3-4:

1. **Create Your Courses:** Use LectureKit's course editor to build your courses effortlessly.
2. **Choose a Template:** Select from our starter templates or create your own website.
3. **Get Your API Keys:** Integrate LectureKit with your website using our API keys.
4. **Launch Your Courses:** Your courses are now ready to be accessed through your website.


### Get Started Today!

Craft stunning custom course platforms with our powerful editor, and access your content via our API for ultimate control.

Let's shape the future of online learning together with LectureKit!

[https://www.lecturekit.io](https://www.lecturekit.io/)
Elevate Your Presentations with Luxury AI Presentation Maker
Published: 2024-02-29 15:07:24

Introduction:
In today's competitive business landscape, making a lasting impression through presentations is crucial. Whether pitching to potential clients, presenting to stakeholders, or delivering a keynote address, the quality of your presentation can significantly impact your success. With the advancement of AI technology, creating captivating and impactful presentations has become more accessible than ever. Simplified presents the Luxury AI Presentation Maker, a cutting-edge tool designed to elevate your presentations to a new level of sophistication and professionalism.
Key Features of Luxury AI Presentation Maker:
Stunning Visuals: The [Luxury AI Presentation Maker](https://simplified.com/ai-presentation-maker/luxury) offers a vast library of high-quality, luxury-themed templates, graphics, and images that exude elegance and refinement. From sleek minimalist designs to opulent and lavish layouts, this tool provides the visual allure that sets your presentation apart.
Intelligent Content Generation: Say goodbye to hours spent brainstorming and drafting content. The AI-powered content generation feature of Luxury AI Presentation Maker analyzes your input and effortlessly crafts compelling and articulate narratives that resonate with your audience.
Seamless Customization: Tailoring your presentation to reflect your brand's identity and messaging is effortless with the customization options offered by Luxury AI Presentation Maker. From color schemes to typography, every element can be personalized to align with your brand's aesthetic.
Dynamic Presentation Tools: Engage and captivate your audience with dynamic presentation tools that bring your content to life. From animated transitions to interactive elements, Luxury AI Presentation Maker ensures that your presentation is not only informative but also visually captivating.
Conclusion:
In the fast-paced world of business, the ability to deliver impactful presentations with a touch of luxury can be a game-changer. With Simplified's Luxury AI Presentation Maker, you can harness the power of cutting-edge AI technology to create presentations that leave a lasting impression. Elevate your presentations to new heights of sophistication and professionalism, and make a statement that resonates with your audience. Experience the seamless blend of luxury and innovation with the Luxury AI Presentation Maker and unlock the potential to stand out in a crowded digital landscape.
Git - Move a commit to another branch
Tags: git, devops, programming
Published: 2024-02-29 15:03:17


<h3><u>Use cases</u></h3>
A developer accidentally made changes to an incorrect branch. For example, a commit containing changes related to a new feature is accidentally added to the main branch rather than the specific development branch for that feature

<h3><u>How to do ?</u></h3>
Let's say, you have committed on branch: `branchA`, instead of commit on branch: `branchB`.

**1 - Go on the branch: `branchA`**
```
$ git checkout branchA
```

**2 - Show logs**
```
$ git log
```
And normally the commit should point to the branch: `branchA`

_ex :_ _`commit 7988ef64c0d91ed6cf98b2006014b88320a4c8c0 (HEAD -> branchA)`_
Here, the hash of the commit is : `7988ef64c0d91ed6cf98b2006014b88320a4c8c0`

**3 - Copy the hash of the commit, and go on the branch: `branchB`**
```
$ git checkout branchB
```

**4 - Do the cherry-pick command with the hash of the commit (copied previously)**

```
$ git cherry-pick 7988ef64c0d91ed6cf98b2006014b88320a4c8c0
```
`cherry-pick` allows copying a specific commit from one branch and applying it to another branch.

**5 - Check if the commit has been moved**

```
$ git log
```
And normally the commit should now point to the branch: `branchB`
_ex :_ _`commit 7988ef64c0d91ed6cf98b2006014b88320a4c8c0 (HEAD -> branchB)`_
The beginning of a long journey.
Tags: webdev, beginners, programming, productivity
Published: 2024-02-29 14:55:59

I've told myself and those around me that when I eventually land a job in the tech industry I will make a long (and probably drawn-out) video on the subject. It will contain the journey I've been through, as well as the struggles involved.

I know there are many videos out there doing the same thing, but for some reason, none of them resonate with me. Sure, they sometimes go from being drug addicts, and homeless to six-figure salaries, but their journey never seems to feel realistic.

One person I am subscribed to on YouTube has a journey that only lasted a few months before he was given his first job. Does that sound realistic to you? Especially in the market we are in right now when it comes to being hired in the tech industry.

This is why I feel that when the time comes I will be posting my journey. 

Dev.to is just a place for me to be adding my steps in this journey, and to keep a record of the trials I have been through so when I need to reflect on the experience I'll have it all ready.

I will start by going backward, and working my way towards the present. At the very beginning.

Who knows, this might be a good opportunity to write a book? lol I think not.
What are Object-Relational Mappers (ORMs)?
Tags: webdev, orm, database, tutorial
Published: 2024-02-29 14:45:13

Object-Relational Mappers (ORMs) are libraries or tools that facilitate the conversion of data between incompatible type systems in object-oriented programming languages and relational databases. This allows developers to write database queries using the programming language they are working with, instead of writing SQL queries.

## How ORMs Work

ORMs work by mapping the data from the database directly to objects in the programming language being used. This is often done through a model class in the programming language that represents a table in the database.

1. Mapping: The ORM maps an object model’s attributes to database table columns.

2. Synchronization: It keeps the object and the database in sync, reflecting changes made to the object in the database and vice versa.

3. Abstraction: Provides a high-level abstraction over database operations, allowing developers to avoid writing SQL code directly.

## Benefits of Using ORMs

- Productivity: By automating the repetitive task of writing SQL queries, ORMs can significantly increase development speed.

- Maintainability: Code is easier to maintain and understand when business logic and database queries are not mixed.

- Portability: ORMs abstract the underlying database, making it easier to switch databases if needed.

## Drawbacks of Using ORMs

- Performance: ORMs can introduce overhead, potentially leading to slower performance compared to optimized SQL queries.

- Complexity: For complex queries, ORMs can be less efficient and harder to use than raw SQL.

- Learning Curve: Understanding how an ORM works can require additional learning time.

## Architectural View of ORMs

Let’s visualize the concept of ORMs with diagrams and a comparison table.

**Diagram: ORM Process:**
![ORM Process generated by Mermaid Chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3wvu1yywaep60owi3vmx.png)

A flowchart illustrating the ORM process, from object creation in the application to data storage in the database:

![Flowchart showing ORM Process Interaction Database](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/va0pu4490ocidx5zeok9.png)

A sequence diagram showing the interaction between the application, ORM, and database during a query operation:

![Sequence Diagram of Query Flow](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kj8d6k77lc3isr7iqkle.png)



## Comparison Table: ORM vs. Raw SQL

![Comparison Table generated by Table Generator](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwp4ul9jzg09y7yz6s9d.png)

Object-Relational Mappers offer a convenient way to interact with databases using the programming language of your choice. While they bring significant benefits in terms of development speed and code maintainability, it’s important to be aware of their potential drawbacks, especially concerning performance and complexity for advanced queries.

By understanding and leveraging ORMs effectively, developers can streamline their database operations and focus more on business logic and application development.
Docker: [output clipped, log limit 2MiB reached]
Tags: outputclipped, docker, loglimit
Published: 2024-02-29 14:27:11

Sometimes the builds inititated from Dockerfile would be taking longer time to complete than usual. This depends on the step we write in the Dockerfile and the process it would take to complete that particular step as a layer. 

If an entire project wants to get built as a docker image then we may end up with log limiting issues in docker depending on the specification of the VM where the docker is installed. 

If an error pops up like: "docker clipped log limit", please follow the configuration provided below to get it resolved.


Configuration to be added in the docker.service file. 

Navigate to the below location:
/etc/systemd/system/multi-user.target.wants/

edit the file "docker.service"

Then, under the [Service] tag, add the environment variables:
Environment="BUILDKIT_STEP_LOG_MAX_SIZE=95971520"
Environment="BUILDKIT_STEP_LOG_MAX_SPEED=7048576"

This would increase the log size in docker.
How To Download An Old Version of Chromium
Tags: chromium, oldversion, chrome
Published: 2024-02-29 14:16:17

Sometimes I need to experiment on old versions of Chrome or Chromium, but find it hard to get a specific version.

Luckily, Google maintains snapshots of Chromium at [this page](https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html).

However, I only see the revision of each snapshot. It is hard to find the version I need from hundreds of thousands of snapshots. I have to try and install many versions, trying to find my version using binary search.

Then I decided to collect version information and map each major version, also known as milestone, to its latest revision.

Finally I embedded the data into a user-friendly website:

👉 https://chromium-versions.gera2ld.space/

Now I can just go to the website, select the platform I need, choose the desired milestone, and download the latest revision.

![chromium-versions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9dqdqqv824rsw4bqtivy.png)