Search

Reinhart Previano K.

Do you love to Ctrl-K, Ctrl-/, or / ? Now you can do three of them (>_ )!

No results so far...

Contact Information

Blog posts categorized as Reply


Re: What are the most successful apps using OpenStreetMap data?

Would you believe if I say Apple Maps? Yep. Apple Maps. Over the last few years they decided to ditch TomTom map data for the sake of OpenStreetMap. I believe (but still canʼt confirm) that itʼs part of “the all-new Apple Maps” feature in iOS 15 and macOS Monterey.[1] As of October 2023, Apple states that Apple Maps uses TomTomʼs data only for traffic incident reports.[2] Note that Apple Maps uses OpenStreetMap data only to display roads and large fields (e.g. beaches and rivers). Individual buildings and POIs are scraped. Hereʼs an example from Apple Maps and Organic Maps (open-source fork of MAPS.ME): Apple Maps Organic Maps  

Re: Why I quit being a tech "influencer"

Hi, and congrats for jumping out from the tech influencer bandwagon! As a form of motivation, you might not know that GitHub were actually co-founded by two people who still exist today without a personal blog website, and another two having personal blog sites that are nothing but plain old boring blue links, like Daniel Stenberg, the creator of cURL, and Pieter Levels, in case you know about him. Those influencers, as I personally called them Recycled Developers, often shared things which are not always technically accurate, especially in the long term. Even in DEV, a blog post named 17 Compelling Reasons To Start Ditching TypeScript Now was suddenly inspired someone else to write 18 Reasons to Use TypeScript SINCE YESTERDAY. It is as if that one technology, language, or framework will always be good enough and they shall defend their opinions at all costs. But the truth is, neither JS or TS are better to learn and use, and a better developer should be able to weight and choose the right parts for their project stack. And in fact, many of the tech jobs require from you, unless if you're into DevRel (Developer Relations), documentation, or writing tutorials like in MDN and Kodeco (formerly RyanWenderlich.com), is to build and maintain products through well-designed code, not well-designed content. Now I'm interested to read your ebook before it's gone, but that link redirects to http://localhost:3000/products/level-up-your-career-today-developer-edition/ for some reason. It might be interesting to compare it with my perspective as a developer who have done "classic" web development since 2014, Node.js since 2016, C in 2019, Java and PHP/Laravel in 2020, then Python, Swift, React (including Next and Remix), Go, Vala, and beyond over the last few years. But one thing for sure, everyone can start their dev career without forcing them to use HTML/CSS/JS, or Python, or Swift, or back to the good-old C. Concepts are more important to learn, and let those syntaxes and functions follow. (>_ ) 💕

Another reason to use threads in the Fediverse.

Well, some people are still using threads instead of putting everything down in a single post, even in the Fediverse, because some Fediverse software offers the "View More/Less" accordion. How is that relevant, you asked? By splitting these long texts into threads, you can just force everyone to see your really long post in the Fediverse.

Re: The (extremely) loud minority (of JavaScript and Typescript developers)

Actually, there’s a DEV.to post named “17 Compelling Reasons to Ditch TypeScript for JavaScript”, only to be defeated by another post named “18 Reasons to Use TypeScript Since Yesterday”. I’ve documented all my criticisms here at “Code, not Content”. Since you specifically mentioned Twitter as the main source for these loud posts, I can say that many of them are just wanted to verify their status as a TS developer. I also see many of them ended up freelancing or worked on tech startups, which aren’t included in W3Techs list. When it comes into the big web industry, WordPress might won the “icing on the cake” by being able to afford a simple (despite themes and plugins are making it more complex), open CMS for managing content. Even many global news websites are still using that instead of fancy SPA. But successful stories, as told by the top ones who are using TypeScript, convinced people that every website should be rewritten in TypeScript. That's unfortunate, especially when simpler solutions do exist. For devs, code might be important, but for people, content matters.

Should developers generalize or specialize?

The skill and career journey I've adopted so far is the diamond approach: As a beginner, it's okay to specialize on one thing before moving to others. But specialization should have its limits. I started myself in late-2013 as a (HTML and CSS) web developer, learned more about the DOM, and responsive design, before generalizing myself to use more and more web libraries and frameworks. Getting yourself in either generalization's or specialization's comfort zone is risky, because: Generalization could mean that you've tried all of these technologies but still have little average experience on these, and Example: I've learned today's great web frameworks (React, Vue, Svelte, CodeIgniter, Laravel, etc.) but I still don't understand how to optimize my apps created by each framework Specialization contains a risk of working with aging pieces of tech Example: I'm doomed as a desktop app/program developer; people are care those smartphones and tablets when I can just make Java-based desktop programs. This diamond approach is indeed a repeating pattern. After re-specializing yourself from generalization, you'll need to re-generalize again before specializing on another one. This is great because one day, you'll become a generalist who also specializing on each fields. Or in other words, a multiple-T-shaped developer, or even a comb-shaped one. You can learn new, emerging things very quickly due to your past, specialized experiences. And you'll be different to those who just either want to stick with one or two languages/frameworks or just want to learn as many things as possible.

Media queries not work in Firefox, when has animation

This question was originally asked on StackOverflow. Content licensed under CC BY-SA 4.0. View original question When the screen width is less than 640px, the background is covered, why is the height not covered? And, It's work in Chrome and Edge. .change{ background: #f00; height: 100px; animation: test1 1s linear forwards; } @keyframes test1 { 0% { height: 100px; } 100% { height: 400px; } } @media only screen and (max-width: 640px) { .change{ background: #0f0; } @keyframes test1 { 0% { height: 100px; } 100% { height: 200px; } } } Answer Looking at how the site behaves on Chrome, Firefox, and Safari, it seems that Chrome might be the only browser who deviate by attempting to reanimate the <div> after @media conditions are changed. Firefox and Safari thought that the animation is finished and no longer needed to reanimated. As a workaround, you can force all web browsers to reanimate this by re-setting the .change animation properties under the @media scope and changing their values by a bit, such as by animating for 1.000001 seconds instead of 1. .change{ background: #f00; align-items: center; font-family: sans-serif; color: #fff; height: 100px; display: flex; justify-content: center; animation: test1 1s linear forwards; } @keyframes test1 { 0% { height: 100px; } 100% { height: 400px; } } @media only screen and (max-width: 640px) { .change{ background: #0f0; color: #00f; animation: test1 1.000001s linear forwards; } @keyframes test1 { 0% { height: 100px; } 100% { height: 200px; } } } <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, minimum-scale=1.0' name='viewport' /> <body> <div class="change">Some content</div> </body> </html> I've also opened a bug report related to this: webcompat.com/issues/108367

Error 404 when using GitHub when I reload the page

This question was originally asked on StackOverflow. View original question I am making an E-commerce website with react and I upload the website to Github pages the deployment works ok, but when I click the Nav buttons to go to different parts of the webpage and reload the page, an error 404 appears: Failed to load resource: the server responded with a status of 404 () In the local host it works totally fine. Should I need to deploy my website as a new project again? I have always upload the websites the same way and I did not have this problem. I actualized my google browser, can there can be a compatibility problem? Thanks a lot! Note: I assume that you are using create-react-app with JSX and react-router-dom like this: <BrowserRouter> <Routes> <Route exact path="/" element={<HomePage />} /> <Route path="cart" element={<CartPage />} /> <Route path="settings" element={<SettingsPage />} /> </Routes> </BrowserRouter> Well, HTTP routing in GitHub Pages works differently than using the npm start command in your local machine. And fortunately, the developers behind create-react-app have already explained the technical reasons behind this: If you use routers that use the HTML5 pushState history API under the hood (for example, React Router with browserHistory), many static file servers will fail. For example, if you used React Router with a route for /todos/42, the development server will respond to localhost:3000/todos/42 properly, but an Express serving a production build as above will not. This is because when there is a fresh page load for a /todos/42, the server looks for the file build/todos/42 and does not find it. The server needs to be configured to respond to a request to /todos/42 by serving index.html. And yes, GitHub Pages also counts as a static file server, and expects that those routes are available as individual static files (e.g. build/cart.html for the /cartroute), and the goal here is to trick GitHub Pages to serve index.html instead for all of these routes. However, it is currently notpossible to fix this issue on the GitHub Pages' side, e.g. by applying the .htaccessconfiguration file (since GitHub Pages doesn't use Apache Web Server) or going to the repository settings on GitHub. So, what can be done here? The above code snippet uses <BrowserRouter>, which is known to be incompatible for hosting with GitHub Pages. And good news, many recommend to replace the <BrowserRouter> into <HashRouter>,which should work in practically all static file servers (see technical reasons here). There's a dedicated FreeCodeCamp article on how to set up <HashRouter> for your React project and publishing it into GitHub Pages. Note: Once you have replaced it with <HashRouter>, you will need to take care of existing hardcoded paths in HTML/JSX tags as <HashRouter> uses good-old HTML anchor/ID tags (e.g. #menu). That means <a href="/cart"> in your React app must be replaced with <a href="#/cart"> (Note the additional hash/# character there) or else it will again return a 404.

Balasan Twitter #1455738207417470980

Belum lama masalah pedulilindungi, tadi abis baca twit orang marah2 sama developer plat merah soal e materai, sebetulnya akar problemnya gimana si? Dan knp kok kesannya plat merah jadi kayak kebanyakan isinya orang2 incompeten? Code;

Ilmu Matematika Diskrit dapat diimplementasikan dalam bidang apa saja?

Artikel ini merupakan jawaban saya terhadap salah satu pertanyaan pada situs Kotakode.com, sebuah forum dan komunitas para developer di Indonesia. Lihat pertanyaan asliSaya membeli buku Matematika Diskrit dan terdapat materi yang didalamnya meliputi:1. Logika2. Himpunan3. Matriks, relasi, dan fungsi4. Induksi Matematik5. Algoritma dan Bilangan Bulat6. Kombinatorial dan Peluang Diskrit7. Aljabar Boolean8. Graf9. Pohon10. Kompleksitas AlgoritmaNamun saya kurang mengerti dalam pengimplementasian-nya, Mohon penjelasannya 🙏 Matematika Diskrit adalah salah satu ilmu yang sebenarnya cukup berguna di dunia pemrograman, namun sayangnya banyak pengajar (termasuk dosen) menjelaskan ilmu ini dengan konvensi dan cara yang terlihat kurang relevan dengan dunia pemrograman saat ini, misalnya penggunaan simbol A ∪ B daripada A && B dan ¬S daripada !S. Tujuan untuk belajar soal Logika dan Aljabar Boolean ini sebenarnya cukup jelas: agar kamu dapat memahami cara menggunakan perintah IF-ELSE dan operator Boolean secara baik dan benar. Di sini saya bakal kasih contoh sebuah function untuk mengecek apakah bilangan a, b, dan c berurutan dari yang terkecil hinga teratas: // Bahasa C #include <stdio.h> int main(){ int a = 3, b = 4, c = 9; // Perhatikan penggalan berikut ini if (a <= b && b <= c){ puts("Berurutan!"); } else { puts("TIDAK berurutan!"); } return 0; } Pertanyaannya di sini adalah, apa yang harus diubah sehingga perintah puts("Berurutan!")lah yang ditaruh di dalam bagian else dan sebaliknya. Dari materi Logika inilah kita mengetahui bahwa negasi dari A ∩ B (A dan B), yakni ¬(A ∩ B), sebenarnya sama dengan (¬A) ∪ (¬B) (tidak A atau tidak B). Sehingga, penggalan IF-ELSE tersebut dapat ditulis ulang sebagai: if (!(a <= b) || !(b <= c)){ puts("TIDAK berurutan!"); } else { puts("Berurutan!"); } Dan karena penggalan !(a <= b) sebenarnya sama saja dengan a > b atau b < a, maka hal tersebut dapat dipersingkat lagi menjadi: if (a > b || b > c){ puts("TIDAK berurutan!"); } else { puts("Berurutan!"); } Kemudian, materi Pohon, Graph, dan Matriks juga sangat berguna untuk memahami berbagai jenis struktur data yang sering dipakai dalam dunia pemrograman sehari-hari. Jika kamu berminat untuk mengolah gambar menggunakan pustaka/library OpenCV, kamu nantinya akan sering bermain-main dengan transformasi Matriks yang mungkin kamu sudah kenal saat duduk di bangku SMA atau bahkan SD. Sedangkan, Pohon (khususnya Pohon Biner / Binary Tree) merupakan salah satu topik yang paling sering ditanya saat kamu melamar pekerjaan di dunia software engineer. Mengapa? Karena struktur data tersebut kini masih berguna untuk melakukan pengurutan/penyortiran dan pencarian kumpulan data yang jauh lebih efisien daripada menggunakan deretan Array maupun Linked List. Kalau kamu berminat dalam dunia keamanan siber (Cyber Security), kamu mau tidak mau harus memahami tentang Graph karena melalui Graph, kamu bisa memetakan relasi antara sebuah informasi dengan informasi lainnya untuk membantu kamu melancarkan proyek investigasi kamu. Oh iya, fitur navigasi dalam aplikasi peta seperti Google Maps juga tidak dapat dibuat secara efisien tanpa pemahaman soal Graph yang lebih kompleks dan mendalam. Saya sebenarnya belum bisa menjawab hubungan antara semua bab yang kamu sebutkan dengan dunia pemrograman sehari-hari. Tetapi, ada beberapa hal lagi yang cukup penting: Himpunan bakal sangat berguna bagi kamu baik dalam dunia pemrograman berbasis objek (OOP) serta Database, karena nantinya kamu harus mencari hubungan-hubungan antar sebuah objek dengan objek lain, sebuah tabel/entity di dalam database dengan tabel/entity lain, dan hubungan antara himpunan data dengan himpunan data lain. Dan tentunya, Kombinatorial, Peluang Diskrit, dan Kompleksitas Algoritma cukup penting juga untuk dipahami. Karena sebagai pemrogram/programmer yang baik kita tentunya tidak hanya membuat algoritma yang tepat, tetapi juga efisien baik dalam penggunaan memori maupun waktu. Dengan memahami ketiga hal tersebut, kamu dapat menentukan apakah algoritma yang kamu buat terasa berlebihan dalam menggunakan perintah-perintah pada komputer. Demikian jawaban saya. Terima kasih.



Reinhart Previano Koentjoro
Reinhart Previano Koentjoro
Citra Manggala Dirgantara
Citra Manggala Dirgantara

A Reinhart company

Products

Company