Pages

Showing posts with label linux tools. Show all posts
Showing posts with label linux tools. Show all posts

Wednesday, November 20, 2024

Fedora 41 : generated shapes with python !

Today I created this source code in python that generates eight random convex polygons. The idea was to create sprites for a 2D game: snowballs, boulders, or similar objects ... Obviously I also used Sonet 3.5 artificial intelligence. You can find the source code on the pagure account in fedora.
#!/usr/bin/env python3
"""
SVG Polygon Generator

This script generates multiple deformed polygonal shapes and saves them as separate SVG files.
Each polygon maintains convex properties while having controlled random deformations.

Features:
    - Generates 8 unique polygonal shapes
    - Controls deformation through radial and angular factors
    - Maintains convex properties
    - Exports each shape to a separate SVG file
    - Uses random colors for visual distinction

Usage:
    python generate_svgs.py

Output:
    Creates 8 SVG files named 'polygon_1.svg' through 'polygon_8.svg'
"""

from lxml import etree
import random
import math
from pathlib import Path


def create_svg_root():
    """Create and return a base SVG root element with standard attributes."""
    root = etree.Element("svg")
    root.set("width", "500")
    root.set("height", "500")
    root.set("xmlns", "http://www.w3.org/2000/svg")
    return root


def calculate_points(center_x: float, center_y: float, radius: float, 
                    num_sides: int, deform_factor: float) -> list:
    """
    Calculate polygon points with controlled deformation.

    Args:
        center_x: X coordinate of polygon center
        center_y: Y coordinate of polygon center
        radius: Base radius of the polygon
        num_sides: Number of polygon sides
        deform_factor: Maximum allowed deformation factor

    Returns:
        List of tuples containing (x, y) coordinates
    """
    points = []
    angle_step = 2 * math.pi / num_sides
    
    for i in range(num_sides):
        angle = i * angle_step
        radial_deform = random.uniform(-deform_factor, deform_factor)
        angular_deform = random.uniform(-deform_factor/2, deform_factor/2)
        
        modified_angle = angle + angular_deform
        modified_radius = radius * (1 + radial_deform)
        
        x = center_x + modified_radius * math.cos(modified_angle)
        y = center_y + modified_radius * math.sin(modified_angle)
        points.append((x, y))
    
    return points


def generate_deformed_shapes():
    """Generate multiple deformed polygons and save them to separate SVG files."""
    # Base parameters
    num_sides = 8
    center_x = 250
    center_y = 250
    base_radius = 150
    max_deformation = 0.15
    output_dir = Path("generated_polygons")
    
    # Create output directory if it doesn't exist
    output_dir.mkdir(exist_ok=True)

    for i in range(8):
        root = create_svg_root()
        points = calculate_points(center_x, center_y, base_radius, 
                                num_sides, max_deformation)
        
        path = etree.SubElement(root, "path")
        path_data = f"M {points[0][0]} {points[0][1]}"
        path_data += "".join(f" L {p[0]} {p[1]}" for p in points[1:])
        path_data += " Z"
        
        path.set("d", path_data)
        path.set("fill", "none")
        path.set("stroke", f"#{random.randint(0, 16777215):06X}")
        path.set("stroke-width", "2")
        path.set("opacity", "0.7")

        # Save individual SVG file
        output_file = output_dir / f"polygon_{i+1}.svg"
        tree = etree.ElementTree(root)
        tree.write(str(output_file), pretty_print=True, 
                  xml_declaration=True, encoding='utf-8')
    
    print(f"Generated {num_sides} polygons in {output_dir}")

if __name__ == "__main__":
    generate_deformed_shapes()

Saturday, November 16, 2024

Fedora 41 : Bookworm - open-source eBook reader !

Bookworm is an open-source eBook reader with an easy and simple layout supporting different file formats like epub, pdf, mobi, cbr and cbz. See the official webpage.
root@localhost:/home/mythcat# dnf5 search bookworm
Updating and loading repositories:
Repositories loaded.
Matched fields: name (exact)
 bookworm.x86_64: Simple, focused eBook reader
root@localhost:/home/mythcat# dnf5 install bookworm.x86_64
Updating and loading repositories:
Repositories loaded.
Package                 Arch   Version                      Repository      Size
Installing:
 bookworm               x86_64 1.1.3-0.13.20200414git.c7c36 fedora       3.6 MiB
Installing dependencies:
 granite                x86_64 6.2.0-9.fc41                 fedora     949.2 KiB
 javascriptcoregtk4.0   x86_64 2.46.3-1.fc41                updates     28.3 MiB
 webkit2gtk4.0          x86_64 2.46.3-1.fc41                updates     75.4 MiB

Transaction Summary:
 Installing:         4 packages
...
[6/6] Installing bookworm-0:1.1.3-0.13. 100% | 430.8 KiB/s |   3.7 MiB |  00m09s
Complete!ng trigger-install scriptlet: hicolor-icon-theme-0:0.17-19.fc41.noarch
The last step, search this on gnome environmet and you will find this application.

Thursday, October 17, 2024

Fedora 42 : Testing isoimagewriter.

Today I tested the isoimagewriter tool on Fedora 42 and works well:
[mythcat@fedora ~]$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 984 MiB, 1031798784 bytes, 2015232 sectors
Disk model: USB FLASH DRIVE 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
[mythcat@fedora ~]$ isoimagewriter 
[mythcat@fedora ~]$ sudo file -s /dev/sdb
/dev/sdb: ISO 9660 CD-ROM filesystem data 'CorePure64' (bootable)
[mythcat@fedora ~]$ sudo qemu-system-x86_64 -cdrom /dev/sdb 
I used an linux iso image from CorePure64

Thursday, April 18, 2024

Fedora 41 : python and Federated Message Bus in Fedora Linux Distro.

Federated Message Bus is a library built on ZeroMQ using the PyZMQ Python bindings. fedmsg aims to make it easy to connect services together using ZeroMQ publishers and subscribers.
You can use this python package named fedmsg to use this functionality ...
This is the source code :
import fedmsg
from fedmsg import *

import os
# Set the routing_nitpicky flag to True
os.environ['FEDMSG_ROUTING_NITPICKY'] = 'True'


config = fedmsg.config.load_config([],None)
config['mute'] = True
config['timeout'] = 0

for name, endpoint, topic, msg in fedmsg.tail_messages(**config):
    print ("name ", name)
This is the result :
[mythcat@fedora FedoraMessaging]$ python fedmsg_001.py
No routing policy defined for "org.fedoraproject.prod.copr.build.start" but routing_nitpicky is False so the message is being treated as authorized.
name  fedora-infrastructure
No routing policy defined for "org.fedoraproject.prod.copr.chroot.start" but routing_nitpicky is False so the message is being treated as authorized.
name  fedora-infrastructure
No routing policy defined for "org.fedoraproject.prod.github.check_run" but routing_nitpicky is False so the message is being treated as authorized.
name  fedora-infrastructure
No routing policy defined for "org.fedoraproject.prod.github.pull_request_review" but routing_nitpicky is False so the message is being treated as authorized.
name  fedora-infrastructure
No routing policy defined for "org.fedoraproject.prod.github.pull_request_review_comment" but routing_nitpicky is False so the message is being treated as authorized.
name  fedora-infrastructure ... 

Saturday, March 30, 2024

Fedora 41 : Memstrack tool.

A runtime memory allocation tracer, like a hot spot analyzer for memory allocation, can help analyze overall memory usage, peak memory usage, kernel module memory usage, all combined with stacktrace. Userspace memory trace is planned and not yet implemented.
This tool works by tracing all page-level memory allocation events in kernel (currently supports using perf or ftrace), and actively integrate the events into a stack trace tree. It can also work with kernel's page owner log file and use as a memory usage viewer.
I tested this tool today and it is quite useful for development and monitoring the operating system, it seems to work very well, you can even see in the screenshot how ...
You can find this project on the GitHub repo.

Friday, March 22, 2024

News : Flutter on Fedora 40 - the run debug info.

The run command comes with info about the running process, see:
[mythcat@fedora examples]$ ../flutter/bin/flutter run
Launching lib/main.dart on Linux in debug mode...
Building Linux application...                                           
Syncing files to device Linux...                                 1,488ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

A Dart VM Service on Linux is available at: http://127.0.0.1:38903/k8tmzU7n0NQ=/
The Flutter DevTools debugger and profiler on Linux is available at:
http://127.0.0.1:9100?uri=http://127.0.0.1:38903/k8tmzU7n0NQ=/
If you open that URL you will see this type of informations:

Fedora 40 : Spectacle tool.

Spectacle is a screenshot taking utility for the KDE desktop. Spectacle can also be used in non-KDE X11 desktop environments.
This is the GitHub project for this tool.
[root@fedora mythcat]# dnf5 install spectacle.x86_64
Updating and loading repositories:
Repositories loaded.
Package                       Arch   Version                 Repository      Size
Installing:                                                                      
 spectacle                    x86_64 24.02.0-1.fc41          updates-te   4.8 MiB
Installing dependencies:                                                         
...
This is an screenshot with this tool:

Sunday, March 17, 2024

News : Flutter on Fedora 40.

Flutter transforms the development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded experiences from a single codebase.
Read more on the official webpage.
Theoretically, Flutter can be used much easier in the Fedora 40 Linux distribution than in a Windows operating system.
The Windows installation method requires more complicated steps with the use of S.D.K. and settings of Android Studio I.D.E. .
Here are the steps you need to follow for a default installation.
[mythcat@fedora ~]$ mkdir ~/FlutterProjects
[mythcat@fedora ~]$ cd FlutterProjects/
[mythcat@fedora ~]$ wget https://storage.googleapis.com/flutter_infra_release/releases
/stable/linux/flutter_linux_3.3.10-stable.tar.xz
[mythcat@fedora ~]$ tar xf flutter_linux_3.3.10-stable.tar.xz
[mythcat@fedora ~]$
...

[mythcat@fedora FlutterProjects]$ ./flutter/bin/flutter doctor

┌─────────────────────────────────────────────────────────┐
│ A new version of Flutter is available!                  │
│                                                         │
│ To update to the latest version, run "flutter upgrade". │
└─────────────────────────────────────────────────────────┘
...

      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✗] Chrome - develop for the web (Cannot find Chrome executable at
    google-chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] VS Code (version 1.87.2)
[✓] Connected device (1 available)
[✓] HTTP Host Availability

! Doctor found issues in 3 categories.
[mythcat@fedora FlutterProjects]$ ./flutter/bin/flutter upgrade

...

    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] VS Code (version 1.87.2)
[✓] Connected device (1 available)
[✓] Network resources

! Doctor found issues in 4 categories.

[mythcat@fedora FlutterProjects]$ ./flutter/bin/flutter config --enable-linux-desktop
Setting "enable-linux-desktop" value to "true".

You may need to restart any open editors for them to read new settings.

[mythcat@fedora FlutterProjects]$ mkdir examples
[mythcat@fedora FlutterProjects]$ cd examples/

[mythcat@fedora examples]$ ../flutter/bin/flutter create .
Creating project ....
Resolving dependencies... (5.1s)
Got dependencies.
Wrote 129 files.

All done!
You can find general documentation for Flutter at: https://docs.flutter.dev/
Detailed API documentation is available at: https://api.flutter.dev/
If you prefer video documentation, consider:
https://www.youtube.com/c/flutterdev

In order to run your application, type:

  $ cd .
  $ flutter run

Your application code is in ./lib/main.dart.

[mythcat@fedora examples]$ cd .
[mythcat@fedora examples]$ ls
analysis_options.yaml  ios    macos         README.md  windows
android                lib    pubspec.lock  test
examples.iml           linux  pubspec.yaml  web
[mythcat@fedora examples]$ ../flutter/bin/flutter run
The result is this simple default example:

Wednesday, February 21, 2024

News : SELinux wizzard tool !

I found today in Fedora linux this tool for SELinux with a GUI that allows creating linux security policies.
I will write a little about this system because it is a very good solution.
When I started studying selinux, it was not very well implemented and it seems that the interest of users to be protected is higher.
As you well know, the starting points are network security and data protection and kernel-level intrusions into software.
For those who don't know, SELinux is a system that allows limiting defined resources and allowing other actions or not.
I tested the tool and I can say that it solves only the standard file creation part without the possibility of selecting the SELinux bools variables.
If the one who created this tool will continue to be a very good tool.
It's currently a wizzard interface, I'd call it a Node Editor to allow the assembly of different processing blocks (nodes) into combinations that feed data to each other along connections you specify to produce complex effects.
After completing the steps in the wizard, you will have some default files.
I used the name firefox because the security of the browser is very low at the moment.
Here are some images of this tool:

Saturday, February 3, 2024

News : VirtualBox 7.0.14 released! from Oracle.

Oracle today released a 7.0 maintenance release which improves stability and fixes regressions. See the Changelog
I also use a version of Fedora running on VirtualBox for tests and rapid development.
Most use Linux on older hardware as a backup OS...
You can use Linux with specific non-default settings for good security of the operating system, but it does not make it invincible.
I don't know if VirtualBox solved the resize of the virtual partition - this was the last issue I encountered with this tool, but it is useful if you want to test something quickly.

Wednesday, December 27, 2023

Fedora 39 : Fixing common upgrade issues.

The most common issue is that the Linux system hangs due to disk space and upgrades.
Here's what you need to do:
Ensure you have root access by editing the boot sequence from the boot menu with the word single and entering the root password.
... start the network in the maintenance environment with the command:
# systemctl restart NetworkManager
Check if you can update with the DNF5 tool or DNF , see this webpage:
# dnf5 upgrade --refresh
If the update tool tells you that you have no space available, then you can clean up with:
# journalctl --disk-usage
# journalctl --vacuum-size=16M
The size of 16M is a relative size related to how the resource is allocated!
Another possibility would be to reallocate the space.
NOTE: If you are using a virtual disk with .vdi extension on Windows OS, then I don't have a solution.
Although virtualbox has an interface that would allow resizing the virtual disk, it didn't work for me.

Thursday, December 14, 2023

Fedora 39 : Foot - the sway terminal.

Today, I will show how to use a fast, lightweight, and minimalistic Wayland terminal emulator named Foot.
You can install it easily with the DNF5 tool :
The project can be found on this codeberg repo.
On the sawy desktop environment, you can use Win+D keys just to type a command to start an application.
You can start easily by typing foot or you can type on an open terminal, see:
[mythcat@fedora ~]$ foot
warn: wayland.c:1509: fractional scaling not available
warn: wayland.c:1512: no server-side cursors available, falling back to client-side cursors
warn: fcft.c:583: failed to get full font name
warn: fcft.c:583: failed to get full font name
I used updatedb and locate commands to find the foot.ini file and change some settings like font size, and more :

Monday, December 11, 2023

Fedora 39 : ImHex editor.

ImHex is a Hex Editor, a tool to display, decode and analyze binary data to reverse engineer their format, extract informations or patch values in them.
Read more on the official webpage.
Let's install with dnf5 tool:
# dnf5 install imhex.x86_64
Updating and loading repositories:
Repositories loaded.
Package         Arch       Version         Repository                   Size
Upgrading:                
 cpp            x86_64     13.2.1-6.fc40   updates-testing          30.9 MiB
  replacing cpp                          x86_64     13.2.1-5.fc40   updates-testing          30.9 MiB
 gcc            x86_64     13.2.1-6.fc40   updates-testing          94.7 MiB
  replacing gcc                          x86_64     13.2.1-5.fc40   updates-testing          94.7 MiB
 gcc-c++        i686       13.2.1-6.fc40   updates-testing          34.7 MiB
  replacing gcc-c++                      i686       13.2.1-5.fc40   updates-testing          34.7 MiB
 gcc-c++        x86_64     13.2.1-6.fc40   updates-testing          33.9 MiB
  replacing gcc-c++                      x86_64     13.2.1-5.fc40   updates-testing          33.9 MiB
 gcc-plugin-annobin                      x86_64     13.2.1-6.fc40   updates-testing          57.0 KiB
  replacing gcc-plugin-annobin           x86_64     13.2.1-5.fc40   updates-testing          57.0 KiB
 glib2          x86_64     2.78.3-1.fc40   updates-testing          13.5 MiB
  replacing glib2                        x86_64     2.78.1-1.fc40   rawhide                  13.5 MiB
 glib2-devel    x86_64     2.78.3-1.fc40   updates-testing           3.7 MiB
  replacing glib2-devel                  x86_64     2.78.1-1.fc40   rawhide                   3.7 MiB
 libcurl        x86_64     8.5.0-1.fc40    updates-testing         784.6 KiB
  replacing libcurl                      x86_64     8.4.0-1.fc40    rawhide                 776.5 KiB
 libcurl-devel                           x86_64     8.5.0-1.fc40    updates-testing           1.4 MiB
  replacing libcurl-devel                x86_64     8.4.0-1.fc40    rawhide                   1.4 MiB
 libgcc         i686       13.2.1-6.fc40   updates-testing         253.4 KiB
  replacing libgcc                       i686       13.2.1-5.fc40   updates-testing         253.4 KiB
 libgcc         x86_64     13.2.1-6.fc40   updates-testing         230.3 KiB
  replacing libgcc                       x86_64     13.2.1-5.fc40   updates-testing         230.3 KiB
 libgomp        x86_64     13.2.1-6.fc40   updates-testing         485.7 KiB
  replacing libgomp                      x86_64     13.2.1-5.fc40   updates-testing         485.7 KiB
 libquadmath    x86_64     13.2.1-6.fc40   updates-testing         325.9 KiB
  replacing libquadmath                  x86_64     13.2.1-5.fc40   updates-testing         325.9 KiB
 libquadmath-devel                       x86_64     13.2.1-6.fc40   updates-testing          21.4 KiB
  replacing libquadmath-devel            x86_64     13.2.1-5.fc40   updates-testing          21.4 KiB
 libstdc++      x86_64     13.2.1-6.fc40   updates-testing           2.7 MiB
  replacing libstdc++                    x86_64     13.2.1-5.fc40   updates-testing           2.7 MiB
 libstdc++-devel                         x86_64     13.2.1-6.fc40   updates-testing          14.2 MiB
   replacing libstdc++-devel             x86_64     13.2.1-5.fc40   updates-testing          14.1 MiB
Installing:               
 imhex          x86_64     1.31.0-1.fc40   updates-testing          25.6 MiB
Installing dependencies:                           
 glfw           x86_64     1:3.3.8-4.fc39                           updates-testing         290.0 KiB
 nativefiledialog-extended               x86_64     1.1.1-1.fc40    updates-testing          40.8 KiB
 yara           x86_64     4.4.0-1.fc40    updates-testing         612.0 KiB
Installing weak dependencies:                      
 imhex-patterns                          x86_64     1.31.0-1.fc40   updates-testing           9.4 MiB

Transaction Summary:
 Installing:        5 packages
 Upgrading:        16 packages
 Replacing:        16 packages

Total size of inbound packages is 93 MiB. Need to download 93 MiB.
After this operation 36 MiB will be used (install 268 MiB, remove 232 MiB).
Is this ok [y/N]: y ...
I try on run on HP Compaq 6710b but not working:
[mythcat@fedora ~]$ imhex
[15:50:08] [INFO]  [main]       Welcome to ImHex 1.31.0!
[15:50:08] [INFO]  [main]       Compiled using commit Unknown@Unknown
[15:50:08] [INFO]  [main]       Running on Linux 6.7.0-0.rc3.20231129git18d46e76d7c2.30.fc40.x86_64 
#1 SMP PREEMPT_DYNAMIC Wed Nov 29 15:20:20 UTC 2023 (x86_64)
[15:50:09] [ERROR] [main]       GLFW Error [65543] : GLX: Failed to create context: GLXBadFBConfig
[15:50:09] [FATAL] [main]       Failed to create GLFW window: [65543] GLX: Failed to create context: GLXBadFBConfig.
You may not have a renderer available.
The most common cause of this is using a virtual machine
You may want to try a release artifact ending with 'NoGPU'

Sunday, December 10, 2023

Fedora 39 : About Penpot online tool.

Designers and developers can finally work in unison to build beautifully designed software experiences that truly scale up.
Penpot is the Open-Source Design & Prototyping Tool for Product Teams.
If you have worked with Adobe XD or similar software, then it performs the same functions.
I haven't tested it very thoroughly, but I can tell you that it works very well and is open-source and free.
I haven't seen anything about Bootstrap in the library of bookstores and templates, but there are quite a few in other areas with a pretty good design.
You can test it on the official webpage.
See these videos from the official youtube channel:

Sunday, August 20, 2023

Fedora 39 : GitHub tickets.

You can get a free virtual ticket for a price of 0.
Datatime and Location: NOVEMBER 8—9 LIVE & VIRTUAL YERBA BUENA CENTER FOR THE ARTS, SAN FRANCISCO.

Friday, August 18, 2023

Fedora 39 : micro - terminal .

micro - a modern and intuitive terminal-based text editor, see more on this official website.
Let's see how works n Fedora 39 Linux Distro ...

Tuesday, August 1, 2023

Fedora 39 : FASM tool in Fedora.

I searched the internet about the FASM tool and found references that it would be included in the Ubuntu distribution.
If you want to use FASM with the related language in the Fedora Linux distribution, then find the commands in the image below:

Sunday, July 30, 2023

Fedora 39 : Test with eDEX-UI.

eDEX-UI is a fullscreen, cross-platform terminal emulator and system monitor that looks and feels like a sci-fi computer interface.
This can be found on this GitHub project.
This is version for 64-bit Machines, you can download it with:
$ wget -c https://github.com/GitSquared/edex-ui/releases/download/v2.2.8/eDEX-UI-Linux-x86_64.AppImage
Change the file to be executable:
$ chmod +x eDEX-UI-Linux-x86_64.AppImage
Use this command:
$ ./eDEX-UI-Linux-x86_64.AppImage --appimage-extract
Go to this folder:
$ cd squashfs-root
Run the application:
$ ./AppRun
This is the result of running the application:

Monday, June 26, 2023

News : The new DNF5 tool is on Fedora .

The new DNF5 will provide a significant improvement in user experiences and performance. The replacement is the second step in upgrade of Fedora Software Management stack. Without the change there will be multiple software management tool (DNF5, old Microdnf, PackageKit, and DNF) based on different libraries (libdnf, libdnf5), providing a different behavior, and not sharing a history and module state. We can also expect that DNF will have only limited support from upstream. The DNF5 development was announced on Fedora-Devel list in 2020.
You can read more on the official webpage on Fedora area.

Friday, May 19, 2023

Fedora 39 : Using a stick or hard disk created in Windows.

When attached to USB, Linux distribution cannot access it.
Install these packages with the DNF utility.
sudo dnf install ntfs-3g
sudo dnf install ntfsfix
Use these commands to create a folder where it will be mounted and test if it can be mounted and where it is viewed :
sudo mkdir /mnt/mydrive
sudo mount -t ntfs-3g /dev/sdb1 /mnt/mydrive
dmesg| grep usb 
sudo mount /dev/sdb /mnt/mydrive
df -h
Fix errors with this command
sudo umount /dev/sdb1
sudo ntfsfix /dev/sdb1
It resumes the operation of mounting it in the folder named /mnt/mydrive:
sudo mount -t ntfs-3g /dev/sdb1 /mnt/mydrive
This command will mount as a superuser but can be modified as a normal user.
Create a USB folder into your home folder as normal user.
You can use these commands to use your files like a normal user:
[mythcat@fedora ~]$ sudo mount -t ntfs-3g /dev/sdb1 ~/USB
[sudo] password for mythcat: 
...
[mythcat@fedora ~]$ sudo umount /dev/sdb1