جمعه، اسفند ۰۷، ۱۳۸۸

Gavin King, You are my hero

Tonight I read a blog post by Norman Richards, fellow JBoss and Seam developer, who has recently left Redhat to work for a startup. In his post, he shares his last interview experience with a big company. It is a quite interesting read. But more interestingly an idiot asshole named John Smith put a comment like this:
"I think you are a prima donna on this issue. They don't know you from anything. Lots of programmers have had jobs for years but don't know much about programming. I talked to someone who had been programming in Java for 5 or 6 years and they said something like "I never know if I'm supposed to build one or two classes for an app that I write". On paper this person looked like they were experienced. After talking to them, their way of programming in Java is something we wouldn't want to deal with.
So, yes, you are being a prima donna for not answering the basic questions. It's a good thing they "failed your screen" because with an attitude like yours I think you would fail my screen too. I want a team player who is willing to work with the slower developers and mentor them, not someone with an attitude who can't be bothered with that stuff."

And here comes Gavin King! For those of you who may don't know him, let me introduce him shortly. He is the creator of Hibernate and Seam frameworks and one of the true brilliant programmers today. Working with Seam was an eye-opener for me and I really like his thinking style about Java EE. Also he is not a conservative intellectual like many others, when he should speak, he does it very well ;) Look at his answer to John Smith below:
"John Smith, you're an idiot.
Norman is the author of successful books on Java technologies and has worked as a core developer of innovative technologies at JBoss for something like 5 years. He's not a guy who spent 5 years building internal web applications using JSP like you and your team, and his resume would have shown that. If the person interviewing Norman doesn't already know something about the projects Norman has worked on, then that person doesn't have the necessarily level of expertise to interview him. Simple as that.
Yes, he's a prima donna, because he's earned the right to be. In his position I would have thanked the HR guy for his time and quickly hung up the phone. Because there is no way in hell I would want to work for any company which insulted me like that. And no, John Smith, you don't want someone like Norman or I on your team, because (a) we're more senior than you, (b) we think you're an ass, and (c) your project bores us to tears :-)
And I think Norman's post is interesting and shows why large companies have problems attracting the most talented people. The most talented people *are* often prima donnas, and don't often have time for timewasting bureaucracy. That's why Norman is working at a startup company, and why big companies are filled with seatwarmers like John Smith."

چهارشنبه، اسفند ۰۵، ۱۳۸۸

میانبرهای گوگل ریدر

چند وقتی می شه که علاقه عجیبی به بهینه کردن کارهام با کامپیوتر پیدا کردم. جرقه این کار یاد گیری میانبرهای اکلیپس بود که باعث شد سرعت کد زدن و انجام کارهای تکراری خیلی ساده تر بشه. دیشب طبق معمول داشتم توی گوگل رید می گشتم، به سرم زد برم ببینم میانبرهای کیبوردش چجوری هستند و فکر می کنم بعد از یک ساعت کار کردن با صفحه کلید به جای ماوس، زندگی گوگلی من متحول شد!

برای دیدن لیست همه میانبرها دکمه ؟ را فشار دهید. در این بین دکمه های زیر به نظرم بهترین بودن:
g f: لیست دوستانی رو که دنبال می کنید رو می بینید و می توانید با نوشتن حروف اول نام اون رو پیدا کنید (go to friends)
g u: مثل حالت قبلی اما برای لیست اشتراک ها
m: بین وضعیت read/unread سوییچ می کند
n , p: مطلب بعدی و قبلی را در مد List View می آورد
u: نمایش تمام صفحه مطالب
j, k : خواندن مطلب بعدی یا قبلی
جیمیل هم میانبرهای مشابهی داره که فکر می کنم بعد از 6 سال استفاده ماوس جالب باشه اونا رو هم یاد بگیرم

جمعه، بهمن ۳۰، ۱۳۸۸

مورچه خوار

در زمان وب 2.0 شاهد ظهور Startup های مختلفی مثل فیسبوک، تویتر، فریندفید، دیگ و ... بودیم که مثل قارچ در سراسر اینترنت رشد کردند. بعضی از این Startup ها خود به غول های اینترنتی تبدیل شدند و بسیاری هم توجه زیادی جلب نکردند و از بین رفتند. چند وقت پیش فکر می کردم که دیگر جایی برای ایده های جدید در وب 2.0 باقی نمانده است. تمامی سایت های جدید شامل مجموعه ای از قابلیت های شناخته شده مثل Like, Share, Comment و ارسال به فیسبوک و تویتر هستند. حتی گوگل با این سطح نو آوری هم چیز جدیدی با Buzz به ما عرضه نکرد. یک مینیاتور فیسبوک در جیمیل!

تا این که هفته گذشته در اخبار خواندم که گوگل کمپانی به نام Aardvark را خریده است. کنجکاو شدم که بدانم این سرویس چیست. Aardvark یا مورچه خوار یک سیستم پرسش و پاسخ آنلاین است. چیزی شبیه Yahoo! Answers ولی با ویژگی های جالب تر و پاسخ سریع. ابتدا شما در این سایت ثبت نام می کنید و مشخص می کنید که در چه زمینه هایی تخصص دارید. وقتی کسی یک سوال در این زمینه ها می پرسد مورچه خوار با شما تماس می گیرد (اگر آنلاین باشید از طریق خود سایت و در غیر این صورت با گوگل تالک یا جیمیل) و از شما می خواهد که به سوال پاسخ دهید. چگونگی تماس و تعداد آن در روز قابل تنظیم است.
نکته بسیار جالب در مورد این سرویس سرعت پاسخگویی است. وقتی شما یک سوال می پرسید تقریبا در عرض 2 تا 3 دقیقه پاسخ خود را می گیرید و معمولا جواب ها قابل قبول هستند. مورچه خوار در شبکه کاربران خود می گردد و بهترین فرد پاسخ دهنده را انتخاب می کند.انتخاب نام مورچه خوار برای این سرویس نیز بدلیل همین امکان جستجو در شبکه و پیدا کردن پاسخ دهنده است. اکنون علاقه گوگل به این سرویس کاملا برای من واضح است. دسترسی به پایگاه داده این سایت و امکان آنالیز آن این امکان را فراهم می کند که گوگل به سوالات شما نیز پاسخ دهد!
کارکردن با این سرویس تجربه جالبی است و به قول یکی از دوستان حس مفید بودن به آدم دست می دهد! توصیه من این است که همین امروز مورچه خوار را امتحان کنید.

The Cute Cat

This image is cropped from the Cats Anytime theme of Windows 7! This is the cutest cat I've ever seen! :) Love it!

پنجشنبه، بهمن ۲۹، ۱۳۸۸

چه کسی دوست شماست؟

یکی از تفاوت های دنیای واقعی و مجازی ماهیت دوستان و سطح دوستی هاست. بعد از محبوب شدن شبکه های اجتماعی مثل فیسبوک، یکی از اولین کارهایی که افراد پس از عضویت انجام می دند اینه که هر کسی رو حتی یک بار هم دیدن به لیست دوستان خود اضافه می کنند. واقعا چه چیزی یک نفر را واجد صلاحیت لازم می کنه تا من او را به عنوان دوست در فیسبوک اضافه کنم؟
افرادی رو که در دنیای واقعی می شناسم گروه بندی های مختلفی دارن. دوستان کاملا صمیمی که می تونم در مورد همه چیز باهاشون صحبت کنم و با هم خوش بگذرونیم. دوستان محیط کار و دانشگاه که هنوز خیلی صمیمی نشدن و روزی چند ساعت می شه اونا را تحمل کرد و بعضا آدمای جالبی از توشون پیدا کرد. بعضی ها که باهاشون سلام علیک داریم و بعضی ها که اصلا ترجیح می دیم شکل نحسشون رو نبینیم.
حالا چیزی مثل فیسبوک رو در نظر بگیرید که همه این چیزها رو به هم می ریزه. توی فیسبوک معمولا همه هم کلاسی ها و همکاران و بعضی از اساتید و مدیران و ... رو به لیست دوستان اضافه می کنیم. من همیشه این حس رو داشتم که همه این افراد کسانی نیستند که من بتونم اونا رو به عنوان دوست بشناسم و بخوام مطالب رو باهاشون به اشتراک بگذارم. تابستان گذشته حدود 200 دوست فیسبوکی داشتم که الان رسوندمش به 130 و تصمیم دارم که 30 تا دیگشو هم بندازم بیرون! تنها دوستان گذشته، کنونی و آینده من و آدم هایی که بخواهم ازشون خبر داشته باشم در لیست من جا خواهند داشت.
تازه در مورد قبول درخواست دوستی هم خیلی محتاط شدم. مثلا یه دختر هم دانشگاهیه سابقم که قیافه خیلی تخمی هم داشت اومده درخواست دوستی داده. آخه یکی نیست بهش بگه که کسخل ما در طول 5 سال دانشگاه حتی یک بار هم سلام علیک نداشتیم حالا واسه چی میخوای داشته باشی؟
یا این بابا مدیر فروش پروژه که عین این عقب افتاده ها هو هو میخنده اومده منو add کرده. آخه من با تو چه صحبتی دارم که منو اینجوری تو رودرواسی میذاری؟ حالا تا کارم باهاش تموم نشده نگهش می دارم بعدش هم میندازمش بیرون. تنها مورد استثنا که کسی رو که نمیشناسم ولی به عنوان دوست اضافه می کنم اینه که اولا دختر باشه و ثانیا خوشگل! حداقلش اینه که حتی اگه صحبتی هم پیش نیاد هر چند وقت یک بار عکس های مهمونیشو آپلود می کنه و سرگرمی خوبیه. معمولا میشه توی لیست دوستاش هم گشت و چند تا دختر خوشگل دیگه هم اضافه کرد. Some piece of Art برای پروفایل شما. با مزه ترین اتفاق هم این بود که بعضی ها رو که از لیستم حذف کردم دوباره منو add کردن و من هم reject کردم و خیلی حال داد.
نظر شما در مورد معیار دوستی در دنیای مجازی چیه؟

چهارشنبه، بهمن ۲۸، ۱۳۸۸

Lost in translation

توی یکی از پست های قبلیم نوشته بودم که بهتره اسم های خاص رو فینگلیش بنویسین و خودتون رو از شر ترجمه به انگلیسی راحت کنید. چون معمولا این ترجمه ها خیلی پرت هستند و تخمی از کار در می آیند مثل نمونه زیر که امروز بهش بر خوردم و کلی خندیدم. دوستمون حداکثر خالص تسهیلات رو Pure Extreme of Facilities ترجمه کرده بود و متغییری به این اسم در کلاس قرار داده بود! حتی اگر ترجمه کلمه به کلمه رو هم در نظر بگیریم خیلی پرته.

دوشنبه، بهمن ۱۹، ۱۳۸۸

the Stockholm syndrome

Today I've got my first application rejection letter from Sweden. Here it is:
Dear --------,

We would like to thank you for your interest in the Erasmus Mundus Programme EMDC.

The assessment for category A applicants for the Erasmus Mundus Master’s Programmehas now been finalized. We regret to inform you that your application has been unsuccessful.

Your application, nr. -----, did not fulfil the general requirements and was not processed further. General requirements encompass English requirements, acompleted Bachelor’s degree of a minimum of 180 ECTS credits or equivalent academic qualifications from an internationally recognized university, and correct certification of the application documents.

Listed below are the most common reasons why an application is considered ineligible.

English requirements

· There is no proof of English language proficiency submitted.

· The test results did not meet the standards set by the programme.

· If you’re education was in English, this must be evident from the transcript of records or from a written statement from the degree administration/ examinations office (or equivalent department) at your university. Certifications and statements made by professors or the head of department are not accepted.

· The TOEFL-test results were not sent directly from ETS to KTH.

· The TOEFL-test results arrived at KTH after the deadline.

Bachelor Degree

· The requirement of a degree from an internationally recognized university that is listed in the Unesco World List was not fulfilled.

· The requirement for undergraduate studies equivalent to three years of study at a Swedish university, i.e. a Bachelor's degree equivalent to a Swedish Kandidatexamen (180 HE/ECTS credits), was not fulfilled.

Correct certification

· The application was not sufficiently supported by officially certified documentation. Diplomas from previous education and transcripts of completed courses and grades must be submitted. Copies should be stamped and signed by the issuing institution or a notary public both in original language and translation.

· If your degree was awarded in Cameroon, Canada, Eritrea, Ethiopia, Ghana, Nigeria, Sudan or USA, an official transcript of record should have been sent directly from your university in a sealed envelope.

· If your degree was awarded in Pakistan it should be sufficiently attested and signed by the Higher Education Commission, HEC. Each page of the transcripts and diplomas must be attested by the HEC.

· Students who do not hold the required degree, but are registered for the last semester of a programme leading to a degree, can be conditionally accepted. An official document stating this must be included in the application. Certifications and statements made by professors or the head of department are not accepted.

· During the assessment process, requests for diploma/transcript verification are sent to the issuing universities. If the efforts to verify the documents have been unsuccessful or if the issuing university, or college, requires a fee for verifying the documents, your application will not be processed further.

· The signature and/or stamp on your diploma/transcript, or the document itself, does not correspond with our reference material from your university. Efforts to verify the documents have been unsuccessful.

Please don’t hesitate to apply next year. Application rounds for 2011 entry will open in autumn 2010. Information on the website will be updated in due course.



Kind regards,

KTH (The Royal Institute of Technology)

Admissions Office


Last year I've got the same message from Studera (The institution which processes applications for various Swedish universities). They even didn't answer my questions later.
This was an Erasmus Mundus application that I sent directly to KTH this year! It was submitted before 30th November and now I receive this stupid letter after 80 days. They even did not bother themselves to explain exactly why my application was not successful.
To feel the difference let me tell you another story. I have also applied for a university in the Netherlands. Upon arrival of my documents they notified me that your English results are missing. I contacted ETS and they confirmed that my test results are sent. After some E-Mail communication they have agreed to continue my application conditionally. Two days later my English test results arrived and they confirmed its arrival either. It is still in process. Can you see the difference? Responsiveness and Respect are two essential properties which obviously some institutions and countries don't poses.
"Please Don't hesitate to apply next year????" Yeah Sure! You asshole motherfuckers! I have also applied via Studera this year. I have sent my documents on 20th January but there is no indication of their arrival yet. Because KTH were also amongst my choices this year, I wait till mid May and then I know what I should say to them!

جمعه، بهمن ۱۶، ۱۳۸۸

این هفته: چه موقع می توان این (سیستم عامل) را لینوکس نامید؟


حد اکثر تا قبل از آنکه که گوگل لینوکس را روی دستگاه های قابل حمل رونق ببخشد. اما واقعا آندروید با لینوکس چه رابطه ای دارد؟
اخیرا به یکی از دوستان گوشی مایلستون موتورولا را نشان دادم. همین که اشاره کردم که این گوشی با آندروید کار می کند گفت: "آهان، این همان لینوکس گوگل برای گوشی های همراه است. اوپن آفیس روش اجرا می شه؟" مجبور شدم او را ناامید کنم، اما این موضوع این سوال را در ذهنم ایجاد کرد: وقتی که واسط کاربری (GUI) و API توسعه (Development API) متفاوت است، آیا هنوز این سیستم عامل لینوکس است؟
اکثریت لینوکس کارها می دانند که برروی دسکتاپ یا سرور مبتنی بر لینوکس در اصل مجموعه ای از یک کرنل سیستم عامل، کتابخانه های سیستمی، برنامه ها و یک واسط کاربری اجرا می شود. لینوکس به طور دقیق تر فقط به کرنل اطلاق می شود اما توانسته است خود را به عنوان اصطلاحی که به مجموعه کرنل، POSIX-API (به طور دقیقتر API پایه استاندارد لینوکس)، ابزارهای GNU، X11 و گنوم یا KDE بشناساند. این گونه کلاسیک لینوکس تنها یک امکان ساخت یک سیستم عامل کامل بر پایه کرنل لینوکس است که در جهت حفظ میراث یونیکس و استانداردهای آن قرار دارد.
برای مثال آندروید تنها شامل کرنل لینوکس (با چندین تغییر که آن را با کرنل استاندارد ناسازگار می سازد) و تعداد کمی از کتابخانه های اصلی و آشنای لینوکس است. تازه توسعه دهندگان از این ویژگی های لینوکسی چیزی نمی بینند زیرا همه برنامه بر روی ماشین مجازی جاوا دالویک (Dalvik) اجرا می شوند و توابع آندروید تنها از طریق API جاوا Android SDK قابل دسترسی هستند. همچنین Android Native Development Kit که در داخل دالویک تعبیه شده است تنها از طریق یک برنامه دالویک قابل استفاده است. کسی که یک سیستم آندروید دارد به هیچ وجه نمی تواند چیزی را در آن پیدا کند که تداعی گر لینوکس باشد.
آیا با این وجود آندروید یک لینوکس به حساب می آید؟ آن چه واضح است نه به معنای یک سرور یا دسکتاپ لینوکس. سوال این است که وسایلی که از کرنل لینوکس استفاده می کنند اما API معمول لینوکس را برای برنامه ها فراهم نمی کنند را چه باید نامید؟ می توان به آنها “Linux-Powered” گفت اما تنها وقتی که این موضوع به طور واضح بیان شود که یک سرور یا دسکتاپ لینوکس چیز کاملا متفاوتی است.
در این مساله تنها مربوط به تکنیک ساخت سیستم عامل نیست بلکه مساله آزادی و باز بودن نیز در میان است که چه کارهای با این وسیله ممکن است. کاربر باید بداند که سیستم های “Linux-powered” - نسبت به آنچه از توزیع های مرسوم لینوکس می شناسد - به معنای آزادی عمل کمتر است و همچنین این که بر روی چنین دستگاه هایی هر برنامه لینوکسی اجرا نخواهد شد (حتی وقتی سورس کد آنها در دسترش باشد و آنقدر تمیز نوشته شده باشند که بر روی هر گونه لینوکس قابل کامپایل و ترجمه باشند).
ما از بنیاد لینوکس (Linux Foundation)، صاحب امتیاز نام تجاری لینوکس، پرسیدیم که آیا در این موضوع (لینوکس نامیدن این سیستم عامل ها) سردرگمی کاربر را تهدید نمی کند؟ جیم زملین مدیر عامل بنیاد لینوکس این چنین پاسخ داد:
"پلاتفرم لینوکس در سطوح مختلف با روش های مختلف یکپارچه می شود. اولین سطح که کرنل است به طور کامل در سراسر اکوسیستم لینوکس یکی است. هر کس بخواهد که سخت افزارش توسط لینوکس پشتیبانی شود، کد خود را به سادگی به کرنل استاندارد در kernel.org اضافه می کند.
در دومین سطح کتابخانه های سیستمی مانند پایه استاندارد لینوکس (Linux Standard Base) وجود دارند که یک مجموعه از کتابخانه ها را تعریف می کنند که توسعه دهندگان لینوکس در همه انواع لینوکس انتظار دارند. اکوسیستم برای اجرای برنامه ها بر روی سطح بسیار بالاتری تعریف شده است، جایی که بازار تصمیم می گیرد کدام نسخه های لینوکس موفق هستند. آندروید برای مثال یک سیستم عامل محبوب برپایه لینوکس برای دستگاه های قابل حمل است. در آندروید محیط اجرای جاوا مشخص می کند که چه برنامه هایی سازگار هستند و آن ها را در بازار آندروید قابل دسترسی می کند. Palm Pre نیز یک مفهوم مشابه اما با یک محیط اجرای دیگر و یک SDK دیگر است. حتی Kindle آمازون نیز یک SDK جداگانه برای برنامه ها دارد.
همه این ها دستگاه های بر پایه لینوکس هستند و کسی گیج نمی شود. اکوسیستم های متفاوتی برای برنامه ها بر روی سیستم های لینوکسی متفاوت وجود دارند که همگی در لایه های عمیق داخلی سیستم به صورت واحد باقی می مانند."
در دومین سطح کتابخانه های سیستمی مانند پایه استاندارد لینوکس (Linux Standard Base) وجود دارند که یک مجموعه از کتابخانه ها را تعریف می کنند که توسعه دهندگان لینوکس در همه انواع لینوکس انتظار دارند. اکوسیستم برای اجرای برنامه ها بر روی سطح بسیار بالاتری تعریف شده است، جایی که بازار تصمیم می گیرد کدام نسخه های لینوکس موفق هستند. آندروید برای مثال یک سیستم عامل محبوب برپایه لینوکس برای دستگاه های قابل حمل است. در آندروید محیط اجرای جاوا مشخص می کند که چه برنامه هایی سازگار هستند و آن ها را در بازار آندروید قابل دسترسی می کند. Palm Pre نیز یک مفهوم مشابه اما با یک محیط اجرای دیگر و یک SDK دیگر است. حتی Kindle آمازون نیز یک SDK جداگانه برای برنامه ها دارد.
همه این ها دستگاه های بر پایه لینوکس هستند و کسی گیج نمی شود. اکوسیستم های متفاوتی برای برنامه ها بر روی سیستم های لینوکسی متفاوت وجود دارند که همگی در لایه های عمیق داخلی سیستم به صورت واحد باقی می مانند."

ترجمه مقاله Wann darf man Linux dazu sagen