פלאנט תוכנה חופשית בישראל (Planet FOSS-IL)

22 May, 2018

Shlomi Noach

MySQL master discovery methods, part 5: Service discovery & Proxy

This is the fifth in a series of posts reviewing methods for MySQL master discovery: the means by which an application connects to the master of a replication tree. Moreover, the means by which, upon master failover, it identifies and connects to the newly promoted master.

These posts are not concerned with the manner by which the replication failure detection and recovery take place. I will share orchestrator specific configuration/advice, and point out where cross DC orchestrator/raft setup plays part in discovery itself, but for the most part any recovery tool such as MHA, replication-manager, severalnines or other, is applicable.

We discuss asynchronous (or semi-synchronous) replication, a classic single-master-multiple-replicas setup. A later post will briefly discuss synchronous replication (Galera/XtraDB Cluster/InnoDB Cluster).

Master discovery via Service discovery and Proxy

Part 4 presented with an anti-pattern setup, where a proxy would infer the identify of the master by drawing conclusions from backend server checks. This led to split brains and undesired scenarios. The problem was the loss of context.

We re-introduce a service discovery component (illustrated in part 3), such that:

In a failover/service discovery/proxy setup, there is clear ownership of duties:

Depending on the technologies used, we can further achieve:

We explain the setup using the following assumptions and scenarios:

A non planned failover illustration #1

Master M has died, the box had a power failure. R gets promoted in its place. Our recovery tool:

The proxy:

The app:

A non planned failover illustration #2

Master M gets network isolated for 10 seconds, during which time we failover. R gets promoted.

Everything is as before.

If the proxy kills existing connections to M, then the fact M is back alive turns meaningless. No one gets through to M. Clients were never aware of its identity anyhow, just as they are unaware of R's identity.

Planned failover illustration

We wish to replace the master, for maintenance reasons. We successfully and gracefully promote R.

Discussion

This is a setup we use at GitHub in production. Our components are:

As mentioned earlier, the apps need not change anything. They connect to a name that is always resolved to proxy boxes. There is never a DNS change.

At the time of failover, the service discovery component must be up and available, to catch the change. Otherwise we do not strictly require it to be up at all times.

For high availability we will have multiple proxies. Each of whom must listen on changes to K/V. Ideally the name (cluster1-writer.example.net in our example) resolves to any available proxy box.

See also:

Sample orchestrator configuration

An orchestrator configuration would look like this:

  "ApplyMySQLPromotionAfterMasterFailover": true,
  "KVClusterMasterPrefix": "mysql/master",
  "ConsulAddress": "127.0.0.1:8500",
  "ZkAddress": "srv-a,srv-b:12181,srv-c",
  "PostMasterFailoverProcesses": [
    “/just/let/me/know about failover on {failureCluster}“,
  ],

In the above:

See orchestrator configuration documentation.

All posts in this series

22 May, 2018 08:45 AM

MySQL master discovery methods, part 1: DNS

This is the first in a series of posts reviewing methods for MySQL master discovery: the means by which an application connects to the master of a replication tree. Moreover, the means by which, upon master failover, it identifies and connects to the newly promoted master.

These posts are not concerned with the manner by which the replication failure detection and recovery take place. I will share orchestrator specific configuration/advice, and point out where cross DC orchestrator/raft setup plays part in discovery itself, but for the most part any recovery tool such as MHA, replication-manager, severalnines or other, is applicable.

We discuss asynchronous (or semi-synchronous) replication, a classic single-master-multiple-replicas setup. A later post will briefly discuss synchronous replication (Galera/XtraDB Cluster/InnoDB Cluster).

Master discovery via DNS

In DNS master discovery applications connect to the master via a name that gets resolved to the master's box. By way of example, apps would target the masters of different clusters by connecting to cluster1-writer.example.net, cluster2-writer.example.net, etc. It is up for the DNS to resolve those names to IPs.

Issues for concern are:

As long as things are stable and going well, discovery via DNS makes sense. Trouble begins when the master fails over. Assume M used to be the master, but got demoted. Assume R used to be a replica, that got promoted and is now effectively the master of the topology.

Our failover solution has promoted R, and now needs to somehow apply the change, such that the apps connect to R instead of M. Some notes:

A non planned failover illustration #1

Master M dies. R gets promoted. Our tool instructs all DNS servers on all DCs to update the IP address.

Say TTL is 60 seconds. Say update to all DNS servers takes 10 seconds. We will have between 10 and 70 seconds until all clients connect to the new master R.

During that time they will continue to attempt connecting to M. Since M is dead, those attempts will fail (thankfully).

A non planned failover illustration #2

Master M gets network isolated for 30 seconds, during which time we failover. R gets promoted. Our tool instructs all DNS servers on all DCs to update the IP address.

Again, assume TTL is 60 seconds. As before, it will take between 10 and 70 seconds for clients to learn of the new IP.

Clients who will require between 40 and 70 seconds to learn of the new IP will, however, hit an unfortunate scenario: the old master M reappears on the grid. Those clients will successfully reconnect to M and issue writes, leading to data loss (writes to M no longer replicate anywhere).

Planned failover illustration

We wish to replace the master, for maintenance reasons. We successfully and gracefully promote R. We need to change DNS records. Since this is a planned failover, we set the old master to read_only=1, or even better, we network isolated it.

And still our clients take 10 to 70 seconds to recognize the new master.

Discussion

The above numbers are just illustrative. Perhaps DNS deployment is quicker than 10 seconds. You should do your own math.

TTL is a compromise which you can tune. Setting lower TTL will mitigate the problem, but will cause more hits on the DNS servers.

For planned takeover we can first deploy a change to the TTL, to, say, 2sec, wait 60sec, then deploy the IP change, then restore TTL to 60.

You may choose to restart apps upon DNS deployment. This emulates apps' awareness of the change.

Sample orchestrator configuration

orchestrator configuration would look like this:

  "ApplyMySQLPromotionAfterMasterFailover": true,
  "PostMasterFailoverProcesses": [
    "/do/what/you/gotta/do to apply dns change for {failureClusterAlias}-writer.example.net to {successorHost}"
  ],  

In the above:

See orchestrator configuration documentation.

All posts in this series

22 May, 2018 08:44 AM

20 May, 2018

Guy Rutenberg

Google Adsense for Wordpres – No Plugin Needed

Adding Google Adsense ads to your your WordPress blog was a tedious task. Either you needed to manually modify your theme, or you had to use a plugin, such as Google’s own Adsense plugin. Even then, placements were limited and handling both mobile and desktop themes was complicated at best. Recently, two things have changed: Google retired the Adsense plugin and introduced Auto Ads.

At first, the situation seemed like it turned for the worse. Without the official plugin, you had to resort into using a third-party plugin or manually placing ads in your theme. But Auto ads made things much simpler. Instead of having to manually place your ads, you can let Google do it for you. It works great on both desktop and mobile theme.

The easiest way to enable Auto ads is using a child theme. First, you need to get the Auto ads ad code. Nextg, in your child theme’s functions.php add the following lines, making sure to replace the javascript snippet with your own one.

// Add Google Adsense
function my_google_adsense_header() {
?>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({
          google_ad_client: "ca-pub-4066984350135216",
          enable_page_level_ads: true
     });
</script>
<?php
}
add_action( 'wp_head', 'my_google_adsense_header');

20 May, 2018 06:11 PM

15 May, 2018

Boris Shtrasman

File Error Sunplus Technology Co., Ltd SPCA1527A/SPCA1528

היום שרפתי מספר שעות בשביל להבין למה חלק מכרטיסי ה SD שלי לא מתפקדים.

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

מדובר על כרטיסי SDXC בגודל 64 ג"ב.

כאשר בדקתי התברר שכברירת מחדל כאשר פירמתי / בניתי מחיצה על ידי patitionmanager ו mkfs.vfat המחיצות דווחו כ FAT16 בגודל של 64 ג"ב או כ FAT32 אבל לא LBA

את זה ניתן לראות ב fdisk -l /dev/mmcblk0

דוגמה אחת שלא עבדה :
Disk /dev/mmcblk0: 60.4 GiB, 64826114048 bytes, 126613504 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa1bfe32e

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 126607359 126605312 60.4G b W95 FAT32

ודוגמה לכרטיס 32 שכן עבד :
Disk /dev/mmcblk0: 29.7 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 62333951 62325760 29.7G c W95 FAT32 (LBA)


לעומת זאת כרטיסים שנוצרו ע"י המצלמות דווחו כ W95 FAT32 (LBA) ועבדו,  ובאמת לאחר ששיניתי את הפורמט של המחיצה ל C המצלמות היו מסוגלות לקרוא ולכתוב מידע.

כאשר הייתי מכניס כרטיסים ב פורמט B המצלמות הציגו שגיאה File Error בניסיון לקרוא, אבל לא היו מתלוננות כשהיה צריך לכתוב (כזכור את הכתיבה עצמה לא עשו על הכרטיס ).


את השינויי עושים כך:
fdisk   /dev/mmcblk0  

Welcome to fdisk (util-linux 2.32).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): t

Welcome to fdisk (util-linux 2.32).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): c
Changed type of partition 'W95 FAT32' to 'W95 FAT32 (LBA)'.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

לאחר ניסוי וטעיה נוסף הבנתי שאם המחיצה מכילה מעל 29 ג"ב של מידע זה גם גורם לאותה התקלה. כלומר מפסיק לבצע כתיבה -  המצלמות היו מחברות שונות (FujiDigital ו Mega ) אבל דווחו כאותו המכשיר ב lsusb.

והערה קטנה מהניסיון המר שלי עם FujiDigital אני ממליץ לא לרכוש את הדגמים שמכילים מטען קנייני (לא USB אלא מטען מיוחד). כאשר המטען נפגם נאלצתי ללכת לאלקטרונאי בשביל שיתקן לי את המטען כי הצלחתי למצוא מטען Fuji במלאי (הוא עולה רק $10 באיביי אבל אני הייתי צריך את זה תוך שלושה ימים).

15 May, 2018 07:24 AM

14 May, 2018

Gabor Szabo

Jerusalem, the capital of Israel

For the full article visit Jerusalem, the capital of Israel

14 May, 2018 06:51 AM

11 May, 2018

Ilan Shavit

בניית אתר אינטרנט בבית – חלק שני (אחרון)

את החלק הראשון סיימתי בכך שהחלטתי לארח את האתר אצלי בבית. אז מה הצעד הבא?

בחירת חומרה לשרת מארח: תופעת מזעור המחשבים עזרה מאוד לבחירה שעשיתי. אני בחרתי להשתמש ב- Raspberry Pi כשרת מארח. הוא לא תופס מקום, אין לו מאווררים ולכן איננו מרעיש. גם צריכת החשמל שלו נמוכה ולא מלווה בתוספת משמעותית לחשבון החשמל

Raspberry Pi

את ה- PI התקנתי במארז פשוט:

המארז של Raspberry Pi

 

מערכת ההפעלה והתקנת התוכנה

בחרתי להתקין את Raspbian Stretch Lite כמערכת ההפעלה שתרוץ על ה- Pi. מדובר במערכת ההפעלה הרשמית של המוצר. היא קלה, מינימליסטית אך עדכנית ותיתמך מס' שנים קדימה.  השלב הבא הוא התקנת LAMP. ראשי התיבות של LAMP:

הוראות להתקנת LAMP ניתן למצוא כאן

בניית האתר:

האתר הקודם שלי התארח ב- Bluehost. העתקתי את כל הקבצים הגולמיים שלו ל- var/www/html/. לאחר מכן יצרתי בסיס נתונים ריק, קישרתי אותו לקובץ הקונפיגורציה של WordPress  ופניתי בדפדפן ל- http://internal-ip-of-pi.
מערכת הניהול הבינה שמדובר בהתקנה חדשה והיא בנתה את כל הטבלאות הרלוונטיות בבסיס הנתונים. מיד לאחר עליית האתר (הבסיסי) ביצעתי שחזור של בסיס הנתונים (מקובץ הגיבוי המקורי של האתר הישן). עכשיו פניה לאתר נראתה הרבה יותר טוב: כל התכנים שוחזרו והאתר נראה טוב.

הגדרת Domain:
כדי לקבל שם Domain חדש פניתי ל- Duckdns. מדובר בשירות חינמי, ללא פרסומות / הצקות אחרות שיש בשירות No-IP. אמנם נאלצתי להיפרד משם הדומיין הישן, אך גוגל יודעת ללמוד מהר מאוד שמדובר באותו האתר וכל החיפושים מופנים תוך ימים לדומיין הנכון. מאחר שאינני מנוי על שירות IP קבוע, התקנתי תוכנת קליינט שדואגת לעדכן את Duckdns בכתובת הנכונה של האתר

הגדרת NAT:

כדי שמשתמשי האינטרנט יוכלו להיכנס לשרת ביצעתי הגדרת Nat ב- router הביתי (ביצעתי port forwarding של פורטים 80 ו- 443 לשרת האינטרנט המקומי).

הגדרת Certificate:

השתמשתי בשירות של certboot כדי לקבל Certificate חינמי (אמנם ל- 3 חודשים, אך השתמשתי בסקריפט שדואג לחידוש אוטומטי שלו). ההתקנה והחידוש של ה- Certificate מאוד פשוטה (הוראות באתר של certboot)

עדכון לינקים:

זהו, כמה שעות של עבודה ויש אתר חי, חינמי, שרת שבשליטה מלאה שלי ובעלויות אחזקה אפסיות. אז נכון שיש חסרון בכך שלא מובטח Uptime גבוה (כמו זה של האתרים היעודיים לנושא), אבל לי זה מספיק 🙂

 

11 May, 2018 09:21 AM

08 May, 2018

Rabin Yasharzadeh

Running Java GUI application in Docker

This is a more specific use case of running GUI application with Docker, the procedure is pretty simple (and most option are common for most GUI application), You mount the UNIX socket for the display server, and define the DISPLAY variable, mount any necessary volumes you need the application to have access to, and if you need any unique network access define this as well.

In my use case, I need to run a GUI application to manage a remote DB in a isolated environment which can only be reached via VPN or ssh tunneling, and so I need the container to have access to a tunnel I create, and this is why I’m using the host network option.

First building the running container

FROM docker.io/java

RUN /usr/sbin/useradd --comment Developer \
                  --home-dir /home/developer \
                  --non-unique --uid 1000 --user-group --system \
                  --shell /bin/bash developer && mkdir -p /home/developer

RUN chown -R developer:developer /home/developer && mkdir -p /opt/app && chown -R developer:developer /opt/app

RUN echo 'developer ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers

USER developer
ENV HOME /home/developer
VOLUME /opt/app

build it with

docker build -t java-app - < /path/to/Dockerfile

and now we can set a small bash script to run the application for us,

#!/bin/bash

CONTAINER='java-app'

docker run -ti --rm \
        -e _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel' \
        -e DISPLAY=$DISPLAY \
        -v /tmp/.X11-unix:/tmp/.X11-unix \
        -v /usr/share/fonts:/usr/share/fonts:ro \
        -v /opt/DbVisualizer:/app \
        -v /home/${USER}/.config/dbvis:/home/developer/.dbvis:z \
        --security-opt label=type:container_runtime_t \
        --network=host \
        "${CONTAINER}" /app/dbvis

In the above example I’m using DbVisualizer as I wanted to test the application without contaminating my system with all the Java runtime requirements.

I also mount my local fonts folder to the container, as I like to use some mono fonts I have in my system, and also exporting few JAVA_OPTIONS to enable anti-aliasing and having a better interaction with my desktop environment.

Resources

08 May, 2018 08:09 AM

07 May, 2018

Meir Kriheli

מצגת ההרצאה NoORM

למרות כותרת ההרצאה הפרובוקטיבית, ההרצאה שלי ב־PyWeb-IL 75 עוסקת במקרים בהם עלינו לעזוב את מחוזות ה-ORM/ODM.

מצגת ההרצאה NoORM זמינה בעמוד הרצאות ומצגות.

07 May, 2018 09:26 PM

05 May, 2018

Hetz Ben Hemo

מה קורה בעולם הכרומבוקים (עדכון)

זה היה ב-4/10/2017. גוגל שחררה לעולם את ה-Pixelbook שלה. ערוצי המדיה השונים קיבלו את המחשב לסקירה וכולם כתבו את אותו דבר: מבחינת חומרה, מדובר במחשב מעולה, מקלדת נוחה, עט טוב, משטח trackpad מעולה ובקיצור – מחשב נוח שעובד מעולה. הבעיה מתחילה עם מערכת ההפעלה – כרום OS שלא נותנת לך הרבה: לגלוש ברשת ולהפעיל אפליקציות מבוססות Web ולהריץ אפליקציות של אנדרואיד, ואת כל זה אתה יכול לעשות במחשבי כרומבוק אחרים בפחות ממחצית המחיר, אז מדוע גוגל מוציאה מחשב כזה ובמחיר כה גבוה?

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

אז מדוע גוגל עשו זאת?

גוגל מודעים לכך שהפעלת אפליקציות Web ואפליקציות אנדרואיד על כרומבוק לא תסייע לה בחדירה לשוק (מעבר לשוק הלימודים בכיתות ה'-י"ב), אבל גוגל כן רוצים לחדור לשוק, ולהיכנס לדוגמא לשוק המפתחים (שם המק כבש מקום מאוד רציני, לכו לכל כנס ותראו במה הקהל משתמש). נכון, אפשר להריץ crouton ולהתקין את הפצת הלינוקס החביבה עליך, אבל לשם כך תצטרך להעביר את הכרומבוק שלך למצב developer mode ובדרך תאבד חצי מההגנות שיש בכרומבוק, שלא לדבר על כך ששילוב אפליקציות לינוקס גרפיות במסך הכרום OS הוא כרגע דבר די גרוע (עם תוסף XIWI). בקיצור אם אני רוצה להריץ כל אפליקציה גרפית עם האצה גרפית, האפשרות היחידה שלי היתה להריץ crouton ולהחליף בין סביבת כרום OS לסביבה מבוססת X.org.

הערה: כל הדברים הבאים לא זמינים לכרומבוקים, אלא רק ל-Pixelbook וגם זה רק בערוץ dev

אז בשלב הראשון, גוגל החליטו להכניס תמיכת קונטיינרים לכרום OS (זה נקרא Crostini), כך שתוכל להריץ את סביבת הלינוקס האהובה עליך (רק שיש שינוי בקונטיינרים וכשאתה מפעיל את הקונטיינר מחדש, הוא לא מתחיל מאפס אלא ממשיך בדיוק מאיפה שיצאת ממנו, כמו VM).

מכאן אנחנו מגיעים לסביבה הגרפית. גוגל לקחה את ה-GTK ויצרה עבורו Theme שמבוסס על Material Design כך שאפליקציות מבוססות GTK יראו כאילו נוצרו עבור אנדרואיד/כרום OS. הנה דוגמא (לחצו להגדלה):

מה עם אפליקציות שמבוססות QT? אל דאגה. להם יש כבר Material, וזה נראה כך (יש בצורה בהירה וגם בצורה כהה, להלן הצורה הבהירה:

הצעד הבא שהמהנדסים בגוגל עובדים עליו ממש בימים אלו הוא האצה גרפית (בכל זאת, אם אני רוצה להריץ VLC, אני מעוניין לקבל את כל הפריימים בקליפ, לא 5 פריימים בשניה), כך שאפליקציות מבוססות לינוקס יוכלו לרוץ במהירות טבעית ולהראות גרפיקה בדיוק באותם ביצועים כאילו הרצת אותם על סביבת Xorg רגילה.

הצעד הבא שגוגל עובדת עליו כרגע נקרא ALTOS (כן, ALT OS) וכשמו כן הוא – לראשונה תוכל באופן רשמי גם להתקין Windows על הכרומבוק שלך, רק שבניגוד למחשבים אחרים, אין יותר BIOS, ואין Management Engine שמלאים חורי אבטחה כרימון. יש את Core boot ועדיין יש את מנגנון העדכונים האוטומטי שמתעדכן ומאפשר לך גם לעשות roll back.

ומה בעתיד? בשלב זה אני יכול רק לנחש שגוגל תכניס את KVM ואת העבודה שאינטל עשתה (ה-GVT) כך שתוכל להפעיל מערכת הפעלה (כמו WIndows) בחלון וירטואלי ולקבל האצה גרפית רצינית (הרבה יותר ממה ש-VirtualBox או VMware workstation מציעים כיום!).

אני מאמין שלקראת אוקטובר, גוגל תצא בהכרזה יחד עם יצרני המחשבים השותפים שלה (כולם בתוכנית השותפות) עם כרומבוקים הכוללים מפרט הרבה יותר משמעותי: 8-32 ג'יגהבייט זכרון, דיסקים SSD בגודל 128-1024 ג'יגהבייט ועם הכרום OS האחרון הכולל שיפורים אלו. חשוב לזכור, שיפורים אלו ירוצו על חלק נכבד מהכרומבוקים הזמינים היום בשוק, רק שלצערי כרומבוק, כמו מק – לא ניתן להרחבה.

לסיכום: לא מעט אנשים מעוניינים לקפוץ למערכת הפעלה אלטרנטיבית וכשהם מתקינים אובונטו או פדורה הם במקרים רבים מתאכזבים – אי אפשר להגדיר כך וכך, זה לא עובד ואין את אפליקציה XYZ שהמשתמש רוצה. נכון, בלא מעט מקרים חיפוש בגוגל וקצת השקעה ואפשר להמשיך לעבוד עם אותה הפצת לינוקס, אבל לא כולם מוכנים להשקיע בכך. כרום OS מצד שני היא מאוד קלה לשימוש (תאמינו לי, חילקתי כרומבוקים למשתמשים שבקושי מצליחים עם Windows ואני לא שומע מהם תלונות) ואני בטוח שגוגל תעשה את הכל כדי להוסיף תמיכה קלה בלינוקס (אני משער שהם גם ירחיבו את החנות שלהם לאפליקציות לינוקס כך שההתקנה והסרה יהיו קלים וקל יהיה למצוא אפליקציות) ובכך סוף סוף שוק הלינוקס בתחום הדסקטופ יוכל רק לגדול ואולי חברות תוכנה אחרות שלא כתבו עד היום אפליקציות למשתמשי לינוקס (היי אדובי) יתחילו להמיר אפליקציות כך שהשוק רק יגדל.

הטקסט המלא

05 May, 2018 08:47 PM

Guy Rutenberg

Google Analytics for WordPress

To set up Google Analytics tracking for WordPress you don’t need any third-party plugin. It can be easily done using a child theme. A child theme, is a code that modifies the current theme in a way that won’t interfere with future upgrades. To enable Google Analytics, start by creating a child theme using the official documentation.

Now, you need to get you Google Analytics tracking code. Over the years the tracking code had a few different versions. You should make sure you are getting the latest tracking code, which currently looks like:

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-380837-9"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-380837-9');
</script>

To get the tracking code, follow the instructions on this page.

Now we add the tracking code to each page using the child theme. In your child theme’s directory, edit the functions.php file and add the following lines. Replace the tracking code with the one you acquired.

// Add Google Analytics tracking
function my_google_analytics_header() {
?>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-380837-9"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-380837-9');
</script>
<?php
}
add_action( 'wp_head', 'my_google_analytics_header');

This adds the tracking code to the <head> of every page.

05 May, 2018 12:58 PM

03 May, 2018

Hetz Ben Hemo

ה-LAB הבא: פרק 11 – החום

אתחיל בתמונה: מה שאתם רואים משמאל לקוח מתוך vSphere (מתוך ה-VCSA) ומציג בעצם את העומס על 2 שרתים שנמצאים כאשכול אצלי (הם ב-DRS כך שהעומס מחולק וב-2 המכונות מצב המעבד נראה כך). כמו שאתם יכולים לראות, העומס על המעבדים הוא קטן מאוד.

ובכל זאת, אם נקשיב למאווררים, נוכל לשמוע שהם לא ממש שקטים (לחצו להאזנה).

האם זה קשור לדגם מסוים של שרת או Brand כלשהו? התשובה היא לא. הבעיה תחזור בכל השרתים בגודל 1U, גם כאשר אין שום עומסים על המערכת. מה הסיבה? החום, כמובן. כך נראית טבלאת החומרה עם הטמפרטורות כרגע (לחצו להגדלה):

כמובן, כל מי שהתעסק או קרא אי פעם על Overclocking או שמבין במעלות חום למעבדים, יבין שהמספרים לא כל כך מדאיגים לגבי מעבד. בכל זאת, הוא יכול לעבוד עד 85 מעלות בלי שום בעיה (אם כי לא מומלץ שיגיע לשם) וכך גם לגבי הזכרון, כך שהמכונות יכולות להמשיך לעבוד ללא בעיה.

מדוע בעצם השרתים מגיעים לחום הזה? נכון, היכן שהם נמצאים אין מזגן, אבל המאווררים אמורים להעיף את החום, לא? אז זהו, שכאן מתחילה הבעיה הגדולה.

בתכנון השרתים.

במחשבי דסקטופ/תחנות עבודה העניין די ברור ופשוט: יש מאוורר ומערכת קירור יעודית למעבד, כנ"ל לגבי הכרטיס הגרפי. שאר המאווררים (תלוי בתצורת ה-Push/Pull שקבענו בעת הבניה) מטרתם בסך הכל להכניס אויר ולהוציא אויר. הם לא יכולים לקרר את המעבד או ה-GPU. אויר בטמפרטורת החדר נכנס, אויר חם יוצא. גם ביום קיץ מהביל, אינכם שומעים מחשב (כל עוד הוא תקין מבחינת מאווררים) "זועק" כמו הדוגמא שהעליתי לעיל.

בשרתים לעומת זאת, אפשר לראות את התכנון הלקוי שאפיין שרתי 1U בעשור האחרון. קשה להאשים את היצרנים – בסופו של דבר, רעש זה הפרמטר האחרון שהם התחשבו בו, ולכן הם החליטו שהפתרון הכי טוב לשרתים הם צלעות על המעבדים, ו-6-7 מאווררים קטנים אך חזקים בחזית השרת (אחרי הכוננים וה-Backplane), כך ששרתי 1U של היצרנים המוכרים מרעישים בברירת המחדל כשחם בחדר, גם כשהמעבדים לא עושים כמעט כלום. אגב, בשרתים מהדור האחרון היצרנים (לפחות HPE) "נזכרו" בחלק מהדגמים להשתמש בפתרונות כמו צינורות נחושת להעברת האויר ובכך השרתים יותר שקטים, רק שרוב האנשים לא ממש חושבים לרכוש שרתים מהדור האחרון ל-LAB הביתה..

הפתרון שכל אחד יציע: סגור את השרתים בחדר עם מזגן. הבעיה היא שגם אם תיישם זאת והמזגן יעבוד באופן רצוף, זה יעלה לך כל שנה כמעט 3000 שקל (כלומר תוספת של 500 שקל לחשבון חשמל דו חודשי):

אז מה? לא לקנות שרתים 1U? אם אתה לא יכול לסגור אותם בחדר ממוזג או לשים אותם במקום שיש בו מיזוג שפועל רצוף (במיוחד בימים כאלו שהחום ביום יכול להגיע ל-36 מעלות ומעלה) – אז יהיה עדיף לוותר על הפיתוי ולחשוב על פתרון אחר.

אם לעומת זאת, אתה רוצה לבנות שרת 1U אז תוכל להשתמש במס' טריקים שיוכלו לעזור לך "להשתיק" את השרת גם ללא צורך במזגן:

בשרתי 2U יש יותר מקום וניתן לבצע כל מיני Hacks כדי להשתיק אותם ועל כך – בפרק הבא.

הטקסט המלא

03 May, 2018 09:38 PM

29 April, 2018

Boris Shtrasman

מחשב נייד

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

לקחנו מספר דוגמאות מהשנים האחרונות (מחשבים שיוצרו לאחר שנת 2015) וכמעט ואין מחשב נייד אחד שבנויי לשרידות ושימוש מעל לשלושה שנים.

לשם הבדיקה בחרנו בדקנו את טווח המחירים של מחשבים עד 3000 דולר והצלחנו למצוא רק שני דגמים שעושים פרצוף של משהוא שמיש.

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

הוא צריך להחזיק לפחות שלוש שנים, הסוללות צריכות להיות בעלות יכולת החלפה של משתמש ללא ביטול אחריות, מחשב נייד צריך להיות בעל יכולת החלפת זיכרון (שידרוג ) ובעלי יכולת החלפת כוננים קשיחים.

הייתי מאוד רוצה לראות אפשרות החלפה עצמית , אבל בעסק אני כבר לא מדבר על right to repair שמדברת על זה שאני כמשתמש רשאי להחליף כונן קשיח מסוג כזה או אחר או להחליף סוג סוללה, אני מדבר על אפשרות החלפה בתשלום אצל מורשה-יצרן שיבצע זאת במקום (ולא לנסוע ליישוב שקר-כל-שהוא ולהשאיר שם את המחשב לשבועיים). שידרוג בחנות (בשונה משדרוג אצל הייצרן) מייצר תלות תיקון אצל המוכר (ואם משהוא נשבר בדרך בהצלחה להתמודד עם המוכר בחנות).

סוללות "חכמות" - אם שמתם לב רוב המחשבים הניידים שנמכרים היום מכילים מה שמכונה סוללה חכמה, סוללה חכמה מכילה מעגל מגן (מתח יתר/ התמחחמות / טעינת יתר וכו') אחד הדברים הטובים ביותר שהמציאו בסוללות האלו הן הוספת פיוזים ותוכנה סגורה (firmware) ששולטת על הטעינה.
המערכת המופלאה הזאת למשל תמנע ממשתמש פשוט להשתמש בסוללה תחליפית (כל היצרנים שבדקתי סיפקו אחריות לסוללה ל 300 מחזורי טעינה או שנה ).

בגלל שכמעט כל המחשבים הניידים שנמכרים היום מכילים סוללה מובנות (פרט אולי ל T480 ו  T470 )  המחשב ככל הנראה יהפוך למעמד לעוגיות ברגע שהסוללה תמות (אורך חיים לסוללה יכול להגיע לשלוש שנים תלוי בסוג הסוללה).

כמות התאים, סוללת המחשב מורכבת מ"תאים" (בדר"כ זה משהוא בסדר גודל של  סוללות 18650 ומעגל שמעלה מתח ), כל סוללה יש לה אורך חיים צורת החיבור שלהן (מקבילי או בתור) משפיע על ההסתברות של המערכת לקרוס (במקרה הזה חיבור מקבילי). הסוללות ברוב המחשבים (ליתיום-יון) חיות תקופה (זה לא יעזור אם המחשב לא השתמש בסוללה כמעט היא תמות לאחר כמות שנים מסויימת ). אם רוכשים מחשב עם מעט סוללות (מהניסיון שלי כל דבר פחות מארבעה תאים) אין ממש לצפות שהסוללה תשרוד תקלה בודדת. רוצים לדעת למה mac book pro נחשב כל כך טוב מבחינת הסוללה ?  יש שם סוללת תשע תאים (זו גם הסיבה שחלק מהמאקים מסוגלים לחיות אפילו 7 שנים לאחר רכישה כי הסוללות הן מסוג ישן וגם יש הרבה מאוד תאים).
מי שרוצה סוללה שתחזיק לו X שעות צריך לעשות חשבון פשוט של כמות הצריכה של המסך+כונן קשיח+כרטיס מסך+מעבד+כרטיס ויפי בשביל לקבל סדר גודל לגמה זה באמת יחזיק.  הכלל שמצאתי סוללה של פחות מ 65 וואט לא מחזיקה מעמד יותר משעה וחצי בעבודה אינטנסיבית.

כמות הזיכרון, אני רואה שיש שלושה רמות של מחשבים ניידים שנמכרים :

מחשבים בעלי זיכרון נדיף שהוא חלק מהמחשב (מגיע כ צ'יפ על לוח האם).
  • מחשבים בעלי זיכרון נדיף של 8 ג"ב (מקסימום)
  • בעלי 16 ג"ב מקסימום (חלק מספקים ציפ בודד של 4 ג"ב או 8 והשאר ברכיב ההרחבה).
  • יותר מ 16 ג"ב (אסוס רוג , Thinkpadים למינהם ומספר dellים).

לדעתי מחשב נייד שמגיע עם פחות מ8 ג"ב הופך מהר מאוד ללא שמיש בעבודה (יש לי 16 ג"ב וזה לא מספיק).

חריצי הרחבה,.

זה אמנם נשמע ישן אבל מחשב נייד עיסקי צריך יותר משני חיבורי USB (ומי שרוכש מחשב נייד עם התקן בודד רק מבקש להוריד מהשימושיות שלו).

אם כבר רוכשים מחשב נייד לשימוש של העסק צריך לוודא שיש יותר משני חיבורים ושהחיבורים הם לפחות אינצ' אחד מהשני (2.54 ס"מ) זה לא נראה ברור אבל כמעט כל הדונגלים שראיתי חרגו מגודל הכניסה וחיבור של דונגל אחד להתקן USB סגר את האפשרות להשתמבש בכניסה הנוספת.

ExpressCard , זהלא משהוא שחושבים עליו הרבה עד שמשתמשים בו , בגלל המבנה של החריץ מספיק לחבר ולשכוח מהכרטיס כי הוא לא בולט יותר מדי מהמחשב עצמו וניתן להשתמש בו בנוסף ל USB.

הגנה מפני נזילות , אם עובדים ברכבת / בבית הקפה זה די חשוב למנוע מנזק כזה.

כרטיס הרשת (RJ45) ,  מי שרוכש מחשב שמגיע עם lan-insert ראה הוזהרת זה לא שורד הרבה חיבורים ( מדבר מניסיון :-( ) ובשונה ממחשב PC לא ממש ניתן להחליף את הרכיב.

מבנה מכני של המחשב הנייד, נכון אני מעריץ של מחשבים ניידים שרידים (Rugged) אבל כלל מצאתי שמחשבים ניידים מצופי אלומיניום שורדים נסיעות ברכבת ומפגשים, מחשבים הבנויים מפלסטיק ו ultrabooks, ראיתי איך מחשב אחד כזה פשוט התעוות מלחץ קטן בפינה. גם ללא מעבר ברכבת אני ממליץ לכל מי שחושב לרכוש מחשב נייד דק שיבדוק על הכפתורים במקומות שונים במקלדת ויראה אם זה מתאים לו לי אישית הפריע שאחד המחשב היה מתעקם כשוסגרים את המסך.

אחריות, זה אחד הדברים החשובים במחשבים ניידים לדעתי, אל תמסכו על מה שנאמר לכם בעל פה בחנות,

תתקשרו לספק השירות אם מספקים אחריות במקום העסק (אולי תגלו שלא מגיעים לשכונה שלכם כי זה מסוכן שם) או אם ניתן לקבל אחריות על ידי אחד העובדים ולא מי שרכש את המחשב נייד ואם צריך לעשות החלפת בעלות לעובד אם הוא צריך לקבל תמיכה במחשב (קרה לי בחברת dell ) ואם האחריות של Accidental damage תקפה באזור (קרה באסוס שלא היו מוכנים לתמוך כי המחשב לא נמצא פיזית בארה"ב או קנדה)

מודם סלולארי או eSIM, אחד הדברים הכי מגניבים שראיתי היה המודם המובנה (שחבוי במקום מסתורי שהסים לא יעוף), הדבר הזה נותן חיים אחרים למחשב נייד שגם מסוגל לקבל חיבור ספרתי.

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

לסיכום, מחשב נייד לעסק ? סוללה חיצונית , זיכרון לא מולחם וחיבור LAN והתקני exrpess card.

פיטרצ'רים מגניבים שהייתי רוצה לראות , אבל הם לא תמיד שם ?
רכיב SDR
קורא כרטיסים חכמים (smart card).
קורא MMCים.
רכיב NFC.

29 April, 2018 11:43 AM

27 April, 2018

Lev Meirovitch

Say hello to the new math!

Yesterday at my company, some of my department stopped work for a day to participate in an “enrichment” course. We are a large company that can afford such things, and it can be interesting and useful. We even have the facilities for lectures right at the office (usually used for instructing new hires) so it […]

27 April, 2018 08:34 AM

25 April, 2018

Arie Skliarouk

GRUB-based multiple iso booting flash drive

With huge USB flash drives of today it is sad that one can't easily put several bootable ISO images on it and have nice on-boot selection menu.

GRUB to the rescue!

Historically GRUB is being used for hard disks and syslinux for floppies and flash drives. But nothing prevents using GRUB for flash drives as well. Here are instructions for creating bootable GRUB-based USB flash drive (disk on key):

  1. Create vfat partition. For big drives you must use fat32 format.
  2. Unpack the http://skliarie.meshanet.com/skliarie_blog/boot.tar.gz onto it. It will create single directory boot on the drive.
  3. Customize boot/grub/grub.cfg file, put iso images accordingly
  4. On linux box, put bootable MBR onto the DOK (for example on /dev/sdf):
    1. mount /dev/sdf /mnt/dok
    2. grub-install --force --no-floppy --root-directory=/mnt/dok /dev/sdf
    3. umount /mnt/dok 

    Caveats:

    The ISO image must support GRUB-based booting. Specifically it must be smart enough to locate ISO image on the DOK using parameters specified in grub.cfg file.

    Latest Ubuntu and Debian based ISO images are known to work.

    Thanks to Jonathan Vollebregt there is a way to boot knoppix as well. You will need custom initrd, with your flash drive specific tuning. I built one for mine: knoppix_minirt.gz, you are free to take and modify it according to your DOK and filesystem parameters. Important commands here are:
    1. Unpack the initrd
      gzip -dc /mnt/dok/boot/knoppix/minirt_ska.gz | cpio -i
    2. Modify the init file (put sector numbers that are correct for your DOK)
    3. Compress back the initrd
      find ./ | cpio -H newc -o | gzip -9 -c > /mnt/dok/boot/knoppix/minirt_ska.gz
    Please send me GRUB stanzas for other ISO images and I will put them into the grub.cfg file.

    25 April, 2018 08:21 AM

    adaptec CLI management tool

    Recently I had to install adaptec CLI management tool on an ubuntu 8.10 amd64 server. Despite the fact that aacraid driver is present in kernel, it took me a lot of time to find the management tools that allow to see the RAID status and manipulate it from command line. There are several names for the tools: afacli, aaccli, afaapps, afa-apps-snmp, arcconf, hrconf... oh my!
    After I found the necessary tools (64bit arch), I packaged them into a tiny deb package adaptec-utils_0.0.1_amd64.deb, which can be downloaded from here: DELETED_AS_REDISTRIBUTION OF BINARIES_IS_PROHIBITED_BY_ADAPTEC

    Also, I wrote a simple monitoring script (included in the deb package) that checks the state of the Adaptec RAID system and sends out an email if any of the published indicators is wrong (battery, failed disks, etc). The script can be downloaded from here:
    http://skliarie.meshanet.com/skliarie_blog/adaptec-utils/adaptec_check.sh

    Note that the script requires proprietary binary files to be installed. See the beginning of the script for the details.

    25 April, 2018 08:20 AM

    20 April, 2018

    Ilan Shavit

    בניית אתר אינטרנט בבית – חלק ראשון

    מה היו השיקולים שהנחו אותי לחזור לאופצית השרת הביתי ולא להמשיך ולהיעזר באחת מחברות האירוח בארץ ובעולם? המאמר מורכב משני חלקים: בחלק ראשון אסביר את השיקולים לבחירת שרת מארח לאתר, בחלק השני (שבוע הבא) אסביר כיצד בניתי את האתר הנוכחי (שרת, תוכנות ועוד..)

    אבצע תחילה השוואה בין שלוש חלופות אפשריות:

    שרת ביתי (מחובר לרשת הביתית):

    יתרונות:

    חסרונות:

    שרת מארח, בתשלום, ברשת:

    יתרונות:

    חסרונות:


    שרת מארח חינמי ברשת:

    יתרונות: כמו בשרת מארח בתשלום

    חסרונות:

    מאחר שנפח התעבורה באתר שלי הוא נמוך יחסית, ומאחר ששרת ביתי מאפשר לי גמישות ויכולת לימוד מכסימלית בחרתי לחזור לאופצית השרת הביתי (אותו בניתי על Raspberry Pi).

     

    20 April, 2018 05:22 AM

    19 April, 2018

    Gabor Szabo

    Leadership

    Here you can find a bunch of links about leadership that were tweeted by Patrick Kua and collected by yours truly. I hope some of these will help you.

    For the full article visit Leadership

    19 April, 2018 04:49 PM

    17 April, 2018

    Diego Iastrubni

    כרומבוק – מחשב מיותר

    קניתי כרומבוק. חשבתי שיהיה מגניב – בגדול. לא. זה רק מחשב שמריך כרום (הדפדפן) וזהו. המחשב הספציפי הזה אמור אמור להפעיל יישומים של אנדראוריד, אבל זה בתיאוריה. פרקטית – אין.

    המחשב – למה שהוא מיועד – הוא מהיר. ממצב שהוא מכובה, עד שאפשר לגלוש הוא שניות בודדות. כמו שכרום עולה במחשב שולחני ממוצע. הם העיפו את מקשי הפונקציות – בומקומם יש מקשי מולטמדיה (וזה לא חסר לי בכלל). במקום ה־capslock יש מקש מפעיל את משגר ה”ישומים”. החלפת משתמשים במחשב מיידית (פחות מחצי שנייה).

    מבחינת חומרה. המסך מאוד בהיר, לא בעל רזולוציה טובה למדי… אבל הצבעים יחסית לא רעים, הרמקולים לא רעים (אני משווה אותם למחשב ThinkPad – אבל יותר מבריק וחזק). הסוללה מחזיקה בין (לפי הדיווח של מערכת ההפעלה) בין 9-13 שעות. המקלדת סבירה מינוס, הלחיצה היא יותר טובה מאשר במחשב HP שהיה לי פעם, אבל לא בגודל אמיתי (נניח 75%). אין מסך מגע, וה-trackpad נוראי וקטן.

    המערכת הפעלה… נוראית. זה רק דפדפן. מחשבים מעטים כוללים תמיכה ביישומי אנדרואיד (אם אתם קונים מחשב כזה – תוודאו טוב טוב שיש לכם תמיכה). העדכונים מגיעים תמיד מגוגל, וזה טוב – כי אז ייצרן קיקיוני לא משנה את מערכת ההפעלה. יש הגנות מכל מקום – המחשב מגיע ללא root ועם secure boot. אין אפשרות לעשות כלום למעט גלישה.

    זה לא מחשב – זה דפדפן גדול. כן – אפשר להתקין עליו לינוקס – אבל זה לפוסט אחר.

    הטקסט המלא

    17 April, 2018 03:39 PM

    16 April, 2018

    Hamakor

    כנסים, כנסים, ופעילויות נוספות

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

    מלבד הפעילות השוטפת, אנו לוקחים חלק בארגון של מספר כנסים וארועים העוסקים בנושאי קוד פתוח:

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

    מלבד הארועים אותם אנו מארגנים, אנו לוקחים חלק גם בארועים נוספים העוסקים בקוד פתוח. כך למשל, נשתתף כמרצים בכנס Open Source World של אנשים ומחשבים, שיתקיים ב-30 באפריל.

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

    16 April, 2018 05:47 PM

    10 April, 2018

    Ilya Sher

    List of JSON tools for command line

    I am considering making a JSON parsing and generating command line tool. Started with looking around a bit. Below is a list of existing JSON command line tools. Numbers are [GitHub stars] at the time of writing this post. (… contributed by …) means that this post was updated with the item.

    Honorable mentions

     


    If you feel that some project is missing from the list, please let me know in comments below.

    10 April, 2018 06:22 AM

    08 April, 2018

    Ilya Sher

    Unix safety tip: use rmdir

    About to remove an empty directory? Use rmdir, not rm -rfrmdir will not remove the directory if it’s not empty. Make it a habit. Thank me once every 2 to 20 years when you don’t remove your stuff by accident.

    08 April, 2018 06:46 PM

    28 March, 2018

    Lior Kaplan

    Document Freedom Day

    לאחרונה כתב Benjamin Netanyahu – בנימין נתניהו : "הממשלה אישרה היום את הצעתי להנגיש לציבור את כלל החומרים הארכיוניים בעניין קליטת העליות הגדולות בראשית שנות המדינה. כל המסמכים יהיו נגישים לחלוטין לכל אדם בישראל ובעולם. כפי שעשינו בפרשת ילדי תימן כך נעשה גם פה."

    אך בעוד מסמכי נייר אפשר לקרוא תמיד (למעט ענייני נזקים פיזיים), את המסמכים הדיגיטלים לא בטוח שנוכל לקרוא. יום חופש המסמכים מדבר בדיוק על החלק של "נגישים לחלוטין לכל אדם". האם נוכל לקרוא את המסמכים שהממשלה יצרה לפני 20 שנה עם Microsoft Word 6? מה לגבי מסמכים שנכתבו בשנות הש-80 וה-90 המוקדמות? (לדוגמה: מסמכי העלייה הרוסית, תיעוד שקשור למלחמת המפרץ). הבעיות כמובן גם קיימות בגרסאות מאוחרות יותר של התוכנה.

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

    לשמחתי, גם ב-Microsoft Word יש בשנים האחרונות תמיכה ב-ODF, כך שנשאר בעיקר להגדיר את הפורמט כמחייב לכל הרשויות. האם Israel State Archives – ארכיון המדינה ירים את הכפפה?

    (ה-28 במרץ הוא יום חופש המסמכים #OpenStandard #ODF )

    28 March, 2018 07:27 PM

    19 March, 2018

    Tom Bigelajzen

    Font Progress Update

    The Ubuntu Font Hebrew v0.8 Design PrototypeThere was some progress made this week, especially with fine tuning the letters and revising those letters I’m not so sure about.
    The one letter I’m struggling with is Aleph (א), I can’t seem to find the right balance.

    I got a lot of feedback and many good tips, thank you everybody 🙂
    I’m doing my best to take them all into account.

    I was trying to add some Hebrew glyphs to a font file, but the free font creation programs I tried (FontForge and the Demo of TypeTool) are not so friendly, it will take some more time to do.

    Links to v0.8:
    PDF file
    Illustrator CS4 File

    19 March, 2018 08:15 AM

    Ubuntu Font Hebrew Subset now has an issue on Launchpad

    The Ubuntu Font Hebrew v0.8 Design PrototypeI opened an issue on launchpad and it was added to the Ubuntu Font Family Wishlist queue.

    As an added bonus Mark Shuttleworth himself gave his blessing to this design effort (!)
    It was a fun mail to start the day with 🙂

    I want to quote one thing he wrote:

    It *would* be useful if you could start building up a Hebrew community that can provide early and accurate feedback to DM when they start the Hebrew design process.

    And later, Paul Sladen wrote:

    developing a typeface takes a very long-time (months and months), and although
    work on Hebrew won’t be incorporated until the Ubuntu 11.04 development cycle,
    it is very useful to start working on it now!

    So, I really want to start working on it seriously (too bad I didn’t start this before August Penguin…)
    This week I guess I’ll finish the initial design with the good tips I got from Paul Sladen and from Maxim Ioresh, but this is only the beginning:

    A real OpenType font must be created and refined, people need to test it, to find where it breaks.
    And there are more variants –  we have to do the Bold font, the Italic and Bold Italic, and by the time these will be finished there most likely be some Condensed variants too… so I need designers, typographers and testers to pitch in, we have a bit more than 6 months, it’s enough, but not a lot of time for a community project.

    Original post: http://tombigel.com/2010/08/26/hebrew-for-the-ubuntu-font/

    This is fun! I love Open Source.

    19 March, 2018 08:15 AM

    18 March, 2018

    Hamakor

    הודעה על אסיפה כללית של עמותת המקור – 28.3.2018

    בתאריך 28.3.2018 בשעה 19:00 תכונס אסיפה כללית רגילה של עמותת המקור – עמותה ישראלית לתוכנה חופשית ולקוד – מקור פתוח (ע"ר). אסיפת העמותה תתכנס במשרדי חברת מטיפיק, במגדל משה אביב קומה 51, דרך ז'בוטינסקי 7 רמת גן.

    על סדר היום:

    1. אישור דו"ח כספי ומילולי לשנת 2017.
    2. הצגת דו"ח ועדת ביקורת לשנת 2017.
    3. אם יהיה בכך צורך — בחירת מוסדות חדשים לעמותה. המוסדות הנוכחיים (ועד וועדת ביקורת) נבחרו, כזכור, רק לפני כחצי שנה, ואיש מממלאי התפקידים לא הודיע על כוונה להפסיק את תפקידו. עם זאת, אם יש מישהו שרוצה להצטרף למוסדות, האסיפה היא הזדמנות לעשות זאת, כך שאם מישהו ירצה להצטרף, נערוך בחירות כדי לאשר או לדחות את הצטרפותו.

    במידה ובמועד שנקבע לא יהיה קוורום של חברי האסיפה (רבע מכלל חברי העמותה), האסיפה תדחה בשעה ותתקיים באותו מקום, בכל הרכב שהוא.
    חברים שלא יכולים להשתתף במועד שנקבע, רשאים להפקיד יפויי כוח חתום בידי חבר עמותה אחר, בו הם מפרטים כיצד בכוונתם להצביע בסוגיות שעל סדר היום.

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

    במידה ואתם לא חברים ורוצים להצטרף, נשמח מאוד — אנא פנו לועד ובקשו זאת, כפי שמתואר בעמוד ההצטרפות לעמותה‎.

    18 March, 2018 06:37 PM

    06 March, 2018

    Amir Aharoni

    The Curious Problem of Belarusian and Igbo in Twitter and Bing Translation

    Twitter sometimes offers machine translation for tweets that are not written in the language that I chose in my preferences. Usually I have Hebrew chosen, but for writing this post I temporarily switched to English.

    Here’s an example where it works pretty well. I see a tweet written in French, and a little “Translate from French” link:

    Emmanuel Macron on Twitter.png

    The translation is not perfect English, but it’s good enough; I never expect machine translation to have perfect grammar, vocabulary, and word order.

    Now, out of curiosity I happen to follow a lot of people and organizations who tweet in the Belarusian language. It’s the official language of the country of Belarus, and it’s very closely related to Russian and Ukrainian. All three languages have similar grammar and share a lot of basic vocabulary, and all are written in the Cyrillic alphabet. However, the actual spelling rules are very different in each of them, and they use slightly different variants of Cyrillic: only Russian uses the letter ⟨ъ⟩; only Belarusian uses ⟨ў⟩; only Ukrainian uses ⟨є⟩.

    Despite this, Bing gets totally confused when it sees tweets in the Belarusian language. Here’s an example form the Euroradio account:

    Еўрарадыё   euroradio    Twitter double.pngBoth tweets are written in Belarusian. Both of them have the letter ⟨ў⟩, which is used only in Belarusian, and never in Ukrainian and Russian. The letter ⟨ў⟩ is also used in Uzbek, but Uzbek never uses the letter ⟨і⟩. If a text uses both ⟨ў⟩ and ⟨і⟩, you can be certain that it’s written in Belarusian.

    And yet, Twitter’s machine translation suggests to translate the top tweet from Ukrainian, and the bottom one from Russian!

    An even stranger thing happens when you actually try to translate it:

    Еўрарадыё   euroradio    Twitter single Russian.pngNotice two weird things here:

    1. After clicking, “Ukrainian” turned into “Russian”!
    2. Since the text is actually written in Belarusian, trying to translate it as if it was Russian is futile. The actual output is mostly a transliteration of the Belarusian text, and it’s completely useless. You can notice how the letter ⟨ў⟩ cannot be transliterated.

    Something similar happens with the Igbo language, spoken by more than 20 million people in Nigeria and other places in Western Africa:

     4  Tweets with replies by Ntụ Agbasa   blossomozurumba    Twitter.png

    This is written in Igbo by Blossom Ozurumba, a Nigerian Wikipedia editor, whom I have the pleasure of knowing in real life. Twitter identifies this as Vietnamese—a language of South-East Asia.

    The reason for this might be that both Vietnamese and Igbo happen to be written in the Latin alphabet with addition of diacritical marks, one of the most common of which is the dot below, such as in the words ibụọla in this Igbo tweet, and the word chọn lọc in Vietnamese. However, other than this incidental and superficial similarity, the languages are completely unrelated. Identifying that a text is written in a certain language only by this feature is really not great.

    If I paste the text of the tweet, “Nwoke ọma, ibụọla chi?”, into translate.bing.com, it is auto-identified as Italian, probably because it includes the word chi, and a word that is written identically happens to be very common in Italian. Of course, Bing fails to translate everything else in the Tweet, but this does show a curious thing: Even though the same translation engine is used on both sites, the language of the same text is identified differently.

    How could this be resolved?

    Neither Belarusian nor Igbo languages are supported by Bing. If Bing is the only machine translation engine that Twitter can use, it would be better to just skip it completely and not to offer any translation, than to offer this strange and meaningless thing. Of course, Bing could start supporting Belarusian; it has a smaller online presence than Russian and Ukrainian, but their grammar is so similar, that it shouldn’t be that hard. But what to do until that happens?

    In Wikipedia’s Content Translation, we don’t give exclusivity to any machine translation backend, and we provide whatever we can, legally and technically. At the moment we have Apertium, Yandex, and YouDao, in languages that support them, and we may connect to more machine translation services in the future. In theory, Twitter could do the same and use another machine translation service that does support the Belarusian language, such as Yandex, Google, or Apertium, which started supporting Belarusian recently. This may be more a matter of legal and business decisions than a matter of engineering.

    Another thing for Twitter to try is to let users specify in which languages do they write. Currently, Twitter’s preferences only allow selecting one language, and that is the language in which Twitter’s own user interface will appear. It could also let the user say explicitly in which languages do they write. This would make language identification easier for machine translation engines. It would also make some business sense, because it would be useful for researchers and marketers. Of course, it must not be mandatory, because people may want to avoid providing too much identifying information.

    If Twitter or Bing Translation were free software projects with a public bug tracking system, I’d post this as a bug report. Given that they aren’t, I can only hope that somebody from Twitter or Microsoft will read it and fix these issues some day. Machine translation can be useful, and in fact Bing often surprises me with the quality of its translation, but it has silly bugs, too.

    06 March, 2018 07:39 PM

    05 March, 2018

    Lior Kaplan

    Running for OSI board

    After serving in the board of a few technological Israeli associations, I decided to run as an individual candidate in the OSI board elections which starts today. Hoping to add representation outside of North America and Europe. While my main interest is the licensing work, another goal I wish to achieve is to make OSI more relevant for Open Source people on a daily basis, making it more central for communities.

    This year there are 12 candidates from 2 individual seats and 5 candidate for 2 affiliate seats (full list at OSI elections wiki page). Wish me luck (:

    Full text

    05 March, 2018 09:37 AM

    25 February, 2018

    Amir Aharoni

    Wikimedia Strategy Phase 1: What Does It Mean for Me and (Maybe) for Language Diversity in Wikipedia

    The Wikimedia Foundation is leading a process to write a strategy for the Wikimedia movement. This process takes over a year. A few months ago, the conclusion of Phase 1 of this process was published: The strategic direction.

    Some central concepts in this document are “knowledge as a service” and “knowledge equity”. Some people said that it’s too vague and high-level, and that it can be interpreted in a lot of ways. This is true, especially in a movement that is as culturally and linguistically diverse as Wikimedia. Perhaps this is intentional, so that people will be able to interpret this in any way that feels right for them.

    Recently I was filling a registration form for Wikimedia Conference 2018. This form was very long, and it asked what do the concepts that appear in the strategic direction document mean to me. My answers were longish, and since there’s nothing secret about them, and they may (or may not) interest some people, I copied them from the form to this blog post. I edited them slightly for publishing here so that the context will be clearer, but the essence is the same as what I submitted.

    Knowledge as a service

    The knowledge that Wikimedia projects already contain is available through all common channels of communication: in addition to being available on the website, it must be findable on all search engines in all languages and countries, browsable on devices of all operating systems whether open or not, browsable as much as possible through social networks and chat applications, embeddable in other apps, etc.

    It must be easy for all people, whether they are knowledgeable about computers or not, to contribute their knowledge to Wikimedia sites, and humanity in general should know that Wikimedia sites is the place where they contribute their knowledge and not only learn it.

    Knowledge equity

    What it means to me is:

    • That all people, of all ages and all kinds of identities, of all countries, who speak all languages, must be able to read and write in their language.
    • That we will fight whenever it’s reasonable against censorship and against all kinds of chilling effects that deter potential contributors or threaten their well-being.
    • That we remain independent of commercial and political entities by strictly refusing to carry political and commercial advertising and to accept unreasonable limited grants.
    • That all the software that is useful for reading and writing on our sites must be easily usable in all languages, whether it’s core software, extensions, templates, or gadgets.
    • That we don’t depend on any non-Free or otherwise unethical software, even if it appears to make consuming and contributing knowledge easier.
    • That we set a goal of having good coverage for core content in all languages and actively pursue it and not leave it only to the community’s “invisible hand”.
    • That we set a goal that the most popular Wikimedia projects in each country are in that country’s most spoken languages and not in a foreign language.

    What kind of conditions do you need to realize these activities?

    Describe what you think would be good conditions for you to move forward in this direction. Think of conditions in the broadest sense; e.g., capacity, skills, partnerships, clarification, structures and processes, room for development or experimentation, financial resources, people, access to other means of support etc.

    We need to partner with academic institutions that work on topics that are not currently covered by our projects because of systemic bias.

    We need to partner more with organizations that have expertise in developing minorized and under-resourced languages, working on the ground in the countries where these languages are spoken.

    We need easy access to data about the social and political situations in poorer countries, and if such data doesn’t exist at all, we need to lead research that creates such data ourselves.

    We need a new attitude to developing software for our sites: we need to understand what do our communities actually do on the sites with gadgets and templates rather than just developing new extensions that may be shiny, but are hard to integrate into the sites, each of which is heavily customized.

    What I wrote in that form is a good description of my current attitude to what the priorities of Wikimedia movement should be, at least in terms of ideology and values. You can clearly see my interests: remembering that language support is important and that most people don’t speak English; remembering that we are not supposed to be an American non-profit organization, but an international movement that happens to have an office in the U.S.; remembering that we are also a part of the Free Software movement; remembering that good software engineering are important, even if engineering alone can’t solve all the problems.

    For people who have doubts: This post represents my own opinions, and doesn’t express the opinion of the Wikimedia Foundation or any of its employees or managers.

    25 February, 2018 06:21 PM

    Ira Abramov

    עוד פרויקט שלא אגיע אליו: עוזר חכם ובית חכם

    האם אתם רוצים מערכת כזו? התשובה מורכבת.

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

    לא, זה לא נחמד שכל מילה שנאמרת בבית מוקלטת ונשלחת לשרתים של גוגל או אמאזון (אלקסה) או מוקרוסופט (קורטנה) וכולי. זה גם לא חכם להשקיע בציוד שמייקר את החיים בבית והופך אותך תלוי ביצרן או משהו. למשל זו הסיבה שלא אקנה נורת פיליפס HUE בעשרות דולרים כי כשהיא נשרפת אני צריך למעשה לקנות נורה ומחשב קטן. אני מעדיף לחבר ממסרי SONOFF ולשלוט בהם בעצמי. כמו כן, אני לא אחבר בקרוב את מנעול הדלת למערכת ממוחשבת. אני לא ממליץ לסמוך עליה בנקודות אבטחה, אבל אפשר להסתפק במגע בנקודות הנוחיות.

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

    1. יש מיקרופון והמחשב שמאזין לו, מנסה לבטל רעשי רקע ולהתמקד במה שעלול להיות דיבור.
    2. אח"כ תוכנה אחרת שבודקת אם זה אכן דיבור ומתרגמת אותו לטקסט. זה אולי הרכיב הכי מתוחכם במערכת ונחמד שיש אופציה או שתיים ברישיון חופשי (אבל כרגע אני די בטוח שזה עובד רק באנגלית, ולא יעבוד בעברית בקרוב. מקווה שלא תהיה בעיה עם זיהוי מבטא לא ילידי :)
    3. אחרי שיש לנו טקסט אפשר לפענח ממנו את הפקודה גם אם לא נאמרה בצורה תקנית אחת. כלומר "התראה עוד שעה" או "בבקשה כוון לי תזכורת בעוד שעה מעכשיו, תודה" הם שני משפטים שונים למדי אבל המחשב צריך לזהות את שניהם. הרכיב הזה והרכיב הקודם הם הרכיבים שקורים בענן של גוגל או אמאזון או מיקרוסופט שאותם אני רוצה להביא אל תוך הבית.
    4. בשלב הזה אפשר להפעיל מיני תוכנות וסקריפטים (מייקרופט למשל קוראים לזה "כשרונות" והקהילה פיתחה כבר כ-140 כאלו), כאן מגיעה ההתממשקות עם MQTT ורכיבי חומרת Sonoff השונים, או גישה לרשת כדי לדבר עם חשבון הגוגל שלכן כדי לבדוק איש קשר או לדחוף ארוע ליומן, וכיוצא באלו.
    5. לבסוף לאשר או להחזיר משוב למשתמש בצורת רכיב אחר שהופך תשובת טקסט לדיבור, מסנטזים כאלו יש הרבה בשוק – היה לי אפילו על אפפל ][ עם 64K זכרון, לצערי האיכות התפתחה מעט מאוד מאז בתוכנה פתוחה. מקווה שישתפר בעתיד.

    התכוונתי (וויתרתי בגלל סיבות) לשחק עם עוזרים חכמים פתוחים. נתקלתי באינדיגוגו של מייקרופט (גיבוי עסקי לא יכול להזיק). כמו כן גיליתי שיש פרויקט בשם Jasper שכבר לא זז שנה ועוד אחת מליסה, כנראה גם אחרים.

    מה דרוש? כרגע סבלנות וחוש טכני. כמו שלא לכולם מתאים לפרמט את האנדרואיד ולהתקין LineageOS, או ללמוד לקנפג קודי, וכולי. זה פרויקט לסקרנים, עקשנים, שאין להם בעיה לבנות ולהלחים כמה דברים לבד. הנה המידע שאספתי והפרמטרים שהייתי בוחר להתחיל איתם אם הייתי הולך על הפרויקט.

    קריאה לעומק של תשובות מייקרופט לתומכי הקיקסטארטר ושל תנאי הפרטיות שלהם שכנעה אותי שהם לא עומדים בדרישות הפרטיות שלי בתצורה הנוכחית שלהם. בגדול הם "מתכננים" גרסא מקומית של רכיב ה־STT (דיבור לטקסט) שתרוץ על מחשב לינוקס או חלונות אבל זה עוד לא שם, ובתלות ברכיב שיבחרו, יכול להיות שזה ידרוש GPU חזק כדי לבצע את הניתוח בצורה מהירה ככל הניתן. מנתח ה־STT הנוכחי שלהם לא מספיק טוב והחדש שיכנס בסוף החודש צריך הרבה יותר כוח מחשוב. אז  כדאי לחכות. בעתיד זו תהיה אפליקציה או תמונת Docker מוכנה שנוכל להריץ על שרת PC כעזר לרספברי בלי להסתמך על שרתי החברה.

    כאמור, בפוסט המקורי כתבתי שאני בודק את המערכת לביתי אבל הוטל ווטו משפחתי. אני עדיין אנסה לראות איך זה להתקין עוזר AI שכזה על הלאפטופ או הדסקטופ, ואוסיף דיווחים כשיהיו.

    25 February, 2018 03:50 PM

    31 January, 2018

    Rabin Yasharzadeh

    Ansible and ControlMaster file naming

    This is a short story of how Ansible and SSH (using the default ControlMaster path format) bite me.

    Lets take this network layout for example, where we have the same IP behind different machines.

    +              +           +            +
                                                         |  dc1+jumper  +-----^-----+  dc1+db    |
                                                  +------>  8.8.8.8     |           |  10.0.0.1  |
                                                  |      |              |           |            |
    +----------+          +-------------+         |      +--------------+           +------------+
    |          |          |             |         |
    |  Ansible +---------->  mgmt+host  +---------+
    |  Client  |          |             |         |      +--------------+           +------------+
    |          |          +-------------+         |      |              +-----^-----+            |
    +----------+                                  |      |  dc2+jumper  |           |  dc2+db    |
                                                  +------>  8.8.4.4     |           |  10.0.0.1  |
                                                         |              |           |            |
                                                         +--------------+           +------------+

    And we have this lines in our ssh config file,

    Host dc1-jumper
      HostName dc1-jumper
      User root
      Port 22
      UserKnownHostsFile /dev/null
      StrictHostKeyChecking no
    
    Host dc2-jumper
      HostName dc2-jumper
      User root
      Port 22
      UserKnownHostsFile /dev/null
      StrictHostKeyChecking no
    
    Host dc1-db
      HostName 10.0.0.2
      User root
      Port 22
      UserKnownHostsFile /dev/null
      StrictHostKeyChecking no
      ProxyCommand ssh dc1-jumper -W %h:%p
    
    Host dc2-db
      HostName 10.0.0.2
      User root
      Port 22
      UserKnownHostsFile /dev/null
      StrictHostKeyChecking no
      ProxyCommand ssh dc1-jumper -W %h:%p
    
    Host *
       ControlMaster auto
       ControlPath ~/.ssh/master-socket/%r@%h:%p
       ControlPersist 6s

    Now the problem is that

    dc1-db
    and
    dc2-db
    share the same IP, and the master socket file which is created (based on the above placeholders %r@%h:%p) will use the same file name, so if you try to connect to
    dc1-db
    right after you have connected to
    dc2-db
    , guess where you well end up ?

    $ ll ~/.ssh/master-socket
    0 srw-------. 1  Jan 31 17:42 root@10.0.0.2:22
    0 srw-------. 1  Jan 31 17:41 root@dc1-jumper:22
    0 srw-------. 1  Jan 31 17:41 root@dc2-jumper:22

    I only notice this after I saw my Ansible playbook is changing the same file over and over, the file was a simple yum repo definition, which should not change after the first setup, but this repo template had a ansible fact as place holder which was the distro version (rhel6/rhel7), and based on which connection was establish first (dc1-db vs dc2-db) this fact was set based on the first machine which was connected. So each run one of the machine will register a change.

    After looking into ssh documentation I found out there are other place holders I can use. There is %C which didn’t help in my case, as it seem to generate the same string, but using %n did the trick as it used the connection name and not the

    Hostname
    name/ip for the socket file.

    ControlPath ~/.ssh/master-socket/%r-%n-%p
    
    $ ll ~/.ssh/master-socket
    0 srw-------. 1  Jan 31 17:42 root-dc1-db-22
    0 srw-------. 1  Jan 31 17:42 root-dc2-db-22
    0 srw-------. 1  Jan 31 17:41 root-dc1-jumper-22
    0 srw-------. 1  Jan 31 17:41 root-dc2-jumper-22

     

    31 January, 2018 04:48 PM

    21 January, 2018

    Kaplan Open Source Consulting

    תמיכה ב-PostgreSQL

    אנחנו שמחים להכריז על שירותי ייעוץ ותמיכה ב-PostgreSQL, אחד ממסדי הנתונים בקוד פתוח המועדפים על ארגונים. אנו תומכים בהתקנות על כל הפצות הלינוקס הגדולות, אצל הלקוח או בענן, כולל פתרונות PostgreSQL-as-a-service. בנוסף, אנחנו גם תומכים ב-PostGIS, תוספת עבור מידע מרחבי בתוך PostgreSQL. השירות שלנו מגובה ע"י מרכז הכשירות של credativ, אחת מחברות המובילות בתחום ה-PostgreSQL.

    בנוסף לשירות העסקי, אנחנו שמחים להצטרף לקהילת ה-PostgreSQL הישראלית, על ידי מתן חסות לכנס PGDay 2018 שיתקיים ב-19.3.2018 (פרטים נוספים באתר http://pgday.org.il )

    21 January, 2018 10:37 AM

    16 January, 2018

    Artyom Beilis

    CppCMS עובר מ-LGPLv3 ל-MIT

    היום עדכנתי רישיון של CppCMS ל-MIT. הגרסה הקרובה 1.2 תשוחרר עם רישיון מעודכן

    ההחלטה נובעת ממספר סיבות:

    1. רצון להגדיל נתח השוק של CppCMS ולהקל על כניסה של משתמשים חדשים
    2. להביא יותר מפתחים לפרויקט

    הטקסט המלא

    16 January, 2018 09:47 AM

    04 January, 2018

    Levi Shahar

    איך לא להגן על הרשת אלחוטית שלכם

    אני יכול להגיד בביטחון מוחלט שכ - 60% מהמשתמשים ברשת האינטרנט, מחוברים אליה דרך רשת אלחוטית כזאת או אחרת. זה כמובן מקל מאוד על תוקפים פוטנציאלים, כמעט בכל מקום היום יש רשתות WiFI פתוחות שמאפשרות גלישה חופשית ברשת, בישראל אין אוטובוס ציבורי שלא מתהדר ב - WiFi, זה נהפך להיות סטנדרט - ופה מגיעה החולשה הכי גדולה. התוקף היום יכול לשבת בנוח ולתקוף את הרשת, אף אחד לא יחשוד בבחור (או בחורה) שמשחק במכשיר האנדרואיד שלו.

    Full text

    04 January, 2018 09:25 AM

    02 January, 2018

    Kaplan Open Source Consulting

    יעדי 2018

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

    היעדים הקהילתיים שלנו ל-2018:

    1. אימוץ מדיניות "כסף ציבורי? קוד ציבורי!" בגופי ממשלה, רשויות המדינה והשלטון המקומי
    2. שילוב נשים בעולם הקוד הפתוח
    3. מימון המונים לגיור מוצרי קוד פתוח
    4. הקמת חממה לעסקים מבוססי קוד פתוח
    5. שילוב סטודנטים בפרוייקטי קוד פתוח

    כיאה ליעדים קהילתיים, אנחנו מחפשים שותפים לדרך עבור כל אחד מהיעדים האלה: אנשים פרטיים, חברות מסחריות, עמותות וכל מי שמאמין בקידום של אחד יותר מהיעדים. העזרה יכולה להיות בהתנדבות, אירוח מפגשים, סבסוד מלגות לשילוב אנשים, חניכה ותפקוד כמנטור או כל רעיון שיעזור להשיג את היעד.

    02 January, 2018 11:22 PM

    27 December, 2017

    Diego Iastrubni

    העדכון הכי משמעם שיש

    לפני כמה שבועות נכנסתי לכסח עם רם-און. חשבתי שהוא מדבר שטויות.

    כמה שבועות אחרי – אני משתמש בדביאן ובאובונטו ב-wayland. והאמת? זה עובד בצורה שקופה ומשעממת כל כך שצריך ממש להתאמץ ולהבין שהיה שינוי מהותי במערכת. ולא רק זה – יש תמיכה מלאה לאחור תוכניות legacy (דוגמאות – AndroidStudio/IntelliJ או popcorntime שעובדות מעל X11 ולא Wayland).

    בדקתי את זה על שני מחשבים עם כרטיסי מסך של אינטל. בדקתי את זה בכרומבוק אחד (פוסט בנושא הזה בקרוב). עוד לא בדקתי את זה מול nvidia, עוד לא בדקתי איך wine מתמודד עם זה… אבל… מגניב. עובד.

    כל הכבוד לצוות הפיתוח.

    הטקסט המלא

    27 December, 2017 08:18 PM

    07 December, 2017

    ik

    התמודדות עם שגיאות תוכנה

    לפני מספר שנים פורסם כי לחברת טויוטה יש בעיה רצינית, בה דוושת הגז של הרכב נתקעת. זה הגיע בעקבות תאונה קטלנית בארה"ב כאשר נוסע לצד הנהג התקשר ל911 (שירותי חירום בארה"ב), והודיע כי הם לא מצליחים לעצור את הרכב, והגז תקוע.

    בעוד שאנשים כמוני, אשר אינם מומחים לרכב או נהיגה נבהלים שאולי הדבר יכול להתרחש גם אצלהם, מומחי נהיגה ורכב בדקו את הנושא לעומק.

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

    בניסויים שונים שנערכו בהמון כלי רכב, כולל בעלי מנוע משופר (הנועד למירוצים), שהוא חזק הרבה יותר ממנוע רכב רגיל, כאשר גם דוושת הגז וגם דוושת הבלם נלחצות ביחד, הרכב עדיין עוצר. לוקח לו כברת דרך מאוד ארוכה עד שהוא נעצר, אך תמיד הוא נבלם, היות והבלמים חזקים יותר מפעולת המנוע, ואנו יכולים להבין זאת בזכות חוקי ניוטון.

    כך שלמעשה טעויות נהג, בנושא של אי לחיצה על דוושת הבלם, והמשך לחיצה על דוושת הגז הוא הגורם לבעיות, ולא דוושת גז תקועה.


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

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

    הנה מצב שבאמת מתרחש בעולם התוכנה:
    אני שרת (נעים מאוד). מישהו פותח מולי סוקט. מה אני עושה עכשיו? אחרי שעברתי מליארד דברים "עסקיים" בשרת, אשר החליטו האם לאשר את הבקשה בכלל, אני מחכה עכשיו לקבל payload.
    אבל הוא עדיין לא הגיע, מה עכשיו? האם אני סוגר את החיבור? מה אם קיבלתי keep alive כחלק מTCP? כמה הזדמנויות אני צריך לתת לתעבורה להגיע אלי, עד שאני מודה שמשהו כאן לא תקין?

    מצאתי מקומות בהם יגידו כי צריך לסגור מיד (3 שניות או פחות ל timeout) את החיבור, ולהיכשל בכבוד. אבל אני באופן אישי לא מוכן להכשיל שרת על זה. זה לא משהו חריג בתקשורת שמידע לא עובר. למעשה יש אפילו פרוטוקולים שלמים בשביל להתמודד עם הבעיה הזו. יותר מזה, keep alive אומר כי הלקוח ביקש לא לסגור עבורו את החיבור, מה שאולי מרמז שאולי רק בעתיד הוא ישלח מידע, וכרגע יש עניין יותר לשמור משאבים, מאשר לשלוח מידע.

    נגיד אבל, בשביל למנוע אצלנו בעיות של ניצול שלא לצורך של משאבים (בכל זאת זה משאב יקר), יש החלטה לסגור את החיבור לאחר 10 דקות של חיבור ללא תעבורה. האם עכשיו השרת נכשל? ובכן, לא!

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

    אבל הגענו לזמן המקסימלי שאנחנו מוכנים "לסבול" את הנושא מבחינת תכנון השרת, ועכשיו צריך להיכתב Notice ב־לוג מה קרה, למשל השרת חיכה 10 דקות לתעבורה להגיע אליו, וכשזו לא הגיעה, פשוט סגר את החיבור.

    העניין הוא שאני רואה הרבה מערכות אשר יעלו חריגה בנושא, ויתייחסו אל זה כמשהו לא תקין.
    ויותר גרוע, ראיתי שרתים קורסים בגלל זה. כן, באמת!

    חריגה היא משהו שלא צריך להתרחש ובמידה וכן, צריך אליו התייחסות מיוחדת. כלומר זה משהו חריג, שלא אמור להתרחש בכלל.

    למשל תוכנית ביקשה 10 מגה של זיכרון, ואין 10 מגה לספק עבורה, זה משהו שאני צריך להיות ערוך לו, אבל זו חריגה, כי התוכנית כנראה לא יכולה להמשיך בלי כמות הזיכרון הזו.

    אבל גם כשיש חריגות, זה לא אומר שצריך להיכשל ככה סתם. למשל זה בסדר שיש לי חריגה על timeout, זה התפקיד של timeout להגיד שהוא לא נוצל, וזה לא תקין.
    האם התוכנית בכל זאת צריך להיכשל על זה, או האם היא צריה להתמודד עם זה? התמודדות, גם יכולה להגיד שפשוט נתפסה החריגה, אבל אין צורך לעשות כלום. זה בסדר, כאשר זה נעשה מהבנה, ולא כטמינת ראש בחול.

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

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

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

    אז נכון הייתם מצפים שהרגל צריכה להיות על הבלם?
    אבל האינסטינקט של להכשיל הכל למעשה שקול להמשך הלחיצה על דוושת הגז, הרי תוכנה צריכה תמיד להיות במצב האופטימלי שלה, נכון?

    כמובן שזו דעתי בנושא, ואסור לזלזל בנושא של שגיאות, אבל צריך לתת עליהן יותר את הדעת מאשר התמודדות שאני מוצא כי מתקיימת כיום בכל כך הרבה מערכות.

    07 December, 2017 09:40 AM

    28 November, 2017

    Lior Kaplan

    AGPL enforced: The Israeli ICT authority releases code

    Data.gov.il was created in 2011 after the Israeli social justice protests as part of the the public participation initiative and started to offer data held by the government. Back then the website was based on Drupal. In 2016 it was changed to CKAN, a designated system for releasing data. This system is licensed under the AGPLv3 requiring source code availability for anyone who can access the the system over a network, de facto for every user.

    Since the change to CKAN, open source people asked the state to release the code according to the license but didn’t get a clear answer. All this time when it’s clear it’s violation.  This led Gai Zomer to file a formal complaint in March 2017 with the Israeli State Comptroller. Absurdly, that same month the ICT authority mentioned a policy to release source code it owns, while failing to release code it has taken from others and adapted.

    With the end of the summer break and Jew holidays, and after I wasn’t able to get the source, I decided to switch to legal channels, and with the help of Jonathan Klinger and my company, Kaplan Open Source Consulting, we notified they should provide the source code or we’ll address the court.

    Well, it worked. In 3 days time the CKAN extensions where available on the website, but in a problematic way, so users weren’t able to download easily. This is why we decided not to publish this code release and let them fix it first. In addition we made it clear all the source code should be available, not only the extensions. Further more, if they already release it’s recommended to use git format instead of just “dumping” a tarball. So we told them if they aren’t going to make a git repository we’ll do that ourselves, but in any case, would prefer them to do that .

    While this issue is still pending, the ICT authority had a conference called “the citizen 360” about e-gov and open government in which they reaffirmed their open source plans.

    A slide about open source from the Israeli ICT authority presentation

    A slide about open source from the Israeli ICT authority presentation

    Now, a month later, after our second letter to them, the about page in data.gov.il was updated with links to the ICT authority GitHub account which has the sources for the website and the extensions. A big improvement, and an important mark point as the commit to the repository was done by an official (gov.il) email address.

    Beyond congratulating the Israeli ICT authority for their steps forward and the satisfaction of our insisting on them became fruitful, we would like to see the repository get updated on a regular basis, the code being given back to the various CKAN extensions (e.g. Hebrew translation). In general, we hope they would to get inspired by how the how data.gov.uk is doing technical transparency. If we allow ourselves to dream, we would like to see Israel becoming a dominate member in the CKAN community and among the other governments who use it.

    We’re happy to be the catalyst for open source in the Israeli government, and we promise to keep insisted where needed. We know that due to other requests and notifications more organizations are on their way to release code.

    (This post is a translation from Hebrew of a post in Kaplan Open Source Consulting at https://kaplanopensource.co.il/2017/11/20/data-gov-il-code-release/)

    Full text

    28 November, 2017 09:07 AM

    08 November, 2017

    Lior Kaplan

    קוד פתוח בכנס האזרח 360 של רשות התקשוב הממשלתי

    הייתי היום בכנס האזרח 360 של רשות התקשוב הממשלתי. מטרת הכנס היתה לדבר על היעדים של פרוייקט ממשל זמין, השקת קמפיין חדש של gov.il, התייחסות ליוזמת D5 ולנושאי ממשל פתוח.

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

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

    קוד פתוח ברשות התקשוב הממשלתי

    אחרי כ-15 שנה שלי מול הממשלה בערוצים שונים (כמו ועדות של הכנסת, משרד האוצר וכו') אני זוכה לראות את זה על סדר היום של רשות התקשוב הממשלתי. לא רק שזה על סדר היום, זה מוכרז באופן ציבורי על ידי ראש הרשות.

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

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

    08 November, 2017 03:07 PM

    28 October, 2017

    Levi Shahar

    השורה הראשונה בסקריפט שלכם

    הפוסט הבא נכתב כתשובה למישהו שאמר לי “הטרמינל קורא את השורה הראשונה בקובץ (*sh), ומחליט כיצד להריץ אותו”. והאמת היא שזה לא נכון, כי הקרנל בכבודו ובעצמו מטפל בזה.

    Full text

    28 October, 2017 09:25 AM

    18 October, 2017

    Ram on Agmon

    אובנטו 1710 – גירסה ששווה להתקין

    זה היה לפני 12 שנים, פעם ראשונה שהתקנתי אובנטו על המחשב שלי. אובנטו 0505. מאז עברו הרבה מאוד ביטים באינטרנטים, למדתי הרבה, אבל תמיד שמרתי חסד נעורים להפצה הלינוקס ששמה לה למטרה להנגיש את שולחן העבודה של מערכת ההפעלה הנפלאה הזו. תחילת המיליניום, היתה תקופה קשה למשתמשי לינוקס. אי אפשר היה לצפות כמעט בסרטים ברשת … להמשיך לקרוא אובנטו 1710 – גירסה ששווה להתקין

    הטקסט המלא

    18 October, 2017 05:06 PM

    09 October, 2017

    Guy Sheffer

    RealtimePi – out of the box real-time RaspberryPi Raspbian

    RealtimePi logo

    RealtimePi logo

    Hey all,
    So it started as a curiosity, and it looks like its working. I made a Raspbian-based distro that ships with a realtime kernel called RealtimePi. You can download the latest here.  It’s open source, sources are here.

    A realtime system means its deterministic, it means you should know how long things take to run. They way to do is is to apply a patch to the linux kernel that makes it non-preemptible. To explain – Preemption is the act of temporarily interrupting a task being carried out by a computer system, without requiring its cooperation, and with the intention of resuming the task later.

    This is useful for building hardware and robotics, low latency audio and other gpio because there are no surprises when it comes to timing. It seems like something good to try out with the RaspberryPi, because of the GPIO and IOT capabilities.

    Bundled with CustomPiOS you can build your customized realtime-kernel device.

    Features

    Steps to install

    1. Download the image here
    2. Unzip and flash it to an SD card (small enough to fit a 2GB card)
    3. Open newly flashed image and edit two files, one for the wifi, and one for the bot token:
    4. Put in realtimepi-wpa-supplicant.txt your wifi address (skip if using Ethernet cable). Here is how it should look:
      wifi

    You can test the realtime kernel is enabled, by running in the commandline

    uname -a

    You should see something like this, note PREEMPT RT which indicates its realtime:

     Linux realtimepi 4.9.52-rt37 #1 PREEMPT RT Fri Oct 6 22:29:28 UTC 2017 armv6l GNU/Linux

    The line should  look a little different for armv7

    I am not an expert with actually building realtime systems, so input on how it preforms, and examples would be appreciated!

     

    Full text

    09 October, 2017 10:05 AM

    03 October, 2017

    Meir Kriheli

    מצגת ההרצאה אודות Vue.js

    Vue.js החזירה את הכיף שנעלם לי בפיתוח פרונטאנד.

    ההרצאה אודות Vue.js שהועברה במסגרת PyWeb-IL 69 זמינה בעמוד הרצאות ומצגות.

    03 October, 2017 06:39 AM

    25 August, 2017

    ik

    חודש עם Tilix

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

    הפתיע אותי לגלות שבמערכת הפעלה שנועדו להדיוטות, שחייבים רק גרפיקה, יש טרמינל איכותי וטוב יותר מכל מה שהכרתי בלינוקס. שם התוכנה שראיתי היה iTerm2. והיא נבנתה ל Mac. התוכנה מסחרית, ולכן לא תקבלו קישור.
    יש לה הרבה תכונות מדהימות, כמו "שרת" שמחזיק את הטרמינל עצמו, מול סביבה גרפית שמציגה ומאפשרת לעבוד. חיפוש בתוך הטרמינל, יצירת split חכם ועוד המון תכונות נוספות מדהימות.
    אז התחלתי לחפש ולהתעניין אם יש לנו, אנשי המסך השחור, גם משהו בסגנון.

    הדבר הקרוב ביותר שמצאתי הוא תוכנה בשם Tilix, אשר קיבלתי עליה המלצה. התוכנה עצמה כתובה בשפה בשם D, והיא מספקת המון תכונות מדהימות, אשר חלקן לקוחות מכלים כדוגמת screen ו tmux, וחלקן מ iTerm2.

    tilix

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

    בנוסף לכך שיש לי split שקל לעבור בניהם עם המקלדת, אפשר גם ליצור משהו שנקרא session, ממש כמו virtual desktop. וגם אליהם ניתן לעבור בקלות עם המקלדת.
    היא מאפשרת למשל לשתף מקלדת עם כל או חלק מהטרמינלים הפתוחים בסשן, כך שהקלדה במקום אחד תתקבל גם בשאר, חיפוש של תוכן שהודפס למסך (למשל לוג שאתם פתחתם עם tail -f, ואולי פספסתם משהו בו), ואפילו ניהול של clipboard, בנושא שאל העתקה והדבקה, ולא בניהול של היסוטוריה וכיוב' שלו, הוא יודע לספק הודעת מערכת כאשר פעולה הסתיימה, להגדיר מסוף כ readonly (לא מקבל מקלדת, בניגוד ל CTRL+S שפשוט משהה את הפעילות) ובנוסף, יש לו תמיכה בכלים שונים שלא ניסיתי עדיין.

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

    היות וב ssh במידה ואני צריך, אני עושה mixing של הסוקט (באמצעות ControlMaster), זה די "זול" לפתוח גם מספר חיבורים ולעבוד איתם ישירות מהטרמינל הקיים, ולכן tmux לא משנה.

    אבל זה לא הכל, אני יודע שכאן אני תלוי בטרמינל, ולא בתוכנה שרצה בטרמינל, אבל בסופו של דבר, האם זה משנה אם התוכנה נקראת tmux, screen או אולי Tilix?

    ובכן, קצת 🙂

    הייתי מאוד שמח לראות את Tilix משפרת מספר דברים אצלה:

    במידה והשניים הראשונים יהיו, לדעתי מדובר במתחרה ראוי ל tmux (למעשה הוא כזה כבר עכשיו, אבל עדיין).
    כמובן שגם אפשר להריץ tmux בתוך tilix, ואז בכלל זכיתם המון גמישות 🙂

    כמובן שיש עוד תכונות של iTerm2 שהייתי שמח לראות אצלי, אבל הדברים שבאמת חשובים לי נוצרו כבר.

     

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

    25 August, 2017 08:29 AM

    14 August, 2017

    Guy Sheffer

    How to reuse your old Raspberry Pi as a Telegram-controlled Alarm Clock – AlarmPi

    RaspberryPi Alarm clock

    RaspberryPi alarm clock

    Hey all,

    So do you have a RaspberryPi not doing anything at home? Got that 2GB class 4 SD card that you just don’t know what to do with it? Well this guide is for you! It will let you turn your Pi in to an IOT alarm clock, no code, no complicated commands, just flash, edit two text files and you are good to go. The alarm clock is controlled from Telegram, so you can set it and turn it off from your smartphone. I find that usually using my phone wakes me up. So it’s useful for me. You can also edit the alarm and use any mp3 file you want.
    The code is all available in github. AlarmBot is the Telegram Bot. An AlarmPi is the distro (built with CustomPiOS yet again).

    Steps to install

    1. Download the image here
    2. Unzip and flash it to an SD card (small enough to fit a 2GB card)
    3. While it downloads and flashes, let’s create a telegram bot and get a token for it!
      1. Send a message to bot father
      2. Send /newbot

        Setting a new bot

        Setting a new bot

      3. Copy the telegram token that is in the last message
    4. Open newly flashed image and edit two files, one for the wifi, and one for the bot token:
      1. Put in alarmpi-wpa-supplicant.txt your wifi address (skip if using Ethernet cable). Here is how it should look:
        wifi
      2. In config.ini,  paste the newly created bot token from step 3. This is where the token goes:
        token
      3. optionally, you can change the alarm.mp3 file to the sound of your choice.
    5. Boot your pi and connect it to speakers, wait a bit, because it will reboot internally twice. And send /start to your bot.
    6. You’re done! Let’s see how we can set alarm with telegram!

    How to use the telegram bot

    Once you got a reply to /start and you know the bot is working you can use “/help” to list all the available commands.
    Screenshot_2017-08-12-16-42-42~01.png

    First, set the /timezone to your location, and make sure you can see the correct time with the /time command.

    Now let’s set an alarm, type /new and you will get the option to pick an alarm that works daily or weekly (code contributions would be great to add more types of alarms).

    Screenshot_2017-08-12-16-44-42~01.png

    Once you have alarms, you can manage them in the /list command.

    Screenshot_2017-08-12-16-46-53.png

    You can disable, or delete commands using this menu. Selecting the bell will disable it, the X will delete an alarm, pressing on the alarm names would close the table.

    To stop an alarm that is going, send /stop to the bot.

    You can test the alarm using the /test command.

    There is no reason why any Pi on earth should not be doing something

    So this AlarmPi distro is usable, it lets you burn and flash a device within minutes and make it useful instead of lying and collecting dust in your house. The reason people are not using Pis is because making them do something requires “a guide”, aka list of instructions you are probably going to get wrong to do something simple. Building something as robust as this would take hours, and would be hell to maintain and receive code contributions. But AlarmPi is easy to read and modify. There is a repo for the bot, and a repo for the distro. If a new rapsberrypi comes out and there is a new Raspbian, all you got to do is rebuild and release. No manual editing. And takes less time to build and supports over 40 devices already which run Armbian.

    The code base of AlarmBot lets you control crontabs, it could be used for controlling

    As always, code contribute are appreciated!

    Full text

    14 August, 2017 11:01 AM

    31 July, 2017

    Ira Abramov

    כפתור פראנויה לכל כיס

    אמ;לק: סקירת מוצר שיוסיף לכם שכבת הגנה על חשבונות מקוונים וגם על המחשב האישי. זו תהיה כתבה ראשונה בסדרת פוסטים על אבטחת מידע בסיסית לישראלי המצוי, למרות שהפוסט הספציפי הזה אולי לא מיועד ממש לכולם כי הוא עוסק בחומרה יעודית שעולה בסביבות $50 (כולל משלוח) ולא תוכנה זמינה וזולה/חינם.

    יותר מחצי שנה לא כתבתי פוסט, למעשה כמעט 8 חודשים אני חושב. המון חדשות חולפות בקצב מסחרר ואי אפשר להתעמק בכלום, וגם החלפת מקום עבודה מוריד מהזמן הפנוי לכתיבה של יותר מציוצים בטוויטר. אם אתם לא עוקבים, חוק הזיהוי הביומטרי עבר והחל מיוני כולם חייבים לתת טביעות אצבע ופנים. מי שישלם כופר מיוחד יוכל להשאר מחוץ למאגר (אם אתם באמת מאמינים שלא ישמרו לכם את תביעת האצבע אחרי שיכתבו אותה לשבב בתעודה), אבל יצטרך לעשות את זה פעמיים בעשור במקום פעם אחת. ההמשך עכשיו יכול להיות אחד משלושה עיקריים: או שהפניה שלנו לבג"צ תצליח והמאגר יבוטל מתישהו ב-2018, או שיהיה מהפך בחירות וקואליציה חדשה תחליט למחוק את השרץ, או שהגזרה תשאר, ועד 2022 (2027 למי שרץ להחליף תיעוד במאי) כל הישראלים שישארו פה יאלצו להשתדרק למאגר. בינתיים כבר היו דליפות בהודו וסיפורים מסוכנים אחרים, אז נחיה ונראה. על עדכונים של פאדיחות הבית הלבן אני גם לא ארחיב, אתם בטח צופים כמוני בסטיבן קולבר ביוטיוב.

    היום אני רוצה לספר לכם על הצעצוע החדש שלי, יוביקי 4. כל מי שמכיר אותי, יודע שככל שנכנסתי בשנים האחרונות לתחום הזכויות הדיגיטליות, אני יותר ויותר מתעניין בתחומי הצפנה, זיהוי והזדהות, סיסמאות חזקות וכדומה. זה רק אספקט קטן מהעולם הזה, וכמובן לא משנה כמה חזקה הסיסמא שלכם לפיכסבוק אתם עדיין צריכים להיות אחראים למה שאתם מפרסמים שם. בכל מקרה כדאי גם שלא יגנבו לכם את החשבון עצמו, ולכן אני ממליץ תמיד:

    כמה מילים על אימות כפול, או אימות בשני פקטורים: אחד הדברים הראשונים שמוגדרים בפרוטוקול זיהוי (ולא משנה אם אנחנו מדברים על סיסמא לאתר או כשאתם מתיישבים מול הפקיד בבנק) הוא הגדרת שיטת הזיהוי, כששיטות אימות הזיהוי מתחלקות ל3 קטגוריות כלליות: מי אתה, מה אתה יודע, ומה יש לך.

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

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

    משהו שיש לך – תעודה בלתי ניתנת לזיוף, אם ע"י שימוש בשיטות ייצור סודיות וייחודיות ואם ע"י חתימה דיגיטלית, או אולי מפתח כלשהו שלא ניתן לשכפל. כשאני אומר מפתח עולה לכם אולי בראש מפתח פלדלת או ייל, אבל את אלו כבר שכפלו כי הופיעו בטעות בתמונה. הסיפור הכי מצחיק היה כשסוכני TSA הצטלמו ברוב היבריס עם צרור המפתחות שלהם שפותח כל מנעול מזוודות בשוק, ואנשים מיהרו להעתיק את המבנה מהתמונות, וכמזה שנתיים אפשר להוריד את כל המפתחות מגיטהאב להדפסה בתלתפסת ביתית. לא, אני מתכוון למפתחות הצפנה פיזיים, כלומר מעין התקן USB עם מעבד קטן וזכרון שאי אפשר לקרוא, וניסיון למעקף פיזי של ההגנות אמור להרוס אותו ללא שוב. כאלו יש מספר מוצרים בשוק ואחד היצרנים הבולטים הוא Yubico. אני סוקר את המוצר שלהם כאן כי אחרי שלמדתי את הנושא ברשת הגעתי למסקנה שזה אחד משניים-שלושה הכי מעניינים, מגוונים ונגישים, ואין לי שום קשר איתם מעבר לזה (וכמובן לא קיבלתי מהם מוצר או טובות), ולכן קניתי אותו. יש להם אפילו יבואן רשמי בארץ אבל אחרי שקיבלתי מהם ספאם, העדפתי לשלם את המחיר המלא של הזמנה מחו"ל (אמזון או הריסלר הזה). שווה להציץ, לפעמים יש להם סייל 50% הנחה ליום-יומיים.

    אימות כפול, או אימות מרובה, הוא כזה שמשתמש ביותר משיטה אחת מאלו שפירטתי, ובמיוחד עדיף שלפחות משתי קטגוריות שונות.1

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

    שו"ת

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

    להצפין את הדיסק? זה לא מעמיס את המערכת?
    עם LUKS זה מובנה בקרנל, לחלונות ומאק יש משהו דומה, המחיר אחוז או שניים. אני לא ממליץ על ecryptfs שאובונטו מציעה להצפין אתה רק את ספריית הבית, זה פוגע בביצועים הרבה יותר. התחלתי לעשות את זה כשעבדתי בחברות שעסקו במידע רגיש, אצל מעסיקים אחרים הסתכלו עלי כמשוגע ובסוף באו להתייעץ איתי כשהמחשב הראשון נגנב מהמשרד או כשנציגים התחילו לצאת לשטח ולתערוכות ועלה הפחד שיגנבו סודות מקצועיים. אז כאמור לדעתי היום זו חובה שלא עולה הרבה לממש.

    אני בונה היום אתר, להשקיע באימות כזה למשתמשים שלי?
    גם TOTP-2FA וגם U2F – לדעתי כן, במיוחד אם האתר שומר פרטים אישיים של כרטיסי אשראי, בריאות מטופלים ועוד כיוצא באלו. יש ספריות חופשיות שקל לשלב, ולמערכות כמו וורדפרס, דג'נגו, ג'ומלה, רובי-או-ריילז ואחרות יש כבר מודולים מוכנים לקטיפה מהעץ, אז חבל להתעצל!

    למה יוביקי 4 ולא גרסת הנאו?
    טעם אישי. היוביקי 4 תומך במפתחות טיפה יותר גדולים, הוא טיפה יותר זול, קוד ה-PGP שלו פתוח בגיטהאב. לרוב האנשים גם הנאו יהיה מצוין, והיתרון הגדול שלו הוא NFC שעובד עם אנדרואידים שיש להם רכיב תקשורת תואם. אם רוצים להשתמש ביוביקי 4 (ללא NFC) על אנדרואיד, אפשר בעזרת כבל OTG, או לטלפונים חדשים, חיבור ישיר USB-C בדקם יוביקי החדש).

    יש מתחרים ראויים?
    יש כמה. חלקם יתנו U2F בלבד בפחות מ$10-$20, חלקם יקרים מאוד אבל עושים דברים נוספים כמו לשמש כארנק קריפטומטבעות (למשל Trezor ואחרים) ויש גם אופציות "האקריות" פתוחות כגון OnlyKey שמוסיף שכבות הגנה כמו סיסמא, פיצ'רים כמו השמדה עצמית וכדומה. יש מצב שאקנה כזה בעתיד, למרות שהוא נראה פחות עמיד מכנית לשבירה ושפשופים.

    התוכנה צרובה ולא ניתנת להחלפה? אז מה אם יתגלה באג אבטחה?
    כבר קרה פעם אחת, וכל הלקוחות קיבלו מפתח חדש עם קושחה מעודכנת. זה חלק מהשירות (והמחיר). אי האפשרות לעדכן את הקושחה זה פיצ'ר מתוכנן במכוון, כדי לא לאפשר החלפה לתוכנה שתגלה את המפתחות הסודיים ששמורים על המפתח.

    כבר יש לי כזה מהמעסיק
    אם המעסיק נתן לכם התקן כזה שישאר שלכם לשימוש אישי גם אחרי שתעזבו – כיף לכם! גוגל, פייסבוק וחברות טכנולוגיה אחרות עושות את זה. השתמשו בזה חופשי גם לחשבונות פרטיים!

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

    למה לא כתבת פוסט כבר המון זמן?!
    כי הייתי עסוק, וכי אף אחד לא שאל למה לא כתבתי כבר המון זמן, אז אולי מסתפקים בפרסונה הטוויטרית שלי…

    אם יש לכן עוד שאלות, שתפו בבקשה בתגובות. אם זה מספיק מעניין לכלל הקהל, אולי אענה פה בגוף הפוסט.

    -------
    1. אפשר לדון פה פילוסופית אם ה־‏Google Authenticator שלי, שמגובה כל יום וניתן לשחזור במקום אחר הוא באמת משהו שיש לי או שהוא מידע ולכן משהו שאני יודע, אבל לצורך הפשטות, לרוב המוחץ של האוכלוסייה, זה נופל תחת משהו שיש לי.

    31 July, 2017 04:51 PM

    12 July, 2017

    Artyom Beilis

    אחרי תקופה ארוכה שוחררה בטא של CppCMS 1.1.0

    אחרי תקופה ארוכה של המתנה שוחררה גרסת בטא 1.1.0 של CppCMS. גרסה זו מכילה המון שיפורים ושיוניים. ביניהם:

    • תכנון מחדש של application pool לתיקון מספר בעיות מובנות שהיו קיימות בו עד כה
    • API חדש של פעולות non-blocking לשיפור משמעותי בביצועי אפליקציות אסינכרוניות
    • סיכון ועיבוד בזמן העלאה של התוכן (למשל עיבוד או בדיקה של קבצים תוך כדי העלאה)
    • תמיכה משופרת ב-RESTful API
    • מערכת לניהול plugin ושיפורים מערכת תבניות (templates) בהם.
    • אפשרות ניהול session ללא עוגיות (למקרה והמשתמש ממש צריך)
    • שילוב ניהול ה-session מול טכנולוגיות אחרות כולל מימוש עבור PHP, Java Servlet, ASP.Net ו-Python Django
    • שיפורי ביצועים רבים
    • ועוד...

    התכנון הוא לבצע בדיקת בטא מהירה, לשחרר 1.2 כגרסה יציבה (גם ככה חלק ניכר מהמשתמשים כבר עובד בענף הפיתוח ב-git).

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

    • ל-1.4 תמיכה מלאה ב-HTTP/1.1, ב-HTTPS ומימוש של websockets
    • ל-2.0 להעביר CppCMS ל-C++11 תוך ניקוי חלק מה-API שילקח מספריה סטנדרטית כמו std::shared_ptr

    אתם מוזמנים להתנסות בגרסת בטא האחרונה!

    הטקסט המלא

    12 July, 2017 09:01 AM

    11 July, 2017

    Oz Nahum

    Submitting patches to Python

    This is not my typical blog post style. So no "how to" or opinnions. Just some reflections on how I submitted a patch to Python's standard library. continue reading...

    11 July, 2017 06:56 AM

    18 June, 2017

    Amir Aharoni

    סיסמה

    אז לפתע פתאום האקדמיה ללשון שינתה את כללי הכתיב.

    הופתעתי מאוד מהשינוי של היום. אולי היו על זה ידיעות בפרסומים של האקדמיה, אבל למרות שאני מתעניין בלשון בכלל, ובכללי הכתיב בפרט, אינני עוקב אחרי כולם. למשל, בדיוק לפני מספר חודשים האקדמיה ללשון הקטלאנית הודיעה שהיא מתכננת לפשט את כללי הכתיב ולבטל הרבה מהסימנים מעל האותיות, אבל היא פרסמה טיוטה לדיון ציבורי, ולא הודיעה ישר על השינוי. (ויש דיון ציבורי, כי לאנשים אכפת מזה.)

    אילו האקדמיה ללשון העברית פרסמה טיוטה, הייתי מעיר כמה דברים. אני אישית לא אוהב את הגושפנקה שניתנה ל„שיער”, „בריכה”, „ברירה”, ו„עבירה”, אבל בסדר, אני מבין שזה נפוץ, ואני אפילו שמח מאוד שאני לא צריך לבזבז את העצבים שלי על ויכוחים בנושא הזה. עם זאת, הכתיב החדש „מייד” מצער: גם הכתיב „מיד” היה נפוץ למדי, ולא עורר הרבה מחלוקות, והוא שמר על הקשר למילה „יד”.

    אני הקפדתי מאוד על „ססמה” בתרגומי פיירפוקס וטוויטר, למרות התנגדויות רבות, ועכשיו זה בהדרגה יהפוך ל„סיסמה”. על זה לא חבל לי כל־כך, כי זאת ממילא מילה שאולה מובהקת, גם אם עתיקה, ואם אתם שואלים אותי, אפשר להוסיף יו״ד גם למילים שמיות מובהקות כמו פסגה, קדמה, וכיו״ב.

    טיפ־טיפה חבל לי על הכתיב „שמים”, שעכשיו הפך ל„שמיים”. היה בזה דמיון יפה ל„מים”, אבל בסדר. עכשיו אני יכול להפסיק להחרים את יישום „ירושמיים”, שהפכה כבר מזמן למשהו פולחני עבור ירושלמים רבים.

    אני מרוצה מהשינוי של „תכנה” ו„יזמה” ל„תוכנה” ו„יוזמה”. אני גם מרוצה למדי מהשינוי של מילות היחס „אתי, אתך” ל„איתי, איתך”, ושל „עתים” ל„עיתים”, אבל מוזר לי ביותר שלא נוספה בהזדמנות הזאת האות יו״ד למילים כמו „אִגרוף” ו„מִחזור”, כדי לא להתבלבל עם „אֶגרוף” ו„מַחזור”. זה היה יכול להיות כלל פשוט ושימושי, והוא ממש לא היה אמור להיות שנוי במחלוקת. חבל שזה התפספס.

    עוד משעשעים אותי ה„אישורים” שנינתו למילה „אומנם” וליו״ד בצורת הגוף הראשון בזמן עתיד בבניין נפעל, למשל „איכנס” במקום „אכנס”. אני תמיד כתבתי אותם בכתיב מלא. את „אומנם” כתבתי בווי״ו כי גם „אֻמנם” הוא ניקוד תקני ולא רק „אָמנם”, וצליל u תמיד אמור להיכתב בווי״ו (אם כי עכשיו גיליתי לראשונה שהניקוד „אֻמנם” מיועד לשאלות, לפחות לפי אבן־שושן). ובבניין נפעל כתבתי תמיד „איכנס”, „איזהר”, וכו׳, כי הניקוד בחיריק תקין כמו בניקוד בסגול (ר׳ למשל גזניוס 51p).

    טוב שיש עכשיו גושפנקה למילה „תיאטרון”, כי אני לא מכיר שום תיאטרון ישראלי שבכניסה עליו כתוב „תאטרון”. (אם יש כזה, זה מפדח למדי, אז עדיף שפשוט אודה: אני לא הולך להצגות מספיק.) מצד שני, מוזאון עדיין אמור להיכתב בלי יו״ד. אני אוהב את החלוקה החדשה הזאת, אבל יש לי תחושה שמוזאונים ימשיכו לקרוא לעצמם „מוזיאונים”, אם כי אפשר לשם השעשוע לנסות להחיות את המילה „בית נכאת”.

    מעטים ישימו לב לזה, אבל עכשיו המילה „די” תיכתב תמיד ביו״ד אחת. גם ככה רוב האנשים כותבים אותה ביו״ד אחת, וזה תמיד היה נכון, אבל משום־מה האקדמיה אפשרה עד עכשיו גם „דיי” ו„דאי”. אפילו ראיתי את „דיי” בספרים שהאקדמיה הוציאה ממש לאחרונה (כמו „העברית בתקופת המנדט” הנהדר של יעל רשף). אבל זהו, לא עובד: רק „די”, וטוב שכך.

    עוד דבר שמעטים ישימו לב אליו הוא השם של הכללים החדשים: „כללי הכתיב המלא”. עד עכשיו הם נקראו „כללי הכתיב חסר־הניקוד”. למיטב ידיעתי, המונחים כתיב מלא וכתיב חסר מעולם לא היו מוגדרים באופן מדויק למרות שאנשים רבים השתמשו בהם. „כתיב חסר” עדיין אינו מוגדר, אבל זה בסדר, כי הוא לא ממש נחוץ.

    עכשיו יהיה ממש נחמד לעדכן גם את מילון האיות החופשי Hspell. נדב ודן, אם אתם קוראים את זה, אני אשמח לעזור.

    18 June, 2017 11:03 AM

    17 April, 2017

    Oz Nahum

    Why I still persist on not using systemd

    The following screenshot of a systemd issue reported on github saysit all. I don't care if systemd is technically superior, the way it's being developed is truely bothering. It's leadership is insisting on being blunt ingoring users, misleading and even wrong. continue reading...

    17 April, 2017 02:36 PM

    15 April, 2017

    Lev Meirovitch

    Sneaking features through the back door

    Sometimes programming language developers decide that certain practices are bad, so bad that they try to prevent their use through the language they develop. For example: In both Java and C# multiple inheritance is not allowed. The language standard prohibits it, so trying to specify more than one base class will result in compiler error. […]

    15 April, 2017 05:24 PM

    16 February, 2017

    Itzik Kotler

    The Key To Cybersecurity: Shared Intelligence And Industry Cooperation

    Chicago in the 1930s was a hive of organized crime where the bad guys always had the upper hand. As dramatized by the film "The Untouchables," lawman Eliot Ness confides to Officer Jim Malone that he is prepared to do “everything within the law” to take down Al Capone. But streetwise Malone tells Ness that, to win, he must be prepared to do more. “He pulls a knife, you pull a gun. He sends one of yours to the hospital, you send one of his to the morgue. That’s the Chicago way.”

    Like ‘30s Chicago, the dark web is crawling with global crime syndicates, and everyone I've talked to says fighting the Chicago way sounds appealing. The problem is that the same laws that make hacking a crime also make it a crime to retaliate.

    Read full article at Forbes here

    Full text

    16 February, 2017 12:12 AM

    13 January, 2017

    Ram on Agmon

    סיכום שנה שנת 2016 + מצבה של התוכנה החופשית

    מבחינה טכנולוגית, שנת 2016 היתה שנה מרתקת. לצערי, לא מצאתי סיכומים הולמים לשנה כה אינטסיבית ואולי אף הייתי אומר – מופרעת. אני חושב, שבמקום הראשון, בישראל, השנה הזו היתה קודם כל שנת האופניים החשמליים. רבים מתייחסים אליהם מבחינת היקף התאונות, אבל להערכתי העניין הגדול הוא מספר כלי הרכב הללו הנעים על הכבישים. אט אט, האופניים … להמשיך לקרוא סיכום שנה שנת 2016 + מצבה של התוכנה החופשית

    הטקסט המלא

    13 January, 2017 12:10 PM

    18 October, 2016

    PyCon Israel

    Pycon Israel 2016 wrap up

    A little less than six months ago, we held the first PyCon in Israel. To our dismay, it took us this long to post all the videos from the event, but now they’re finally up, and you can finally catch up on The Track Not Taken.

    We’d like to take this opportunity to clear the 2016 table and summarize the conference, to give it some closure.

    The conference was a lot of work and fun to organize, and truly wonderful to witness. We’ve had:

    Over and beyond the hard data, there was a great feeling of a community coming together.

    There’s a few points we want to discuss in more details:

    Diversity

    We made a conscious effort to make the conference more welcoming to diverse populations. This included a well-defined Code of Conduct, as well as reaching out to specific communities, which are usually underrepresented in technical conferences. This included, of course, the cooperation with Django Girls Tel Aviv, who were invited to the conference; we did not collect the statistics of visitor gender, but we have reason to believe it was significantly more balanced than usual. We also reached out to some other groups who were less clearly visible. By all the feedback we got, everybody felt very welcome.

    To our regret, we could not show the same level of diversity among the speakers. Only 3 of the 32 accepted talks were presented by women, and none of these were Israeli. Further, we did not have a travel-support plan for speakers, and partly as a result of that, we did not have any speaker from the less-privileged parts of the world. We still have some way to go there.

    We intend to keep pursuing diversity in future editions of PyCon Israel.

    Budget

    In the spirit of Open Source and transparency, we’re happy to share a summary of our budget (all numbers are thousands of Shekels).

    Income

    Sponsorship: 246

    Ticket sales: 54

    Total: 300

    Expenses

    Venue (incl. food): 134

    Conf. party (food+movie): 41

    Keynote speakers travel: 30

    Speaker’s dinner: 13

    Video recording & editing: 20

    T-shirts & other swag: 28

    Wireless internet: 5

    Various other: 3

    Total: 274

    As you can see, we ended with a positive balance of close to 26K ILS. This is more than we intended, a miss we attribute to over-cautiousness and inexperience. A small part of this surplus will go to support Hamakor, the Israeli F/OSS association which helped make the conference happen, and the rest will go into the budget of the next PyCon Israel.

    Community organizations

    We’d like to call out three special groups which could use your help — participation as well as sponsorship; groups whose ongoing work enabled this conference and will hopefully enable others like it in the future:

    2017

    Since so long has passed, we can also add a look to the future: Preparations for PyCon Israel 2017 have already started! You can join the organizing team, or just keep track of our progress via our different channels -

    Blog: https://medium.com/@pyconil

    Twitter: @pyconil, #pyconil

    YouTube channel: https://www.youtube.com/channel/UC8ApA9ibgkf0XK7lgTVZgEQ

    Facebook: https://www.facebook.com/pyconisrael/

    Google group: https://groups.google.com/forum/#!forum/pycon-israel (requires registration)

    Website: http://il.pycon.org/

    Final words

    Watching the months of preparations come to full fruition made our hearts burst with joy. We’d like to thank everyone involved — all CFP submission authors, the invited and accepted speakers, the sponsors (and in particular the Diamond sponsors, Red Hat & Cymmetria), the vendors (and in particular the helpful staff of our wonderful venue at Yes Planet), the Israeli Python community in general for making such an event possible, and you, the attendees, for making it a reality.

    See you in 2017,

    The PyCon Israel organizing team

    18 October, 2016 07:45 PM

    23 September, 2016

    Yosef Or Boczko

    GNOME 3.22 שוחרר !

    צהריים טובים.

    לאחר מחזור פיתוח בן שישה חודשים, שוחררה גרסה 3.22 של שולחן העבודה GNOME !

    GNOME 3.22 Hebrew

    גרסה זו מכילה 22980 שינויים שנרשמו ב־Git על ידי 775 תורמים, בהשוואה ל־28933 שינויים על ידי 837 תורמים ב־3.20.

    אחוז התרגום עומד על 80% (36912 מחרוזות מתורגמות, 3682 מעורפלות ו־49874 שאינן מתורגמות), בהשוואה ל־80% (36069 מחרוזות מתורגמות, 3702 מעורפלות ו־4937 שאינן מתורגמות) ב־3.20 ו־82% (37120 מחרוזות מתורגמות, 3326 מעורפלות ו־4675 שאינן מתורגמות) ב־3.18.

    על התרגום בעיקר אני אחראי, ולאחרונה הצטרף ניב באר ותרגם את חלק מהתיעוד למשתמש „צעדים חדשים ב־GNOME” (נקרא ‏gnome-getting-started-docs) ואפילו החל לתרגם ליישומים (טרם מצאתי זמן להכניס את התרגומים האחרונים שלו).

    להלן מוטמע סרטון המציג את GNOME 3.22. קריינות על ידי קארן סנדלר, לשעבר מנכ״ל קרן GNOME, ומייק טרנטינו. עריכה על ידי Bastian Ilsø, שעורך סרטונים אלו כבר למספר שחרורים.

    כרגיל, אוסיף כאן שיר. שיר יפה, שפשוט נהניתי לנגן על הפסנתר.

    בברכה,

    יוסף אור

    23 September, 2016 02:47 PM

    14 August, 2016

    Yosef Or Boczko

    מצב תרגום GNOME – לקראת 3.22

    ערב טוב.

    בשבוע האחרון תרגמתי ובכך צמצמתי פערים של חצי שנה ללא תרגום, והבאתי את GNOME לתרגום מלא (להוציא את gitg ואת gnome-builder, שלא תורגמו גם בגרסה הקודמת).

    אחוז התרגום עומד על 80% (36915 מחרוזות מתורגמות, 3727 מעורפלות ו־4987 שאינן מתורגמות), בהשוואה ל־80% (36069 מחרוזות מתורגמות, 3702 מעורפלות ו־4937 שאינן מתורגמות) ב־3.20 ו־82% (37120 מחרוזות מתורגמות, 3326 מעורפלות ו־4675 שאינן מתורגמות) ב־3.18.

    לאחר עלייה במספר המחרוזות שאינן מתורגמות נתן לראות התייצבות מספר זה, לצד עלייה חוזרת במספר המחרוזות המתורגמות. הבטחֲתי היא כי GNOME מתורגם באופן מלא. כלומר, להוציא שני היישומים שצוינו לעיל – המשתמש לא יפגוש במחרוזות שאינן מתורגמות.

    ניתן לקרוא טיוטת הערות השחרור לגרסה זו של GNOME. גם הפעם לא אסקר השינויים, מקוצר בזמן.

    את השיר, הפעם, אקדיש ליום המיוחד, לגעגוע לירושלים.

    ערב טוב,

    יוסף אור

     

    14 August, 2016 04:05 PM

    12 August, 2016

    sml

    החלצות מעידכון כושל

    לא נעים – אבל זה קרה יותר מפעם אחת במחשב אחד: צרה אחרי עדכון קרנל או אחרי התקנת גרסה חדשה של המודול הקינייני של כרטיס המסך nVidia (וכנראה גם אחרים) – כל זאת בגרסה היציבה האחרונה של אופן-סוזה, הלא היא Leap 42.1.

    הטקסט המלא

    12 August, 2016 04:42 PM

    13 July, 2016

    Itzik Kotler

    Fuzzing The Kill Chain

    Fuzzing is a technique in software testing where you generate a number of random inputs, and see how a program handles it. So what does a testing technique have to do with a process such as the Cyber Kill Chain as developed by Lockheed Martin? Easy! Just as fuzzing a software produces resilient software, fuzzing a process will produce a validated process. The Kill Chain takes about seven steps that adversaries must complete in order to achieve their goals, but will it always be the case? Can an attacker pull off a successful attack with just one step? Or three? That’s what we’re going to fuzz out ...


    (Again, in order to avoid cross-posting between the different blogs, that was just a brief paragraph and a link to the original post is below).

    Continue reading: https://www.safebreach.com/blog/fuzzing-the-kill-chain

    Full text

    13 July, 2016 08:14 PM

    24 June, 2016

    sml

    טיפ: התקנת NX על OpenSUSE Leap 42.1

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

    הטקסט המלא

    24 June, 2016 09:35 AM

    27 May, 2016

    Shlomi Fish

    Tech Tip: Checking the Latest Build in Travis CI

    If you are using Travis CI, you can check the latest build after a failed build by going to the “Build History” tab in your project’s main page (= https://travis-ci.org/shlomif/fc-solve or equivalent), and selecting the new commit.

    Licence

    Copyright by Shlomi Fish, 2016.

    You can reuse this entry under the Creative Commons Attribution 3.0 Unported licence, or at your option any later version of it. See the instructions on how to comply with it.

    27 May, 2016 12:43 PM

    21 May, 2016

    Shachar Shemesh

    על פטרת צפרניים ופרטיות

    פוסט זה הוא תגובה לטור של ג׳קי לוי בישראל היום. מר לוי היקר, אני יהודי חרד. לא חרדי. אינני נוהג ללבוש שחורים, אפילו לא כאסטרטגיית דיאטה. את השקפתי הדתית ניתן לסכם במילה „אתאיסט”, אף כי אני מקיים באדיקות את הוראות מורינו הדגול רוג׳ר רביט (הוראות שמהכרותי עם הצדדים היותר פומביים של אישיותך, גם אתה לא […]

    The post על פטרת צפרניים ופרטיות appeared first on לינוקס ותוכנה חופשית.

    21 May, 2016 05:59 AM