tag:blogger.com,1999:blog-52646772339787248862024-03-28T01:55:10.289+02:00breakpoPoints regarding computing that I always forget - so I write them here to find them easily and maybe other could benefit too.Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.comBlogger121125tag:blogger.com,1999:blog-5264677233978724886.post-2231227877818596502024-02-08T23:00:00.005+02:002024-02-08T23:00:51.487+02:00Caddy web server configuration for rewrite with multiple variables parameters<p> <br />http://localwebsite {<br /> # Set this path to your site's directory.<br /> #root * /usr/share/caddy<br /> root * /var/www/website<br /></p><p><span> </span><span> </span> #makes /course/id/name.html to /course.php?id=id&name=name<br /><b> @zxp {<br /> #path_regexp myregex ^/course/(\d+)/([%A-Za-z0-9_-]+)\.html$<br /> path_regexp myregex ^/course/([^/]+)/([^/]+)\.html$<br /> }<br /> rewrite @zxp /course.php?id={re.myregex.1}&name={re.myregex.2}<br /></b> </p><p> # rewrite /course/([^/]+)/([^/]+)\.html /course.php?id={1}&name={2}<br /> # rewrite /course/(\d+)/([A-Za-z0-9_-]+)\.html /course.php?id=$1&name=$2<br /> # rewrite /course/(\w+)/(\w+)\.html /course.php?id={1}&name={2}<br /><br /> #rewrite /course {<br /> # r ^/(\w+)/(\w+)\.html$<br /> # to /course.php?id={1}&name={2}<br /> #}<br /><br /> # Enable the static file server.<br /> file_server<br /><br /> # Another common task is to set up a reverse proxy:<br /> # reverse_proxy localhost:8080<br /><br /> # Or serve a PHP site through php-fpm:<br /> # php_fastcgi localhost:9000<br /> php_fastcgi unix//run/php/php8.1-fpm.sock<br />}<br /><br /></p>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-79516239300749051122023-12-15T20:07:00.004+02:002023-12-15T20:07:47.717+02:00web2mail.cloud - A service to get a webpage as attachment by email<p><a href="https://www.web2mail.cloud">https://www.web2mail.cloud</a> is a service that allows you to send an email with a any website at the subject and get a reply email with this webpage as an image, jpg, png or pdf.</p><p>You can even set the width and height.</p><p><a href="https://www.web2mail.cloud">https://www.web2mail.cloud</a></p><p><br /></p>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-86990505413435092952023-12-13T17:31:00.005+02:002023-12-13T17:31:45.720+02:00Bypassing the error by "go get" "tls: failed to verify certificate: x509: certificate signed by unknown authority"<p>When I was trying to download dependencies for my go project in an old Ubuntu machine I was getting this error all the time:</p><p></p><p>"go: gopkg.in/alexcesaro/quotedprintable.v3@v3.0.0-20150716171945-2caba252f4dc: Get "https://proxy.golang.org/gopkg.in/alexcesaro/quotedprintable.v3/@v/v3.0.0-20150716171945-2caba252f4dc.mod": tls: failed to verify certificate: x509: certificate signed by unknown authority"</p><p></p><p>Which the main part of it was go get failing to authenticate: "<b>tls: failed to verify certificate: x509: certificate signed by unknown authority</b>"<br /></p><p>I tried many things but couldn't make it work until I found the way:</p>
<code>export GOINSECURE="proxy.golang.go"</code>
<p>This will tell go get to ignore certification validity.</p><p>Then</p>
<code>export GOPROXY=direct</code><p>This will tell go get to by pass proxy</p><p>Then</p>
<code>git config --global http.sslverify false</code><p><br /></p><p>And only after those I could run again:</p>
<code><b>go get</b></code><p>And it worked</p><p><br /></p>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-86391187236815147872023-11-30T12:20:00.003+02:002023-11-30T12:20:26.545+02:00They all need to go after 7th of October<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBawGMrNCP14Q2LfPYfZv62IKN-csvz2rQegX5ClHfVDw559v-EzjsNRzWtGTaZdSNoCav9QGMQfQdOb0tbaWLhLi-6pCwVTAdZcWNzrzVi0fXmMI2qcqADUJk7E8WCiAZM0v8uLIIkGtAmTT1WSs6mIV426nhKwRvgyq3z94qZPDzzfbek5c_wRlkc-I/s745/arya_stark_7october.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="745" data-original-width="500" height="707" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBawGMrNCP14Q2LfPYfZv62IKN-csvz2rQegX5ClHfVDw559v-EzjsNRzWtGTaZdSNoCav9QGMQfQdOb0tbaWLhLi-6pCwVTAdZcWNzrzVi0fXmMI2qcqADUJk7E8WCiAZM0v8uLIIkGtAmTT1WSs6mIV426nhKwRvgyq3z94qZPDzzfbek5c_wRlkc-I/w475-h707/arya_stark_7october.jpg" width="475" /></a></div><br /><p></p>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-36691736760483333502023-11-28T16:00:00.004+02:002023-11-28T16:00:34.444+02:00List of software and apps that does not require registration and just works<p>List of software and apps that does not require registration and just works out of the box without too many ads and without need to registrations. The list of applications for Android and Linux desktop that just do the work they need to do. Nothing more. Nothing less.</p><p><br /></p><ol style="text-align: left;"><li>K-9 Email Mail for Android</li><li>Otomusic - music mp3 player application for Android</li></ol><p> </p><p> </p>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-89312823488412520642023-11-15T16:03:00.003+02:002023-11-15T16:03:28.724+02:00Writing a json to smtp email proxy in go (golang) json2smtp<p>I wrote a json2smtp proxy server that can be self hosted in Go (golang) <br /></p><p><br /></p><p>See here:</p><p><a href="https://www.c2kb.com/json2smtp">https://www.c2kb.com/json2smtp</a></p><p></p><p><a href="https://github.com/caviv/json2smtp">https://github.com/caviv/json2smtp</a> <br /></p><p></p><p> </p><p>The reason why I needed to write an email proxy was because I was called to do some maintenance on an old legacy system. This system was running on Windows Server 2012, with php version 5.5.6 and Apache 2.4. Very old versions of software. The system was sending emails using the php smtp package and old libssl.dll which supports only TLSv1.0. The smtp service they were using (AWS SES Simple Email Service) has recently dropped the support for SMTP connection via TLS version 1.0. Now in order to support TLS v1.2 for emails on smtp I have to upgrade the whole system. Windows version, php version, Apache version and more - this would have taken me a very long time with many obstacles on the way.<br /></p><div><br /></div><div>Amazon support: <a data-saferedirecturl="https://www.google.com/url?q=https://docs.aws.amazon.com/ses/latest/dg/security-protocols.html&source=gmail&ust=1700141610756000&usg=AOvVaw1TjK-GZ7pe2tUy0fFZITnp" href="https://docs.aws.amazon.com/ses/latest/dg/security-protocols.html" target="_blank">https://docs.aws.<wbr></wbr>amazon.com/ses/latest/dg/<wbr></wbr>security-protocols.html</a></div><div><br /></div><div>The solution I have chosen was to write this proxy, so calls from the php to send email will be sent as JSON object with attachments to the json2smtp proxy and from there will be sent to the smtp server using TLS 1.2</div><div><br /></div><div>I have checked some other options that were recommended by Chat-GPT and Bard. But all of them were actually much more complicated to implement than writing my own solution which took me less than a few hours to code. If you know other similar tools and services please let me know.</div><div><br /></div><div>Here are the tools that did not work for me:</div><div><b>MailSlurp</b> is a cloud-based email proxy that allows you to receive emails in JSON format. It also provides a number of other features, such as the ability to create and manage email addresses, send emails, and track email activity. | This is an online service that costs money.<br /></div><div><b>SMTP2GO</b> is a cloud-based email service that provides a variety of features, including email proxying. It allows you to receive emails in JSON format and send emails through its own SMTP servers. | This is an online service that costs money.<br /></div><div><div><b>Mailgun</b> is another cloud-based email service that provides email proxying. It allows you to receive emails in JSON format and send emails through its own SMTP servers. | This is an online service that costs money.<br /></div></div><div><b>SendGrid</b> is a cloud-based email service that provides email proxying. It allows you to receive emails in JSON format and send emails through its own SMTP servers. | This is an online service that costs money.<br /><br /></div><div>In addition to these cloud-based services, there are also a number of self-hosted email proxy tools that can be used. Some of these tools include:<br /></div><div><b>Postfix</b> is a popular open-source mail server that can be used as an email proxy. It can be configured to receive emails in JSON format and send emails through its own SMTP servers. | might be ok but very hard to configure.<br /><b>Exim</b> is another popular open-source mail server that can be used as an email proxy. It can be configured to receive emails in JSON format and send emails through its own SMTP servers. | might be ok but very hard to configure.<br /><b>Mailcow</b> Dockerized is a Docker image that contains a number of email server components, including Postfix, Dovecot, and MySQL. It can be configured to receive emails in JSON format and send emails through its own SMTP servers. | Couldn't make it work<br /></div>
<p>
An email proxy: input: <b>json</b>, output: <b>smtp</b> call<br />
<br />
For a legacy project I needed to have a <b>proxy email</b> that reads <b>json input</b> and execute a <b>smtp calls</b> in order to <b>send emails</b>. So I created a small proxy for emails in go (golang)
<br />
See the code on github: <a href="https://github.com/caviv/json2smtp" title="github code for email proxy json to smtp">https://github.com/caviv/json2smtp</a>
</p>
<h3>Download json2smtp binaries executables</h3>
<p>
Ubuntu linux: <a href="json2smtp">json2smtp</a><br />
Windows amd64: <a href="json2smtp-amd64.exe">json2smtp-amd64.exe</a><br />
</p>
<h3>How it works:</h3>
<p>
Simple calling diagram:<br />
<img alt="Simple architecture of calling the json2smtp email proxy server with json and smtp calls" src="https://www.c2kb.com/json2smtp/json2smtp_architecture_1.jpg" style="width: 50%;" />
</p>
<h3>The <b>json</b> struct object</h3>
<p>
</p><h4>Simple object:</h4>
<code>
<pre>curl -X POST \
-H "Content-Type: application/json" \
-d '{ \
"from": "john doe <john@example.com&rt;", \
"to": ["kermit@muppets.com", "oneperson@example.com"], \
"cc": ["email1@example.com"], \
"bcc": ["secret@example.com"], \
"subject": "email subject line", \
"message": "message body in text/html to be sent", \
"attachments": {"filename.pdf": "base64 file encoded",
"anotherfilename.txt": "base64 file encoded"}, \
}' \
http://localhost:8080/
</pre>
</code>
<h4>Full object with smtp data:</h4>
<code>
<pre>curl -X POST \
-H "Content-Type: application/json" \
-d '{ \
"from": "john doe <john@example.com&rt;", \
"to": ["kermit@muppets.com", "oneperson@ex", \
"to": ["kermit@muppets.com", "oneperson@example.com"], \
"cc": ["email1@example.com"], \
"bcc": ["secret@example.com"], \
"subject": "email subject line", \
"message": "message body in text/html to be sent", \
"attachments": {"filename.pdf": "base64 file encoded",
"anotherfilename.txt": "base64 file encoded"}, \
"smtphost": "smtp.example.com - optional parameter", \
"smtpport": 587 - optional paramater, \
"smtpuser": "username - optional parameter", \
"smtppassword": "password - optional parameter" \
}' \
http://localhost:8080/
</pre>
</code>
<h4>Attachments</h4>
In order to send attachments with your json email struct you need to construct an object of base64 encoded string of your binary file.
<p></p>
<h3>How to install email proxy server:</h3>
<h4>Download the code and run it</h4>
<code>
<pre>git clone https://github.com/caviv/json2smtp.git
go run ./
go run ./ --help
</pre>
</code>
<h4>Build and compile</h4>
<p>
Download the code compile it and run with help command<br />
<code>
</code></p><pre><code>git clone https://github.com/caviv/json2smtp.git
go build ./
./json2smtp --help
</code></pre><code>
</code>
<p></p>
<h4>Execute smtp2json emal proxy and samples</h4>
<p>
Command line help:<br />
<br />
<code>
</code></p><pre><code>json2smtp utility https://www.c2kb.com/json2smtp v1.0.1 2023-11-13
Get json input and calls smtp - function as a json to smtp proxy
Options:
-port int
the port to listen on (default 8080)
-smtphost string
smtp host, e.g. smtp.example.com
-smtpoverride
true - allows to pass smtp parameters in the json call,
false will always use the config smtp data (default true)
-smtppassword string
password for the smtp user
-smtpport int
the port to listen on (default 587)
-smtpuser string
username for the smtp
</code></pre><code>
</code>
<p></p>
<h4>Example:</h4>
<code>
<pre>json2smtp --port=8200 --smtphost='smtp.example.com'
--smtpport=587 --smtpuser='username'
--smtppassword='password'
--smtpoverride=false
</pre>
</code>
<h4>Run service in the background:</h4>
<code>
<pre>nohup json2smtp --port=8200 --smtphost='smtp.example.com'
--smtpport=587 --smtpuser='username'
--smtppassword='password' >> logfile.log 2>&1 &
</pre>
</code>
<h4>Simple execute smtp2json service:</h4>
<p>
In this way the calling client will have to pass the smtp server details in each call because we don't set the smtp default server for the proxy. The default port to listen on is 8080.
<code>
</code></p><pre><code>json2smtp
</code></pre><code>
</code>
<p></p>
<h4>Recommended architecture to run the service:</h4>
<p>
<img alt="Calling json2smtp proxy behind a caddy web server for https / tls" src="https://www.c2kb.com/json2smtp/json2smtp_architecture_2.jpg" style="width: 50%;" />
</p>
<h3>Libraries used</h3>
<p>
This external libraries are used in the project:<br />
<br />
require gopkg.in/mail.v2 v2.3.1<br />
require gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0<br />
</p>
Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-58053293356230229692023-11-05T12:40:00.003+02:002023-11-05T12:40:44.451+02:00Taking a screenshot and creating thumbnail of webpage html as an image via command line<p>There are a few options to take screenshot of a webpage or save a webpage as an image on the disk via the command line. This can allow you to create a thumbnail of a web site easily by one command on the terminal.<br /></p><p> </p><p></p><p>Using chrome to save a webpage as an image:<br /></p><p></p><p><span style="font-family: courier;">chrome --screenshot=google.png --headless --window-size=1024,768 https://www.google.com/ </span></p><p> </p><p>Using cutycapt to screenshot a webpage:</p><p>https://cutycapt.sourceforge.net/</p><p> <br /></p><p>Using webkit2png to create site thumbnail:</p><p>https://paulhammond.org/webkit2png</p><p> </p><p>You can also use Midori browser</p><p><br /></p><p><br /></p>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-66255327614656365832023-10-17T22:02:00.001+03:002023-10-17T22:02:41.939+03:00Linux Ubuntu Installing and Using Fake Camera Stream<p>If you wish to create a virtual camera in Linux and stream "fake" videos during calls:<br />
<br><br>
<h3>To install the loopback camera:</h3>
<code>sudo apt update</code>
<code>sudo apt install v4l2loopback-dkms v4l2loopback-utils</code>
<br><br>
<h3>To add the loopback camera module:</h3>
<code>sudo modprobe v4l2loopback card_label="My Fake Webcam" exclusive_caps=1</code>
<p>or</p>
<code>sudo modprobe v4l2loopback devices=1 video_nr=1 card_label='MyWebCam' exclusive_caps=1</code>
<br><br>
<h3>Now to stream the video:</h3>
<p>First find the list of videos device available:</p><p>v4l2-ctl --list-devices</p>
<br><br>
<h3>You can check the videos by playing:</h3>
<code>ffplay /dev/videoX</code>
<code>ffplay Rick_Astley_Never_Gonna_Give_You_Up.mpg</code>
<br><br>
<h3>Now you can stream the video to the free one:</h3>
<code>ffmpeg -re -i Rick_Astley_Never_Gonna_Give_You_Up.mpg -map 0:v -f v4l2 /dev/videoX</code>
<p>Or</p>
<code>ffmpeg -stream_loop -1 -re -i video.mp4 -vcodec rawvideo -threads 0 -f v4l2 /dev/videoX</code>
<br><br>
<h3>To remove the module from the kernel:</h3>
<code>sudo modprobe --remove v4l2loopback</code>
<br><br>
<h3>Software for streaming:</h3>
<code>sudo apt-add-repository ppa:obsproject/obs-studio<br />sudo apt-get update<br />sudo apt-get install ffmpeg obs-studio</code>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-83528475280703660112023-07-31T22:10:00.009+03:002023-11-15T16:04:49.364+02:00Go (golang) howto not to export fields of a struct when Unmarshal to json object<div dir="ltr" style="direction: ltr">
<p style="text-align: left;">Use:</p><p style="text-align: left;">typedef MyData struct { <br /></p><p style="text-align: left;"><span><span> </span>Data<span> </span><span> </span><span> </span>string `json:"data"` </span> <br /></p><p style="text-align: left;"><span> </span>FieldName *int64 `json:"-"` </p><p style="text-align: left;">} <br /></p><p style="text-align: left;">Adding the `json:"-"` will make the Unmarshal command disregard this field<br /></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-90843157434342448772023-07-22T16:13:00.008+03:002023-09-25T21:43:33.777+03:00Cleaning and resizing VM VirtualBox VDI Virtual Machine Disk<div style="direction: ltr">
<p style="text-align: left;"> You have to do the following steps:<br /><br />Run defrag in the guest (Windows only)<br />Nullify free space:<br /><br />With a Linux Guest run this:<br /><br />dd if=/dev/zero of=/var/tmp/bigemptyfile bs=4096k ; rm /var/tmp/bigemptyfile<br />Or:<br /><br />telinit 1<br />mount -o remount,ro /dev/sda1<br />zerofree -v /dev/sda1<br />With a Windows Guest, download SDelete from Sysinternals and run this:<br /><br />sdelete.exe c: -z<br />(replace C: with the drive letter of the VDI)<br /><br />Shutdown the guest VM<br /><br />Now run VBoxManage's modifymedium command with the --compact option:<br /><br />With a Linux Host run this:<br /><br />vboxmanage modifymedium --compact /path/to/thedisk.vdi<br />With a Windows Host run this:<br /><br />VBoxManage.exe modifymedium --compact c:\path\to\thedisk.vdi<br />With a Mac Host run this:<br /><br />VBoxManage modifymedium --compact /path/to/thedisk.vdi<br />This reduces the vdi size.<br /><br />https://superuser.com/questions/529149/how-to-compact-virtualboxs-vdi-file-size<br /><br /></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-6603909426577618912023-05-25T12:28:00.006+03:002023-09-25T21:45:48.392+03:00Some notes about caddy webserver installation on Linux<div style="direction: ltr">
<p><span style="color: #999999;"> </span></p><p dir="ltr" id="docs-internal-guid-3696c499-7fff-6e85-7d2b-f16e1ee2ee6d" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">caddy</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><a href="https://caddyserver.com/docs/install#debian-ubuntu-raspbian" style="color: #999999; text-decoration: none;"><span style="-webkit-text-decoration-skip: none; background-color: transparent; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre;">https://caddyserver.com/docs/install#debian-ubuntu-raspbian</span></a></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo apt update</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo apt update</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo apt install caddy</span></p><span style="color: #999999;"><br /></span><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"># the code sits in /var/www</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"># create link to the local directory</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">ln -s /var/www/ /home/xxx/myprojects/web</span></p><span style="color: #999999;"><br /></span><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"># set the user to be xxx and the group caddy</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo chown -R xxx:caddy ./www </span></p><span style="color: #999999;"><br /></span><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"># add us to caddy groups</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo usermod -a -G caddy xxx</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo usermod -a -G www-data xxx</span></p><span style="color: #999999;"><br /></span><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">Install php-fpm</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo apt install php-cli php-fpm php-mysql php-mbstring php-curl</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><a href="https://www.howtoforge.com/tutorial/ubuntu-caddy-web-server-installation/" style="color: #999999; text-decoration: none;"><span style="-webkit-text-decoration-skip: none; background-color: transparent; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre;">https://www.howtoforge.com/tutorial/ubuntu-caddy-web-server-installation/</span></a></p><span style="color: #999999;"><br /></span><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre;">configure caddy with php</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo nano /etc/php/8.1/fpm/pool.d/</span><a href="http://www.conf" style="color: #999999; text-decoration: none;"><span style="-webkit-text-decoration-skip: none; background-color: transparent; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration-skip-ink: none; text-decoration: underline; vertical-align: baseline; white-space: pre;">www.conf</span></a></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">#change users to caddy (user, group, listen.owner, listen.group)</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">#take the socket name: listen = /run/php/php8.1-fpm.sock</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">nano php.ini # set E_ALL view all errors</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo systemctl restart php8.1-fpm</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">#set socket in Caddyfile: php_fastcgi unix//run/php/php8.1-fpm.sock</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">sudo service caddy stop && sudo service caddy start</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> </span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"><b>Caddyfile</b><br />website.com {<br />#:80 {<br />tls /var/www/fullchain.pem /var/www/privkey.pem<br /><br /># Set this path to your site's directory.<br />root * /var/www/website.com<br />php_fastcgi unix//run/php/php7.4-fpm.sock<br /><br /># Enable the static file server.<br /># file_server<br />rewrite /symbol/* s.php?s={path}<br /># rewrite /symbol/ {<br /># r ^/(\w+)/?$<br /># to /symbol.php?symbol={1}<br /># }<br />file_server<br /><br />encode gzip<br /><br />log {<br />output file /var/log/caddy/example.com.access.log {<br />roll_size 3MiB<br />roll_keep 5<br />roll_keep_for 48h<br />}<br />format console<br />}<br /># Another common task is to set up a reverse proxy:<br /># reverse_proxy localhost:8080<br /><br /># Or serve a PHP site through php-fpm:<br /># php_fastcgi localhost:9000<br /><br />#RewriteRule ^symbol/jscss/([^/]*)\.([^/]*)$ /jscss/$1.$2 [L] # no need for those since we used <base href="../" /><br />#RewriteRule ^symbol/images/([^/]*)\.([^/]*)$ /images/$1.$2 [L]<br />#rewrite /symbol/* / symbol.php?symbol={query}<br />} </span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> </span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> </span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;">I had the same problem whith my docker php-fpm and I fixed it by modifing parameters</span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> in these files: /usr/local/etc/php-fpm.d/www.conf /usr/local/etc/php-fpm.d/www.conf.default<br /><br />The new parameters are :<br /><br />pm = dynamic<br />pm.max_children = 25<br />pm.start_servers = 10<br />pm.min_spare_servers = 5<br />pm.max_spare_servers = 20<br />pm.max_requests = 500<br /><br /> </span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> </span></p><p dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><b style="color: #999999;"><span style="background-color: transparent; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;"> - ADD how to enabled logs in PHP </span></b></p><span style="background-color: transparent; color: #999999; font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;"> </span></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-66718960544796895182023-02-06T18:37:00.006+02:002023-09-25T21:46:07.920+03:00Linux terminal shell command line to show a list of just the files in the directory<div style="direction: ltr">
<p>Linux terminal shell command line to show a list of just the files in the directory</p><p><span style="font-family: courier;">find . -type f</span><br /> </p>
</div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-13253090757773872312023-02-01T16:08:00.004+02:002023-09-25T21:46:30.836+03:00php8 COM Exception Type Mistmtach in paramater #0 when calling MS Word COM object SaveAs<div style="direction: ltr">
<p>php8 COM Exception Type Mistmtach in paramater #0 when calling MS Word COM object SaveAs</p><p>I saw this:</p><p>https://bugs.php.net/bug.php?id=73605</p><p> </p><p>When calling <b>$word->SaveAs($filename, 8);</b></p><p>You should change to <b>$word->SaveAs($filename, new variant(8, VT_I4);</b></p><p> </p><p> <br /></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-72939137325235870522023-02-01T16:03:00.003+02:002023-09-25T21:46:53.655+03:00php 8 using ldap connectivity configuring php.ini and apache2.4<div style="direction: ltr">
<p>Got an error that <b>ldap_connect</b> is not a recognize function to use with apache 2.4, php 8 on windows<br /></p><p><br /></p><p>Here is a solution:</p><p>1.</p><p>Enable <b>extension=ldap</b> in the php.ini</p><p><br /></p><p>2.</p><p>Copy <b>.dll</b> files from the <b>php</b> installation directory into the <b>apache/bin</b> installation directory</p><p><br /></p><p>Please note, <b>ldap_sort</b> function was deprecated<br /></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-43860739824638812702023-01-16T18:57:00.005+02:002023-09-25T21:47:11.511+03:00Linux Ubuntu Changing the datair of mysql<div style="direction: ltr">
<p> </p><p><u><b>mysqld.cnf</b></u></p><p><span style="font-family: courier;">datadir = /new/data/dir</span></p><p><span style="font-family: courier;">mysqld --user=mysql --initialize</span></p><p><span style="font-family: courier;">innodb_flush_log_at_trx_commit= 0<br />ssl=0 # (5.7 community (self built) might not use SSL for cases. 8.0 always use ssl by default, might be slower)<br />innodb_doublewrite_pages=120 # (if doublewrite enabled for recent 8.0.x "on HDD")<br />innodb_undo_log_truncate=OFF<br />innodb_log_writer_threads=OFF<br /></span> </p><p><span style="font-family: courier;">plugin-load-add=auth_socket.so<br />auth_socket=FORCE_PLUS_PERMANENT<br /></span><br /> </p><p>sudo systemctl stop apparmor</p><p>sudo systemctl disable apparmor </p><p><br /></p><p><br /></p><p><span style="font-family: courier;">sudo mysqldump --master-data=1 --flush-logs --single-transaction --routines --quick --all-databases > db20230116_1852.sql</span></p><p><span style="font-family: courier;">CREATE USER 'XXXXX'@'%' IDENTIFIED WITH mysql_native_password BY 'XXXXXX';<br />GRANT ALL PRIVILEGES ON *.* TO 'XXXXX'@'%' WITH GRANT OPTION;<br />FLUSH PRIVILIGES;<br /></span></p><p> <br /></p></div>
Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-64215414008121334092023-01-14T18:51:00.005+02:002023-09-25T21:48:06.016+03:00mysql linux client get stuck on command line connecting mysql server 8.0<div style="direction: ltr">
<p> use </p><p><br /></p><p>mysql <b>--ssl-mode=DISABLED</b> -p <br /></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-40122131442703815842022-12-12T19:10:00.002+02:002023-09-25T21:48:23.215+03:00Enabling php error logging with caddy and php-fpm<div style="direction: ltr">
<p>How to enable php error logging with caddy and php-fpm <br /></p><p>Inside the file: <br /></p><p><span style="font-family: courier;"><b>pool.d/www.conf</b></span></p><p><br /></p><p>Edit at the end:<br /></p><p><span style="font-family: courier;"><b>php_admin_value[error_log] = /var/log/fpm-php.www.log<br />php_admin_flag[log_errors] = on </b></span></p><p><span style="font-family: courier;"><b>catch_workers_output = yes</b></span><br /></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-69035455970828417482022-11-19T22:09:00.007+02:002023-09-25T21:48:47.605+03:00Script for creating html bookmarks file for Chrome to import<div style="direction: ltr">
<p><span style="font-family: courier;">#!/bin/bash<br />#<br /># Run this script on a file named urls.txt with all your URLs and pipe the output to an HTML file.<br /># Example: ./convert_url_file.sh > bookmarks.html<br /><br />echo "<!DOCTYPE NETSCAPE-Bookmark-file-1>"<br />echo '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">'<br />echo '<TITLE>Bookmarks</TITLE>'<br />echo '<H1>Bookmarks</H1>'<br />echo '<DL><p>'<br /> cat urls.txt |<br /> while read L; do<br /> echo -n ' <DT><A HREF="';<br /> echo ''"$L"'">'"$L"'</A>';<br /> done<br />echo "</DL><p>"</span></p><p><span style="font-family: courier;"> </span></p><p> </p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-3065436148710970822022-07-11T18:41:00.001+03:002023-09-25T21:50:11.093+03:00Simple Using SQUID proxy server for Ubuntu 20.04<div style="direction: ltr">
<p><span style="font-family: arial;">sudo apt install squid</span></p><p><span style="font-family: arial;">sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original<br />sudo chmod a-w /etc/squid/squid.conf.original<br /><br /></span></p><p><span style="font-family: courier;"><span style="font-family: arial;">sudo nano /etc/squid/squid.conf</span><br /></span> </p><p><b>inside squid.conf</b><br /><span style="font-family: arial;">http_port XXXXX<br />http_access allow all<br /><br /></span></p><p><span style="font-family: arial;">sudo update-rc.d squid disable<br />sudo systemctl restart squid.service<br />sudo systemctl status squid <br />sudo systemctl disable squid<br />sudo systemctl stop squid<br /> </span></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-59353549404996720742022-06-25T18:05:00.003+03:002023-09-25T21:49:52.787+03:00The right way to use rsync<div style="direction: ltr"><p><span style="font-family: courier;"> rsync -avW -LK --progress ./from /to</span></p><p> </p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-36131071372390547722022-06-25T18:04:00.004+03:002023-09-25T21:51:11.925+03:00Enable snap mysql-workbench to have access to the network<div style="direction: ltr"><p><span style="font-family: courier;"> sudo snap connect mysql-workbench-community:password-manager-service :password-manager-service</span><br /><br /></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-89460133586639622152022-03-19T18:20:00.003+02:002023-09-25T21:51:28.830+03:00Making sure my linux system does not wake up on suspend<div style="direction: ltr"><p style="text-align: left;">Had this annoying problem in my linux Xubuntu 20.04 when putting on suspend the system then starts even though I put it in suspend and sleep.</p><p style="text-align: left;">Using acpitool to turn off wake-up from unnecessary devices.</p><p style="text-align: left;">But the problem the change is not permanent and does not survive a restart.</p><p style="text-align: left;">So I used cron @reboot to make sure it is always off:</p><p style="text-align: left;">@reboot acpitool -W 3 && acpitool -W 9 && acpitool -W 10 && acpitool -W 17 && acpitool -W 63 && acpitool -W 64 && acpitool -W 66 && acpitool -W 68 && acpitool -W 74<br /> </p><p style="text-align: left;"> <br /></p><p style="text-align: left;"><br /></p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-1160576620005961542022-03-17T22:38:00.004+02:002023-09-25T21:51:56.466+03:00Scanning Local Network for Devices<div style="direction: ltr"><p> nmap -sT 192.168.1.1/24</p><p> </p><p> </p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-19205137744754409712022-03-05T18:46:00.006+02:002023-09-25T21:52:10.984+03:00MySQL Test Timezone Script<div style="direction: ltr"><p style="text-align: left;"> CREATE TABLE tzt(<br />id MEDIUMINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,<br />ts TIMESTAMP NOT NULL,<br />dt DATETIME NOT NULL<br />);<br /><br />SELECT @@global.time_zone, @@session.time_zone;<br /><br /><br />SET GLOBAL time_zone = 'Asia/Jerusalem';<br />SET SESSION time_zone = 'Asia/Jerusalem';<br /><br />INSERT INTO tzt SET ts='2021-08-22 13:30:00', dt='2021-08-22 13:30:00';<br /><br />SELECT * FROM tzt\G<br /><br />SET GLOBAL time_zone = 'America/Sao_Paulo';<br />SET SESSION time_zone = 'America/Sao_Paulo';<br /><br /><br />SELECT * FROM tzt\G</p></div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0tag:blogger.com,1999:blog-5264677233978724886.post-42784591090365049122022-01-10T11:36:00.006+02:002023-09-25T21:53:56.188+03:00Connecting to mysql with TLS 1.2 SSL encrypted connection<div dir="ltr" style="direction: ltr;">
<p>In order to be able to connect to MySQL remote server using encrypted connection overt TLS1.2 you will need a .pem certificate of CA.</p><p> You can obtain the certificate here: <a href="https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem">https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem</a> <br /></p><p>(DigiCertGlobalRootCA.crt.pem)</p><p>Read more here: <br /></p><p><a href="https://docs.microsoft.com/en-us/azure/mysql/flexible-server/how-to-connect-tls-ssl">https://docs.microsoft.com/en-us/azure/mysql/flexible-server/how-to-connect-tls-ssl</a></p>
<p>Here is a PHP sample for connection with SSL to MySQL encrypted connection on TLS1.2: <br /></p>
<code>
<p>self::$mysqli = mysqli_init();<br />//self::$mysqli->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);<br />self::$mysqli->ssl_set(NULL, NULL, "DigiCertGlobalRootCA.crt.pem", NULL, NULL);<br />self::$mysqli->real_connect(host', 'username', 'password', 'database'); // , 3306, MYSQLI_CLIENT_SSL);<br /><br />//self::$mysqli = new mysqli('hots', 'username', 'password', 'database'); <br />self::$mysqli->set_charset('utf8');<br />return self::$mysqli;</p>
</code>
<h3>Here is the full certificate for MySQL secure connection<br /></h3>
<pre> -----BEGIN CERTIFICATE-----
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
-----END CERTIFICATE-----
</pre>
</div>Avivhttp://www.blogger.com/profile/03917512800112379320noreply@blogger.com0