gled a écrit 50 commentaires

  • # Laxisme des opérateurs

    Posté par  . En réponse au journal Recrudescence des appels téléphoniques "marketing". Évalué à 2 (+2/-0).

    Pareil, j'ai tout bloqué depuis longtemps via l'interface de Free les numéros officels par lesquels doivent passer les démarcheurs, là, c'est devenu infernal, démarcheurs de merde passant par du 06, du 07, ras-le-bol ! Obligé de renvoyer les numéros inconnus vers le répondeur, pas le choix, la technologie, c'est bô ! Quand ce n'est pas pour nuire aux gens, ce n'est pas vers quoi on va hélas.

    Les opérateurs ont largement de quoi s'apercevoir que le numéro 06 de Monsieur Martin ne devrait pas envoyer tant d'appels, en fait, à mon sens, ce n'est quand même pas compliqué de limiter à un max de tant d'appels par jour depuis le numéro d'un particulier et que si ça dépasse, déclencher un trigger pour qu'un agent de l'opérateur contacte le détenteur du numéro afin de lui demander si c'est bien de son fait. Ou même carrément proposer des numéros de téléphone ne pouvant excéder X appels par jours vers différents numéros. Enfin, je ne sais pas, y a quand même des moyens techniques pour que les opérateurs identifient sans forcément s'immiscer dans la vie privée des gens les numéros à « problèmes », non ?

    Et puis pour les numéros pros ayant nécessité d'appeler beaucoup de numéros par jour, un numéro de Siret et secteur d'activité de l'entreprise devrait suffire à autoriser par l'opérateur moult appels vers différents numéros.

  • [^] # Re: petit resumé

    Posté par  . En réponse au lien Anubis - Le logiciel open source préserve Internet des robots IA. Évalué à 2 (+2/-0).

    Au moins ça fonctionne sans javascript, c'est déjà ça.

  • [^] # Re: mise à jour de son appli de gestion de messages ?

    Posté par  . En réponse au message opérateur Free, non-réception de SMS provenant de Orange. Évalué à 4 (+3/-0). Dernière modification le 23 juin 2025 à 08:58.

    Merci ^^

    On n'est jamais déçu sur linuxfr, passer de sms à notepad XD

  • [^] # Re: lafibre

    Posté par  . En réponse au message opérateur Free, non-réception de SMS provenant de Orange. Évalué à 2 (+1/-0).

    Je ne connaissais pas ce site, je vais fureter là-bas, peut-être que quelqu'un a déjà été confronté à ce souci.

    Merci ;)

  • [^] # Re: Le service client ?

    Posté par  . En réponse au message opérateur Free, non-réception de SMS provenant de Orange. Évalué à 1 (+0/-0).

    Non, je n'ai pas tenté de contacter de services clients qui généralement sont complètement à l'ouest et ne font que répondre des messages prétypés n'ayant généralement aucun rapport avec la question/demande.

  • [^] # Re: imessage ou RCS ?

    Posté par  . En réponse au message opérateur Free, non-réception de SMS provenant de Orange. Évalué à 2 (+1/-0).

    Merci =)

    Je vais voir cela avec elle et si cela peut résoudre le problème.

  • # adb + scrcpy ?

    Posté par  . En réponse au message Faire d'un smartphone, une caméra USB reconnue sous Linux. Évalué à 5 (+4/-0).

    Par connexion usb, en utilisant adb et scrcpy

    Pompé sur internet :

    adb shell am start -a android.media.action.VIDEO_CAMERA

    Puis simplement lancer scrcpy

    Bon le désavantage est qu'il faut que l'ordiphone soit connecté en filaire et que la vidéo est polluée des widgets de l'application de la caméra, mais y a peut-être une façon de ne pas les afficher via un paramètre ?

  • [^] # Re: p-e conso mémoire ?

    Posté par  . En réponse au message pygame subsurface, dans quels cas peuvent-elles être utiles ?. Évalué à 1 (+0/-0).

    Oui, j'avais déjà vu ce sujet sur reddit, mais ça ne m'avance guère, je vais quand même tester un peu ce qui est énuméré dans ce sujet.
    Merci en tout cas =)

  • [^] # Re: p-e conso mémoire ?

    Posté par  . En réponse au message pygame subsurface, dans quels cas peuvent-elles être utiles ?. Évalué à 1 (+0/-0).

    Que ce soit une surface intermédiaire, ou directement sur la surface de l'écran, je ne pense pas que ça change grand-chose.

  • [^] # Re: p-e conso mémoire ?

    Posté par  . En réponse au message pygame subsurface, dans quels cas peuvent-elles être utiles ?. Évalué à 2 (+1/-0). Dernière modification le 13 juin 2025 à 10:41.

    Merci du lien =)

    J'ai un peu testé ce que ça peut donner en mémoire, et y a quoi ? Peut-être 1 % de plus en conso mémoire avec un blit de la zone spécifiée par rapport à une subsurface, c'est quand même très peu, je trouve, pour une image de 300 x 300 changeant 10 fois par seconde.

    J'ai simplement regardé la consommation en mémoire via le moniteur système de Mate.

    Testé avec ce simple script :

    import random
    import pygame as pg
    import itertools
    
    pg.init()
    screen = pg.display.set_mode((600, 600))
    
    surf = pg.Surface((3000, 3000)).convert()
    
    coords = tuple(
        (x, y)
        for x in range(0, 3000, 300)
        for y in range(0, 3000, 300)
    )
    
    for coord, color in zip(coords, random.sample(tuple(pg.color.THECOLORS), 100)):
        surf.fill(pg.color.THECOLORS[color], (*coord, 300, 300))
    
    cycle_anim = itertools.cycle(coords)
    subsurf_rect = pg.Rect(0, 0, 300, 300)
    EVENT_ANIM = pg.USEREVENT
    
    pg.time.set_timer(EVENT_ANIM, 100)
    clock = pg.time.Clock()
    running = True
    while running:
        for event in pg.event.get():
            if event.type == pg.QUIT:
                running = False
            elif event.type == EVENT_ANIM:
                subsurf_rect.topleft = next(cycle_anim)
    
                screen.blit(surf.subsurface(subsurf_rect), (150, 150))
                # screen.blit(surf, (150, 150), subsurf_rect)
    
                pg.display.flip()
        clock.tick(30)
    
    pg.quit()

    Il suffit d'inverser la ligne commentée pour comparer les consommations en mémoire.

  • [^] # Re: Créer un style de cadre pour les images ?

    Posté par  . En réponse au message Intégration des images dans LibreOffice. Évalué à 1 (+0/-0).

    Oui, d'accord, mais ça ne me dispense pas de créer un cadre supérieur pour lier mon titre et mon image.

  • [^] # Re: Créer un style de cadre pour les images ?

    Posté par  . En réponse au message Intégration des images dans LibreOffice. Évalué à 1 (+0/-0).

    Je n'ai pas compris ce à quoi tu fais allusion. Qu'est-ce qu'un « style cadre » ?

  • [^] # Re: Créer un style de cadre pour les images ?

    Posté par  . En réponse au message Intégration des images dans LibreOffice. Évalué à 1 (+0/-0). Dernière modification le 20 mai 2025 à 10:21.

    Les légendes sont mes titres, donc non, ça ne me convient pas, je n'utilise pas les légendes, car ce n'est pas assez configurables.

    Merci de la suggestion.

  • [^] # Re: Créer un style de cadre pour les images ?

    Posté par  . En réponse au message Intégration des images dans LibreOffice. Évalué à 1 (+0/-0).

    Bon, je n'arrive vraiment pas à faire ce que je veux, la taille automatique, je l'avais déjà testé, ça ne fonctionne pas, enfin si, mais uniquement s'il y a quelque chose après mon image, ce qui oblige à laisser une ligne vide en dessous, bon, je vais faire avec, mais ça ne m'arrange pas.

    Toujours est-il, merci de vos suggestions, ça m'a permis de découvrir qu'on pouvait faire un nouveau style depuis la sélection, oui, je sais, je ne suis pas fortiche avec les traitements de texte ×_*

  • [^] # Re: Créer un style de cadre pour les images ?

    Posté par  . En réponse au message Intégration des images dans LibreOffice. Évalué à 1 (+0/-0).

    Merci à vous deux, je vais retester et voir si j'y arrive selon vos conseils.

  • [^] # Re: Est-ce vraiment nécessaire que le réseau soit invisible?

    Posté par  . En réponse au message Connexion à un réseau wifi invisible avec android 14. Évalué à 1. Dernière modification le 17 avril 2025 à 18:05.

    Pour le mot de passe, les 20 caractères alphanumériques par défaut, doivent je pense suffire.
    Et pour le chiffrement je pense que wpa/wpa2 devrait largement aller (j'avoue ne pas trop m'intéresser à tout ça), je doute que parmi mon voisinage se terre un terrible hacker, je me méfie plus du bluetooth que du wifi, d'autant que je regarde régulièrement sur l'interface de ma box qui est connecté.

    Merci.

  • [^] # Re: Options avancées

    Posté par  . En réponse au message Connexion à un réseau wifi invisible avec android 14. Évalué à 1. Dernière modification le 17 avril 2025 à 17:54.

    Oui, merci, je ne sais pas ce que j'ai foutu, je n'étais sans doute pas bien réveillé lorsque j'ai configuré ce réseau 😐

    Navré du retard de ma réponse.

  • # Merci beaucoup

    Posté par  . En réponse à la dépêche GIMP 3.0 RC3 est sorti. Évalué à 10.

    Je ne me sers de Gimp que pour faire des choses simples, je ne suis pas graphiste, mais, un grand MERCI à tous les développeurs de Gimp dont je suis admiratif, vu les compétences titanesques (en tout cas par rapport à moi =D) que vous devez avoir en mathématiques et géométrie.

  • [^] # Avec deux listbox

    Posté par  . En réponse au message Tkinter et scrollbar. Évalué à 1.

    Un autre code fait à l'arrache =D

    import tkinter as tk
    from tkinter import font as tk_font
    import json
    
    SCROLL_WIDTH = 18
    LISTBOX_HEIGHT = 12
    
    def players_load(path):
        with open(path) as f:
            return json.load(f)
    
    def player_select(list_box):
        i = list_box.curselection()
        if not i:
            return
        value = list_box.get(i)
        if players_selected[not list_box.id] == value:
            return
        players_selected[list_box.id] = value
        players_label.config(
            text=f'{players_selected[0]} - {players_selected[1]}'
        )
    
    players_selected = {0:'', 1:'',}
    players = dict(sorted(players_load('joueurs.json').items()))
    list_box_width = max(len(p) for p in players) + 2
    
    window = tk.Tk()
    font = tk_font.Font(family='mono', size=18)
    
    frame_box = tk.Frame(window, bg='#000')
    frame_box.grid()
    
    left_scroll = tk.Scrollbar(
        frame_box, orient=tk.VERTICAL, width=SCROLL_WIDTH,
    )
    left_scroll.grid(row=0, column=0, sticky=tk.NSEW,)
    left_list = tk.Listbox(
        frame_box,
        font=font,
        width=list_box_width,
        height=LISTBOX_HEIGHT,
        xscrollcommand=left_scroll.set,
        yscrollcommand=left_scroll.set,
    )
    left_list.grid(row=0, column=1, padx=(10, 5),)
    left_scroll.config(command=left_list.yview)
    left_list.id = 0 # C'est crade !
    
    right_scroll = tk.Scrollbar(
        frame_box, orient=tk.VERTICAL, width=SCROLL_WIDTH,
    )
    right_scroll.grid(row=0, column=3, sticky=tk.NSEW,)
    right_list = tk.Listbox(
        frame_box,
        font=font,
        width=list_box_width,
        height=LISTBOX_HEIGHT,
        xscrollcommand=right_scroll.set,
        yscrollcommand=right_scroll.set,
    )
    right_list.grid(row=0, column=2, padx=(5, 10),)
    right_scroll.config(command=right_list.yview)
    right_list.id = 1 # C'est crado !
    
    players_label = tk.Label(
        frame_box, height=3, font=font, bg='#000', fg='#fff',
    )
    players_label.grid(row=1, column=0, columnspan=4,)
    
    left_list.insert(0, *players)
    right_list.insert(0, *players)
    
    left_list.bind(
        '<<ListboxSelect>>', lambda e: player_select(left_list)
    )
    right_list.bind(
        '<<ListboxSelect>>', lambda e: player_select(right_list)
    )
    
    window.mainloop()

    Y a des trucs un peu moches, notamment d'insérer des attributs id aux listbox (permettant de savoir si la sélection courante n'est pas la même que celle de l'autre listbox), il serait préférable de créer une classe dérivée de Listbox et y intégrer un id via un attribut de classe.

  • [^] # Re: on ne peut pas en l'état

    Posté par  . En réponse au message Tkinter et scrollbar. Évalué à 2. Dernière modification le 19 février 2025 à 17:45.

    Un truc fait à l'arrache avec une frame et un simple canvas.
    Il faudrait quand même revoir ton script, et utiliser des frames pour grouper les widgets de ta fenêtre, là, c'est un peu le bazar.

    can_frame = tk.Frame(cadre, bd=2, highlightbackground='grey')
    can_frame.grid(padx=10, pady=10)
    line_height = 40
    can = tk.Canvas(
        can_frame,
        width=280,
        height=line_height * 10,
        highlightthickness=0,
        yscrollincrement=line_height,
    )
    can.grid(row=0, column=0)
    scroll = tk.Scrollbar(
        can_frame, width=20, orient=tk.VERTICAL, highlightthickness=0,
    )
    scroll.grid(row=0, column=1, sticky=tk.NSEW)
    can.config(yscrollcommand=scroll.set)
    scroll.config(command=can.yview)
    colors = 'lightGreen', 'lightBlue'
    radios_base_options = dict(
        fg='grey',
        highlightthickness=0,
    )
    for i in range(nb_joueurs):
        radios_options = dict(
            text=liste_joueurs[i],
            value=liste_joueurs[i],
            bg=colors[i % 2],
        )
        can.create_rectangle(
            0,
            i * line_height,
            can['height'],
            (i + 1) * line_height,
            fill=radios_options['bg'],
            width=0,
        )
        radio = tk.Radiobutton(
            can, variable=j1a, **radios_base_options, **radios_options
        )
        can.create_window(
            0,
            i * line_height + line_height / 2,
            window=radio,
            anchor=tk.W,
        )
        radio = tk.Radiobutton(
            can, variable=j1b, **radios_base_options, **radios_options
        )
        can.create_window(
            int(can['width']) / 2,
            i * line_height + line_height / 2,
            window=radio,
            anchor=tk.W,
        )
    can.configure(scrollregion=(0, 0, 0, i * line_height))

    Reste plus qu'à intégrer cela dans ton interface {º_º}

    Bonne continuation.

  • # on ne peut pas en l'état

    Posté par  . En réponse au message Tkinter et scrollbar. Évalué à 2.

    On ne peut mettre un scroll que sur les widgets Text et Canvas, il va donc falloir que tu revoies et réagence le tout. Je pense qu'un canvas en y intégrant tes labels et radios avec la méthode create_window devrait convenir.

    En revanche chez moi ton script jette plusieurs erreurs, le json des joueurs n'est pas en utf8 mais en iso-8859-1, et comme tu n'as pas spécifié l'encodage dans open.
    Les smileys dans ton code ne passent chez moi :

    _tkinter.TclError: character U+1f60a is above the range (U+0000-U+FFFF) allowed by Tcl

    Préfère aussi les espaces que les tabulations pour indenter ton code.

  • # Un simple exemple

    Posté par  . En réponse au message aide Turtle. Évalué à 2.

    Voici un simple exemple.

    import turtle
    
    SQUARE_SIZE = 60
    
    MAZE = (
        '1111111111',
        '1000000001',
        '1011111101',
        '1010101001',
        '1010001011',
        '1010111101',
        '1010000001',
        '1011011101',
        '1000001001',
        '1111111111',
    )
    
    SCREEN_WIDTH = (len(MAZE[0]) + 2) * SQUARE_SIZE
    SCREEN_HEIGHT = (len(MAZE[1]) + 2) * SQUARE_SIZE
    
    TOP = -SCREEN_HEIGHT // 2
    LEFT = SCREEN_WIDTH // 2
    
    PLAYER = dict(
        turtle=turtle.Turtle(),
        color='blue',
        x=1,
        y=1,
    )
    
    
    def square_draw(x, y, size, color):
        turtle.up()
        turtle.goto(x, y)
        turtle.down()
        turtle.fillcolor('red')
        turtle.begin_fill()
        for _ in range(4):
          turtle.forward(size)
          turtle.right(90)
        turtle.up()
        turtle.end_fill()
    
    
    def maze_draw(maze):
        for y, line in enumerate(maze):
            for x, value in enumerate(line):
                if value == '1':
                    square_draw(
                        x * SQUARE_SIZE - LEFT + SQUARE_SIZE,
                        y * -SQUARE_SIZE - TOP - SQUARE_SIZE,
                        SQUARE_SIZE,
                        'red'
                    )
    
    
    def player_draw(player):
        player['turtle'].clear()
        player['turtle'].up()
        x = player['x'] * SQUARE_SIZE - LEFT + SQUARE_SIZE * 1.5
        y = player['y'] * -SQUARE_SIZE - TOP - SQUARE_SIZE * 1.75
        player['turtle'].goto(x, y)
        player['turtle'].down()
        player['turtle'].fillcolor(player['color'])
        player['turtle'].begin_fill()
        player['turtle'].circle(SQUARE_SIZE // 4)
        player['turtle'].end_fill()
    
    
    turtle.hideturtle()
    turtle.speed(0)
    screen = turtle.Screen()
    screen.setup(SCREEN_WIDTH, SCREEN_HEIGHT)
    
    PLAYER['turtle'].hideturtle()
    PLAYER['turtle'].speed(0)
    
    maze_draw(MAZE)
    player_draw(PLAYER)
    
    def player_move_left(maze, player):
        if maze[player['y']][player['x'] - 1] == '1':
            return
        player['x'] -= 1
        player_draw(player)
    
    def player_move_right(maze, player):
        if maze[player['y']][player['x'] + 1] == '1':
            return
        player['x'] += 1
        player_draw(player)
    
    def player_move_up(maze, player):
        if maze[player['y'] - 1][player['x']] == '1':
            return
        player['y'] -= 1
        player_draw(player)
    
    def player_move_down(maze, player):
        if maze[player['y'] + 1][player['x']] == '1':
            return
        player['y'] += 1
        player_draw(player)
    
    
    turtle.onkeypress(lambda: player_move_left(MAZE, PLAYER), 'Left')
    turtle.onkeypress(lambda: player_move_right(MAZE, PLAYER), 'Right')
    turtle.onkeypress(lambda: player_move_up(MAZE, PLAYER), 'Up')
    turtle.onkeypress(lambda: player_move_down(MAZE, PLAYER), 'Down')
    
    turtle.listen()
    turtle.done()

    Y a sans doute des trucs à revoir, et si t'es familier avec l'objet python, faire des classes.

  • # Ras-le-bol

    Posté par  . En réponse au lien Fini le ticket de caisse ? Sept questions que pose la disparition de l’impression automatique. Évalué à -10.

    Moi, ça me gonfle qu'à chaque fois la caissière me demande « voulez-vous le ticket de caisse », je réponds inlassablement « bien évidemment ! »

    Ce serait plutôt ceux qui ne veulent pas du ticket papier qui devraient le signaler, oui, je ne veux pas utiliser un trucphone pour pouvoir visualiser après coup si la caissière n'a pas fait une erreur en ma défaveur, je veux pouvoir contrôler ma facture à l'instant même de mes achats ! Déjà que souvent les caissières ont tendances à m'agacer, entre celles qui se dépêchent de passer rapidement vos articles et une fois fini vous sort « vous avez la carte du magasin ? » alors que vous essayez de vous dépêtrer du bordel qu'elle a mis sous vos yeux, je fulmine intérieurement, mais parfois je craque, je sors des choses du genre « vous voulez une pelle ? », car la caissière est en train de faire un monticule avec mes articles… Ou encore celle qui vient me foutre les produits d'entretien sur de la charcuterie ou viande alors que j'avais bien séparé le tout sur le tapis dégueulasse de la caisse, alors je craque encore et lui demande, « vous faites ça chez vous ? Vous mettez l'eau de javel sur vos tranches de jambon ? », alors je sais que les caissières ont un métier pas facile, pression des supérieurs pour avoir un maximum d'efficience, confrontées à des clients chiants, impolis, désagréables, et j'en passe, mais il y a des limites, puis si le client ne râle pas, les caissières ne remonteront jamais leurs doléances à leurs supérieurs, plus y aura de râleurs, plus les choses changeront.

    Tout ce foin autour du ticket de caisse est du pur foutage de gueule, blabla ça pollue, blabla ça coupe des arbres, blabla, ça nuit aux castors, mais putain que représente un ticket de caisse par rapport à tous les emballages des articles que l'on achète ? Que dalle ! Mais comme d'habitude faisons chier les consommateurs plutôt que les industriels qui s'en foutent royalement de la pollution qu'engendrent les emballages, hein, acheter de la viande sous plastique, un paquet de gâteaux de dénomination « poket » est une connerie innommable et ça c'est pour tout ce qu'on achète, alors qu'on pourrait tellement changer beaucoup de choses, par exemple nous qui sommes grands consommateurs de vinaigre blanc, on ne demande que ça de venir avec un bidon vide et de pouvoir le remplir à partir d'une « citerne » au supermarché, mais non,on doit se coltiner des bouteilles plastiques qui finissent au rebut pour rien…

    Je me demande si y a pas un lobby derrière tout ça qui a poussé le gouvernement ; si soucieux de protéger l'environnement ! ; de décréter cette loi alakon…

  • [^] # Re: Qu'ils disent...

    Posté par  . En réponse au lien Campagne "Je ne suis pas une data" par UFC Que Choisir. Évalué à 10. Dernière modification le 26 janvier 2023 à 10:41.

    Cela m'interpelle de plus en plus, et ça me gonfle tellement.

    Pourquoi de plus en plus de sites internet ne peuvent plus se passer d'utiliser tous ces « services » externes qui évidemment en tirent bénéfices, cela vient des « nouveaux » développeurs web ?, on leur apprend dans les écoles à ne faire que ça, utiliser des api externes pour 3 fonctionnalités js ? Ils ne savent pas les programmer eux-mêmes ?
    Qu'on vienne pas invoquer que l'utilisation de ces api est une protection contre les bots.

    Je ne suis pas développeur, ne travaille pas même dans le domaine info, mais il me semble qu'il y a encore 15/20ans on préconisait de n'utiliser le javascript que pour améliorer l'interface utilisateur, mais surtout laisser fonctionnel le site même js désactivé, aujourd'hui, c'est infernal, même le plus simple des sites internet qui n'aurait pas besoin de javascript ne fonctionne pas sans, il suffit de regarder ce site nommé dans ce lien, sans js aucun des boutons ne fonctionnent en fait rien ne fonctionne, le site respectemesdatas n'affiche rien avec le js désactivé, et donc ce site est une merde infâme, ils feraient bien de la boucler, en restant poli.

    Je ne parle même pas du site de ma banque, qui sur sa page d'accueil invite goo_gle, tag_commander, inbeta… Vive noscript !
    Cela est représentatif du comment on est traqué dans nos moindres faits et gestes sur le net, même sur les sites où les données sont sensibles, alors reprendre le contrôle de nos « data », non, ça ne se fait pas en « 3 clics », c'est en réalité impossible à faire.

  • # Intéressé

    Posté par  . En réponse au message Interagir avec Geany depuis le terminal. Évalué à 2. Dernière modification le 22 décembre 2022 à 13:01.

    Si tu trouves, cela m'intéresse aussi, après cela ne prend pas beaucoup plus de temps de faire un SHIFT + F9 suivi d'un CTRL + r, qu'un simple SHIFT + F9 ^ _ ^