Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Viestit - kamara

Sivuja: [1] 2 3 ... 148
1
Rautani alkaa olla vanhaa, mutta löytyisiköhän sille kuitenkin uusi koti ?

Tämän verran sain spekseistä ulos...
Lainaus
DIR-842
FW:2.02      Date:2016-06-14
HW:B1

Sen verran arvaan, ettei tälle taida saada helposti asennettua openwrt:tä ?

https://openwrt.org/toh/d-link/dir-842

... vai olenko väärässä ?

Siis firmiksen päiväys alkaa olla sen verran vanhaa, että kyseinen taitaa käydä enää LAN1Gb:lle hubiksi ?

2
Laitealue / Vs: USB asennus USB tikulle
« : 29.04.24 - klo:20.05 »
Muutaman kerran USB tikulle asennettua joskus käyttelin, niin ei kyllä ollut pitkäikäinen, kun alkoi ongelmia tulemaan ja oli hyvin nopeasti entinen tikku.

Kannattaa mieluummin USB adapterilla oikealle SSD levylle asentaa, niin on jo luotettavampi ratkaisu.
Tämä. Täysin varmaa, että tikku kuolee nopeasti, vaikka käyttis näennäisesti toimii hienosti. Kirjoitustapahtumia vain tulee ihan liian paljon tavallisten muistitikkujen piireille. Voi toimia hetkellisesti "tuntuman" saamiseen, mutta ihan ehdottomasti tosiaan joku oikea SSD muisti käyttöön jos järjestelmää aikoo oikeasti käyttää.

Jos haluaa pysyä USB:n käytössä, niin kannattaneen ostaa nvme-USB3/USB-C-kotelo, ja laittaa siihen NVME-aseman. Se on varmaankin ihan kiva lisä sveitsiläisen linkkuveitsen kaveriksi.

3
Ainakin Lubuntussa saa...
siis seuraavasti:

luo outlook.desktop - tiedosto, jossa sisältää jotain seuraavan tapaista ...
Koodia: [Valitse]
[Desktop Entry]
X-SnapInstanceName=firefox
Version=1.0
Name=Firefox Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
Keywords=Internet;WWW;Browser;Web;Explorer
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/firefox_firefox.desktop /snap/bin/firefox %u https://www.microsoft.com/fi-fi/microsoft-365/outlook/email-and-calendar-software-microsoft-outlook
Terminal=false
Type=Application
Icon=/snap/firefox/4173/default256.png
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true
Actions=NewWindow;NewPrivateWindow;

[Desktop Action NewWindow]
Name=Open a New Window
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/firefox_firefox.desktop /snap/bin/firefox -new-window

[Desktop Action NewPrivateWindow]
Name=Open a New Private Window
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/firefox_firefox.desktop /snap/bin/firefox -private-window

Tallenna se ~/Desktop -kansioon haluamallasi nimellä ja .desktop-päätteellä..

Edit - Sen jälkeen hiiren kakkosella merkitse se luotettavaksi kuvakkeeksi.

4
Tämä nyt saattaa olla tyhmää, mutta voit katsoa vapautatko kaikki käyttämäsi muistin ohjelman ajon lopetettuasi valgring-ohjelmalla.

https://valgrind.org/

5
Yleistä keskustelua / Vs: QR koodin tulostus
« : 21.04.24 - klo:17.38 »
Päätteeltä ...
Koodia: [Valitse]
sudo apt install qrencode
qrencode -o googleen.png "https://google.fi"


6
Ok, taitaa olla oikeaoppista käyttää Taulukkoa, ja sen avulla hallita kappaleen muotoja.

Olen kuitenkin vielä varsin nyyppä FreeCAD:n käyttäjänä. Eikä minulla ole juuri muutakaan kokemusta 3D-cad:stä. Mitä nyt joskus kokeillut ketsuppia käyttää, mutta sen ominaisuudet eivät ole minun käyttööni riittävät.

Ilmeisesti oikeaoppisesti käyttäminen olisi, että aluksi tekisi kappaleen runko-osalle, ja sen jälkeen kopioisi kappaleen, ja taulukon avulla huolehtisi muutoksista, jotka koskettavat molempia runko-osia.

Lisäongelmana oli myös FreeCAD:n tapa viedä malli stl-formaattiin. Jos jättää merkkaamatta mallia, niin malli ei tule stl-tiedostoon. Jos taas merkkaa kaikki kappaleet Ctrl+A:lla, niin keskelle tulee aika ikävän näköinen sätös, jossa  on kaikkien sketsien ja pad:ien jätökset yhtenä sekasotkuna.

Ilmeisesti oikeaoppisesti pitää luoda kaksi kappaletta, ja varmuuden vuoksi molempien kappaleiden sijainniksi kannattaa laittaa muu kuin origo, jotta huomaa, jos vienti-toiminnossa on liikaa tavaraa viedyssä mallissa.

Pidän ratkaisua purkkaratkaisuna, kun ei ilmeisestikään FreeCAD:ssä ole haluamaani toimintoa.

OpenSCAD:n lähestymistapa on kuitenkin aivan erilainen, joten ratkaisustakin on erilainen.

Tosin FreeCAD sisältää OpenSCAD:n toiminnallisuuden, mutta sitä ei ole aivan täydellisen sulavasti kytketty.

7
Multimedia ja grafiikka / Vs: Kysymys FreeCAD:stä ...
« : 11.04.24 - klo:10.04 »
Tästä on muistaakseni parempikin video, mutta hiukan tähän tyyliin tarkoitan. Käytät vain kummankin osan mitoitukseen samaa muuttujaa (alias taisi olla videolla)
https://www.youtube.com/watch?v=Jze6ftGc6BQ

Kiitos, olen toki ollut tietoinen kyseisestä ominaisuudesta, mutta en haluaisi tehdä sen avulla, sillä siitä tulee vähän purkkamainen ratkaisu. Tosin kyllä sen sillä saa todennäköisesti tehdyksi. En tosin ole aiemmin nähnyt tutoriaalia, jossa opetetaan tämän käyttöä, siksi se on varsin tervetullot videon pätkä.

Toivottavasti vähänkään vastaa ajatustasi.

Kiitos nyt kuitenkin.

8
Multimedia ja grafiikka / Vs: Kysymys FreeCAD:stä ...
« : 10.04.24 - klo:10.34 »
Yleensä tehdään vaikka se perusrunko tallennetaan, kopioidaan/tuodaan tiedosto uudelleen (export/import) ja tehdään muutokset ja tallennetaan uusi "body/osa".

Kyllähän sen voi niinkin värkätä, mutta tavoitteenani olisi, että tämän jälkeen voisi muuttaa alkuperäistä body-osaa s.e. body-osaan tehdyt muutokset tulisivat myös niistä kopioituihin kappaleisiin.

OpenSCAD:llä se on mahdollista s..e. tekee rungosta modulin, ja tämän jälkeen kutsuu modulia, ja tekee kutsun moduliin esim. boolean toimintoja.

Esim.
Koodia: [Valitse]
module connector() {
...
}

difference() {
    connector();
    translate([-10,5,10]) cube([2,10,3],center=true);
    translate([10,-5,10]) cube([2,10,3],center=true);
}
translate ([200,0,0]) union()
{
    connector();
    translate([-4,0,-10]) cube([2,10,20],center=true);
    translate([-4,0,10]) cube([2,10,20],center=true);
}

Tämä ei varmaan tee mitään järkevää, mutta ajatus on siinä, että yhdessä osassa tehdään connector()-body-osalle lovet, ja toisessa osassa lisätään samaan connector()-body-osalle pari kuutiota.

Nyt, jos muokkaan connector()-modulia, niin muokkaukset menevät sekä lovet sisältävälle body-osalle että sille kappaleelle, jossa on kaksi kuutiota.

FreeCAD:ssä kloonaus-työkalulla voi kloonata kertaalleen kyseisen connector-body-osan, ja kun teen muutokset kloonatulle kappaleelle, niin muutokset jäävät kloonatulle kappaleelle. Se on se mitä haen, mutta haluaisin saman ominaisuuden kahteen kertaan.

Eli s.e. onnistuisin kloonaamaan myös toiseen kertaan connector-body-osan s.e. kun muokkaan alkuperäistä kloonin lähdettä, niin muutokset menisivät molemmille klooneille, ja halutessani muokata vain jompaa kumpaa kloonia, niin muutokset tulisi vain kyseiselle kloonille.

9
Kuinka FreeCAD:ssä pystyy käyttämään kappaletta templatena s.e. runko pysyy 2:ssa kappaleessa samana, mutta toiseen kappaleeseen tulee kolot ja toiseen väkäset, jotka tarttuvat koloon kiinni ?

Kloonaamalla pystyy tekemään yhdelle muutokset, mutta kahta kloonia samasta rungosta en osaa tehdä ilman, että malli hajoaa.

Kuva kertoneen mitä yritän tehdä...

Kyseinen on tehty OpenSCAD:llä, ja haluaisin oppia tekemään saman asian FreeCAD:llä.

10
Jos näät kuvan, niin silloin sen kopioiminen on mahdollista, jos ei muuten, niin ottamalla nätöstä kuvan.


11
Onko mahdollista asentaa numpy-versio virtuaalikoneeseen ?

Silloin ei ole merkitystä pääkoneella, mitä viritelmiä on virtuaalikoneessa.

12
Menee vähän turhan monimutkaiseksi jos pitää alkaa konetta purkamaan  sen takia.
5 minuutin homma. Ei ole vaikeaa.

Mä en ole ihan noin kätevä...
... minulta menee puolesta tunnista tuntiin tai jopa kauemminkin. Lisäksi itseltäni jää tekemättä, jos konetta ei ole tehty päivitettäväksi. (Esim. uudemmat Omenat.)

13
Ohjelman pitäisi toimia suoraan Ubuntu-varianteissa. Tarjolla on ainakin toistaiseksi pelkkä binääri.

Edit - Jos jolakin saa ohjelman coredump:paamaan, niin otan bugeja vastaan tässä säikeessä. Toki muitakin bugeja saa esittää.

14
No, niin kiitokset nm:lle avusta.

Sain ensimmäisen yksinkertaisin version tehdyksi.

Vahvasti suosittelen käytettäväksi virtuaalikonetta tämän testaamiseen, kun tämä on tällainen varhaisbeta.

Kovin nopea tämä ei kuitenkaan ole, mutta kätevä on kuitenkin omasta mielestäni. Ohjelman saa hakemaan rekursiivisesti pakatuista tiedostoista. Elikkä jos on pakattu kahteen kertaan, niin ohjelma saattaa löytää merkkijonon sen sisältä. Kätevin ominaisuus tulee haettaessa libreoffice-tiedostoja, koska ne ovat pakattuja tiedostoja, niiden sisältä hakeminen pelkällä grep:llä on vaikeaa.

Jos ohjelma löytää pakatun paketin sisältä hakuehdon täyttävän merkkijonon, niin se palauttaa isäntä-tiedoston nimen.


15
Jos tarvitset nimenomaan hakemiston, käyttämäsi C-funktio mkdtemp on siihen suoraviivaisin ratkaisu ainakin Linux/Unix-ympäristössä.

Jep, tarvitsen nimen omaan väliaikais-hakemiston. Toki läjällä tiedostoja voisi saman ongelman ratkaista, mutta se ei olisi niin siisti kuin hakemiston käyttäminen, eikä se olisi myöskään niin helppo ohjelmoida.

17
Löytyi ratkaisu !

Kiitos avusta...

Koodia: [Valitse]
#include <stdlib.h>
#include <iostream>
#include <cstring>
int main(int argc,char **argv) {
    char *tmppi=(char *)malloc(500);
    char *tmpPath;
    strcpy(tmppi,"OmatemppiXXXXXX");
    std::cerr << tmppi << "\n";
    tmpPath=mkdtemp(tmppi);
    if(tmpPath==NULL) {
        std::cerr << "tmpPath=NULL\n";
    } else {
        std::cerr << "tmpPath=" << tmpPath << "\n\n";
    }
}

Elikkäs tarvitaan tiedostonnimiin XXX:iä loppuun, jotka temppigeneraattori muuttaa yksilölliseksi hakemistoksi.

18
Olen yrittänyt käyttää seuraavaa käskyä, mutta se ei luo temppi-kansiota. :'(

Koodia: [Valitse]
#include <stdlib.h>
#include <iostream>
#include <cstring>
int main(int argc,char **argv) {
    char *tmppi=(char *)malloc(500);
    char *tmpPath;
    strcpy(tmppi,"/tmp");
    tmpPath=mkdtemp(tmppi);
    if(tmpPath==NULL) {
        std::cerr << "tmpPath=NULL\n";
    } else {
        std::cerr << "tmpPath=" << tmpPath << "\n\n";
    }
}

Tämä palauttaa erroriin NULL:n, kun haluaisin luoda väliaikaishakemiston.

19
Tässä tärkein diffi, joka ei tosin ole kaikkien diffien äiti...
Koodia: [Valitse]
--- ../../Lataukset/pakkausOhjelmanSorsat/libarchive-3.7.2/unzip/bsdunzip.c 2024-02-15 17:35:04.877180993 +0200
+++ bsdunzip.cpp 2024-02-16 08:27:51.112305013 +0200
@@ -3,6 +3,7 @@
  *
  * Copyright (c) 2009, 2010 Joerg Sonnenberger <joerg@NetBSD.org>
  * Copyright (c) 2007-2008 Dag-Erling Smørgrav
+ * Copyright (c) 2024 Kamara
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -29,15 +30,20 @@
  *
  * $FreeBSD$
  *
+ * Kääntyy ...
+ * g++ "-DBSDUNZIP_VERSION_STRING=\"Kamaran beta versio\"" -DHAVE_FNMATCH_H -DHAVE_UNISTD_H -DHAVE_FNMATCH -DHAVE_STDLIB_H -DHAVE_STDARG_H -DHAVE_STRING_H -Wno-deprecated-declarations -o unzip/bsdunzip unzip/bsdunzip.h unzip/bsdunzip.cpp unzip/err.h unzip/err.cpp unzip/lafe_platform.h unzip/passphrase.h unzip/passphrase.cpp unzip/cmdline.cpp -larchive -lz
+ *
+ *
+ *
  * This file would be much shorter if we didn't care about command-line
  * compatibility with Info-ZIP's UnZip, which requires us to duplicate
  * parts of libarchive in order to gain more detailed control of its
  * behaviour for the purpose of implementing the -n, -o, -L and -a
  * options.
  */
-
+#include <iostream>
 #include "bsdunzip_platform.h"
-
+#include "passphrase.h"
 #ifdef HAVE_SYS_QUEUE_H
 #include <sys/queue.h>
 #else
@@ -78,11 +84,12 @@
 #include <sys/time.h>
 #endif
 #endif
-
+#include <fcntl.h>
 #include "bsdunzip.h"
 #include "passphrase.h"
 #include "err.h"
-
+//#include "cmdline.cpp"
+//#include <fnmatch.h>
 // Oma lisäys arvonta
 //extern "C" void lafe_setprogname(char const*,char const*);
 // Oma lisäys arvonta loppuu...
@@ -121,7 +128,6 @@ static int tty;
 static int unzip_exclude_mode = 0;
 
 int bsdunzip_optind;
-
 /* convenience macro */
 /* XXX should differentiate between ARCHIVE_{WARN,FAIL,RETRY} */
 #define ac(call) \
@@ -158,6 +164,8 @@ error(const char *fmt, ...)
  exit(EXIT_FAILURE);
 }
 
+
+
 /* fatal error message, no errno */
 static void
 errorx(const char *fmt, ...)
@@ -212,7 +220,6 @@ static void
 info(const char *fmt, ...)
 {
  va_list ap;
-
  if (q_opt && !unzip_debug)
  return;
  va_start(ap, fmt);
@@ -225,7 +232,6 @@ info(const char *fmt, ...)
  else
  noeol = fmt[strlen(fmt) - 1] != '\n';
 }
-
 /* debug message (if unzip_debug) */
 static void
 debug(const char *fmt, ...)
@@ -244,7 +250,6 @@ debug(const char *fmt, ...)
  else
  noeol = fmt[strlen(fmt) - 1] != '\n';
 }
-
 /* duplicate a path name, possibly converting to lower case */
 static char *
 pathdup(const char *path)
@@ -852,6 +857,8 @@ extract(struct archive *a, struct archiv
  free(pathname);
 }
 
+// Rivi 854  20240216
+
 static void
 extract_stdout(struct archive *a, struct archive_entry *e)
 {
@@ -894,7 +901,6 @@ extract_stdout(struct archive *a, struct
 
  free(pathname);
 }
-
 /*
  * Print the name of an entry to stdout.
  */
@@ -960,7 +966,6 @@ test(struct archive *a, struct archive_e
 
  return error_count;
 }
-
 /*
  * Callback function for reading passphrase.
  * Originally from cpio.c and passphrase.c, libarchive.
@@ -991,6 +996,7 @@ passphrase_callback(struct archive *a, v
  return p;
 }
 
+
 /*
  * Main loop: open the zipfile, iterate over its contents and decide what
  * to do with each entry.
@@ -1107,6 +1113,7 @@ version(void)
         exit(0);
 }
 
+
 static int
 getopts(int argc, char *argv[])
 {
@@ -1205,6 +1212,9 @@ getopts(int argc, char *argv[])
  return (bsdunzip_optind);
 }
 
+
+/* command-line options */
+
 int
 main(int argc, char *argv[])
 {
@@ -1212,7 +1222,7 @@ main(int argc, char *argv[])
  int nopts;
 
  lafe_setprogname(*argv, "bsdunzip");
-
+ std::cout << "C++ toimii myös!!!\n";
  if (isatty(STDOUT_FILENO))
  tty = 1;
 
@@ -1283,5 +1293,5 @@ main(int argc, char *argv[])
 
  unzip(zipfile);
 
- exit(EXIT_SUCCESS);
+ exit(0);
 }


20
JES sainhan sen unzip:nkin toimimaan g++:lla !!!

Kiitoksia paljon nm.

Ratkaisu ei ollut kovinkaan kaunis, mutta kuitenkin itselleni on pääasia, että yleensäkin kääntyy G++:lla.

Käännös käsky:
Koodia: [Valitse]
g++ "-DBSDUNZIP_VERSION_STRING=\"Kamaran beta versio\"" -DHAVE_FNMATCH_H -DHAVE_UNISTD_H -DHAVE_FNMATCH -DHAVE_STDLIB_H -DHAVE_STDARG_H -DHAVE_STRING_H -Wno-deprecated-declarations -o unzip/bsdunzip unzip/bsdunzip.h unzip/bsdunzip.cpp unzip/err.h unzip/err.cpp unzip/lafe_platform.h unzip/passphrase.h unzip/passphrase.cpp unzip/cmdline.cpp -larchive -lz

Sivuja: [1] 2 3 ... 148