teleren/devto huggingface dataset:
java casting
Published: 2024-05-17 14:11:57

**Java'da Casting (Dönüştürme) Nedir?**

Java'da **casting**, bir veri tipini doğal olarak uyumlu olduğu başka bir veri tipine dönüştürme işlemidir. Bu işlem, veri türleri arasında geçiş yapmamızı sağlar. İki temel türü vardır:

1. **Genişleyen Tipe Dönüşüm (Upcasting):**
    - Alt sınıftan oluşturulmuş bir nesneyi üst sınıftan oluşturulmuş bir nesneye çevirmeye denir.
    - Örneğin, bir alt sınıf olan `Child` sınıfından oluşturulan bir nesneyi, üst sınıf olan `Parent` sınıfına çevirebiliriz.
    - Bu işlem sırasında dikkat edilmesi gereken nokta, üst sınıfa dönüştürülen nesnenin kendi sınıfındaki özel metotlara erişememesidir. Sadece override edilmiş metotlara ve üst sınıfın metotlarına erişebilirler.
    - Örnek kod:
      ```java
      class Parent {
          String name;
          void method() {
              System.out.println("Method from Parent");
          }
      }

      class Child extends Parent {
          int id;
          @Override
          void method() {
              System.out.println("Method from Child");
          }
      }

      public class Main {
          public static void main(String[] args) {
              Parent p = new Child();
              p.name = "GeeksforGeeks";
              System.out.println(p.name);

              Child c = (Child) p;
              c.id = 1;
              System.out.println(c.name);
              System.out.println(c.id);
              c.method();
          }
      }
      ```
2. **Daralan Tipe Dönüşüm (Downcasting):**
    - Üst sınıftan oluşturulmuş bir nesneyi alt sınıftan oluşturulmuş bir nesneye çevirme işlemidir.
    - İstenilen nesnenin sadece istenilen metotlarına erişmesini sağlamak için kullanılır.
    - Bu dönüşüm için aralarında inheritance ilişkisi olan sınıflar gereklidir.
    - Örnek kod:
      ```java
      double doubleSayi = 10.5;
      int intSayi = (int) doubleSayi;
      System.out.println("double tipinde değer: " + doubleSayi);
      System.out.println("int tipinde değer: " + intSayi);
      ```
    - Bu örnekte, double tipinden int tipine dönüşüm yaparken ondalık kısım çıkartılmıştır. Daha geniş türden daha dar türe dönüştürülürken kayıp yaşanması olasıdır.

Java'da casting, veri türleri arasında geçiş yaparken önemli bir araçtır. Özellikle inheritance ilişkisi olan sınıflar arasında bu işlemi kullanabilirsiniz. 

Kaynak: Bing ile konuşma, 17.05.2024
(1) Java’da Casting İşlemleri. Merhabalar, | by İlker ... - Medium. https://medium.com/@yelekciogluilker/javada-casting-i̇şlemleri-70bfcf55d6eb.
(2) Java Tip Dönüşümü ( Java Type Casting) – Tasarım Kodlama. https://www.tasarimkodlama.com/java-programlama/java-tip-donusumu-java-type-casting/.
(3) Type casting, type conversion nedir? Ne farkı vardır?. https://bing.com/search?q=java+casting+nedir.
(4) Type casting, type conversion nedir? Ne farkı vardır?. https://hasscript.com/583/type-casting-type-conversion-nedir-ne-fark%C4%B1-vard%C4%B1r.
Sharing My Pet Project for Learning React
Tags: webdev, javascript, react, sideprojects
Published: 2024-05-17 16:09:03

Need a quick and easy way to share code snippets as images? Look no further than Code2Image, the innovative new tool that converts code into customizable images.

	
🌐 Website: https://codetoimage.vercel.app
⭐️ Github: https://github.com/xuho/code2image

## With Code2Image, you can easily
- Change the theme - Pick from a variety of color schemes and backgrounds to best showcase your code. Dark and light modes are available.
- Switch programming languages - Support for all major languages including Python, JavaScript, C++, and more. The syntax highlighting auto-detects the language.
- Customize fonts - Choose the font family, size, and padding to optimize readability.
- Export as PNGs or SVGs - Download your code images or save them to the clipboard for easy sharing.
- Whether you're writing a tutorial, sharing code samples on social media, or creating documentation, Code2Image streamlines the process of formatting and distributing code snippets. No more manually converting code to images!

## Tech stack
- ReactJS
- NextUI
- TailwindCSS
- Zustand for simple state management

## Some images

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/auucxxkuwr8sjq8mefj3.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gftm40f0tf40cui0e2pa.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yjypidar92qwieb8ogbm.png)



If you find it helpful, please give it a star ⭐️ and let's connect on [X.com](https://x.com/hoa_ngx)

Happy coding 🎉

Connect me at https://webdevgenius.com
java iterator
Published: 2024-05-17 16:08:05

Java'da `Iterator`, koleksiyonlar üzerinde döngü yapmak ve elemanları sırayla erişmek için kullanılan bir araçtır¹. `Iterator` arayüzü, `java.util` paketinde tanımlanmıştır ve koleksiyon elemanlarını tek tek dolaşmanızı sağlar¹.

`Iterator` arayüzünün temel metodları şunlardır:

- **hasNext()**: Iterator'ın daha sonraki elemanları olup olmadığını kontrol eder. Eğer koleksiyonda dolaşılacak başka eleman kalmadıysa `false`, aksi takdirde `true` döner¹.
- **next()**: Iterator'ın gösterdiği sıradaki elemanı döndürür ve iterator'ı bir sonraki elemana ilerletir¹.
- **remove()**: Iterator'ın şu anda gösterdiği elemanı koleksiyondan kaldırır¹.

### Iterator Kullanım Örneği:
```java
import java.util.ArrayList;
import java.util.Iterator;

public class IteratorOrnegi {
    public static void main(String[] args) {
        // String türünde bir ArrayList oluştur
        ArrayList<String> meyveler = new ArrayList<>();
        meyveler.add("Elma");
        meyveler.add("Muz");
        meyveler.add("Çilek");

        // Iterator nesnesi oluştur
        Iterator<String> iterator = meyveler.iterator();

        // Iterator ile elemanları yazdır
        while (iterator.hasNext()) {
            String meyve = iterator.next();
            System.out.println(meyve);
        }
    }
}
```

Bu örnekte, `ArrayList` türünde bir koleksiyon oluşturulmuş ve `Iterator` kullanılarak koleksiyondaki elemanlar sırayla yazdırılmıştır. `Iterator` kullanımı, koleksiyonlar üzerinde güvenli ve esnek bir dolaşım sağlar. 

Kaynak: Bing ile konuşma, 17.05.2024
(1) Java Iterator Nedir? Kullanımı ve Örnekleri - Testings.dev. https://testings.dev/java-iterator-nedir-kullanimi-ve-ornekleri/.
(2) Java List Iterator nedir ve kullanımı - Ramazan Bıyıkcı. https://ramazanbiyikci.com.tr/java-list-iterator-nedir-ve-kullanimi/.
(3) Java Iterator Nedir? Kullanımı ve Örnekleri - Testings.dev. https://bing.com/search?q=Java+Iterator+nedir.
(4) Java Iterator - W3Schools. https://www.w3schools.com/java/java_iterator.asp.
(5) Iterator Arayüzü - baskent.edu.tr. https://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/dataStructures/Collections/InterfaceIterator.pdf.
Diamond operatörü
Published: 2024-05-17 16:05:49

Java'da `new ArrayList<>()` ifadesinde `<>` içi dolmamışsa, bu **diamond operatörü** kullanımını gösterir. Diamond operatörü, Java 7 ve sonrasında tanıtılmıştır ve jenerik tür parametresinin sağ tarafta tekrar yazılmasına gerek kalmadan, sol taraftaki değişkenin türünden tür parametresini çıkarmak için kullanılır.

Örneğin:

```java
List<String> liste = new ArrayList<>();
```

Bu durumda, `liste` değişkeni `String` türünde bir `List` olarak tanımlandığı için, `ArrayList`'in tür parametresi de `String` olarak çıkarılır ve `new ArrayList<String>()` ile aynı anlama gelir. Bu, kodun daha sade ve okunabilir olmasını sağlar.

Eğer tür parametresi belirtilmezse ve sol tarafta da bir tür belirtilmemişse, `ArrayList` ham tür (raw type) olarak kullanılır ve tür güvenliği sağlanmaz. Bu durum genellikle önerilmez çünkü tür güvenliği avantajlarından yararlanılamaz.

```java
List liste = new ArrayList(); // Ham tür kullanımı, tür güvenliği sağlamaz
```

Bu nedenle, jenerik türlerle çalışırken tür parametrelerini belirtmek iyi bir uygulamadır.
Generic <>
Published: 2024-05-17 16:01:42

Java'da **Generic** (Jenerik), tür parametreleri kullanarak sınıf, arayüz ve metotların türden bağımsız olarak tanımlanmasını sağlayan bir özelliktir³. Jenerikler sayesinde, kodunuzda belirli bir türe bağlı kalmadan esnek ve yeniden kullanılabilir yapılar oluşturabilirsiniz. Bu, tür güvenliği sağlar ve çalışma zamanı hatalarını derleme zamanında tespit etmeye yardımcı olur¹.

### Jeneriklerin Avantajları:
- **Tür Güvenliği**: Jenerikler, derleme zamanında tür kontrolü yaparak çalışma zamanı hatalarını önler².
- **Yeniden Kullanılabilirlik**: Aynı kodu farklı türlerle kullanarak kod tekrarını azaltır².
- **Daha Temiz Kod**: Tür dönüşümlerini azaltarak kodun okunabilirliğini ve anlaşılırlığını artırır².

### Jenerik Kullanımı:
Jenerikler, `<` ve `>` işaretleri arasına yazılan tür parametreleri ile tanımlanır. Örneğin, `ArrayList` sınıfı bir jenerik sınıftır ve aşağıdaki gibi kullanılabilir:

```java
List<String> stringListesi = new ArrayList<>(); // String türünde bir List
stringListesi.add("Merhaba");
// stringListesi.add(10); // Hata! Integer türünde bir değer eklenemez.
```

Bu örnekte, `stringListesi` yalnızca `String` türünde öğeler kabul eder ve bu sayede tür güvenliği sağlanır.

Jenerikler, Java programlamada güçlü ve esnek yapılar oluşturmanıza olanak tanır. !

Kaynak: Bing ile konuşma, 17.05.2024
(1) Generic Sınıflar Lesson | Patika.dev. https://bing.com/search?q=java+generic+nedir.
(2) Java Generic Nedir? - Emre Çelen. https://emrecelen.com.tr/java-generic-nedir/.
(3) Java’da Generics. Generics, farklı referans veri… | by ... - Medium. https://medium.com/bili%C5%9Fim-hareketi/java-generics-7948a2da58d3.
(4) Generic Sınıflar Lesson | Patika.dev. https://academy.patika.dev/courses/java-102/generics.
(5) Java Generic Sınıflar - Java - Veysel Uğur KIZMAZ. http://www.ugurkizmaz.com/blog/java-generic-s%C4%B1n%C4%B1flar.
(6) Java’da Generics Kavramı - İlker Yelekçioğlu - Medium. https://medium.com/@yelekciogluilker/javada-generics-kavramı-eab33518b99e.
Code to image: A handy tool to convert a code snippet to an image
Tags: tooling, news, web, react
Published: 2024-05-17 15:50:10

Hello dev.to community,

Today, I want to introduce you to a fantastic tool that converts your code into images - [Code2Image](https://code2image.net/). If you're looking for a simple solution to share your code as beautiful images, then Code2Image is exactly what you need.

## Benefits of Using Code2Image

## 1. User-friendly Interface
Code2Image is designed with a user-friendly interface, allowing you to easily input your code and customize the image.

## 2. Support for Multiple Programming Languages
The tool supports various programming languages such as JavaScript, Python, Java, C++, and many more. This makes it easy to create code images for any language you are using.

## 3. Customizable Code Appearance
You can customize the appearance of your code with numerous options such theme, font size, background color, padding, width,... This helps you create code images that match your personal style or brand.

## 4. Easy Sharing
Once you create a code image, you can easily share it on social media platforms, blogs, or in technical documents. Code images help convey your message clearly and professionally.

Besides the basic functions like writing code and exporting images, let's take a look at some notable features of this tool:

- For long code snippets, besides manual entry, you can also copy and paste them, or even drag and drop files. This saves time on retyping the code and preserves the original state of the data you want to convey.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4yt80rykfz9s4x24s6y3.gif)

- Besides sharing through images, we can also share via URL. This allows users to interact with and modify the data if they wish.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6x0fu734yded7stkvfmf.gif)

- In addition to customizations like background color, font size, padding, and width, we have a very interesting feature: logo customization. You can enhance personalization and exclusivity by adding an avatar and name.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uazq9gvlb59llsaxkgzn.gif)

- Finally, and most excitingly, we have integrated a canvas drawing tool that allows users to highlight, mark, or annotate the code.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xakj0n21v7f94l6mutxn.gif)

## Conclusion
Code2Image is a useful tool for developers, programmers, and anyone who wants to share their code as images. With its user-friendly interface and numerous customization features, you can easily create beautiful and professional code images. Try Code2Image today and experience the convenience it offers!

Thank you for reading this article. Please share your experience with Code2Image in the comments below or email code2img@gmail.com!
Transform Your Supply Chain: The Unseen Power of EDI for SMEs.
Published: 2024-05-17 15:43:34

**Navigating Complexity in the Digital Supply Chain**

In today’s business world, it’s a wild ride. Companies are in the thick of it, trying to keep their supply chains slick and speedy while everything around them gets more tangled. Sticking to the old-school way of swapping business docs? That’s like tying your operations to a boulder. It’s slow, it’s messy, and it’s going to send ripples of headaches across your whole network.

**The Real Price of Sticking to the Old Ways**

Here’s the deal: Clinging to outdated systems is like throwing your money and time into a black hole. Those ancient methods of punching in data by hand, waiting forever on transactions, and lagging behind market demands? They’re eating up your profits, trashing your customer satisfaction, and dulling your competitive edge. In today’s hyper-speed world, dragging your feet in the slow lane isn’t just a bad look—it’s a one-way ticket to obscurity for your business.

**Welcome to the EDI Revolution, Brought to You by ActionEDI**

Now, picture flipping the script on that chaos. Enter Electronic Data Interchange (EDI) — your digital superhero. EDI is all about connecting your business with global partners in a snap, swapping documents without breaking a sweat. This isn’t just some fancy tool; it’s a full-on revolution in doing business. We’re talking lightning-fast transactions, minimal mistakes, and beefing up those crucial relationships with suppliers and customers.

And here’s where ActionEDI steals the show: We’ve custom-built our EDI magic for SMEs like yours. It’s not just easy to get; it’s a game-changer. Our platform doesn’t only make your supply chain run smoother than ever; it completely flips the script on what you thought was possible, offering crystal-clear pricing, effortless integration, and simplicity that lets you zoom in on growth.
**
 Real Wins with ActionEDI**

Check out the scoreboard: Retailers slashing order times by 50%, manufacturers bonding big-time with suppliers, all thanks to ActionEDI. We’re not just playing the game; we’re redefining it.

**Your VIP Pass to Supply Chain Nirvana: A Special Invitation from ActionEDI**
Dive into the future of supply chain bliss with ActionEDI. Here’s what you’re getting on board with:

Seamless Integration: Connect with your network like never before.
No-Nonsense Pricing: Unlimited setups and transactions, zero hidden fees.
Slick Platform: So user-friendly, it practically runs itself.
Quick Start: Revamp your operations from zero to hero in days, not months.
Book your FREE demo today.

Jump Into the Future with ActionEDI
The future of supply chain efficiency isn’t a pipe dream—it’s right here, waiting for you to grab it. Power up your business with EDI through ActionEDI and watch as your operations transform. Hit us up for a demo, and let’s kickstart your journey to reaching peak potential.

With ActionEDI, you’re not just keeping up, you’re setting the pace. Ready to lead the charge into a future where your business is not just thriving but dominating? Let’s make it happen, together.

Book your FREE demo today.
How to adapt my arrow to my slider?
Tags: beginners, javascript, webdev
Published: 2024-05-17 15:34:13

I am at the beginner stage in web development, in order to practice I clone websites that allow me to learn new things over time.
I have a small problem with my page whose arrows of my slideshow do not agree with the image even less responsive, Someone would have an idea of how to achieve?

Here is the link for an overview of what assemblable the site:

https://codepen.io/Raz41/pen/MWdKWBJ
KISS,DRY,MONAD
Published: 2024-05-17 15:22:09



### KISS (Keep It Simple, Stupid)
- **KISS**, "Basit Tut, Aptal" anlamına gelir ve tasarımın mümkün olduğunca basit tutulması gerektiğini ifade eden bir ilkedir⁸.
- Bu ilke, sistemlerin karmaşık hale getirilmeden basit bırakıldığında en iyi şekilde çalıştığını belirtir⁹.
- KISS, kullanıcı kabulünü ve etkileşimini en üst düzeye çıkarmak için karmaşıklığın mümkün olduğunca azaltılması gerektiğini vurgular⁹.

### DRY (Don't Repeat Yourself)
- **DRY**, "Kendini Tekrar Etme" anlamına gelir ve yazılım geliştirmede bilgi tekrarının azaltılmasını hedefleyen bir ilkedir¹.
- Her bilgi parçasının bir sistem içinde tek, belirsiz olmayan ve otoriter bir temsili olması gerektiğini belirtir¹.
- DRY ilkesi, kod tekrarını azaltmak, soyutlamaları kullanmak ve veri normalizasyonu ile baştan başa redundansı önlemek için kullanılır¹.

### MONAD (Functional Programming)
- **MONAD**, fonksiyonel programlamada, program parçalarını birleştiren ve dönüş değerlerini ek hesaplama ile bir türde saran bir yapıdır⁴.
- MONAD'lar, karmaşık fonksiyon dizilerini, kontrol akışını ve yan etkileri soyutlayan sadeleştirilmiş işlem hatlarına dönüştürmek için kullanılır⁴.
- Özellikle Haskell gibi dillerde, genel MONAD yapısı ve yaygın örnekleri için çekirdek kütüphanelerde önceden hazırlanmış tanımlar sunar⁴.

Bu üç kavram, yazılım geliştirme ve tasarımında önemli ilkelerdir ve daha temiz, etkili ve sürdürülebilir kod yazmaya yardımcı olur. 

Kaynak: Bing ile konuşma, 17.05.2024
(1) KISS principle - Wikipedia. https://en.wikipedia.org/wiki/KISS_principle.
(2) What is Keep It Simple, Stupid (KISS)? — updated 2024. https://www.interaction-design.org/literature/topics/keep-it-simple-stupid.
(3) Don't repeat yourself - Wikipedia. https://en.wikipedia.org/wiki/Don%27t_repeat_yourself.
(4) Monad (functional programming) - Wikipedia. https://en.wikipedia.org/wiki/Monad_%28functional_programming%29.
(5) What is DRY Development? | DigitalOcean. https://www.digitalocean.com/community/tutorials/what-is-dry-development.
(6) Embracing the DRY (Don’t Repeat Yourself) Principle: A Guide to .... https://medium.com/devroot/embracing-the-dry-dont-repeat-yourself-principle-a-guide-to-efficient-code-and-maintenance-62a84c7037fa.
(7) functional programming - Monad in plain English? (For the OOP .... https://stackoverflow.com/questions/2704652/monad-in-plain-english-for-the-oop-programmer-with-no-fp-background.
(8) Mastering Monad Design Patterns: Simplify Your Python Code and Boost .... https://dev.to/hamzzak/mastering-monad-design-patterns-simplify-your-python-code-and-boost-efficiency-kal.
(9) Explained in 5 minutes: Monads in plain JavaScript - Medium. https://piotrjaworski.medium.com/explained-in-5-minutes-monads-89d54d230baf.
(10) Keep it simple (KISS): a core design principle you should know. https://nulab.com/learn/design-and-ux/keep-simple-kiss-core-design-principle-you-should-know/.
(11) Keep it Simple, Stupid – How to Use the KISS Principle in Design. https://www.freecodecamp.org/news/keep-it-simple-stupid-how-to-use-the-kiss-principle-in-design/.
Lets try to build a Next.js App on AWS Amplify
Tags: awschallenge, nextjs, amplify, react
Published: 2024-05-17 15:20:37

I've tried building an app on AWS Amplify before. Years ago, to gain experience with React Native I began working on a recipe app using AWS backend services - DynamoDB, Cognito, s3. I wasn't able to fully flesh out the app and ended up abandoning it. I tried going back to make changes but by then some of the dependencies were deprecated and packages had been changed. 

Since then I've grown as a developer and have always wanted to circle back to my app idea - this time using Next.js. 

An opportunity has presented itself with the [AWS Amplify Fullstack TypeScript challenge](https://dev.to/devteam/join-us-for-the-the-aws-amplify-fullstack-typescript-challenge-3000-in-prizes-ghm)! The goal over the next nine days will be to build a rudimentary recipe app that incorporates data, authentication, serverless functions and file storage. This application will be created using AWS Amplify for Next.js Gen 2. 

Come join me as I document my progress and discuss key challenges I face!
SOLID
Published: 2024-05-17 15:19:09

SOLID, Robert C. Martin tarafından önerilen ve nesne yönelimli programlama ve tasarımın beş temel ilkesini ifade eden bir akronimdir¹. Bu ilkeler, yazılımın bakımını ve genişletilmesini kolaylaştırmak, kod kokularını önlemek, kodu yeniden düzenlemek ve Agile veya Uyarlanabilir yazılım geliştirmek için uygulamaları belirler¹. SOLID ilkeleri şunlardır:

1. **Single-Responsibility Principle (Tek Sorumluluk İlkesi)**:
   - Bir sınıfın yalnızca bir nedenle değişmesi gerektiğini, yani bir sınıfın yalnızca bir işi olması gerektiğini belirtir¹.

2. **Open-Closed Principle (Açık-Kapalı İlkesi)**:
   - Yazılım varlıklarının (sınıflar, modüller, fonksiyonlar vb.) genişletilmeye açık ancak değişikliğe kapalı olması gerektiğini ifade eder¹.

3. **Liskov Substitution Principle (Liskov'un Yerine Geçme İlkesi)**:
   - Alt sınıfların, üst sınıfların yerine geçebilmesi gerektiğini, yani bir sınıfın alt sınıfları, üst sınıfın tüm özelliklerini korumalı ve onun yerine geçebilmelidir¹.

4. **Interface Segregation Principle (Arayüz Ayırma İlkesi)**:
   - Bir sınıfın, kullanmadığı arayüzleri uygulamaya zorlanmamalı olduğunu belirtir. Büyük, şişkin arayüzler yerine daha küçük ve özelleşmiş arayüzler kullanılmalıdır¹.

5. **Dependency Inversion Principle (Bağımlılıkların Ters Çevrilmesi İlkesi)**:
   - Üst seviye modüllerin alt seviye modüllere doğrudan bağımlı olmaması gerektiğini, her ikisinin de soyutlamalara bağımlı olması gerektiğini ifade eder¹.

Bu ilkeler, yazılımın esnek, genişletilebilir ve bakımı kolay olmasını sağlamak için tasarlanmıştır. SOLID ilkelerini takip etmek, daha temiz kod yazmanıza ve büyük yazılım projelerinde daha kolay işbirliği yapmanıza yardımcı olabilir. 

Kaynak: Bing ile konuşma, 17.05.2024
(1) SOLID: The First 5 Principles of Object Oriented Design. https://www.digitalocean.com/community/conceptual-articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design.
(2) The SOLID Principles of Object-Oriented Programming Explained in Plain .... https://www.freecodecamp.org/news/solid-principles-explained-in-plain-english/.
(3) A Solid Guide to SOLID Principles | Baeldung. https://www.baeldung.com/solid-principles.