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

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

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

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

۳ مطلب با موضوع «کامپیوتر» ثبت شده است

يكشنبه, ۲۲ تیر ۱۳۹۳، ۰۲:۵۷ ق.ظ

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

اگه بخواید از صفحه‌ی فروش سیم‌کارت همراه اول یه شماره‌ی گلچین انتخاب کنید باید دونه دونه شماره‌ها رو انتخاب کنید ببینید قابل واگذاری هست یا نه. با توجه به این‌که اکثر شماره‌ها قابل واگذاری نیستن، با اجرا کردن این اسکریپت شروع می‌کنه تمام شماره‌های از ورودی اسکریپت به بعد رو چک می‌کنه و اون‌هایی که قابل واگذاری هستن رو 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");
---

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

PyCharm: Python & Django IDE

مشکلی که من همیشه با IDE ها دارم این است که قدرت ویرایش emacs را ندارند و مشکلی که همیشه با emacs دارم این است که هوشمندی IDE ها را ندارد؛ درست است که extension های فراوانی برای کارایی‌های مختلف در emacs نوشته شده است، اما تجربه شخصی من نشان داده هیچ‌کدام به جمع و جوری قابلیت‌هایی که یک IDE خوب برای یک زبان خاص در اختیار قرار می‌دهد، نیست. (معمولا اینطور است که در هنگام شروع کد زدن، خیلی با کدی که می‌خوام بزنم مانوس نیستم و در نتیجه نیاز دارم به جینگول‌بازی‌های IDE ولی پس از گذشت مدتی و مسلط شدن به کد، بر می‌گردم به emacs)

یک IDE خیلی خوب برای توسعه تحت وب پایتون و جنگو، PyCharm است. از PyDev که مال eclipse است خیلی بهتر است.

Screenshot

اما مشکلش این است که مفت نیست. ورژن کرک‌شده‌ی ویندوزش راحت پیدا می‌شود اما پیدا کردن راه‌حل برای لینوکس از من زمان زیادی گرفت تا اینکه اینجا رو پیدا کردم. نسخه trial را از سایت خود PyCharm دانلود کنید و این license رو بهش بدید:

Username: yueting3527

License Key:

===== LICENSE BEGIN =====
93347-12042010
00001FMHemWIs"6wozMZnat3IgXKXJ
2!nV2I6kSO48hgGLa9JNgjQ5oKz1Us
FFR8k"nGzJHzjQT6IBG!1fbQZn9!Vi
===== LICENSE END =====

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