השירות הצבאי שלי – חלק ראשון

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

יום הגיוס והבקו”ם

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

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

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

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

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

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

An idea on how to fight adware/spyware

This is a short idea… adware and spyware authors rely on connecting to some of Windows’ (or Internet Explorer’s) services through the Windows Registry. Generally speaking, there’s a DLL somewhere, which is pointed to by a GUID in the registry.

It’s possible to know, from the DLL, which interfaces the classes inside implement and implement their interfaces yourself. Then, by changing the pointing GUID in the registry to a new DLL, which implements the same interfaces, Windows will load your stub DLL (which does nothing, for example) and this will disable the malicious software.

I admit that I didn’t look into it in enough detail to make sure it works, and right now I don’t feel like infesting my computer with crapware (nor am I going to buy virtual PC software) so I’m just wondering if it’s a good idea.

Gizmo Blogs

Here are two gizmo blogs, which I visit regularly: Gizmodo and Engadget. It’s not only because of the cool stuff that they show there, it’s also the way they present it – with a lot of humor and a cynical attitude, which goes well with the weird products some companies choose to manufacture.

Pluggable Compiler

While reading this post about C# 3.0 on MSDN Blogs I thought about an idea to make pluggable compilers. Let me explain:

In every programming language the language designers have to decide which features go into the language and which features stay out. These decisions are crucial to the development of a language and the rate of adoption of it. Once a decision to include a language feature is made, it cannot be undone.

So the idea is to make the compiler pluggable, in the sense that you could include lingual features you’re interested in and exclude others. This could be used to streamline the development style in a team of programmers, for example. In the companies that I have worked for so far, using advanced programming techniques, which were great to use but you had to go through a learning curve to understand, was frowned upon. In production code there’s not always room for creativity at the price of code readability.

A pluggable compiler won’t be easy to make. It will have include a parser, which will know to which compiler plugin it should address when it finds a certain syntax, and different feature syntaxes may interfere with one another. Now I’m wondering if it is even possible to make a plugin-based compiler. Maybe just having the possibility of turning off some language features could be nice. But it’s just an idea.

MLRS – My Little Relay Station

Previously, I wrote about experimenting with TAPI3. TAPI3 is Microsoft’s implementation of a Telephony API for Windows. One of the new things in TAPI3 (except for being implemented using COM) is that in TAPI3 the abstraction of the API goes beyond phone devices, and also includes H323 (which is a Voice over IP protocol) telephony.

Seeing that I thought to myself that a nice project would be to create a way to use your home computer to make local phone calls over the Internet. For example, let’s say you travel outside your country to a place where there is an Internet connection. The idea was that you would connect to your computer at home, instruct it to dial (using a modem) and talk to a person in your local area.

For a while I thought this idea could even be extended to a peer-to-peer network of people allowing calls to be made using their computers while they are out of their homes. Think about it – a person goes to work and leaves her phone line unused for all that time of the day when she is at work. This line can be used, by people who live far away, to make free calls (assuming local calls are free).

However, today phone rates are dropping as more and more VoIP infrastructures are being established. The relay station idea is no longer such a big motivator for people to use. Maybe the peer-to-peer thing can be implemented with a different technology, which is available today, in an easier way.

I wrote some code to get the MLRS to work. Unfortunately, I had a problem with my computer’s crappy hardware (or at least I think that was the problem), so I stopped developing this one.

Oh, and one more thing… I know that MLRS also stands for Multiple Launch Rocket System. The pun is definitely intended.

The Daily WTF

The Daily WTF is a forum style website, but is actually a blog where you can see, every day, examples of the funniest “design patterns” and code you have ever seen. Code samples that will truly make you go “WTF??!!” to the point of disbelief that anyone actually wrote them.

Miranda IM

Miranda Instant Messenger is the IM software I use. I like it for quite a few reasons:

  1. It connects to almost any protocol there is.
  2. It has a small footprint, both on your computer’s hard drive and in its memory.
  3. It is extensible, in the sense that its architecture is plugin-based, which lets you extend the program in many ways, and even replace “built-in” functionality with your own.

People have done wonderful and unexpected things with this program, as you can see by browsing Miranda IM’s plugin database.

I started using Miranda IM when I started working for Motorola. At the time, the firewall only allowed the official Yahoo! Messenger client to go through (as it falls back to HTTP when direct connection cannot be established with Yahoo!’s servers). So I decided to write the Relay Plugin for Miranda, which uses Miranda’s multi-protocol capabilities to act as a relay between protocols. Something like this:

Me at work, connected to Yahoo! < ———–> Miranda IM at home with the Relay plugin, connected to Yahoo! and MSN < ———–> My friends on MSN

The Relay plugin also motivated other people to create relay-like plugins, like mBot Relay agent plugin, forward plugin and yaRelay plugin. This actually makes me kind of proud.

I think this plugin is great, but it is now outdated since the intoduction of the Miranda scripting plugin, which spawned the creation of Web Miranda (also a plugin) and now you basically can have Miranda working from anywhere in the world using nothing but a web browser.

I continued to develop for Miranda, though. After experimenting with TAPI3, I put Caller ID into a plugin and created the Caller ID plugin. The cool thing about this plugin is that it uses my own Relay plugin to tell me when someone calls in. So when I’m at work and someone calls my apartment, my computer at home IMs me about it with the number. A neat trick to show your geek friends, that’s for sure.

Problems with Hebrew

I was going to post some stuff today in Hebrew, but unfortunately I have problems with the blog at home, which is supposed to be an exact copy of this blog.

The problem is that I can’t add posts in Hebrew. They come out all with question marks. It’s very strange, because the same blog exactly works on this server.

Nevermind. I’ve tried to mess with it for too long. I’ll post in English until I figure it out.