<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Daffa Aminuddin">
<title>Blog</title>
<meta name="publisher" content="Mesinpintar">
<meta property="og:site_name" content="Mesinpintar">
<meta name="robots" content="index, follow">
<meta name="description" content="Read our blog articles here, about machine learning and AI to today's IT developments.">
<meta name="keywords" content="articles, blog, Mesinpintar">
<meta property="og:title" content="Blog" />
<meta property="og:image" content="https://img.mesinpintar.com/apa-itu-machine-learning.jpg" />
<meta property="twitter:image" content="https://img.mesinpintar.com/apa-itu-machine-learning.jpg" />
<meta property="og:url" content="https://www.mesinpintar.com/blog/blog" />
<meta property="og:site_name" content="Mesinpintar">
<meta property="og:description" content="Read our blog articles here, about machine learning and AI to today's IT developments." />
<meta property="twitter:title" content="Blog" />
<meta property="twitter:url" content="https://www.mesinpintar.com/blog/Blog" />
<meta name="twitter:card" content="summary_large_image">
<meta property="og:type" content="article">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0"/>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@48,400,1,0"/>
<link rel="stylesheet" href="/styles-2.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://www.mesinpintar.com/about",
"url": "https://www.mesinpintar.com/about",
"name": "About",
"description": "Learn more about Mesinpintar and our mission to provide free productivity tools for everyone.",
"isPartOf": {
"@id": "https://www.mesinpintar.com/#website"
},
"breadcrumb": {
"@id": "https://www.mesinpintar.com/about#breadcrumb"
},
"inLanguage": "en"
},
{
"@type": "BreadcrumbList",
"@id": "https://www.mesinpintar.com/about#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.mesinpintar.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blogs",
"item": "https://www.mesinpintar.com/blog"
}
]
}
]
}
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-638D1K569H"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-638D1K569H');
</script>
<style>
.card {
display: flex;
flex-direction: row;
border: 1px solid #ddd;
border-radius: 8px;
margin-bottom: 20px;
overflow: hidden;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
cursor: pointer;
height: 200px; /* Tetapkan tinggi tetap untuk kartu */
}
.card img {
width: 300px;
height: 200px; /* Tetapkan tinggi gambar agar seragam */
object-fit: cover; /* Potong gambar agar tetap proporsional */
border-right: 1px solid #ddd; /* Tambahkan batas untuk pemisah gambar dan konten */
}
.card-content {
padding: 40px;
flex: 1;
}
.card-title {
font-size: 1.3em;
margin-bottom: 10px;
}
.card-date {
font-size: 0.8em;
margin-bottom: 10px;
}
.card-description {
font-size: 1.0em;
color: #555;
overflow: hidden; /* Sembunyikan teks yang melampaui batas */
text-overflow: ellipsis; /* Tambahkan "..." jika teks terpotong */
display: -webkit-box; /* Gunakan layout fleksibel */
-webkit-line-clamp: 3; /* Batasi hingga 3 baris */
-webkit-box-orient: vertical;
}
.load-more {
display: block;
width: 100%;
padding: 10px;
text-align: center;
background-color: #007bff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
/* Tambahkan media queries untuk perangkat mobile */
@media (max-width: 768px) {
.card {
flex-direction: column; /* Susun vertikal untuk layar kecil */
height: auto; /* Izinkan tinggi fleksibel */
}
.card img {
width: 100%; /* Gambar memenuhi lebar kartu */
height: auto;
border-right: none; /* Hilangkan garis batas untuk desain vertikal */
}
.card-content {
padding: 20px; /* Kurangi padding untuk layar kecil */
}
.card-title {
font-size: 1.2em; /* Sesuaikan ukuran font */
}
.card-description {
font-size: 1em; /* Sesuaikan ukuran font */
}
}
</style>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3735713809451778" crossorigin="anonymous"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
<a class="navbar-brand" href="/">
<img
src="https://img.mesinpintar.com/banner-new-mesinpintar.png"
alt="Mesinpintar Logo"
style="height: 40px; width: auto;"
>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<!-- Home -->
<li class="nav-item"><a class="nav-link" href="/">Home</a></li>
<!-- Dropdown for Expenses Tracking -->
<li class="nav-item"><a class="nav-link" href="/expenses-tracking">Expenses Tracking</a></li>
<!-- Dropdown for Tools -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="toolsDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Tools
</a>
<ul class="dropdown-menu bg-light" aria-labelledby="toolsDropdown">
<li><a class="dropdown-item" href="/cv-extractor">CV Bulk Extractor</a></li>
<li><a class="dropdown-item" href="/excel-to-json-xml">Excel to JSON/XML</a></li>
<li><a class="dropdown-item" href="/paraphrase">Paraphrase</a></li>
<li><a class="dropdown-item" href="/background-remover">Image Background Remover</a></li>
<li><a class="dropdown-item" href="/all-tools">All Tools</a></li>
</ul>
</li>
<!-- Pricing -->
<li class="nav-item"><a class="nav-link" href="/pricing">Pricing</a></li>
<!-- Profile and Authentication -->
<li class="nav-item"><a class="btn btn-outline-primary me-2 gy-3" href="/login">Login</a></li>
<li class="nav-item"><a class="btn btn-primary me-2 gy-3" href="/register">Register</a></li>
</ul>
</div>
</div>
</nav>
<div class="container py-4 pt-5">
<div class="row justify-content-center pt-5">
<div id="articles-container">
<!-- Articles will be populated here -->
</div>
<button id="load-more" class="load-more">Load More</button>
</div>
</div>
<div>
<button class="chatbot-toggler">
<span class="material-symbols-rounded">comment</span>
<span class="material-symbols-outlined">close</span>
</button>
<div class="chatbot">
<header>
<h2>Mesinpintar Chatbot</h2>
<span class="close-btn material-symbols-outlined">close</span>
</header>
<ul class="chatbox">
<li class="chat incoming">
<span class="material-symbols-outlined">robot_2</span>
<p>Hi there 👋, I am a chat assistant powered by meta-Llama-3.1 model. How can I help you today?</p>
</li>
</ul>
<div class="chat-input">
<textarea placeholder="Enter a message..." spellcheck="false" required></textarea>
<span id="send-btn" class="material-symbols-rounded">send</span>
</div>
</div>
<script src="/scripts-chat.js"></script>
</div>
<!-- Footer -->
<footer class="text-center text-lg-start bg-body-tertiary-white text-muted pt-5">
<section class="pt-1" style="background-color: #b6d7ff;">
<div class="container text-center text-md-start mt-5">
<!-- Grid row -->
<div class="row mt-3">
<!-- Grid column -->
<div class="col-md-3 col-lg-4 col-xl-3 mx-auto mb-4">
<!-- Content -->
<h6 class="text-uppercase fw-bold mb-4">
<i class="fas fa-paper-plane me-3"></i>Mesinpintar
</h6>
<p>
A platform offering a diverse range with AI powered tools, from expense tracking using just your receipt to bulk resume extraction and paraphrasing.
</p>
</div>
<!-- Grid column -->
<!-- Grid column -->
<div class="col-md-2 col-lg-2 col-xl-2 mx-auto mb-4">
<!-- Links -->
<h6 class="text-uppercase fw-bold mb-4">
Tools
</h6>
<p>
<a href="/expenses-tracking" class="text-reset toggle-link">Expenses Tracking</a>
</p>
<p>
<a href="/cv-extractor" class="text-reset toggle-link">CV Bulk Extraction</a>
</p>
<p>
<a href="/excel-to-json-xml" class="text-reset toggle-link">Excel to JSON/XML</a>
</p>
<p>
<a href="/paraphrase" class="text-reset toggle-link">Paraphrase</a>
</p>
</div>
<!-- Grid column -->
<!-- Grid column -->
<div class="col-md-3 col-lg-2 col-xl-2 mx-auto mb-4">
<!-- Links -->
<h6 class="text-uppercase fw-bold mb-4">
Useful links
</h6>
<p>
<a href="/terms-of-service" class="text-reset toggle-link">Terms</a>
</p>
<p>
<a href="/privacy-policy" class="text-reset toggle-link">Privacy Policy</a>
</p>
<p>
<a href="/contact" class="text-reset toggle-link">Contact</a>
</p>
<p>
<a href="/about" class="text-reset toggle-link">About</a>
</p>
</div>
<!-- Grid column -->
<!-- Grid column -->
<div class="col-md-4 col-lg-3 col-xl-3 mx-auto mb-md-0 mb-4">
<!-- Links -->
<h6 class="text-uppercase fw-bold mb-4">Contact</h6>
<p><i class="fas fa-home me-3"></i>Surakarta, Central Java, ID</p>
<p>
<i class="fas fa-envelope me-3"></i>
<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="04676b6a70656770446961776d6a746d6a7065762a676b69">[email protected]</a>
</p>
<p><i class="fab fa-twitter me-3"></i> @mesinpintarX</p>
<p><i class="fab fa-instagram me-3"></i> @mesinpintar.ig</p>
</div>
<!-- Grid column -->
</div>
</div>
</section>
<!-- Copyright -->
<div class="text-center p-4" style="background-color: #95bcff;">
© 2025 Mesinpintar. All Rights Reserved.
<a class="text-reset fw-bold toggle-link" href="https://www.mesinpintar.com/">Mesinpintar</a>
</div>
</footer>
<!-- Bootstrap JS -->
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
<script>
let currentPage = 1;
let totalArticles = 0;
async function fetchArticles(page) {
try {
const response = await fetch(`/api/articles?page=${page}`, { method: 'POST' });
const { articles, total } = await response.json();
totalArticles = total;
const articlesContainer = document.getElementById('articles-container');
articlesContainer.innerHTML += articles.map(article => `
<div class="card" data-slug="${article.slug}">
<img src="https://img.mesinpintar.com/${article.slug}.jpg" alt="${article.title}">
<div class="card-content">
<p class="card-date"> ${formatDateBlog(article.updated_at)}</p>
<h2 class="card-title">${article.title}</h2>
<p class="card-description">
${article.description.length > 218
? article.description.slice(0, 218) + '...'
: article.description}
</p>
</div>
</div>
`).join('');
// Add click event to each card
const cards = document.querySelectorAll('.card');
cards.forEach(card => {
card.addEventListener('click', function () {
const slug = this.getAttribute('data-slug');
window.location.href = `/blog/${slug}`;
});
});
// Hide the "Load More" button if all articles are loaded
const loadedArticles = document.querySelectorAll('.card').length;
if (loadedArticles >= totalArticles) {
document.getElementById('load-more').style.display = 'none';
}
} catch (error) {
console.error('Error fetching articles:', error);
}
}
document.getElementById('load-more').addEventListener('click', () => {
currentPage++;
fetchArticles(currentPage);
});
// Initial fetch
fetchArticles(currentPage);
// Format date function
function formatDateBlog(dateString) {
const options = { year: 'numeric', month: 'long', day: 'numeric' };
return new Date(dateString).toLocaleDateString('en-US', options);
}
</script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3735713809451778"
crossorigin="anonymous"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-e3-89+c1+di-yi"
data-ad-client="ca-pub-3735713809451778"
data-ad-slot="4459074049"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</body>
</html>