teleren/devto huggingface dataset:
iOS and Android Localization Tool
Tags: ios, android, localization, tools
Published: 2018-08-13 12:45:44

---
title: iOS and Android Localization Tool
published: true
description: 
tags: [iOS, android, localization, tools]
author: rogermolas
---

Localization is simply the process of translating your app into multiple languages.

In situation like you need support multiple language, including API response messages and dynamic strings you need a list of localizable .strings file, and you need to localized it based on the Language you want  ( e.g ***English***, ***Chinese***, ***Japanese*** ). 

Xcode has a **built-in** localizable file generator that generate your localizable .strings for each language you supported.

In this format
```
en.lproj  // directory
   |- localizable.strings

zh.lproj  // directory
   |- localizable.strings

ja.lproj  // directory
   |- localizable.strings
```
Thats Cool!!

***But how about the contents?***

You need to copy and paste it base on it corresponding laguage. For Chinese stings you put it on **zh.lproj/ localizable.strings** and  for Japanese stings put it on **ja.lproj/ localizable.strings** and your good to go.

***Holy Shiiit, i have 400 stings that needs to be localized in 3 or more languages*** 400 x  3 = 1,200

Just copy and paste your 1,200 lines of string, Good Luck!

### To solve the pain of copy and pasting and save time.

you can use the tool called [**csv-localizer**](https://github.com/rogermolas/csv-localizer) [![GitHub stars](https://img.shields.io/github/stars/badges/shields.svg?style=social&label=Stars)](https://github.com/rogermolas/csv-localizer) available on Github.

Just instruct you translator or someone working on translations to put all translated strings into CSV file based on the format provided.

**csv-localizer** can be installed from homebrew via

```bash
$ brew tap rogermolas/csv-localizer
$ brew install csv-localizer
```

Convert using the following command

```bash
$ csv-localizer -p ios -i path/csv_files/ -o path/output
```
>*Input directory, CSV files directory path, should not include the .csv file*
>*"path/csv_files/*" **and not** "*~~path/csv_files/strings.csv~~*"

>**The reason for that is, csv-localizer can process multiple csv files, thats why its only accept  a directory path.**


Generated files
```
en.lproj  // directory
   |- localizable.strings

zh.lproj  // directory
   |- localizable.strings

ja.lproj  // directory
   |- localizable.strings
```
Thats it,  your ready to go. Easy Right?

It will generate the same format just like what Xcode did, but this time it has its localized contents in each corresponding laguage. :)


**Also worked on Android it will generate `string.xml`** with contents
```bash
$ csv-localizer -p android -i path/csv_files/ -o path/output
```


Don't forget give a  [![GitHub stars](https://img.shields.io/github/stars/badges/shields.svg?style=social&label=Stars)](https://github.com/rogermolas/csv-localizer)
Visualizing Apache AGE data with Qlik
Tags: qlik, apacheage, postresql, datanalytics
Published: 2023-10-30 03:44:43

**Introduction**
Viewing Apache AGE data in Qlik, a popular business intelligence and data visualization tool, involves connecting your Qlik application to the Apache AGE database or server where your graph data is stored. Here's a general step-by-step guide on how to achieve this:

**Install Qlik Database Connector (QDBC):**
Ensure you have the Qlik Database Connector (QDBC) installed. QDBC allows Qlik to connect to various databases, including Apache AGE, to fetch and display data.

**Set Up Your Apache AGE Database:**
Make sure your Apache AGE database is up and running and contains the data you want to visualize in Qlik. If you haven't set up Apache AGE yet, follow the installation and data import procedures specific to Apache AGE.

**Establish a Database Connection:**
In Qlik, you need to create a connection to your Apache AGE database. To do this:

Open Qlik and go to the Data Load Editor.
Click on "Database" or the relevant data source type.
Configure Connection Parameters:
Configure the connection settings to connect to your Apache AGE database. You'll need to provide details such as the database server address, port, authentication credentials, and any other relevant connection parameters. These settings should match your Apache AGE setup.

**Write Qlik Load Scripts:**
In Qlik, you use load scripts to define how data should be fetched from the connected database. You will write Qlik script statements to retrieve data from Apache AGE tables or graphs. Here's an example of how you might write a script to load data from an Apache AGE database:


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

Replace [YourApacheAGEDataSource] with the name of your data source in Qlik, and YourQueryHere with the query to fetch the data you need from Apache AGE.

**Load Data:**
After writing your Qlik load script, execute it to load the data into your Qlik application.

**Visualize Data:**
With the data now loaded into Qlik, you can create visualizations, charts, and dashboards to analyze and explore the Apache AGE data.

**Set Up Data Refresh:**
To ensure that your data is up-to-date, you can set up data refresh schedules in Qlik to periodically retrieve data from the Apache AGE database.

Remember that the specific steps may vary depending on the version of Qlik you are using and the setup of your Apache AGE database. You should refer to the documentation for both Qlik and Apache AGE for detailed information and any specific considerations related to your environment.

By following these steps, you can connect your Qlik application to Apache AGE data and visualize it effectively for data analysis and reporting.
How to upgrade from Next.js 13 to Next.js 14
Tags: freecodez, react, html, blog
Published: 2023-10-30 03:24:57

Hey there, You are most welcome to this article. I hope you will enjoy this article. If you like this article then please share this article with your friends and colleagues. If you have any questions or suggestions regarding this article then please comment down below.

**How to upgrade from Next.js 13 to Next.js 14**

![How to upgrade from Next.js 13 to Next.js 14](https://res.cloudinary.com/freecodez/image/upload/v1698636296/images/y09z2knipeftstzjxmhm.webp)

For full source code visit : [https://freecodez.com/post/2k6xucb](https://freecodez.com/post/2k6xucb)


```

```

Source Code : [https://freecodez.com/post/2k6xucb](https://freecodez.com/post/2k6xucb)

For more such articles visit : [https://freecodez.com](https://freecodez.com/all)
Discussion of the Week #7
Tags: discuss
Published: 2023-10-30 03:00:00

How do you stay updated with the latest trends and tools in tech?

Personally, I usually check the following websites:

- [ProductHunt](https://www.producthunt.com/) to check new cool apps

- [DevHunt](https://devhunt.org/) to check out new dev tools

- Use the [Daily Dev](https://daily.dev/) browser extension as a news aggregator

- [Future Tools](https://www.futuretools.io/) for new AI tools

- Check the Technology section of the [Artifact](https://artifact.news/) app
Spring vs spring-boot
Tags: beginners, spring, springboot, overview
Published: 2023-10-30 02:32:39

![Spring-boot and spring ecosystem](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cfu76usslrzbrwnokhsf.PNG)
Spring and Spring Boot are two related frameworks in the Java ecosystem used for building enterprise-level applications, particularly web and microservices applications. Here's a brief comparison:


1. **Spring**:
   - **Core Framework**: Spring is a comprehensive framework that provides various modules for different aspects of Java application development, such as dependency injection, aspect-oriented programming, data access, and more.
   - **Configuration**: Spring relies on XML-based or Java-based configuration for setting up application components and their dependencies.
   - **Flexibility**: It offers a high degree of flexibility and customization, allowing developers to pick and choose the components they need for their application.
![spring modules](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rdbh8tvhxu69kamhf5nd.PNG)
2. **Spring Boot**:

![spring-boot extension](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8o25skwcre6ylgu1v6bp.jpg)


   - **Microservices and Opinionated Defaults**: Spring Boot is built on top of the Spring framework and is designed to simplify the setup and development of Spring applications, especially microservices. It provides a set of opinionated defaults and auto-configuration to reduce the need for extensive configuration.
   - **Embedded Servers**: Spring Boot includes embedded servers like Tomcat, Jetty, or Undertow, making it easier to create self-contained executable JAR files for deploying applications.
   - **Auto-Configuration**: It automatically configures many common components, reducing the need for explicit configuration. Developers can override these configurations as needed.
   - **Production-Ready Features**: Spring Boot includes features like health checks, metrics, and externalized configuration, making it well-suited for production use.

In summary, Spring provides a versatile framework for Java application development with more control over configuration, while Spring Boot is an opinionated framework that simplifies the setup of Spring applications, especially for microservices, by providing defaults and auto-configuration. The choice between them depends on your project's requirements and your preference for configuration complexity. Spring Boot is often preferred for rapid development and microservices, while Spring may be chosen for more customized, complex applications.
Building a Chat Sim | Part 1
Tags: codenewbie, beginners, programming, mobile
Published: 2023-10-30 02:23:49

For my first personal project, I'm attempting to build a <u>mobile chat simulator game</u>.

Keep in mind as I continue to blog my progress - **I don't know what I'm doing.**


## What I'm building?

- Mobile chat simulator game - basically a modified clone of an existing game.
The game would allow the user to play as a character and interact with other characters using predefined chat options. Winning the game is ending based, so players can try to get the best or preferred ending through the choices they make.

## Proposed Stack

- Frontend: React Native
- Backend: Python, Django

{A/N: This stack was proposed to me by ChatGPT😂 and I don't know any better, but I'm familiar with Python and JS so I figure I can learn how to use this stack}

## Initial Models

![Image showing the models or classes proposed for the system](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g6v3cnb1zvkwqqixiuvy.png)

These are subject to change as I learn more about how components interact within the system.


## Wireframes
Tutorial chat featuring a placeholder character named "Helpi"
![Image showing the proposed wireframe for the tutorial chat in the system](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xy1929crbhmave7fpnrg.png)

Store where players can gain battery which allows them to be able to play the game, and coins which allows them to purchase items that can help them get closer to the ending they desire.
![Image showing the proposed wireframe for the store in the system](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ai9yt66n92yfitj2y16q.png)

## What's next?
So far, I've worked through the initial planning and determining what I want the most viable product to be, so next I'll be working on learning how to use the tech stack and getting started on development.

What I'm most looking forward to is after I get the code all set up. I think development will be a bit easier from then on.

Feel free to comment on this post any suggestions or thoughts at all.
2023 Hacktoberfest #4
Published: 2023-10-30 02:16:34

[Issue](https://github.com/codu-code/codu/issues/551)/[PR](https://github.com/codu-code/codu/pull/562)


I fixed two issues in this [project](https://github.com/codu-code/codu), but this issue was more complicated and I spent lots of time to fix the problem. The issue was to fix `Progress bar` when screens are loading, and `Progress bar` was implemented in `Next.js`. However, I found out `router.events` from `next/router` was not available on `Next.js 13` and it needed to be fixed. 

```
 useEffect(() => {
    function onRouteChangeStart() {
      setIsAnimating(true);
    }

    function onRouteChangeComplete() {
      setIsAnimating(false);
    }

    router.events.on("routeChangeStart", onRouteChangeStart);
    router.events.on("routeChangeComplete", onRouteChangeComplete);

    // Unassign event listener
    return () => {
      router.events.off("routeChangeComplete", onRouteChangeComplete);
      router.events.off("routeChangeStart", onRouteChangeStart);
    };
  }, [router]);
```
`router.events.on` and `router.events.off` were used when pages loading, but after version was upgraded and that methods were deprecated, so I looked for a solution and eventually found a workaround to use [`NextTopLoader`](https://github.com/TheSGJ/nextjs-toploader) library. This library is really straight-forward and it's easy for users to use, but the default progress bar is in blue. However, the author wanted to put `gradient` to the progress bar for a better look. I was struggling with applying CSS to the progress bar, fortunately the library also offered `template` attribute for users to apply their own CSS to the progress bar. 

```
  <NextTopLoader
          easing="linear"
          showSpinner={false}
          template='<div class="bar" role="bar"><div class="gradient"></div></div>'
        />
```
```
@layer {
  .gradient {
    background-image: linear-gradient(
      to right,
      rgb(251, 146, 60),
      rgb(219, 39, 119)
    );
    height: 0.25rem;
    width: 100%;
    left: 0px;
    top: 0px;
    position: fixed;
    z-index: 50;
  }
}
```
I simply created CSS gradient and applied it to the progress bar, and it worked as I expected. From this issue, I gained knowledge of `Next.js` and I got interested in it. Also, I saw that `Next.js 14` was released a couple of days ago, and I'm wondering if `router.events.off/on` is back or not because many people like me were suffering on `Next.js 13`. If I have an opportunity, I'd like to update a progress bar with `Next.js 14` without using the library because the library has a variety of restrictions.
Why Flexospaces is the Top Choice for Coworking in Pune
Tags: coworking, office, workspace
Published: 2023-10-30 01:45:19

Pune, often hailed as the Oxford of the East, is a vibrant city known for its thriving educational institutions and a rapidly growing corporate landscape. With the influx of businesses and entrepreneurs, the demand for flexible office spaces has surged. In this dynamic environment, one name stands out as the top choice for coworking in Pune – Flexospaces.

**A Winning Combination of Location and Amenities**

Flexospaces' success in [coworking space Pune](https://www.flexospaces.com/in/coworking/pune) can be attributed to its prime locations strategically positioned across the city. Whether you're seeking an office in the heart of the IT hub or a serene workspace away from the hustle and bustle, Flexospaces has you covered.

But it's not just about location; it's about providing an all-encompassing experience. Flexospaces' workspaces are thoughtfully designed, boasting modern amenities that cater to diverse professional needs. High-speed internet, meeting rooms, comfortable lounges, and an array of services come together to create an environment where productivity thrives.

**Community and Networking Opportunities**

One of the standout features of Flexospaces in Pune is the sense of community it fosters. Coworking is not just about sharing office space; it's about connecting with like-minded professionals. Flexospaces curates events, workshops, and networking sessions to ensure that every member has the chance to interact, collaborate, and grow.

**Flexibility Tailored to You**

Pune's professionals, from startups to established businesses, require flexibility in their workspace solutions. Flexospaces understands this need. You can choose a hot desk, dedicated desk, or private office, and you're not tied to long-term contracts. This flexibility is what has earned Flexospaces a stellar reputation in Pune.

**Why Choose Flexospaces in Pune?**

Flexospaces is not just a place to work; it's a space that empowers you to thrive. The winning combination of prime locations, state-of-the-art amenities, community building, and flexible options makes Flexospaces the top choice for coworking in Pune. Join the movement, and unlock the potential of your professional journey with Flexospaces. Your ideal workspace is waiting for you in Pune's thriving coworking scene.
Backup dan Restore PostgreSQL Data dari Docker Container
Tags: postgres, docker
Published: 2023-10-30 01:37:56

- **Backup**
`docker exec -t your-db-container pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql`

- **Restore**
`cat your_dump.sql | docker exec -i your-db-container psql -U postgres`
SOTA Image PreProcessing Scripts For Stable Diffusion Training - Auto Subject Crop & Face Focus
Tags: stablediffusion, training, ai, finetuning
Published: 2023-10-30 00:34:44

[SOTA Image PreProcessing Scripts For Stable Diffusion Training - Auto Subject Crop & Face Focus](https://youtu.be/Fbuyu35TkE4)

{% embed https://youtu.be/Fbuyu35TkE4 %}

One of the most important aspect of Stable Diffusion training is the preparation of training images. In this tutorial video I will show you how to fully automatically preprocess training images with perfect zoom, crop and resize. These scripts will hugely improve your training success and accuracy. 

Scripts Download Link ⤵️ 
https://www.patreon.com/posts/sota-subject-and-88391247

Massive and excellent quality classification / regularization preprocessed and raw images datasets for both man and woman ⤵️
https://www.patreon.com/posts/massive-4k-woman-87700469

The scripts are utilizing Yolo V7 and Retina Face AI models. These are the very best state of the art AI models. Moreover they are very well coded. They will work super optimized and accurate.

With these scripts with 1 click you will preprocess all of your training images into the desired target resolution with very possible way and quality.

SECourses Discord To Get Full Support ⤵️
https://discord.com/servers/software-engineering-courses-secourses-772774097734074388

My LinkedIn ⤵️
https://www.linkedin.com/in/furkangozukara/

My Twitter ⤵️
https://twitter.com/GozukaraFurkan

My Instagram ⤵️
https://www.instagram.com/gozukarafurkan/

My Medium ⤵️
 @FurkanGozukara https://medium.com/@furkangozukara 

My CivitAI ⤵️
https://civitai.com/user/SECourses

0:00 Introduction to the very best training images preprocessing scripts for Stable Diffusion training
5:48 How to install and use auto cropper / zoom-in script - first stage
7:25 Which file to edit and set processing folder path for cropper script
7:52 How to add or remove new aspect ratios
10:18 Full cropping supported classes of Yolo V7
11:42 How to install and run image resizer / downscaler with face focus with Retina Face
12:51 How to edit and run resizer script for perfect downscale and preparation of training images
14:37 Comparison of raw images vs final processed images
Unit teste - Triple A (AAA)
Tags: tdd, dotnet, backend, unittest
Published: 2023-10-30 00:31:57

Model used when creating tests

Arrange -> Configuration of the information necessary to run the tests.

Act -> Calling the methods configured in the first step to execute the test

Assert -> It is the test verification. This is the part where we inform what method will be used to validate the test and whether the expected result was achieved.

Consultation material: https://medium.com/@pablodarde/o-padr%C3%A3o-triple-a-arrange-act-assert-741e2a94cf88

example code using .net 7: https://github.com/RafaelaNasciment/UnitTestExample

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ogn8ldyc61vpmc462wno.png)
Faster (cheap) remote dev environments - towards a compile cluster?
Tags: gitpod, codespace
Published: 2023-10-30 00:21:37

I have used various remote development servers for a while now. Naturally, you want to rent a high end instance and share it amongst developers, or as thing progress, host multiple containers on one high end shared host. The problem with this approach is developers will usually want to develop during same business hours, so won't be optimally using CPUs during peak load.

Instead, we should be moving towards  clusters of compute servers evenly spreading compilation jobs and sending results to front end IDE servers. This will help avoid some developers waiting longer if they happen to collide with competing work on a single server.

In order to reach this reality, we may need to re-architect compilers to be able to launch remote compilation tasks, along with mounting remote directories for intermediate compiler artifacts.
TDD -> Test Driven Development
Tags: tdd, unittest, backenddevelopment, dotnet
Published: 2023-10-30 00:17:11

It is a development approach, where the objective is to start testing before code.

TDD's timeline

  Red 

- Create the test visualizing the final objective. Ex: create a profile, the test must cover the process until the end.
- At this stage the test must fail.

  Green

- The implementation of the code begins, which must be developed until the test created in the RED stage is stabilized. 
- At this stage the test must be successful.

  Refactor 

- The code must be refactored to improve quality and clarity.
- At this stage the test must be successful.
Support material:

https://www.youtube.com/watch?v=NxTgE4rx9uk

https://www.youtube.com/watch?v=bLdEypr2e-8&t=405s
The best advice for shipping software
Tags: beginners, webdev, career
Published: 2023-10-30 14:03:12

---
title: The best advice for shipping software
published: true
date: 2023-10-30 00:00:00 UTC
tags: beginners, webdev, career
canonical_url: https://mckerlie.com/posts/the-best-advice-for-shipping-software/
---

This is the best piece of advice I’ve ever received about building software.

> If you’re not embarrassed by the thing you shipped, you waited too long

When people first hear this, they think it means shipping buggy code. It isn’t.

It’s also not about shipping broken experiences.

The mindset revolves around the idea that you’ll learn what you need to build when your customers first start using it. If you wait until you have a full-featured, polished application there’s a good chance you’ve waisted time building the wrong thing.

Figure out what your MVP is and ship it two weeks early.

Talk with customers and see if it resonates. Get comfortable shipping early and often.

Iterate and repeat. Happy shipping! 🚢
AWS DMS (Database Migration Service)
Published: 2023-10-29 23:24:51

AWS Database Migration Service (AWS DMS) is a managed **migration and replication service** that helps move your database and analytics workloads to AWS quickly, securely, and with minimal downtime and zero data loss. 

AWS DMS **supports migration between 20-plus database and analytics engines**, such as **Oracle** to Amazon Aurora MySQL-Compatible Edition, **MySQL** to Amazon Relational Database (RDS) for MySQL, Microsoft **SQL Server** to Amazon Aurora PostgreSQL-Compatible Edition, **MongoDB** to Amazon DocumentDB (with MongoDB compatibility), Oracle to Amazon Redshift, and Amazon Simple Storage Service (S3).
Short note: flaky test detection tools
Tags: testing, softwareengineering
Published: 2023-10-29 23:22:19

You can use low tech manual monitoring to surface and keep track of flaky tests, but there are also some tools available.

Classic tools like TeamCity have built-in graphs and notifications to help detect flaky tests.

For cloud CI, I have found one tool and two services which help automatically track flaky tests
* buildpulse service
* testspace service
* F-Secure's flaky tests detection tool