یادداشت‌های عمومی من

تلاشی برای مفید‌تر بودن

یادداشت‌های عمومی من

تلاشی برای مفید‌تر بودن

پنجشنبه, ۸ فروردين ۱۳۹۸، ۰۱:۱۴ ق.ظ

هند

برای چندمین بار بود که وبلاگ برنامه‌نویس‌های جوان هندی را می‌دیدم که در شرکت‌های خوب دنیا مشغول به کار شده‌اند. حدسم درست از کار درآمد: سربازی در هند اختیاری است :)

India has never had mandatory military service, either under British rule or since independence in 1947. In WWII the Indian Army became the largest all-volunteer force in history, rising to over 2.5 million men in size. It has since maintained the world's second largest army after China and the world's largest all volunteer army.

https://en.wikipedia.org/wiki/Military_service#India

۰ نظر ۰۸ فروردين ۹۸ ، ۰۱:۱۴
محمد حسین سخاوت
پنجشنبه, ۲۷ دی ۱۳۹۷، ۰۷:۳۵ ب.ظ

Get The Sh*t Done

GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD GTSD 

۰ نظر ۲۷ دی ۹۷ ، ۱۹:۳۵
محمد حسین سخاوت
چهارشنبه, ۲۲ دی ۱۳۹۵، ۰۱:۱۳ ق.ظ

انگیزه

شب‌هایم را دوست دارم؛ گویی در بیداری‌ام خواب می‌بینم؛ تخیلم شعله می‌گیرد و جوگیر می‌شوم. روزها بیشتر روی زمین با واقعیات سر و کار دارم و شب‌ها پر می‌کشم در آینده و آرزوها و امکان‌ها و فرصت‌ها و انگیزه‌ها...

صبح‌هایم را دوست ندارم؛ صبح که بیدار می‌شوم گویی تمام منظره‌های دیشب را از یاد برده‌ام. گویی واقعا خوب می‌دیده‌ام و هرچه شب نزدیک‌تر می‌شود، یادم می‌آید آن آرزوها و امکان‌ها و فرصت‌ها و انگیزه‌ها.

باید تغییری ایجاد کنم؛ که صبح‌ها هوشیارتر بیدار شوم...

۰ نظر ۲۲ دی ۹۵ ، ۰۱:۱۳
محمد حسین سخاوت
دوشنبه, ۲۸ تیر ۱۳۹۵، ۰۵:۱۵ ب.ظ

Ruler

God has ruled the world and NO ONE ELSE WILL EVER RULE.

۰ نظر ۲۸ تیر ۹۵ ، ۱۷:۱۵
محمد حسین سخاوت
شنبه, ۲۹ خرداد ۱۳۹۵، ۰۳:۱۶ ق.ظ

زندگی عادی

چند وقتیه «مدیریت زمان در زندگی عادی» خیلی شدید ذهنم رو مشغول کرده و دارم سعی می‌کنم برای اون تدبیر کنم. که خود همین تدبیر کردن وقت زیادی رو ازم گرفته.

--

برای من، تا الآن زندگی دو حالت داشته: ۱) زندگی بحرانی؛ ۲) زندگی عادی.

  • زندگی بحرانی:

وقتی که یک هدف بحرانی (خیلی مهم‌تر نسبت به بقیه اهداف و پر زحمت و مقطعی با موعد نزدیک) داشته باشیم، مثل قبول شدن توی یک امتحان مهم، یا به اتمام رسوندن یک پروژه مهم، منطقیه که از اکثر منابعمون (مثل زمان، فکر، انرژی) برای اون هدف خاص استفاده کنیم. «حداکثر زحمت» رو برای رسیدن به اون هدف بکشیم. طبق اصل پارتو یا هشتاد-بیست، اینکه ۸۰ درصد تمرکزمون رو روی هدف اصلی و ۲۰ درصد رو روی بقیه امور بگذاریم، شدنیه.

طبیعتا در یک بازه زمانی کوتاه از اکثر سایر ابعاد زندگی صرفنظر می‌کنیم و تمرکزمون میشه اون هدف (یا بحران)؛ و بعد از به نتیجه رسیدن، به «زندگی عادی» بر می‌گردیم.

  • زندگی عادی (غیر بحرانی):

وقتی که یک هدف بحرانی نداشته باشیم، یعنی یا هدف خیلی مهم‌تر از بقیه اهداف نداشته باشیم، یا هدف مهم با موعد نزدیک نداشته باشیم، زندگی عادی داریم؛ 

--

در زندگی عادی، «مدیریت زمان» تفاوت زیادی با زندگی بحرانی داره. در زندگی بحرانی، حق داریم امور «مهم و غیر فوری» از دسته‌بندی آیزنهاور رو با خیال نسبتا راحت صرفنظر کنیم؛ اما در «زندگی عادی» نه. 

نتیجه مدیریت زمان در زندگی بحرانی، «حل یک بحران خاص» با «آسیب کمینه به بقیه ابعاد» زندگی هست. اما نتیجه مدیریت زمان در زندگی عادی، «رشد متناسب در تمام ابعاد» و «جلوگیری از پیش‌آمدن بحران» است.

--

چند گزاره از نظر بنده:

  • بعضی وقت‌ها «زندگی بحرانی» آنقدر که اسمش بار منفی دارد، تلخ نیست... لذت‌بخش هم هست. 
  • اگر در شرایط بحرانی، عادی زندگی کنیم، یا برعکس در شرایط عادی، بحرانی زندگی کنیم، ضرر بزرگی می‌کنیم. «بازخورد گرفتن» لازمه‌ی تشخیص شرایط است.
  • عادی بودن یا بحرانی بودن شرایط، وابسته به ارزش‌ها، توانایی‌ها و پیش‌زمینه‌های هر فرد است. رسیدن به یک هدف یکسان می‌تواند برای یک فرد مستلزم زندگی عادی و برای فرد دیگر زندگی بحرانی باشد. می‌گفت:

هر چقدر تو زندگی آدم برا یه چیزایی زحمت بکشه؛ یه سری با زحمت کمتر به اون چیزا رسیدن. برا همینه که آدم باید همیشه خودش رو با خودش مقایسه کنه.

۲ نظر ۲۹ خرداد ۹۵ ، ۰۳:۱۶
محمد حسین سخاوت
شنبه, ۴ مرداد ۱۳۹۳، ۱۲:۴۶ ق.ظ

Von Neumann Style

  1. Determine your Goal
  2. Make a Decision
  3. Find the Solution
  4. Focus on YOUR Duty
  5. Do your BEST
  6. Bon Appetit. goto 1
۱ نظر ۰۴ مرداد ۹۳ ، ۰۰:۴۶
محمد حسین سخاوت
يكشنبه, ۲۲ تیر ۱۳۹۳، ۰۲:۵۷ ق.ظ

انتخاب شماره‌ی گلچین سیم‌کارت همراه اول

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

#!/usr/bin/bash
# sample usage: ./script.sh 9129376600
start=$1 trap ctrl_c INT function ctrl_c(){ echo "checked $start - $i" exit 0 } mkdir mci 2>/dev/null for ((i=$start; $i>0; i=$i+1)); do if [ "true" = "`curl -s http://sim.mci.ir/chk-number-availability?number=0$i`" ]; then touch "mci/0$i"; echo "0$i"; fi done

من تقریبا تمام شماره‌هایی که تا امشب برای تهران با پیش‌شماره ۹۱۲ باز بودن رو در آوردم. (دریافت)

با یه اسکریپت دیگه‌هم می‌تونید این‌ها رو بر حسب یک تابع roundness مرتب کنید:

#!/usr/bin/ipython
from random import shuffle
b = !ls mci/
shuffle(b)
cnt = lambda s: sum(1 for i in zip(s+'#', '#'+s) if len(set(i))==1)
print '\n'.join(sorted(b, key=lambda s: len(set(s))-0.5*s.count('0')-0.5*cnt(s)**2)[:100])

و راحت‌تر شماره‌ رو انتخاب کنید :)

۱ نظر ۲۲ تیر ۹۳ ، ۰۲:۵۷
محمد حسین سخاوت
پنجشنبه, ۲۴ بهمن ۱۳۹۲، ۰۶:۴۸ ب.ظ

عرق ملی

تازگی تعداد سوال‌هاییم که مهلت یافتن جوابشون تموم میشه دارن زیاد می‌شن.
یکی از این سوال‌ها این بود که «چرا آدم باید نسبت به محل تولدش تعصب داشته باشه؟» این رو تقریباْ هیچ جوابی براش پیدا نکردم.

اما از طرفی دلیل دارم برای این‌که هر کسی باید بالاخره نسبت به یه کشوری احساس تعلق کنه و خودش رو اون-کشوری بدونه. حالا من باید یه کشوری رو انتخاب کنم که خودم رو متعلق به اون کشور بدونم. سوالی که پیش میاد اینه که چرا ایران؟
جواب‌های زیادی شنیدم از این و اون ولی قانع نشدم. قانع‌کننده ترین دلیلی که شنیدم تا حالا اینه که ایران و اسلام رابطه‌ی نزدیکی به هم دارن و ارزش ایران به اسلامی بودنشه (که این، بحث زیادی داره). یکی دیگه از دلیل‌ها این بود که افرادی هستند که برای من با ارزش‌اند و «برای، آنکه ایران، گوهری جالودان شوووووود، خوند دل‌ها؛ خورده اند. خون دل‌هاا خوووورده ااااند. لالالالالالالای...». زحمت و خون‌دل اون‌ها برای من ارزش داره. یه دلیل دیگه اینه که خانواده‌ و دوستانم ایرانی اند و اصلا به شخصه نسبت به ایران احساس علاقه می‌کنم، نمی‌دونم چرا :) اما این‌ها کافی نیستند. یعنی میشه یه کشوری رو فرض کرد که این خصوصیت‌ها رو برای یک نفر داشته باشه ولی وطن خوبی نباشه. مثل کشور پیامبر (ص)، بعد از رحلتشون که خلفای ناحق حکومت می‌کردند؛ که ایران اینطور نیست ان‌شالله.

متاسفانه کشوری که ارزش آن را داشته باشد که من از ایران دل بکنم و خودم رو مال اون کشور بدونم پیدا نکردم. در نتیجه به دلایل مذکور، باید بگم که من یک ایرانی‌ام و برای آبادانی کشورم تلاش می‌کنم :) امیدوارم اوضاع ایران آنقدر خوب بشه که نسل آینده با اطمینان بیشتری به پاسخ «ایران» برای این سوالشون برسن.

پاینده باد، ایران.
۱ نظر ۲۴ بهمن ۹۲ ، ۱۸:۴۸
محمد حسین سخاوت
شنبه, ۱۴ دی ۱۳۹۲، ۱۲:۱۰ ب.ظ

تنبل

نباش!

۱ نظر ۱۴ دی ۹۲ ، ۱۲:۱۰
محمد حسین سخاوت
شنبه, ۱۴ دی ۱۳۹۲، ۱۱:۳۶ ق.ظ

مشکل Unknown SSL protocol error برای ایرانی‌ها

به نقل از ویکی‌پدیای فارسی، پروتکل SSL/TLS به برنامه‌های Client/Server اجازه می‌دهد که در شبکه از طریقی که از شنود و جعل پیام جلوگیری می‌کند، با یکدیگر ارتباط برقرار کنند. این پروتکل احراز هویت و ارتباط مطمئن در اینترنت را از طریق استفاده از رمز نگاری فراهم می‌کند.

این پروتکل نسخه‌های متفاوتی دارد. این نسخه‌ها از SSL 1.0 شروع شد تا SSL 3 و بعد شد TLS 1.0 بعد TLS 1.1 و در حال حاضر جدید ترین آن‌ها TLS 1.2 هست. طبیعتا جدید ترین نسخه، بیشترین امنیت را دارد. اما به لطف دست‌کاری‌های دوستان حاکم بر زیرساخت اینترنت ایران، امکان استفاده از هیچ کدام از این نسخه‌ها بجز SSL 3 برای ما ایرانی‌ها فراهم نیست.

برنامه‌ها هم بصورت پیش‌فرض سعی می‌کنند از جدید ترین نسخه که TLS هست استفاده کنند، اما چه می‌دانند که اینجا ایران است :) در نتیجه مثلا وقتی دستور 

curl https://github.com
را اجرا می‌کنیم با خطای زیر مواجه می‌شویم:
curl: (35) Unknown SSL protocol error in connection to github.com:443 
خیلی از برنامه‌ها از جمله git و yaourt برای برقراری ارتباط خود از کتابخانه‌ی curl استفاده می‌کنند. در نتیجه حتما کاربران ایرانی این برنامه‌ها هم با این مشکل مواجه شده اند.
خب دو راه حل داریم، یا اینجا ایران نباشد (استفاده از پراکسی) و یا به curl بگیم که [عمو جون دلت خوشه‌ها،] اینجا ایرانه :) و از TLS استفاده نکند. کاربران آرچ‌لینوکس می‌تونن پکیج curl-git-with-tls-disabled را از aur نصب کنند. این پکیج، همان پکیج curl-git هست که یک patch به آن اضافه شده تا TLS را غیر فعال کند و مشکل حل می‌شود.
کاربران سایر سیستم عامل‌ها هم باید سورس curl را دانلود کنند و patch زیر را روی آن اعمال کنند و خودشان کامپایل و نصب کنند. اگر یک نفر پکیج دبیان هم بسازد که خیرش به بقیه می‌رسد :)
---
lib/vtls/openssl.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index 7a21c73..c44f773 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -1552,6 +1552,7 @@ ossl_connect_step1(struct connectdata *conn,
switch(data->set.ssl.version) {
case CURL_SSLVERSION_DEFAULT:
ctx_options |= SSL_OP_NO_SSLv2;
+ ctx_options |= SSL_OP_NO_TLSv1; /* Disable TLS */
#ifdef USE_TLS_SRP
if(data->set.ssl.authtype == CURL_TLSAUTH_SRP) {
infof(data, "Set version TLSv1.x for SRP authorisation\n");
---

۱ نظر ۱۴ دی ۹۲ ، ۱۱:۳۶
محمد حسین سخاوت