יום שלישי, 24 במרץ 2020

Defragmentation and resizing to minimize HD size of a Virtual Machine Drive for Virtual Box

When creating a Virtual HD for Virtual Machine in Virtual Box, you can create a large disc space but the actual size on the disc can be much smaller until you fill it up.
But after you fill it, and then delete and try to free space the size on the host disc still remain large.

Here is how to resize the Virtual Drive HD on the host machine:

You have to do the following steps:

Run defrag in the guest (Windows only)
Nullify free space:

With a Linux Guest run this:
dd if=/dev/zero of=/var/tmp/bigemptyfile bs=4096k ; rm /var/tmp/bigemptyfile
Or:

telinit 1
mount -o remount,ro /dev/sda1
zerofree -v /dev/sda1
With a Windows Guest, download SDelete from Sysinternals and run this:

sdelete.exe c: -z
(replace C: with the drive letter of the VDI)

Shutdown the guest VM

Now run VBoxManage's modifymedium command with the --compact option:

With a Linux Host run this:

vboxmanage modifymedium --compact /path/to/thedisk.vdi
With a Windows Host run this:

VBoxManage.exe modifymedium --compact c:\path\to\thedisk.vdi
With a Mac Host run this:

VBoxManage modifymedium --compact /path/to/thedisk.vdi
This reduces the vdi size.

https://superuser.com/questions/529149/how-to-compact-virtualboxs-vdi-file-size

יום רביעי, 11 במרץ 2020

גרף שעוקב אחר התפשטות והדבקות נגיף הקורונה בארץ

העיתונות מפרסמת הרבה מספרים והרבה מלל. אז אני מנסה לתמצת את זה, ותמונה שווה יותר מאלף מילים וגרף שווה יותר. אז אני אוסף את פרומי העיתונות ועוקב כמה חולי קורונה חדשים יש לנו כל יום ושם את זה על גרף בשאיפה לראות מגמות, כמה נדבקים, כמה נדבקו בארץ מקורונה ולכמה תחלואה בארץ ישראל גורם הנגיף COVID-19. 

ניתן גם לראות את המספרים הגולמיים של חולי הקורנה, הדבקות חדשות, חולים קשה וכמה הבריאו מהנגיף ישירות במסמך Google Sheets שיצרתי על חולי הקורונה.

והנה גרף חולי הקורונה בארץ:

יום שבת, 7 במרץ 2020

Firefox notifications permissions fix for non secured domains (http and not https)

I had a running internal service inside an organization intranet. We wanted to allow notifications (web notifications) but we couldn't. In order to allow notifications for website and domains, both Firefox and Chrome requires https. Quite annoying since it is an Intranet inside the organization.

Trying to install a self-sign certificate or a signed certificate inside the organization (where there is no outside internet connectivity) it's really a pain in the a** and does not work well - and if you ask me it should be much easier and simple than it is.

I found a nice bypass workaround to allow notifications from websites and domains without SSL, hence http:// and not https:// for Firefox.

Firefox holds a file inside the Mozilla directory called permissions.sqlite which is a sqlite database file that holds the permissions for domains. You can add your domain there http://yourdomainname with permissions for notifications and it will work.

I have created a demonstration for Windows here
https://gist.github.com/caviv/8df5fa11a98e0e33557f75215f691d54 in go (golang)

יום שלישי, 28 בינואר 2020

Fixing screen not waking up (xorg) on Ubuntu from command line

Sometimes after xubunutu screen is in hibernate mode the screen does not wake up.

Open terminal ALT+CTRL+F1 (tty)

Run:
  sleep 5 && xrandr -d :0 --output 'eDP-1' --primary --auto

Then switch fast back to the graphic mode (ALT+CTRL+F7) wait a few seconds for the screen to wake up.

'eDP-1' is the name of your screen

You can see connected screens running
    xrandr -d :0


יום שני, 16 בספטמבר 2019

יום שלישי, 28 במאי 2019

יום ראשון, 13 בינואר 2019

Enlrage, resize bash command line linux history line to remember

nano ./.profile
nano ./.bashrc

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=20000

יום חמישי, 3 בינואר 2019

Disconnecting second monitor display from command line

xrandr --output eDP-1 --auto
xrandr --output VGA-1  --off


יום רביעי, 21 בנובמבר 2018

תזכורת פקודות הרשאות linux groups


Chmod for files:
chmod u=rwx,g=rx,o=r myfile

Get user and groups:
id
id www-data


Adding a user to a group:
sudo usermod www-apache --append --groups [groupname]

Removing user from group
sudo deluser username group

Change ownership:
chown {-R} [user]{:group} [file|directory]

Change group:
chgrp {-R} [group] [file|directory]

Login with www-data user (www-data is set to /usr/sbin/nologin):
sudo su -l www-data -s /bin/bash

יום שישי, 24 באוגוסט 2018

Finding all elements with z-index inside a a page

var all = document.querySelectorAll('*');
for(var i = 0; i < all.length; i++) {if(all[i].style.zIndex > 0) {console.log(all[i].style.zIndex); console.log(all[i]);}}

יום חמישי, 23 באוגוסט 2018

דף שמעדכן את חברות הביטוח וקרנות ההשתלמות לשלוח את הדוחות השנתיים בנייר

הי,
אני רוצה דו"ח בנייר.
אם גם אתכם זה מרגיז שחברות הביטוח וקרנות ההשתלמות עברו באופן חד-צדדי לשלוח את הדוחות בהודעת SMS, אז כתבתי כאן שירות קטן שמעדכן את החברות לשלוח שוב את הדו"ח בנייר כמו פעם.

יום רביעי, 22 באוגוסט 2018

יום ראשון, 22 באפריל 2018

זה למה אני לא אוהב בוטים "חכמים"






זה למה אני לא אוהב בוטים "חכמים".

הבוט של Wysa שאמור לגרום לך להרגיש טוב ....

יום ראשון, 4 במרץ 2018

איך לשמור אימוג'י בדטאבייס MySQL 😀

How To Save Emoji in MySQL Database 😝😚

כדי לשמור סימנים מיוחדים בדטאבייס לעיתים UTF8 לא מספיק ולכן נשתמש ב - Collate מתאים ל - MultiBytes

1.
ALTER DATABASE DatabaseName CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

2.
ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

3.
$database_connection = new mysqli($server, $user, $password, $database_name);
  $database_connection->set_charset('utf8mb4');


https://stackoverflow.com/questions/39463134/how-to-store-emoji-character-in-my-sql-database

ותודה לאח שלי חצב !



יום ראשון, 29 באוקטובר 2017

קישורים לכמה דברים שהייתי עסוק איתם לאחרונה:

ראשית,
אפליקציית meeba. רשת חברתית למטיילים, מחברת אותך עם חברים בכל מקום אליו הגעתם.
https://www.meeba-app.com

שנית,
מערכת חכמה לרכב לניווט - המלצות נסיעה ובניית סדר יום: Make My Day.
https://www.makemydayapp.com

ועוד,
email2json.net שרות שמאפשר לבצע אוטומיזציה של אימיילים. אימייל שנשלח יגיע לכל URL שתבחרו ויועבר בפורמט JSON ב - POST.
https://www.email2json.net

זוכרים את delicious לטובה .. הקמתי שרות אשר מספק את אותן יכולות ואפילו יותר.
שרות לשמירת לינקים ובוקמרקים לאורך זמן עם יכולת חיפוש וחיתוך.
yabs.io - yet another bookmarks service.
אתם מוזמנים להתחיל לשמור קישורים
https://www.yabs.io

הפרוייקטים שלי ב - github
https://github.com/caviv

מערכת לניהול ומעקב הוצאות myexpenses
מאשרת חיבור לבנקים  - ניתוח אוטומטי וקיטלוג הוצאות
https://www.myexpenses.co.il


יום שני, 10 ביולי 2017

יום שבת, 1 ביולי 2017

תחרות סטארטאפים 2017

הי תותחים,
שני דברים מגניבים שקורים במקביל - שני מייזמים שאני מעורב בהם !

הסטארטאפ meeba, שלי ושל אחי התקבל לאקסלרטור של StartOno בקרייה האקדמאית אונו.
ביום רביעי, ה - 12 ביולי בשעה 17:00 אנחנו נציג אותו ב - Demo Day ובתחרות הסטארטאפים של המאיץ בקמפוס בקריית אונו.
אנחנו נשמח שתהיו שם ותצביעו בעבורנו !
אנחנו meeba, אפליקציה שהיא רשת חברתית לתרמילאים ומאפשרת למצוא חברים חדשים לטיול ובטיול, לוח מודעות ושמירת קשר עם חברים.
תודיעו לי אם אתם מגיעים, אנחנו מאוד נשמח וזה יעזור לנו.
לאירוע בפייסבוק:
https://www.facebook.com/events/1699599983401461

כל זה בנוסף לסטארטאפ שלי, Make My Day שמסיים את האקסלרטור הנחשב Startup Bootcamp בברלין וגם נבחר לתחרות הסטארטאפ המבטיח של 2017 ואתם מוזמנים להצביע:
https://tech.co/vote-startup-international-americas-middle-east-australia-new-zealand

https://www.flickr.com/photos/startupbootcamp/32724279064/in/photostream/
https://www.startupbootcamp.org/accelerator/smart-transportation-energy/
https://www.startupbootcamp.org/alumni/make-my-day/
דברו איתי עם תרצו משהו נוסף. תמיד.
כנען.

יום רביעי, 21 ביוני 2017

המרת pdf ל - png וחזרה png ל - pdf - כמובן ב - linux ובונוס שינוי שם לקבצים מרובה

המרת pdf ל - png וחזרה png ל - pdf - כמובן ב - linux ובונוס שינוי שם לקבצים מרובה

המרת קובץ pdf לתמונות png:
convert -density 100 filename.pdf -quality 60 output.png

שינוי שם הקבצים, הוספת 0 באמצע שם הקובץ:
for f in * ; do mv "$f" "${f:0:6}-0${f:8}" ; done

חיבור כמה png ל - pdf אחד
convert *.png t.pdf

יום חמישי, 16 בפברואר 2017

Temporary Web Server with Python and .csr file openssl generate

ייצור קבצי .csr ו - .key ל - mod_ssl על ידי openssl

openssl req -new -newkey rsa:2048 -nodes -out example.csr -keyout example.key -subj "/C=il/ST=Address/L=City/O=Organization/CN=example.co.il"

הרצת שרת web server זמני בספריה נוכחית באמצעות python:

python -m SimpleHTTPServer 80
 

יום חמישי, 24 בנובמבר 2016

שכפול אובייקטים ב- JavaScript באמצעות JSON פונקציות

Clone, Parse and Stringify JavaScript objects using JSON.parse and JSON.stringify without loosing functions in deep object:



function localStringify(obj) {
             return JSON.stringify(obj, function(key, val) { return (typeof val === 'function') ? val.toString() : val; });
}

function localParse(str) {
    return JSON.parse(str, function(key, val) { return (typeof val === 'string' && val.substring(0,8) === 'function') ? eval('(' + val + ')') : val; });
        }
 
function cloneObject(obj) {
    if (obj === null || typeof obj !== 'object') {
                return obj;
   }
       
    var temp = obj.constructor(); // give temp the original obj's constructor
    for (var key in obj) {
        temp[key] = cloneObject(obj[key]);
    }
       
   return temp;
}

יום שישי, 4 בנובמבר 2016

הרצת VNC ב - Linux לפני לוגין באמצעות x11vnc

הכדי להתחבר ב - vnc למחשב לינוקס מרוחק צריך לבצע לוגין לפני שה - VNC עולה. ולכן כדי להריץ x11vnc עבור מסך הלוגין עצמו, לפני שהתחברנו, ניתן להשתמש בפקודה:

sudo x11vnc -display :0 -auth guess


אחר כך אפשר להריץ את פקודת ה - x11vnc שתישאר לתמיד:

x11vnc -forever -usepw -xkb -nomodtweak
 

יום שלישי, 1 בנובמבר 2016

האפשרות ש - Microsoft Excel יוכל לקרוא קובץ CSV ב - UTF-8

עבודה עם אקסל יכולה להיות מאוד מרגיזה לפעמים.
לצערנו Excel עדיין עובד בברירת המחדל ב - Windows-1255 Encoding.
אבל מה אם אנחנו רוצים ליצור קובץ CSV מתקדם יותר ... נניח UTF8.
הפתרון נמצא ב - BOM:

 header("Content-Type: text/csv; charset=UTF-8");
 header("Content-Disposition: attachment; filename=$filename"); // Disable caching
 header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1
 header("Pragma: no-cache"); // HTTP 1.0
 header("Expires: 0"); // Proxies

 $out = fopen('php://output', 'w');
 $BOM = "\xEF\xBB\xBF"; // UTF-8 BOM
 fwrite($out, $BOM);
 $headlines = array("a", "b", "c");
 fputcsv($out, $headlines);

 // loop data here

 fclose($out);

יום חמישי, 24 בספטמבר 2015

תצוגה ייחודית לסטטיסטיקות ישראליות

אני ואחי יצרנו תצוגה מעניינת לראות אירועים יום יומיים ישראלים. כמה כסף עיריית תל-אביב עושה מדוחות על חניות ? - כמה כסף מרוויח בנק הפועלים בשניה ? - כל כמה זמן נולד ילד במדינה ? / מישהו מתגייס ? / כמה שקיות במבה מיוצרות בשנייה ? ... ועוד ועוד.

צריך לראות כדי להבין:


http://www.c2kb.com/israel-frequency/

תדירות ישראלית

יום שלישי, 15 בספטמבר 2015

Building a drawing robot in Geekcon 2015

On the last GeekCon 2015, me and my brother built a drawing robot.
Can draw on a large scale pages, basically working the same way Logo (Computer Language) Turtle is working. Can go forward, backward and turn around. Can raise the pen or lower it in order to start drawing.

Here are some pictures, explanations and code.

We used the Arduino Uno (actually Funduino Uno compatible) over a Maze car  rack bought in Deal Extreme. Using the Keyes L298 driver for the DC motors and a Servo motor using the original Servo.h library kit from Arduino.









Some external references helping us to go on:


Here is the code:
Also can be seen in Github:

// connect motor controller pins to Arduino digital pins
// motor one
int enA = 11;
int in1 = 2;
int in2 = 3;
// motor two
int enB = 6;
int in3 = 4;
int in4 = 5;
// servo pen
int servoPin = 13;
int speed = 255;


//Include for servo
#include   // servo library
//Define Servo
Servo servo;  // servo control object

void set_speed(int pin, int speed)
{
  //if(pin == enA)
  //  analogWrite(pin, 200);
  //else
    digitalWrite(pin, HIGH);
}


void setup()
{
  Serial.begin (9600);

  servo.attach(servoPin);
 
  // set all the motor control pins to outputs
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}

void forward(int duration)
{
  Serial.println("Forward");
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  set_speed(enA, speed);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  set_speed(enB, speed);
  delay(duration);
}
void right(int duration)
{
  Serial.println("Right");
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH); 
  set_speed(enA, speed);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  set_speed(enB, speed);
  delay(duration);
}
void left(int duration)
{
  Serial.println("Right");
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW); 
  set_speed(enA, speed);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  set_speed(enB, speed);
  delay(duration);
}
void sstop(int duration)
{
  // now turn off motors
  Serial.println("Off");
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW); 
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
 
  delay(duration);
}
void drawSquare()
{
  Serial.println("drawSquare start");

  // malben - starts from the lower left corner
  forward(1100);
  right(270); 
  forward(800);
  right(270);
  forward(1100);
  right(270);
  forward(800);
  right(270); 
}
void drawZigzag()
{
  Serial.println("drawZigzag start");

  // forward zigzag
  right(100);
  forward(300);
  left(200);
  forward(300);
  right(200);
  forward(300);
  left(200);
  forward(300);
  right(100);
}

void penDown()
{
  servo.write(90);
  Serial.println("Pen Down");
}

void penUp()
{
  servo.write(180);
  Serial.println("Pen Up");
}

void loop()
{
  penUp();
  delay(7000);
 
  penDown();
  drawSquare();

  penUp();
  sstop(1000);
  right(200);
  forward(300);
  left(200);

  //sstop(1000);

  penDown();
  drawZigzag();

  sstop(1000);
}



יום שלישי, 8 בספטמבר 2015

Google Updated Their Logo but Ruined the Google Calendar Updating Favicon

On first of September (2015) a week ago, Google updated their logo, to a new one. They also updated the Favicon, but on the way looks like they have ruined the Google Calendar Updating Favicon.

Before the update, the Google Calendar Favicon was updating and showing today date (day of the month) - Very cool. Now it's just another tab with the same Google favicon logo as any other tab or window. 

Now - Bad:






Before - Good: