dompdf, come far stampare caratteri cinesi

non capiterà a molti, di generare un pdf con dompdf e in più andare a prevedere la stampa di caratteri cinesi, ma se mi dovesse capitare, vi consigli di seguire la guida ufficiale che trovate qui
https://github.com/dompdf/dompdf/wiki/UnicodeHowTo
i passi sono quelli  di scaricare il font fireflysung, caricarlo attraverso load_font.php.
Pubblicato in Uncategorized | Lascia un commento

Come Creare una Tastiera Meccanica da zero

Sono sempre stato attratto da tutte le nuove tecnologie, da programmatore seguivo con interesse il mondo delle tastiere, ho sempre pensato di comprare qualcosa di particolare e ogni tanto guardavo le tastiere meccaniche, ma la vera passione per le tastiere meccaniche è nato da questo video.

Ma in questo articolo ci tengo a parlarvi di come voi potete creare una tastiera meccanica da zero ma sopratutto economica.

Una tastiera è formata dai seguenti Componenti:
– Case
– PCB (scheda stampata)
– Switch (che sono i bottoni)
– keycaps

CASE
per il case avete diverse possibilità potete comprarne una già fatta che sia in plastica, alluminio o in legno, oppure potete crearla voi, con una stampante 3D oppure tramite il taglio laser.
per gli ultimi due potete affidarvi a qualche fablab dalle vostre zone, amici, parenti oppure qualche servizio online.
io ad asempio ho trovato nella mia città un ferramenta che effettua taglio laser su acrilico, plexyglass e con 25€ ho creato il mio case.

ovviamente realizzare un progetto da mandare in stampa non è per tutti e quindi vi consiglio di cercare su github qualche progetto già pronto, oppure partire da un progetto pronto e fare qualche modifica.

io ad esempio ho cercato qualche progetto per taglio laser, con dei file in formato DXF e li ho modificati con freecad, oppure volendo potete usare questo servizio gratuito http://builder.swillkb.com/ passando prima per http://www.keyboard-layout-editor.com/ dove potete disegnate il layout della vostra tastiera poi dal tab raw data, lo copiate e passate sul sito di builder.swillkb.com che vi tira fuori un file pronto per il taglio laser, dal sito, potete configurare quello che volete, dalla larghezza del buco per le viti alla distanza che ci deve essere con l’estremità del case.

Collegare gli Switch

Adesso non vi resta che collegare tutti gli switch, anche qui ci sono varie tecniche, se partite da un layout standard, quindi 60%, 65% etc. potete comprare un PCB già pronto, sui PCB ne abbiamo due tipo Hotswap che vi permette di incastrare gli switch direttamente al PCB oppure senza hotswap, saldando gli switch sul PCB.

Se invece optate per un layout completamente custom che non si trova in commercio, dovete applicare la tecnica del handwired, che vi permette di collegare tutti gli switch tra di loro che poi vanno collegati ad un microcontroller del tipo atmega32u4(tennesy 2.0 / pro micro) e anche qui abbiamo due possibilità
1 – pura, quindi con diodi e fili qui trovate una guida
2 – con gli Amoeba single pcb

Amoeba: si trattano di singoli pcb che vanno inseriti per ogni singolo swich e vi permette di avere una saldatura più stabile e sicura, lo consiglio, perchè io con la prima versione, stavo a smontare la tastiera perchè saltava qualche saldatura…ma io sono negato era la prima volta che saldavo.

Firmware
Nel caso optate per l’hand-wired prima di procedere a saldare tutti componenti dovete seguire un progetto, perchè a seconda di come collegate tra di loro gli switch cambia il firmware.

Quindi passate da questo sito https://kbfirmware.com/ che vi fornisce una guida su come devono essere collegati gli switch tra di loro e come collegarli al microcontrollor, potete anche modificare a vostro piacimento i vari collegamenti, questo sito è importante perchè vi generare il firmware da caricare sul microcontrollore tramite qmk toolbox

Adesso non vi resta che testare se tutti i tasti funzionano magari da qualche sito come https://www.keyboardtester.com/ e montare i vostri keycaps.

Per qualunque dubbio o domande scrivete pure nei commenti.

qualche link utile:


Diodo 1N4148 diodo RETTIFICATORE RADDRIZZATORE DO-35
ATMEGA32U4, I/O port 25(Teensy 2.0 è il più economico)
Amoeba Single-Switch PCB 1U
Montaggio Amoeba


Pubblicato in Uncategorized | Lascia un commento

Ho corretto un attacco su wordpress

Da qualche settimana il sito di un amico era stato hackerato, è riuscito a scoprilo perchè su google comparivano caratteri cinesi.
indagando tra i file ho scoperto l’attacco consisteva nel modificare il index.php, così ho cambiato il file .htaccess facendolo puntare su index2.php lo stesso ho fatto con wp-admin.

Dopo qualche settimana si ripropone il problema ma questa volta molto più prepotente, hanno sostituito il file .htaccess ogni volta che lo rimettevo quello corretto passava qualche ora che nuovamente i file venivano sostituiti, parlando con il mio collega mi consiglia di analizzare i log di apache, analizzando i vari IP e tramite whatismyipaddress.com vado a beccare un ip da tokyo, allora filtro tutte le richieste fatte da quell’ip e trovo subito una chiamata fatta al file about.php dove gli hanno inserito un bellissimo form che quando vogliono gli permette di sostituire tutti i file…

a questo punto mi è bastato cancellare il file about.php e ripristinare nuovamente i file corrotti…

ovviamente ho aggiornato tutti i plugin, wordpress & co..

vediamo ora che succede

p.s. l’htaccess puntava sui dei file del tipo
about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php

Pubblicato in Uncategorized | Lascia un commento

Compilare e generare .hex dal zip di kbfirmware

E si pure io sono incappato con la passione delle tastiere custom.

di recente mi sono costruito una tastiera e per generare il firmware da iniettare sul teensy2.0, ho avuto qualche problema, quindi ho dovuto compilare e generare da solo il file .hex

il file .hex viene generato dal kbfirmware, questo sito vi permettere di generare il firmware da iniettare sulla vostra tastiera oppure sul vostro teensy, molto utile sopratutto quando realizzate la vostra tastiera custom attraverso l’hand wired, una tecnica che vi permette saldando tutti gli switch in modo corretto e utilizzando un processore ATmega32u4 di poter costruire una tastiera senza comprare il PCB.

di recente con una tastiera che ho “inventato io” che ho chiamato Alisu, nasce dalla combinazione tra la Alice e Arisu, dal sito kbfirmware ho avuto problemi nel generare .hex.

quindi scaricato il file .zip, dovrete installare il qmk MSYS, altro non è il terminale di qmk, dovete andare sulla cartella che avete scaricato dal sito dal terminale di qmk MSYS e digitare make – Invio e vedrete subito che parte la compilazione.

in caso vi restutisca degli errori risolveteli e lanciate nuovamente la compilazione, alla fine dalla cartella avrete il file .hex che potrete iniettare sul vostro chip attraverso qmk tools.

Presto scriverò la mia guida su come realizzare una tastiera da zero.

se questa pagina vi è stata utile lasciate un commento.

Pubblicato in Uncategorized | Lascia un commento

bloccata richiesta multiorigine (cross-origin )

creare una classe che estende il middleware, su http/Middleware
<code>

<?php

namespace App\Http\Middleware;

use Closure;

class CorsMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{

    $headers = [
        'Access-Control-Allow-Origin'      => '*',
        'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS, PUT, DELETE',
        'Access-Control-Allow-Credentials' => 'true',
        'Access-Control-Max-Age'           => '86400',
        'Access-Control-Allow-Headers'     => 'Content-Type, Authorization, X-Requested-With,Accept, Application'
    ];

    if ($request->isMethod('OPTIONS'))
    {
        return response()->json('{"method":"OPTIONS"}', 200, $headers);
    }

    $response = $next($request);
    $response->headers->set('Access-Control-Allow-Origin' , '*');
    $response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
    $response->headers->set('Access-Control-Allow-Credentials', 'true');
    $response->headers->set('Access-Control-Max-Age', '86400');
    $response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Application');


   /* foreach($headers as $key => $value)
    {
        $response->header($key, $value);
    }*/

    return $response;
}

}


</code>

su bootstrap/app ho dovuto aggiungere il seguente codice

<code>$app->middleware([App\Http\Middleware\CorsMiddleware::class]);

</code>

Pubblicato in Uncategorized | Lascia un commento

Download file da Lumen-Laravel con Vuejs


Se state usando lumen da back-end magari insieme ad vuejs o qualisiasi linguaggio di front-end ma penso che il problema si ponga anche usando laravel.
vi sarà capitato il problema del CORS e immaginino che avete risolto creando la classe CorsMiddleware.

e se in tutto questo avete usato questa soluzione

$headers = [
'Access-Control-Allow-Origin'      => '*',
'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Credentials' => 'true',
'Access-Control-Max-Age'           => '86400',
'Access-Control-Allow-Headers'     => 'Content-Type, Authorization, X-Requested-With,Accept, Application'
];

if ($request->isMethod('OPTIONS'))
{
return response()->json('{"method":"OPTIONS"}', 200, $headers);
}

$response = $next($request);
foreach($headers as $key => $value)
{
$response->header($key, $value);
}

quando vi ritrovere a dover scaricare un file dalla vostra webapp, magari usando reponse->download() sicuramente sarete incappati nel problema di network error con errore 500 da parte del server, dove ils erver vi rilascerà il seguente errore


Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::header()

in breve cambiate la classe con questo codice

$response = $next($request);
$response->headers->set('Access-Control-Allow-Origin' , '*');
$response->headers->set('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE');
$response->headers->set('Access-Control-Allow-Credentials', 'true');
$response->headers->set('Access-Control-Max-Age', '86400');
$response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Application');

return $response;

e anche oggi potrò andare a dormire sereno.

Quindi quanto avete letto sopra vi permette di ritornare in formato byte qualsiasi documento attraverso il codice sotto

</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>&nbsp;$path&nbsp;=&nbsp;&nbsp;app()-&gt;basePath('public/');&nbsp;&nbsp;&nbsp;&nbsp;$response=&nbsp;response()-&gt;download($path.$request-&gt;pp);&nbsp;&nbsp;&nbsp;&nbsp;ob_end_clean();&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;$response;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>

lato Front-end invece sotto Vuejs dovete convertire i byte in download forzato e vi consiglio di leggere questo articoli Force File Download in Vuejs using Axios

Pubblicato in Uncategorized | Lascia un commento

vuejs – vue.version is undefined – Cannot read property ‘split’ of undefined

bhe se state programmando con vuejs e all’improvviso vi ritrovate un pagina bianca, con i seguenti errori nella console, sul file index.js di vue-hot-reload-api.
vue.version is undefined – firefox
Cannot read property ‘split’ of undefined – chrome

oltre a seguire le Issue
https://github.com/vuejs/vue-hot-reload-api/issues/51
controllate se nella cartella src del vostro progetto non ci sia anche la cartella node_modules…bhe la potete CANCELLARE.
attenzione solo il node_modules dentro la carella src del vostro progetto.

sicuramente il debug su vscode ha incasinato qualcosina.

io dopo 6 ore ho capito dove stava il problema, solo perchè ho reinstallato vue-cli, quasar, axios e vue-router e avevo notato incollando le cartelle sul nuovo progetto che girava tutto alla perfezione e mi sono reso conto della grande differenza…il node_modules dentro src -.- o è stato vscode oppure io per sbaglio oh mio figlio di 3 anni, che ogni tanto si siede al mio posto di nascosto mmmmmmm

bhe alla fine sono le 00:11 e posso andare a dormire sereno 😀

Pubblicato in Uncategorized | 1 commento

Notebook Asus Schermo nero all’accensione

Spero che non vi sia capitato, ma se vi capita armatevi di pazienza.

Vi spiego cosa mi è successo.
Il mio portatile è un Asus K55VD negli anni ho fatto un paio di modifiche, RAM 8GB – HD SSD e di recente ho cambiato il lettore cd, con adattore per hard disk, cioè si monta al posto del lettore CD ma ha lo spazio per montare un secondo HD così adesso ho 1TB sul mio portatile.

Da qualche mese a questa parte avevo il pallino di aggiornare il mio sistema operativo e passarre da win 7 a win 10, creo con Rufus la mia pendrive di boot, entro nella bios per autorizzare la pendrive, ma non trovavo ne la pendrive (non era colpa di rufus) per dare la priorità al boot, bhe riavvio e Boom!!!!!
il computer non si vuole più avviare, accendo il computer ma lo schermo rimane nero e rimane acceso solo il primo led..

Allora pulisco le RAM che alle volte funziona, rimonto ma niente, stacco HD primario, speravo mi dicesso no disk boot, ma niente.
faccio un paio di ricerche su internet e non trovo nessuna soluzione che riesca ad aiutarmi.
allora tramite questo video:https://www.youtube.com/watch?v=2UbT6o2AbZY&t=64s

smonto il notebook pensando ad un sola idea staccare la batteria tampone della bios con la speranza che si resetti…MA NIENTE

cercando cercando in rete un tizio risolve il problema riprogrammando la bios della scheda madrea, che sarebbe sto chip qui:winbond 25Q64FVSIG 1306

Oaa domandona, come cavolo si riprogramma un bios, faccio un paio di ricerche su google e scopro che ci sono persone che si fanno pagare per farlo, tra l’altro un napoletano, chiedo preventivo e ci voglio 40€ manodopera 15€ il pezzo + le spedizioni, allora vedo se riesco a trovare la scehda madrea e ci vogliono circa 80€…

certo il computer ai tempi lo avevo preso 600€ e oggi ci vuole la stessa cifra se no molto di più per avere un computer con le stesse caratteristiche, anche se avessi guadagno in leggerezza, risoluzione schermo e batteria…

Mha all’improvviso un video su youtube che ha dato la svolta a tutto: Come aggiornare il BIOS della mobo SENZA PROCESSORE! CH341A USB Programmer.

https://www.youtube.com/watch?v=tT-WExwGA3k&list=WL&index=1

WOW!!! cioè posso ri-programmare il chip della BIOS senza dissaldare e saldare quello nuovo.
Compro il programmatore USB su amazon:https://amzn.to/3knzdvL l’unico che spediva con prime. per il nostro bios non avete bisogno del riduttore a 1.8V il pezzo colorato per intederci, perchè il nostro chip và a 3V, quindi potete prendere anche questo su amazon:https://amzn.to/3o223DQ


Poi ho dovuto scarire il file del bios .bin, sappiate che la nostra MOBO è una K55VD Rev. 3.1, quindi ho cercato su google download bios .bin k55vd ver 3.1 e ho trovato questo sito https://www.alisaler.com/asus-k55vd-rev3-1/

Sappiate che dopo la ri-programmazione dovrete installare nuovamente il SO, perchè windows rileva che ci sia un hardaware differente.

Se avete fatto tutto avete risusciato il vostro caro vecchio Asus, ora se non ricordo male il cmouter si accende solamente con l’alimentatore collegato, dovete riconfigurare la bios, sicuramente al primo avvio non rileva gli HD quindi dovete impostazione
secure boot:Disabled
Fast Bott:Disabled
Launch CSM:Enabled
Riavviate e ritrovate gli HD per il boot.

Bhe spero che questo post vi sia stato di aiuto.

Ah Dimenticavo, ovviamente non mi prendo nessuna resposabilità per danni etc. io vi sto raccontando la mia esperienza voi siate liberi di cercare un professionista.

Pubblicato in Uncategorized | Lascia un commento

[GUIDA WPF C#] Come simulare un click e passare un valore da terminale

Ciao e benvenuto sul mio blog.

Da qualche mese ho cambiato azienda e di conseguenza anche di linguaggio di programmazione, adesso sono passato al mondo Microsoft, quindi parliamo di C# – .NET Core etc. etc.

Da qualche giorno sto lavorando su una applicazione in windows che permette ad un gestionale Esolver (sistemi) di sincronizzarsi con un e-commerce in prestashop….

dopo aver creato l’applicazione, testato e tutto funzionante, nasce un piccolo problema.

Bisogna lanciare l’app da terminale oppure essere lanciato dall’utente, il problema è che se lo lancia l’utente, deve cliccare su un bottone per avviare la sincronizzazione, invece se lanciato da terminale partire automaticamente la sincronizzazione.

Quindi da terminale passo una variabile e se == 1 allora simula il click del bottone sinc…
Problemino, da quanto ho capito non si possono passare variabili alla funzione MainWindow….Quindi????

Eccovi il codice.

App.xml

 

<Application x:Class=”WpfApp1.App”
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation&#8221;
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml&#8221;
xmlns:local=”clr-namespace:WpfApp1″
cancellate questa riga <!–StartupUri=”MainWindow.xaml”–>
aggiungete questa Startup=”App_Startup”>

 

App.xml.cs


public partial class App : Application
{
void App_Startup(object sender, StartupEventArgs e)
{

MainWindow mainWindow = new MainWindow();
mainWindow.Show();
try
{
if (e.Args[0] == "1")
{mainWindow.sincronizza_button.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));}
} catch { }

}
}

Finito !!!
Fatemi sapere se vi è tornato utile

Pubblicato in Uncategorized | Lascia un commento

Creare video con foto Facile e Veloce

Vi sarà capitato almeno una volta nella vita di creare un video con le foto delle vostre vacanze oppure di crearne uno per fare una sorpresa ad un vostro amico o parente, in giro per il web ci sono sentinaia di software gratuiti o a pagamento che offrono questo tipo di servizi, oppure ci sono ache servizi online che vi permettono di creare video slideshow delle vostre foto magari direttamente online senza installare nessun tipo di software

Programmi per creare video con foto:

Come abbiamo anticipato in giro ci sono centinaia e centinaia di software da quelli gratuiti a quelli a pagamento, un esempio li potete trovare qui  dal mitico sito di salvatore aranzulla, dove vi consiglia i migliori software per creare video con foto

Programmi per creare video con foto online:

oppure se non volete installare nessun tipo di software ci sono molti servizi online che vi permettono di creare video con foto in modo più complesso e macchinoso ma di sicuro non gratuito qui  sempre il mitico aranzulla vi dà qualche dritta

Creare video con foto metodo innovativo:

Ma tutti questi software e servizi online, richiedono un gran dispendio di energie e di denaro, perchè siete costretti a scaricare un software che nella maggior parte dei casi non è gratuito oppure usare i vari servizi web che ovviamente non sono gratuiti, poi il dispendio di energie, perchè dove selezionare le foto, poi dovete selezionare la musica, scaricarla acquistala etc. poi secgliere le animazioni e magari andare ad acquistare un dvd per poterlo masterizzare con la speranza che tutto funzioni a dovere, quindi oggi vi voglio parlare di un nuovo servizio per creare dei video con foto il sito web si chiama, fotomuvi.it

Fotomuvi.it

Fotomuvi.it nasce con l’obiettivo di farvi risparmiare tempo e denaro, grazie a fotomuvi potete caricare le vostre foto direttamente sul sito oppure richiedere un corriere per rititrare la vostra pendrive e poi pensano a tutto loro.
Si avete capito bene pensano a tutto loro, voi consegnate le foto e i grafici di fotomuvi si occuperanno di selezionare le foto migliori, le musiche più belle e magari le animazioni più accattivante, il bello di tutto ciò e che loro vi creeranno video unici nel suo genere, capace di stupire i vostri amici facendovi risparmiare Tempo e Denaro

quindi cosa aspettate collegatevi subito a fotomuvi.it

Pubblicato in Uncategorized | Lascia un commento