‏הצגת רשומות עם תוויות Windows. הצג את כל הרשומות
‏הצגת רשומות עם תוויות Windows. הצג את כל הרשומות

יום שבת, מאי 01, 2021

Wake On Lan from Linux to Windows 10 does not work (fix)

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

הכלי המדהים והנפלא שנקרא Wake On Lan, מאז ומתמיד כשהיה לי צורך שתהיה לי ייכולת להפעיל מחשבים מרחוק ואין לי מכשירי PSU-control יותר זה היה אחד הדברים שאני מפעיל לראשונה.

זה נוח, זה פשוט , וזה פשוט עובד.

ואז, הגיע וינדוס 10 ו UEFI, בהתחלה Wake On Lan יכל לעבוד רק לאחר איפשר Uefi Networking Stack.

אחרי זה כשהיה ה fastboot שאני שונא שנאה יוקדת, הפיצ'ר הזה החליט שאתה לא יכול להנות מיכולות ה UEFI כשזה מופעל.

תשאלו מה הבעיה ? אז כאשר יש fastboot אי אפשר להשתמש ב WoL,

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

ושוב מגלים שה WoL איננו עובד יותר. הבעיה ? כל שידרוג גדול של windows 10 מפעיל בחזרה את ה fastboot. אפילו שידרוג של ה UEFI מתוך וינדוס הפעיל לי את ה fastboot המקולל הזה.

לאחר שמכבים את זה , פשוט שולחים מהלינוקס שלכם את :
  sudo etherwake -i wlp010203   AA:BB:CC:DD:EE:FF
  
כאשר הmac הזה הוא פשוט ה mac של כרטיס הרשת המחובר בכבל רשת לנתב שלכם.למה לא ב WiFi ? כי בשביל שזה יעבוד ב WiFi המחשב שלכם לא יכול להיות במצב כיבויי מלא.

יום שני, יוני 11, 2018

מי צריך dualboot בכלל ?

לא ממש בטוח בשביל אנשי GNU ודביאן ...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

זהו ? בטוחים ? אז הנה התמונה שתעלה  רגשות מעורבים :





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

המכונה המתארחת היא windows 10 תת גירסה 1803.


היופי הזה התקבל ע"י הסכמה להסכם השירות של virtualbox-ext-pack ושימוש ב vbox (שהוא לא בדיוק חופשי אבל נניח).

sudo apt install virtualbox virtualbox-dkms virtualbox-ext-pack

מה שהותקן אצלי הוא 5.2.10


בדיקת המחיצות שחלונות צריך לראות (כל מה שהיה לפניה) :

sudo fdisk -l /dev/sda
Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 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: 0xffffff

Device     Boot    Start       End   Sectors   Size Id Type
/dev/sda1             63     80324     80262  39.2M 
/dev/sda2  *       81920  25767935  25686016  12.3G  7 HPFS/NTFS/exFAT
/dev/sda3       25767936 500113407 474345472 226.2G  7 HPFS/NTFS/exFAT

יצירת דיסק שייגש לכונן ישירות :

sudo VBoxManage internalcommands createrawvmdk \
     -filename "/home/user/VirtualBox VMs/win10.vmdk"\
     -rawdisk /dev/sda -partitions 1,2,3      

וכמובן שינוי הרשאות בחזרה לכל מה שיש תחת 
/home/me/VirtualBox VMs/ 
לבעלות של המשתמש הנוכחי:

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

 לאחר מכן בVirtualBox צריך לייצר מכונת windows X64 אבל לבקש להשתמש בקובץ שייצרנו (win10.vmdk) להגיד תפילה ולקוות שלא נחטוף BSOD בפנים.

בדומה לבדיחה הרגילה, היו בעיות קול (קול מתכתי) אבל זה ככל הנראה בעיית הגדרה מקומית .

יום שישי, יוני 01, 2018

The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully

בשבוע האחרון לאחר אחד מהעידכונים המדהימים של חלונות 10 גיליתי שיש סרט רע בעיגון של מחיצת ntfs:


mount -t ntfs-3g /dev/sda3 /tmp/test 
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sda3': Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume


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

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

mount -o remove_hibernatefile -t ntfs-3g /dev/sda3 /tmp/test
Windows is hibernated, refused to mount.
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

מה שאפשר לעשות בשביל לפתור את זה זה ביצוע תיקון:

ntfsfix /dev/sda3
Mounting volume... Windows is hibernated, refused to mount.
FAILED
Attempting to correct errors... 
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Windows is hibernated, refused to mount.
Remount failed: Operation not permitted
לאחר מכן עיגון נוסף
mount  -t ntfs-3g -o remove_hiberfile  /dev/sda3 /tmp/test

וזהוא ניתן לבצע כתיבה קריאה בלי שום בעייה.

יום שלישי, אוגוסט 22, 2017

איך libxml2 לימדה אותי לבדוק בינאריים

אני ממש אוהב להשתמש בסיפריות צד שלישי.

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

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

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

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

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

בבדיקה באמצעות lib /list libxml2_a_dll.lib פרסה את שמות האובייקטים (במקום לציין את שם ה dll) ו
 link /dump /linkermember libxml2_a_dll.lib

פרסה שמות הערכים הפונקציות והמשתנים ללא _imp או_IMPORT מה שחיזק את ההבנה שלי שמדובר בחיבור סטטי. וזאת למרות שמדובר על dll שאמור להכיל את כל המידע הנדרש.

התיקון לבעיה הוא פשוט - יצרת קובץ def  וקריאה ל lib /def:mydef.def /out:libxml2_trulylgpl.lib.

יום חמישי, מאי 18, 2017

SQL 2016 for linux

בשקט בשקט , בסיס הנתונים שאני מחבב (לפעמים) הקרויי Microsoft SQL Server מתחיל להיות מותאם למספר הפצות :

אובנטו , סוזה ,rhel sles ונראה שאפילו משהוא חושב על דביאן

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

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

תוכן החבילה העיקרית הוא :

drwxr-xr-x root/root         0 2017-05-15 23:25 ./
drwxr-xr-x root/root         0 2017-05-15 23:25 ./lib/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./lib/systemd/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./lib/systemd/system/
-rw-r--r-- root/root       655 2017-05-15 23:25 ./lib/systemd/system/mssql-server.service
drwxr-xr-x root/root         0 2017-05-15 23:25 ./usr/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./usr/share/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./usr/share/man/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./usr/share/man/man1/
-rw-r--r-- root/root       778 2017-05-15 23:25 ./usr/share/man/man1/mssql-conf.1.gz
-rw-r--r-- root/root       411 2017-05-15 23:25 ./usr/share/man/man1/sqlservr.1.gz
-rw-r--r-- root/root      6731 2017-05-15 23:25 ./usr/share/man/man1/sqlpackage.1.gz
drwxr-xr-x root/root         0 2017-05-15 23:25 ./usr/share/doc/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./usr/share/doc/mssql-server/
-rw-r--r-- root/root      6231 2017-05-15 23:25 ./usr/share/doc/mssql-server/THIRDPARTYNOTICES.TXT.gz
-rw-r--r-- root/root       161 2017-05-15 23:25 ./usr/share/doc/mssql-server/changelog.Debian.gz
-rw-r--r-- root/root      4429 2017-05-15 23:25 ./usr/share/doc/mssql-server/LICENSE.TXT.gz
-rw-r--r-- root/root        37 2017-05-15 23:25 ./usr/share/doc/mssql-server/copyright
drwxr-xr-x root/root         0 2017-05-15 23:25 ./opt/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./opt/mssql/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./opt/mssql/lib/
-rw-r--r-- root/root 394530816 2017-05-15 23:25 ./opt/mssql/lib/sqlservr.sfp
-rw-r--r-- root/root    369760 2017-05-15 23:24 ./opt/mssql/lib/libunwind.so.8
drwxr-xr-x root/root         0 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/
-rwxr-xr-x root/root     92765 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/collations.txt
drwxr-xr-x root/root         0 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/
drwxr-xr-x root/root         0 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/
-rw-r--r-- root/root     15588 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-fr_FR.mo
-rw-r--r-- root/root     18933 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-ru_RU.mo
-rw-r--r-- root/root     13327 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-zh_TW.mo
-rw-r--r-- root/root       396 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-en_US.mo
-rw-r--r-- root/root     15434 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-es_ES.mo
-rw-r--r-- root/root     15378 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-ko_KR.mo
-rw-r--r-- root/root     15333 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-de_DE.mo
-rw-r--r-- root/root     13288 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-zh_CN.mo
-rw-r--r-- root/root     16272 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-ja_JP.mo
-rw-r--r-- root/root     14840 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-pt_BR.mo
-rw-r--r-- root/root     15132 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-it_IT.mo
-rwxr-xr-x root/root      9157 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/mssql-conf.py
-rwxr-xr-x root/root       313 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/invokesqlservr.sh
-rw-r--r-- root/root     24281 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/mssqlconfhelper.py
-rwxr-xr-x root/root       459 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/set-collation.sh
-rwxr-xr-x root/root       740 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/checkinstall.sh
-rwxr-xr-x root/root     10215 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/mssqlsettings.py
-rwxr-xr-x root/root     10763 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/mssqlsettingsmanager.py
-rwxr-xr-x root/root       115 2017-05-15 23:25 ./opt/mssql/lib/mssql-conf/checkrunninginstance.sh
-rw-r--r-- root/root 115310592 2017-05-15 23:24 ./opt/mssql/lib/system.common.sfp
-rw-r--r-- root/root     73728 2017-05-15 23:24 ./opt/mssql/lib/system.certificates.sfp
-rw-r--r-- root/root     49152 2017-05-15 23:25 ./opt/mssql/lib/secforwarderxplat.sfp
-rw-r--r-- root/root   8568832 2017-05-15 23:24 ./opt/mssql/lib/system.sfp
-rw-r--r-- root/root  19398656 2017-05-15 23:25 ./opt/mssql/lib/sqlpackage.sfp
-rw-r--r-- root/root    343296 2017-05-15 23:24 ./opt/mssql/lib/libsqlvdi.so
-rw-r--r-- root/root 318115840 2017-05-15 23:24 ./opt/mssql/lib/system.netfx.sfp
drwxr-xr-x root/root         0 2017-05-15 23:25 ./opt/mssql/bin/
-rwxr-xr-x root/root       983 2017-05-15 23:25 ./opt/mssql/bin/mssql-conf
-rwxr-xr-x root/root  21406504 2017-05-15 23:25 ./opt/mssql/bin/paldumper
-rwxr-xr-x root/root     12922 2017-05-15 23:25 ./opt/mssql/bin/crash-support-functions.sh
-rwxr-xr-x root/root      1652 2017-05-15 23:25 ./opt/mssql/bin/handle-crash.sh
-rwxr-xr-x root/root    873344 2017-05-15 23:25 ./opt/mssql/bin/sqlpackage
-rwxr-xr-x root/root    877440 2017-05-15 23:25 ./opt/mssql/bin/sqlservr
-rwxr-xr-x root/root       409 2017-05-15 23:25 ./opt/mssql/bin/compress-dump.sh


משום מה האורזים הלכו על opt ולא על תיקיות אחרות ,
תלויות :
 Version: 14.0.600.250-2
 Architecture: amd64
 Installed-Size: 859668
 Depends: libunwind8, libnuma1, libc6, adduser, libjemalloc1, libc++1, gdb, debconf, libcurl3, hostname, openssl (>= 1.0.1), openssl (<= 1.1.0), python (>= 2.7.0), libgssapi-krb5-2, libsss-nss-idmap0, gawk, sed
 Section: misc
 Priority: extra
 Description: Microsoft(R) SQL Server(R) Relational Database Engine
  The mssql-server package contains the Microsoft(R) SQL Server(R) Relational Database Engine.


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

יום רביעי, פברואר 22, 2017

KDE@HTML5


היום בעידן הHTM5 אחד הדברים שאני נהנה לראות זה התחברות מרחוק למערכת ע"י דפדפן בלבד, יש את זה אצל vmware ויש את זה בxen אבל פה מדובר על vnc.

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

המערכת עובדת ע"י הפעלת x11vnc בשביל להתחבר לsession קיים (בשונה משרתי vnc אחרים שמאפשרים חיבור ל session נוסף פה מדובר על הססן הנוכחי), בחרתי ב x11vnc ולא ב krfb כי x11vnc היה הרבה יותר מהיר.


apt-get install x11vnc
git clone git://github.com/kanaka/noVNC

יש להגדיר לx11vnc סיסמה  x11vnc -storepasswd

הפעלה ע"י תחת המשתמש שצריך לשתף את הססן שלו:


screen -d -m bash -c "x11vnc -shared  -rfbauth ~/.vnc/passwd"

screen -d -m bash -c "~/noVNC/utils/launch.sh --vnc localhost:5900"

אפשר להפעיל את זה תחת systemd כסרביס מה שיאפשר ביצוע login אבל לאחר משחק הבנתי שצירך שזה ידרוש התערבות גדולה יותר של המשתמש.

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

יום שלישי, פברואר 21, 2017

KDE@WIN10

הפעלת אפליקציות של KDE תחת Win10:




יש להפעיל את windows subsystem for linux   ב windows 10 , מה שידוע גם כאפשור lxss.

תחת וינדוס 10 לאחר איפשור של lxss התקינו ubuntu (הריצו bash)  ב cmd.
התקינו את KDE:
sudo apt-get install kubuntu-desktop
 
התקינו את xming הישן והטוב.

עירכו את הקובץ /etc/dbus-1/session.conf ושנו בו חלק האזנה ל tcp:host=localhost,port=0
זה יראה כך:
<listen>tcp:host=localhost,port=0</listen>
 
תחת bash for windows הריצו :

export display=:0

באותו המסוף בשביל להפעיל אפליקציות שדורשות dbus (כל מה שיש תחת KDE)הפעילו

export $(dbus-launch)

אחרון חביב הוא kstart plasma-desktop על מנת להפעיל את סביבת פלסמה.


המינוסים העיקירים :

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

יום שבת, דצמבר 03, 2016

Office365 mount forbidden

לצערי לא ניתן יותר להשתמש ב davfs2 בשביל לעגון תוכן משותף שיושב על office365 (שיתוף ע"ג sharepoint). גם תוכנות קוד פתוח דוגמת cyberduck נכשלות כשלון חרוץ , קונקי וחבריו לא הצליחו לתת לי פתרון סביר ללא מאמץ.

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

מניסיון העבר sharepoint בדר"כ משתמש בפרוטוקול webdav[s] וזה פשוט עובד מהקופסא, גם בויינדוס וגם בדביאן/רד האט.

יש מערכות שאתה צריך להזדהות פשוט ב http basic באחרות קרברוס ויש כאלה שדורשים OAuth. אבל ככל זה פשוט עובד. 

בעבר הייתי משתמש בcadaver ו mount.davfs2 בשביל העיגון :

עבור webdav אני משתמש ב davf2 ובשביל לעגן את החומר המשותף של VSA תחת 9.17.232.196 מספיק לשמור את פרטי ההתחברות ב  ~/.davf2/secrets כמו :

http://9.17.232.196/sites/VSA/ schenzel myPaSSwoRd

ואז פשוט ב cadaver או mount.

הפעם הדומיין שלי הוא example תחת sharepoint.com:

וניסיתי לשמור את הפרטים בצורה של  :
https://example.sharepoint.com/sites/VSA/ schenzel myPaSSwoRd

וזה נכשל עם שגיאה 403, גם ניסיון גישה באמצעות cadaver או אפילו גישה ל webdavs://example.sharepoint.com/sites/VSA בקונקורר נותן וריאציות של 403.

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

x-msdavext_error: 917656;
 Access+denied.+Before+opening+files+in+this+location%%2c+you+must+first+browse+to+the+web+site

הפתרון ? להתחבר ל https://example.sharepoint.com  באמצעות משהוא שיוכל לשתף עוגיות עם התוכנה איתה אתם מתחברים לרכיב (נגיד konqueror).

במקרה של konqueror מספיק פשוט להתחבר ל https://example.sharepoint.com ואז ניתן לגשת לכל הדברים המשותפים באמצעות webdavs לדוגמא ל:
webdavs://example.sharepoint.com/sites/VSA 

בגלל שמדובר על עוגיות והדומיין של העוגייה הוא example.sharepoint.com אז ניתן להשתמש בעוגיה עבור כל האתרים המשותפים (שנמצאים תחת sites/SITE_NAME). 

התיקיות שמעניינת אותי  בדר"כ זה (בהנחה שקוראים לsite כ VSA) :

webdavs://example.sharepoint.com/sites/VSA/Shared%20Documents/

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

יום שלישי, מאי 10, 2016

windows subsystem for linux

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

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

בשביל ההתקנה  יש לעבור ל developer mode ולהוריד preview (אני הלכתי על 14332) ,את ההורדה ביצעתי  באמצעות wget על וינדוס אבל אפשר גם דרך דפדפן.

בשביל להתקין תצטרכו לאשר את windows subsystem for linux תחת windows features בתוך programs and features.

לאחר איתחול הפעילו cmd ומתוכו הריצו bash וצרו משתמש (זאת כמובן אם אתם מסכימים לתנאי השימוש של ubuntu :) )




ההתקנה הולכת לתוך  %localAppData%\lxss אצלי היא לקחה 630 מ"ב .
מתחתיה התיקיות cache data home mnt root ו rootfs באופן מתפיע יש אפילו grub מותקן (רק שאני מאמין שאינו עוזר בשיט.

בשביל להסיר : lxrun.exe /uninistall

כמה דברים בסיסים להתחלה :

user@DELL-E6540:/proc$ uname -a
Linux DELL-E6540 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux

user@DELL-E6540:/mnt/c$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"

user@DELL-E6540:/mnt/c$ mount
rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,seclabel,relatime)
user@DELL-E6540:/mnt/c$ sudo df -h
df: cannot read table of mounted file systems: No such file or directory


לצערי בגלל הבעיה של proc דברים אחרים חשובים אינם עובדים כמו lsusb ו lsmod (מה שמונע שימוש בדברים כמו wvdial למשל) .

התחלתי לוודא אילו כלים שהיום עובדים לי בwindows יעבוד מתוך ה subsystem.

netcat עובד.
telnet עובד.
git-svn אינו עובד (נתקע).
nmap אינו עובד (Problem binding to interface).
ping אינו עובד (icmp open socket: socket type not supported)

מה אני אגיד לכם שימוש ב msysgit ו gnuwin נותן יכולות טובות יותר נכון לעכשיו.

יום ראשון, מאי 08, 2016

המפלצת היומית (כי מרי שלו לא נתנה לה שם)

על טעויות משלמים ומשלמים טוב, אם הקורא החביב צריך את המחשב לעבודה תעשה לעצמך טובה ואל תתקין Win10.

כפי שהזכרתי כבר מספר פעמים עברתי ל windows 10 ומאז כשאני רוצה לקלל אני פשוט אומר win10.

אחת התופעות היותר מדהימות שמצאתי היתה בעייה בדריברים הקשורים למודם;מה שמונע חיבור לאינטרנט באמצעות nokia pc suite / nokia pc internet access.

הפתרון הראשוני שלי היה לנסות לדלות את הדריברים שיש במודם/טלפון ע"י שינוי מצב המודם על לינוקס (שינוי DisableSwitching ל 1 בתוך /etc/usb_modeswitch.conf) ואז העתקת הקבצים לוינדוס בשביל להתקין. אמנם הצלחתי לקבל גישה לקבצים ולהתקין אולם זה לא עזר. תשאלו למה צריך לשלוף בצורה ידנית דרך לינוקס ? כי תוכנת ההתקנה עובדת מאחורי הגב ותכשיל פעולה עם גרסאות הדריבר לא מתאימות (וזו בדיוק הבעיה שצריך לפתור) ולא מצאתי דרך להעביר מודם למצב cdrom בוינדוס ללא התקנת תוכנה חיצונית.

הפעולה גרמה לזיהוי של שני רכיבים ע"י windows שנקראו CDC Comms interface ו Generic Phone ( אך ככאלה להם אין דריבר ), שימוש ב scan for devices (מה שאומר להפעיל שרשת פעולות שתתקין דריברים דרך וינדוס ) לא עבדה גם לא הפעלה check for updates  מה שבתורו הוביל אותי לבעיית ה Preparing to install updates 0% (למרות שזה זיהיה שיש עידכונים לבצע רק נשאר ב 0% במשך כחצי שעה המחשב אותחל והמשכתי הלאה).

לאחר מכאן המשכתי לשימוש ב Nokia PC suite  ו Nokia Suite. בנקודה מסויימת כבר חזרה לי היכולת לראות את תוכן הקבצים ולקבל גישת SMS (צפיתי בSMSים במכשיר)



הפתרון הנאיבי שלי לאחר שהגעתי למצב בו יכלתי לצפות ב SMS היה יצרת התקן באמצעות dialup connection  שמחייג ל  *99***1# עם התוספת במאפייני החיבור/מודם.

+CGDCONT=1,"IP","internet.isp.tld" 

נכשל עם 628 (ניתוק בגלל המערכת המחייגת).

כשניסיתי להשתמש בconnect to internet של suite ושל Nokia PC internet Access (כאומר המכשיר זוהה) - חיכה לאין סוף ונכשל.

כשניסיתי עם Nokia PC Suite היה נכשל שוב. גלשתי לי למאפיינים של המודם אבל גם כשערכתי את המאפיינים המתקדמים של הדריבר (modems->drivername->advanced->extra initlialization commands) הוא היה מחליף ל
+CGDCONT=,,"internet.isp.tld"

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

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

מצאתי workaround  חופשי למחצה העברת רכיב ה USB לתוך המכונה הוירטואלית והסתמכות על הקרנל של המכונה הוריטואלית בשביל לתמוך בגלישה.

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

מה שעשיתי היה להתקין VM של virtual box ובתוכו להרים debian.

בתוך הדביאן התקנתי מראש wvdial וקינפגתי :
[Dialer hack]
Phone = *99***1#
Username = user
Password = pass
Stupid Mode = 1
Dial Command = ATDT
Modem = /dev/ttyACM0
ISDN = 0
Baud = 460800

Modem Type = USB Modem
Init1 =ATZ
Init2 =AT+CGDCONT=1,"IP","internet.isp.tld";

הגדרתי עבור ה VM שכל רכיבי ה USB יעברו פנימה (אפשר להגביל רק פר רכיב בודד) ,
ואז מתוך ה VM הפעלתי wvdial hack מה שנתן לי חיבור לרשת מתוך ה VM דרך רכיב הרשת המחובר כ USB למחשב המארח שמריץ win10.

זה עקום כמו פתרון מיפוי ב 2015 הבנוי על בסיס  silverlight אבל זה עובד בנתיים.

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

להפעיל את המחשב מחדש (כאשר המודם בחוץ) , להתקין suite ישן (אני התקנתי מ 2011) ולא לעשות windows update להפעיל מחדש את המחשב, לחבר את מודם ולהתקין את הקבצים שחילצנו בהתחלה (להתקין את ה Nokia PC Internet access ) עכשיו להסיר suite ולהפעיל מחדש.

נפלאות דרכי ה win10

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

בשבוע שעבר נחשפתי לפטיצ'ר פשוט מדהים:

בערך רבע עד חצי שעה לפני הצגה שהייתי צריך לעשות מכונות ה Win10 שלי החליטה שהיא לא מזהה יותר את כרטיס האלחוט שלי, גם העברה ממצב on  ל off ובחזרה ל on לא החזירה את הרכיב (שימוש ב scan for changes תחת devices לא תרמה מאומה).

בוינדוס כשהייתי לוחץ על האייקון של ה Wireless קיבלתי את ההודעה המשמחת no wireless devices found (יכול להיות שהמלל היה טיפה שונה).

ע"פ מייקרוסופט אם יש לך VPN  התכונן לבעיות :

After you upgrade a computer that has virtual private network (VPN) software installed from Windows 8.1 to Windows 10, no wireless networks are listed as available.

This is true even when the wireless network adapter seems to function correctly. If you restart the computer or you try to reinstall the wireless network adapter driver, this does not fix the problem.

This problem may also prevent wired Ethernet connections from functioning correctly. This affects connections that are made through either a built-in Ethernet adapter or a USB Ethernet adapter.
צריך לבצע את הפעולה הבאה בממשק המשתמש הטקסטואלי :

reg delete HKCR\CLSID\{988248f3-a1ad-49bf-9170-676cbbc36ba3} /va /f

המקרה שלי זה לא VPN (כי לפי גוגל זה בדר"כ קורה למי שיש לו VPN של Cisco).

טוב , בגלל שזו לא הפעם הראשונה שזה קורה לי ב win10 , הפעלתי את ה nokia pc internet connection בשביל לנסות לעבוד.

נחשו מה רבה היתה ההפתעה שלי שעכשיו גם המודם שלי לא מזוהה - התוכנה לא מזהה חיבור , לפי ה  Network Connections המודם נמצא במצב disconnected ולא עובר למצב מחובר ללא תלות בשום שינוי דבר שאני עושה : הכנסה / הוצאה של ה USB או אפילו שינוי המאפיינים במכשיר.

ה workaround שלי היה להחליף מחשב, ולחכות לטוב. לאחר מספר שעות לאחר שהפעלתי שוב את המחשב פוף הWiFi חזר (בלי שום התקנות חדשות ובלי שום שינוי נוסף שעשיתי) אבל ה Nokia PC interenet access עדיין לא עבד.

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

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

ניסיון באיתור הדריבר (לחיצה על scan for new devices) הובילה לתקיעה ו restart הוביל ל DRIVER_POWER_STATE_FAILURE

מכירים את זה שבין שינוי לשינוי צריך לאתחל ? אז תחת ה win10 האיתחול לוקח מעל דקה (ממצב מופעל למצב מופעל) אפילו במחשב נייד מ 2006 (שיש לי לידו) שרץ עליו systemd וKDE זה הרבה יותר מהיר.


נ.ב. בלינוקס זה לא קורה והמודם עובד מצויין דרך wvdial.

 win10 %%#%%#. 

יום שלישי, מאי 03, 2016

מנפלאות ה Win10

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

ידעתי ששידרוג למערכת ההפעלה Win10 הולך להיות כואב רק לא הבנתי עד כמה, אבל נדרשתי  לבצע וביצעתי והנה אני ב 10.

לאחר שעברתי ממערכת עובדת של Win7 וביצעתי שידרוג ל Win10 גיליתי תופעות מדהימות. אני חייב להגיד שבמהלך עבודתי ב 7 לא נתקלתי בבעיות כאלה במחשב הזה (Latitude E6540).

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

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


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

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

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

שימוש במנהל העידכון של Dell (דרך האתר ) והתקנה של כל מה שהוא טוען שצריך להתקין - בוצע ולא עובד.

הורדה ועידכון של הקיט ב Intel -ניסיתי לא עובד, על הדרך נזכרתי בתענוג של פעם למה הינו עובדים עם קבצי DEF כשהיינו בונים קבצי DLL  :




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

הסרה של כל אחד מהתקני ה USB , לחיצה על Refresh  ולתת למערכת להתקין לבד - לא עבד.

שינוי ה registry , הסרת הדריברים הסוררים , מחיקה של קבצי ה inf מתוך %systemroot%\inf 
לאחר מכן ביצוע מחיקה של הדריברים מתוך device mangaer וביצוע scan for changes. -  לא בוצע .

בחירת דריבר שגויי תחת device properties ,ביצוע disable , איתחול מחדש , הסרה , ריענון של רכיבים זבח של בתולה לאל השמש  - עבד יש לי רכיבי usb שחזרו לעבוד.


סוף וודו .

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

נוסיף לזה כמובן את ביטול האפשרות לביצוע noise cancelation - ב win 7 היתה אפשרות לבטל את הרעש הסטטי של המיקרופון תחת הטאב enhencments ב 10 האפשרות נעלמה כאשר משתמשים בדריברים של דל (או של מיקרוסופט). אם מתקינים את הדריבר 2.7 של realtek האפשרות מוחזרת אבל אז אין קול כאשר משתמשים בheadset.

כמה דברים יפים שגילתי היו למשל העובדה  F8  במהלך העלייה לא נותן Safe Mode , ובשביל להגיע ל Safe  Mode צריך ללחוץ על shift לאחר כניסה ואז ללחוץ על הכפתור Restart (או לבצע דרך msconfig).

עוד נקודה שמפריעה לי מאוד היא חוסר הקיום של תוכנה בסגנון של sudo, כן אני מבין שאפשר ללכת וללחוץ על האייקון ובתפריט לבחור Run as administrator , הדבר הכי קרוב לעבודה כזאת היה ביצוע runas  ביחד עם טסריט מוכן אבל זה עקום כמו שימוש  ב silverlight על KDE.

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

שמו את תיקיית הבית תחת users (המקבילה ל home)

בצעו הפרדה של התקנת תוכנות פר מערכת %program files% + %programdata% (המקבילים ל /usr/bin ו /usr/share)

נתנו ממשק בו כל משתמש יכול להחזיק קבצי הגדרה ספיציפים אליו %Appdata% (המקביל כנראה ל ~/.local/share/ )

בנו מערכת הרשאות לשימוש UAC (אני מאמין שהדבר הקרוב ביותר זה AppAromor אבל אשמח לתיקון) .

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

בשביל לקבל גישה לקבצים במערכות כמו דביאן אני פשוט אפעיל chown בוינדוס 10 הפקודה נקראת takeown שצריך להפעיל ממשק משתמש טקסטואלי (CLI).

במערכות כמו דביאן כשצריך לערוך קבצי הגדרות צריך להשתמש ב sudo או משתמש בעל הרשאות , הפלא ופלא ב Win10 כאשר פתחת קובץ לעריכה (נגיד etc\drivers\hosts) צריך שהאפליקציה תופעל כ Administrator בשביל לבצע עריכה (או להיות מחובר ל Administrator ב Safemode שזה המקבילה ל root).

אם יש UAC מופעל לא מצאתי דרך כמו ב sudo לאשר פעולות או תוכנות מסויימות אם אלו לא חתומים (חתימת אפליקציה נעשת ע"י signtool והחותמת צריכה להיות מופעלת על ידי group policy ).

במערכות כמו דביאן ו ארץ' קבצי ההגדרות נמצאים במספר מקומות (במיוחד /etc ) ב Win10 יש קובץ רגיסטרי וקבצי ini שצריך לערוך בשביל לשנות הגדרות כשיש תקלה.

במערכות כמו דביאן כאשר יש בעייה במנהל התקן אפשר יהיה לבצע לו פשוט blacklist , ב Win10 אני צריך ללכת להסיר אותו מה registry ללכת ולהתפלל לטוב.

בפעם הבאה כמשהוא רע קורה, ומסננים איזה קללה יש לי הצעה פשוט לסנן Windows10.

יום רביעי, אפריל 27, 2016

הצטרפתי אל הצד האפל.

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

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

המשכתי לנסות להפעיל את תוכנת ה update עם דגל updatenow שגם הוא לאחר הורדת win10 נכשל שוב.

רק לאחר שהורדתי את MeidaCreateTool ויצרתי ISO, עיגנתי את ה ISO עם תוכנת WinCDEmu והפעלתי את מערכת העדכון הצלחתי להתקין.

מרגע הפעלת ה setup ועד reboot לlogin לקח שעה 25 (אני עם כונן SSD ובחרתי לשמור את כל האפליקציות על המערכת).

מאז ימי WinXp אני לא זוכר סרטוני קדימונים כאלה אבל יאללה קיבלנו.


git המשיך לעבוד.
אבל git-bash הוסר מתפריט התוכנות , ביצוע git svn rebase מכבה את המסך .
marble עובד.
pidgin  עובד

Nokia Pc Internet Access ממשיך לעבוד.

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

לא ניתן להגיע ל Administrative Tools בצורה פשוטה , צריך לחפש את הUtility שאתה צריך להשתמש בה. 

רכיב ה Ethernet  החליט שהוא לא מזוהה ולא עובד עם DHCP רק שWireshark מזהה traffic, לאחר חיבור כרטיס אלחוט והתחברות לאותה הרשת הוא התחיל לעבוד.

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

מרגע תחילת התקנה - ועד יכולת לעשות build  ב VS (שהיה מותקן לפני זה ) - 8 שעות.

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

יום שני, אפריל 25, 2016

שימוש בשירותי גוגל בפידג'ין



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


על ידי שימוש בפלאגין של  XMPP ועל ידי שימוש בפלאגין חיצוני של Hangouts.


הייתרונות שימוש באפשרות ה XMPP :
תמיכה מובנית בשיחות קול ווידאו
הרגל
מובנה בתוך פיד'ין עצמו (לא דורש התקנה נוספת)
העברת קבצים מתבססת על הגדרות המערכת ולא על אפשרויות השרת.
 משתמש באותה הסיסמה כמו Gmail
חיסרון -  כאשר נשלחות הודעות המכילות תמונה מHanguots יתקבל קישור דרך Google+ לצפייה בתמונות.

Hangouts:

דורש סיסמא ייחודית דרך OAUTH2.
תמונות שנשלחות מוצגות בתוך התוכנה ללא צורך בשימוש ב Google+.

חסרונות:
אינו מכיל תמיכה בשיחות קול ווידאו.
אינו נמצא בתוך פידג'ין (דורש התקנה נוספת)
מזוהה כ IOS.

יום שישי, אפריל 22, 2016

תקלות קידוד שפה בבסיס נתונים PostgreSql.

תקלות קידוד שפה בבסיס נתונים  PostgreSql .

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

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

הקורא הממוצע ישאל מה יש לכותב כנגד שפות שהן לא אנגלית אמריקאית ?

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

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

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

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

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

סיבה קלאסית היא הסתמכות על הקידוד מערכת ההפעלה ושימוש בקידוד ברירת מחדל, כשאנו למשל מדברים על עברית זה יכול להיות : UTF16* , ISO-8859-8, UTF8, CP1255,CP 862 ,ISO646.

ממה שאני ראיתי לרוב באפליקציות מהעשור האחרון דובר על CP122 ו iso8859-8 (לא נתקלתי במצב הגיוני של UTF16 או 8 כברירת מחדל עד היום).

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

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


אם יש לנו גישה לקוד המקור נוכל להגדיר את הקידוד ברמת ה session (במקרה של ODBC) -
לדוגמה עבור PG ניתן להגדיר את הקידוד בצורה הבאה :

"SET client_encoding= 'UTF8'"

ואז לשלוח את המידע כשהוא עבר קידוד ל UTF8 (כל מחרוזת שנשלח צריכה לעבור קידוד ישירות ל UTF8 לפני ההגעה לקו)

פתרון נוסף הוא בחירת הקידוד ברמת החיבור בהנחה שהדריבר שאנו עובדים איתו תומך בunicode :

std::string url = "odbc:postgresql://url:ip/databse&client_encoding=UTF8"

חשוב לציין שאם מחרוזת החיבור נובעת מ DSN אז אפשר לבצע את ההחלפה גם בתוך ה DSN עצמו.

במידה ומשתמשים ב DSN תחת FreeTDS שם הפרמטר הוא ClientCharset והקידוד הוא לפי iconv ובגרסה הקניינית שם הפרמטר הוא Charset.
אצל אורקל שם הארגומנט הוא DatabaseCharacterSet


במידה במידה ואנו עובדים עם קידוד פנימי של שני בתים (wchar_t/UCS2)  ולא יכולים לשנות את מחרוזת החיבור הוא להחליף את הדריבר הרגיל לדוגמה psqlodbc.so ל psqlodbcw.so) ולהתבסס על המרת ברירת מחדל (בגרסאות ישנות של posgresql הפתרון היה פשוט להשתמש ב UCS2 ל UCS2 אם גם השרת וגם הלקוח הם עובדים על וינדוס).

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

המרה  ברמת הפעולה בבסיס הנתונים תראה בערך כך :

convert ( text , 'sourceencoding' , 'destencoding')

הממרה ברמת השפה איתה אנו משתמשים תראה בערך כך :

Perl:
$internalEncoding = decode( 'iso-8859-8', $var );
$result = encode( 'utf-8', $internalEncoding );
Java:
Charset utf8 = Charset.forName("UTF-8");
Charset iso8859_8 = Charset.forName("ISO-8859-8");
CharBuffer data = iso8859_8.decode(inputBuffer);
ByteBuffer output = utf8.encode(data);


iconv - C:

iconv_t cnv = iconv_open("UTF-8", "ISO_8859-8"); if (-1 == cnv) { return ; }
int ret = iconv(cnv, &text_in_8859_8, &length_of_text_in_8859_8, &text_in_utf8, &length_of_text_in_utf8);


יום רביעי, מרץ 30, 2016

למה msysgit זה דבר כל כך טוב ?

עומרי שאל למה אני מתלהב כל הזמן מmsysgit (כן הפרוייקט עבר דירה) ?

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

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

שוב פעם טעו בתאריך ?


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

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

ע"פ פרסומים זרים מדובר על subsytem שלם (בדומה ל win32 ? ) שיש כאלה שטוענים שיאפשר הפעלה של קוד לינוקסאי (לא קרנל לצערי) אני לא יודע אם זה לא בלון כמו Astoria או שזה יהיה ה wine של וינדוס.

אז מה זה אומר בשבילי ? 

כנראה אין יותר צורך או בעייה ב msysgit או סביבת GNU לוינדוס שאני כל הזמן ממליץ עליה. וכמובן שכנראה הרבה מאוד וירוסים הולכים לפגוע בנו. אבל מצד שני אם הפלאגינים הטבעיים ב VS2015 אינם מסוגלים להתמודד עם git כמו שצריך לצפות שמערכת זרה תעבוד זה פשוט יותר מדי.

גם אם תהיה יכולת הפעלת ELFים (ואני בספק שזה יעבוד) אני לא רואה שום יתרון של זה על gnuwin.


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


 לא זה עדיין לא הראשון באפריל , זה נראה רציני....
 
 

יום ראשון, מרץ 13, 2016

שידרוג שדוחפים לך לגרון

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


זה המשיך להתקנת maleware ע"ג IE והמערכת עצמה שהזכירה ודרשה שצריך לעדכן למערכת ה"חדשה".

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

הנידנוד וההורדה אולי נשמעים קנטרניים מהצד , אבל ניקח מקרה ממוצע של משרד קטן עם 70 עמדות.
ניזכור כי על ה traffic ועל איחסון אנחנו משלמים כסף טוב (מי שטוען שהוא לא משלם על רוחב פס ועל איחסון שידבר עם איש ה IT שלו כמו הוא משלם על IAAS), וזה קצת מעצבן שפתאום ביזבזתי 210 ג"ב מהטראפיק החודשי (במזל פחות על איחסונו) רק בגלל ש windows החליט שזה רעיון טוב להוריד את הגירסה לפני התקנה.

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

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

מי שיש לו VS2015 ו VS2013 ביחד עם SQL Server  מקומי על מחשב צריך להכין את קיט ההתקנה של כולם לפני השדרוג , להרבה אנשים השידרוג ל 10 דפק את VS ו SQL Server (אני לא יודע מה המצב ללא SQL Server כי תמיד השלשה מגיע ביחד אצל כל מי שאני מכיר).

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


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

למי ששואל למה אני לא רוצה את win10 על מערכות שלי ?

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

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

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

אני משתמש ב skype ו (skype for buisness) כחלק מיום העבודה שלי, בחרתי בסקייפ במקום בספקים אחרים כי הוא עשה את העבודה טוב יותר (למרות ש google voice היה מצויין בזמנו הוא פשוט לא מתפקד יותר). בגלל שאני (ורבים אחרים) לא אהבו את הדיווחים על הגירסה העדכנית של סקייפ בחרנו שלא לבצע upgrade - פתאום התחלתי לקבל דיווחים מאחרים כי למרות שלמי שיש גירסה ישנה אין שום בעייה לבעלי גירסאות מעל 7.5.0.101  יש.

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

למה אני לא אוהב את הרעיון הזה ? כי קודם כל המצב של לקוחות ה SIP החופשיים בוינדוס הדרדר מאוד, נכון לעכשיו היחיד שבקושי עובד הוא yate-qt (אבל הוא לא תומך בהכרזת מספר טלפון המקור)

כלומר אם אני שיחה בתוך הדומיין אין בעייה, אבל אם אני רוצה לעשות שיחה נניח ל sip://user@other.tld:8080 אני צריך לחייג sip/sip:user@other.tld:8080 אבל אני לא מכיר יכולת להגדיר שהמספר המקומי שלי נקרא sip:me@mydomain.tld או tel:+12015550123;phone-context=other.tld

ב yate-qt אין לי ממש אפשרות לקבל הודעות SIMPLE.

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

ואני כבר לא מדבר על חוסר התמיכה ב webrtc  של הלקוחות האלה - הפתרון שלי ?

בבקשה לא לצחוק יותר מדי - הפעלה של לקוח yate-qt לביצוע שיחות ו pidgin שעובד עם simple.

יום ראשון, פברואר 14, 2016

עדכון ל win10

אתה מפתח או איש IT שעובד בסביבת וינדוס ? כנראה שבסוף החודש תתכיל לראות תופעות הזויות במיוחד.

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

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

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

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

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

יש גם פיטצר מדהים ה onedrive שעליו דיברתי בעבר, הוא סיוט לא קטן בגלל שהוא דופק קבצים ביום ש onedrive יעבוד מהקופסא ע"ג webdav או כל פתרון אחר שאפשר לעשות לו net use זה יהיה קילר פיטצר אבל עכשיו זה פשוט זללן טראפיק שדופק קבצים - להסרה .

כמובן לכבות כל מה שאפשר במה שהם מכנים כ"פרטיות".

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


באורך נס מחשב מסויים ששודרג לwin10 לא דרש התקנה של כל הדברים, רק VS , SQL ו openvpn. באופן אפילו מפתיע לטובה openvpn תיפקד על מכונת וינדוס 10 ללא בעיות מיוחדות (משתמש ב TAP).

אני לא יודע אם זה באג שלא שמתי לב עליו אבל פלאגין ה GIT  ב VS המובנה לא אפשר לעשות commit (אפשר לעשות push אבל לא commit) .

כמעט כל תוכנה מחבילת gnuwin שבדקתי עבדה לי די טוב.

ssh הפסיק לעבוד מתוך ה command line אבל מתוך git-bash עובד (כנראה משתני סביבה נהרסו).

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

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

יום רביעי, דצמבר 09, 2015

בחיאת העידכון

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

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

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

מדובר על חיבור קווי של 15 מסל"ש , כונן SSD ו 16 ג"ב ראם כמה זמן אי עבודה ייקח Serivce pack לסביבת הפיתוח VS 2015 ?

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

‎רק בשביל לסבר את האוזן זה התקנה שמכילה רק Visual C++‎ לא משהוא מיוחד (רק 8 ג"ב עידכון נדרש).

לפי מה שאני מבין כל מי שדיברתי איתו בימים האחרונים שמשתמש ב Win7 עובד ב C++‎ ומתקין את  Visual Studio 2015 Update1‎  קיבל משהוא דומה Downtime של רבע יום ומעלה ותהליך שדורש ביצוע repair כי יש ריסוק בדרך.

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