ארכיון חודשי: פברואר 2013

הארץ סוגרת את התוכן, ללא מתן תמורה לקורא

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

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

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

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

  1. תן לי להרכיב את הידיעות והנושאים שמעניינים אותי בלבד
  2. עזור לי להסביר לך מה באמת חשוב ומעניין אותי, ותן לי תוכן בכיוון הזה (כלומר קהל היעד העיקרי שלך הם מתכנתים כמוני, אז תן להם תוכן שקשור בזה בעולם הטכנולוגיה)
  3. תן לי לנהל דיונים אמיתיים על כתבות, כולל עם הכתבים שלך על מה שנכתב – סגנון slashdot ולא טמקא …
  4. אפשר לי לשלם על ידיעה בודדת שאולי תעניין אותי, ולא על מנוי, כך שבמקום שאשלם על מנוי כאשר פעם בחודש אתה מפרסם ידיעה שמעניינת אותי, אוכל לשלם רק על מה שמעניין אותי באותו הזמן
  5. תן לי לנהל ידיעות – כלומר לשמור ידיעות שפרוסמו, לדעת למצוא אותן וכו'
  6. תן טעימות קטנות גם למי שאינו מנוי – תן לי לקרוא רבע מאמר מעניין ולהחליט מה הלאה (זוכר את הרכישה של מאמר ספציפי ?)
  7. צור קהילה סביבך, כזו שתרגיש שאתה הבית שלה, נגיד תקרא לה קפה דה מארקר ?

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

FPC 2.6.2 שוחרר

השבוע שוחרר FPC 2.6.2 המכיל בעיקר תיקוני באגים, אשר חלקם הם שינויים ב API או בהתנהגות של פונקציות/מחלקות בשביל לתקן את הבעיות.

  • מתודות שונות בTDataset שונו במבנה שלהן, והוחלפו מPChar ל TRecordBuffer‏
  • DLLParam שונה מ longint ל PtrInt‏
  • פונקציות וסמלים ביחידות unix וunixutils סומנו כ deprecated‏
  • התנהגות TStrings.DelimitedText שונתה
  • בfcl-image‏, TTiffIDF שונה ל TTiffIFD‏
  • היחידה libc מחזירה אזהרת deprecated‏
  • הוסרה התמיכה עבור UPX בקבצי ה Makefile‏

הסבר מלא בנושא השינויים

My Database-free Application lecture

Today I gave a lecture about database-free applications.

Most people who first read the title, thought that "oh you probably write to memory or disk or something", yet the lecture is not about storing data, but on one approach of designing systems to work.

It is a completely different thing, yet I find that many people can't see it, they are looking for the "catch".

This post was written prior to the actual lecture itself (a day before in fact 🙂 ), so I can't tell if my lecture was good enough or not, but you have my slide notes, and the whole lecture (using html5 and reveal.js -> firefox or chrome recommended), so take a look and tell me yourself 🙂

Planet Object Pascal

I'm glad to announce the creation of Planet Object Pascal.

I have created it in order to provide one place to have all known blog and knowledge of the Object Pascal developers (Virtual Pascal, Free Pascal, Delphi etc…)

If you have a blog that writes about Object Pascal, feel free to contact me, and I'll add you to the planet.

Having said that, I'm looking for a way to better design this, and at the long run, write something a newer system, then continue and using the unmaintained planetplanet system.

הדגמה מתקדמת לשימוש ב TFPSMap

בFPC 2.2.0 נוספה ספריה בשם fgl בייחד עם התוספת לשימוש ב Generics.

הספרייה מאפשרת לקבל שני מימושים של מחלקות, האחת עובדת בגישה הרגילה של שימוש במצביעים ו/או TObject לבצע פעולות, והשניה לעבוד עם generics.

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

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

לזרוס, חדשות תקופתיות

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

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

ביום שני האחרון (4/02/2013) שוחררה גרסה 1.0.6 של לזרוס אשר מכילה תיקוני באגים בלבד.

בינואר שוחרר הסבר כיצד ניתן לפתח עבור Raspberry Pi באמצעות לזרוס.

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

מנוע המשחק Castle שיחרר גרסה 4 שלו. המנוע מאפשר לספק API גבוהה לפיתוח משחקים, התחברות למודלים (כדוגמת אלו הנבנים עם blender), ועוד.

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

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

אחרון חביב לפוסט זה, הוא Community של FPC/Lazarus ב Google+‎ שאתם מוזמנים גם להצטרף לשם כמובן.

My first python application

It's that time of the thing again – I'm required to learn new technology due to a project requirement.
The requirement is to write something using django, but I do not know django or Python.

So I've started my first project using the Python language, just to have a feel for it.

My first project is to convert my (in)famous quote file into a database, so I choose Firebird db for the task, using Python driver named fdb. It is very robust open source RDBMS, that many people over look, and choose unreliable RDBMS known as MySQL/MariaDB instead (but why ?!).
Here is the DDL of my database, it's simple as you can see, but has so much abilities 🙂

My code is not perfect, and require a lot more optimization, and polishing, but I'm getting there using the help of my friend – Meir, who loves the idea that a Ruby dev like myself arriving into the python world 🙂

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

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

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

משום מה החליטו בפרוייקט "ממשל זמין", ליצור סרגל כלים המכיל דברים כמו תעודות הצפנה מבוססות סוקט (SSL/TLS מישהו ?), חתימה דיגיטלית על מנת לגשת למקומות כמו הגשת טפסים מיוחדים (ריח העו"ד עולה לאוויר), תשלום רישיונות וכו'. אממה. הוא תומך רק ב2 דפדפנים – IE ופיירפוקס (טוב לפחות יש חלופה). והם גם מכירים בכך שאנשים עובדים בלינוקס, אז סרגל הכלים יותר גם להתאים את עצמו ללינוקס (יש צדיק בסדום ?).

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

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

מדוע להגביל דפדפנים, ופשוט לא לעבוד לפי תקנים ?

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

My First Lazarus plugins – split lazarus

I have released today v0.0.1 b2 of my first ever Lazarus plugins – Split Lazarus.
This plugins allow users to split view source code using the Lazarus IDE.

split_lazarus_v001 b2

The following release is just to provide a look and feel, and request for help with testers etc… and by no mean should be used otherwise.
I must say that it was not so simple to arrive to this version due to few factors:

  • First time of writing such thing
  • For debugging my own code, I need to debug the IDE, because I'm executed from within
  • Found a bug with FPC class
  • There are things that I thought that works in one way, but actually in much different way
  • So I needed to rewrite code in that level as well …
The following release contains only few features, such as syntax color, and fonts that are copied from the original editor.
It also provide a splitter between the original editor and the new one, and should not support anything else. So if you find that it does something else, it was by mistake 🙂

The plugins install itself into the Editor tab menu, and also allow you to register a shortcut for it's actions that by default are empty.

Installation:

  • Open the package menu
  • Choose the option of open package file (.lpk)
  • Open the file under the package directory named lazsplitview.lpk
  • At the new opened window, press on compile to make sure that the source can be build. Then choose "Install".
  • You'll be prompt for a question if you wish to build it now, answer "yes"
  • Lazarus will be booted up and enjoy 🙂

Split Lazarus v0.0.1 build 2

לפני חודש בערך, הזכרתי כי אני כותב תוסף ללזרוס.

split_lazarus_v001  b2

התוסף מאפשר לעשות split view עבור העורך של לזרוס, ובכך לאפשר לבצע עריכה ו/או צפיה בקוד תחת 2 view ports על אותו טאב בעצם.

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

  • פעם ראשונה שאני עושה דבר כזה
  • לדבג קוד למערכת הזו אינו פשוט – צריך לדבג את ה IDE בעצם מתוך ה IDE‏
  • מצאתי באג בספריות של FPC אשר דורש התייחסות
  • יש המון דברים שחשבתי עליהם בגישה איקס ומסתבר שהם ממומשים אחרת בפועל
  • מה שאומר ששכתבתי קוד יותר מפעם או פעמים להגיע לגישה הנכונה

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

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

הוראות התקנה

פתחו בלזרוס את התפריט package ושם בחרו באפשרות open package file (.lpk)‎.
בספריית התוסף, בחרו את תת הספרייה בשם package ושם את הקובץ lazsplitview.lpk .
לאחר שנפתח לכם חלון של החבילה, לחצו קודם על כפתור compile לבדוק כי אין בעיות בבניית התוסף, וכשזה מסתיים, בחרו ב install.
לאחר אתחול מחדש של לזרוס, התוסף כבר מותקן אצלכם.