پیامرسان تلگرام، محبوبیت زیادی بین کشورهایی مانند ایران داشته و دارد. بسیاری آن را به واتساپ ترجیح میدهند و بر این باورند که تلگرام از واتساپ امنتر و آزادتر است و همچنین فضای ابری برای ذخیرهٔ پیامها و فایلهای ارسالی ارائه میدهد برخلاف واتساپ که به نظر میآید پروندهها (فایلها) و تصاویر را در سرورهایش (کارسازهایش) ذخیره نمیکند.
همچنین عدهای آزاد و متنباز بودن کلاینتهای (کارخواهها) تلگرام را دلیلی بر امن بودن آن میدانند. واتساپ برخلاف تلگرام رمزگذاری سراسری دارد به این معنی که تنها فرستنده و گیرندهٔ پیام میتوانند دادههای ردّ و بدل شده را بخوانند و حتی خود واتساپ که این دادهها را انتقال میدهد نمیتواند شنود کند. با این حال با توجه به این که کد منبع کلاینتهای واتساپ در دسترس نیست، نمیتوان این مورد را مطمئن بود.
چتروم کرمهای کامپیوتر در ابتدا به صورت خصوصی بوده و روی یک سرور ماتریکس کوچک بر روی نانوپای بنده(فاروق) میزبانی میشده است. هنوز هم اکثر کسانی که آن زمان با ما بودهاند در چتروم فعلی حضور دارند. بعد از مدتی نگهداری از سرور ماتریکس به این نتیجه رسیدم که برای یک چتروم به این کوچکی منطقی نیست که یک سرور ماتریکس را مدیریت کنم. در نتیجه به این فکر افتادم که چتروم را روی یک سرور ماتریکس عمومی و مطمئن منتقل کنم و همچنین آنرا عمومی کنم. آن زمان دو سرور مطمئن میشناختم: یکی سرور matrix.org و دیگری سرور موزیلا که شرکت سازنده فایرفاکس بودجهاش را تامین میکرد. البته محلق شدن به این چتروم از هر سرور ماتریکسی امکان پذیر است.
طی دهههای گذشته بحثهای زیادی راجع به اینکه مشخصات زبانهای برنامهنویسی، به عنوان مثال تعیین نوعشان و مثلا ایستا(static) یا پویا(dynamic) بودن چه تاثیری روی روند توسعه نرمافزارها دارد. یک مقاله علمی(paper) با مطالعه ۶۰۰ پروژه در گیتهاب شامل تقریبا ۷۰ میلیون خط کد و ۳ میلیون کامیت به نتایجی در این مورد رسیدهاست.
کتابخوان یا Ebook reader نوعی تبلت هست که مخصوص مطالعه طراحی شده و معمولا آنها به جای LCD و امثالهم، از صفحه نمایش «جوهر الکترونیکی» استفاده میکنند. آسیب زدن صفحهنمایش جوهر الکترونیک به چشم تقریبا به اندازه آسیب زدن کتاب کاغذی به چشم میباشد.
این مطلب سابقا توسط فاروق کریمی زاده در ویرگول منتشر شدهاست. با کمی ویرایش اینجا بازنشرش میدهم.
اینکه برای یادگیری برنامهنویسی دانستن زبان انگلیسی لازم هست یا نه، پرسش بسیاری از کسانی هست که میخواهند برنامهنویسی را شروع به یادگیری کنند. در این پست بنده با توجه به تجربهی خودم سعی میکنم به این پرسش جواب دهم. اگر نمیخواهید کل مطلب را بخوانید، جواب کوتاه این پرسش در یک جمله این است که «بله، برای یادگیری برنامهنویسی باید حتما انگلیسی هم یاد بگیرید»
WriteFreely یک نرمافزار وبلاگنویسی نوشته شده به زبان گو میباشد که بنده برای وبلاگ جامعه هکرهای موز آن را انتخاب کردم و بعد از مورد موافقت گرفتن توسط اکثریت بقیه اعضای شورا، آن را روی هاست جامعه دپلوی کردم و خود اولین پست را در آن نوشتم و تا به الآن در حال استفاده از آن هستیم.
اگر بخواهم صادق باشم، واقعا بیاد نمیآورم چرا این نرمافزار را انتخاب کردیم. یا اینکه دلیل اصلی چه بود. اما الآن میتوانم در مورد اینکه چرا باید به استفاده از آن ادامه دهیم برایتان مثنوی ۷۰ من بنویسم! و اینکه چرا یک نفر یا گروه باید(یا نباید) این نرمافزار را برای وبلاگنویسی انتخاب کنند.
اگر شما هم مثل من زیاد با گیت از طریق خط فرمان کار میکنید؛ برایتان پیش آمده که بخواهید به ریشهی پروژه بروید. اینجا میخواهیم دستوری بسازیم که اینکار را برایمان انجام دهد.
حتماً تا به حال با برنامه هایی سروکار داشتید که امکان نصب افزونه داشتند. در این پست قرار هست بهتون بگم چطور میشه توی پایتون برنامهای بنویسیم که بشه بهش افزونه اضافه کرد.
معماری افزونهای (plugin architecture) یک شیوه توسعه نرمافزار است که به برنامهنویس این امکان رو میده که بدون نیاز به ویرایش کد های اصلی برنامهش (هسته/main) قابلیت ها رو با ارائه بستههایی به نام پلاگین در اختیار کاربران قرار بده و کاربران هم میتونن به سادگی با توجه به نیازشون از بین این افزونه ها، اون هایی که میخوان رو به برنامهشون اضافه کنن.
از طرفی میشه از این معماری به عنوان یک پلن تجاری نیز استفاده کرد. مثلا شما میتونید برنامه خودتون رو به صورت رایگان و حتی متنباز عرضه کنید اما با فروش پلاگین ها (و یا ارائه خدمات) کسب درآمدکنید. اگر شما هم یک کاربر وردپرس باشید حتما با این پلن آشنا هستید! 😄
پ.ن: پروژه telegram-post-bot من در گیتهاب از همین ساختار پیروی میکنه و توش امکان اضافه کردن پلاگین هست و درواقع همین پروژه بهانهای شد که من پیادهسازی این معماری رو توی پایتون یاد بگیرم و امتحان کنم.
خب وقتشه که دیگه مقدمه رو بذاریم کنار و بریم سراغ اصل مطلب!
بعد از درخواست یکی از دوستان در مورد مستقر کردن(deploy) یک وب اپلیکیشن پایتونی که با جنگو نوشته شده بود، تصمیم گرفتم این مطلب رو بنویسم. اینجا چند چیز را فرض کردم:
- از سکوی (framework) فلسک استفاده میکنید.در مورد جنگو هم البته داستان کمابیش همین هست. در مورد چریپای میتونید با همچین راهنمایی پیش برید یا از کارساز(سرور) وب خود چریپای به اسم چروت (cheroot) استفاده کنید.
- از دبیان (یا توزیعهایی که بر پایه دبیان ساخته شدن مثل اوبونتو) و systemd استفاده میکنید.
- میخواهید از انجینایکس(nginx) به عنوان کارساز وب یا وبسرور استفاده کنید.
- تنها از HTTP میخواهید استفاده کنید و برای سادگی کار فعلا HTTPS را کنار میگزاریم.
- قرار هست وب اپلیکیشن شما در ریشه قرار بگیرد. یعنی از طریق آدرسی مثل
https://example.com/
قابل دسترسی باشد نه مثلاhttps://example.com/somewhere
هیچ میدونستین که تو پایتون میتونین برای لیست ها و توپل ها عبارت هایی مثل [1,2,3]>[0,2,3]
نوشت؟ یعنی میتونی خیلی راحت لیست ها رو باهم مقایسه کنی.
اخیرا در یکی از پروژه هایی که داشتم نیاز داشتم تا دو مقدار ورژن رو باهم مقایسه کنم تا مثلا اگر نسخه دوم از اولی جدید تر بود برنامه خودش رو آپدیت کنه، برای اینکار از یک امکان زبان پایتون یعنی مقایسه لیست ها در پایتون استفاده کردم. با من بهنام سیمجو همراه باش تا برات بگم ماجرا چیه!
رجیستری در ویندوز یک بخش مهم و حیاتی است. اهمیت این بخش به دلیل این است که ویندوز و نرمافزار های زیادی تنظیمات خود را در رجیستری ذخیره میکنند؛ تنظیماتی از قبیل فرمت فایل ها، رنگ بندی و تصویر پسزمینه، و یا تعیین برنامهای که بعد از ورود کاربر اجرا شود (شل یا پوسته) همگی این ها و حتی اطلاعات حساستر در رجیستری ذخیره شدهاند.
امروز میخواهیم در مورد این بخش مهم در سیستمعامل ویندوز صحبت کنیم پس با وبسایت کرمهای کامپیوتر همراه باشید.
زمانی که سیستم شما به هر دلیلی دچار مشکل میشود و سیستمعامل به اصطلاح بالا نمیآید شما به چیزی به نام سیستمعامل زنده (live) نیاز خواهید داشت تا فایلها را برگردانید و سیستمعامل را تعمیر کنید. بسیاری از کاربران (نسبتاً مبتدی) به دلیل دسترسی نداشتن به یک نسخه سیستمعامل زنده دچار مشکلاتی از قبیل از دست دادن اطلاعاتشون هستند. در این پست قصد دارم به این موضوع بپردازم که سیستمعامل زنده چیست، چگونه راهاندازی میشود و چطور میتوان آن را نصب کرد.
سیستمعامل زنده (live) چیست؟
اگر شما کاربر ویندوز هستید حتما میدانید که ویندوز باید ابتدا بر روی سیستم شما نصب شود تا بتوان آن را اجرا نمود اما سیستمعامل ویندوز مانند سیستمعامل های دیگر میتواند بر یک DVD یا یک flash نیز نصب شود. در شرایطی که سیستمعامل شما به درستی کار نمیکند میتوان از این امکان برای تعمیر سیستم و دسترسی به فایل ها استفاده کرد. در چنین شرایطی برای آن که سیستمعامل با هدف اجرا شدن از یک حافظه فلش یا DVD سازگار باشد (سریع و سبک باشد) نسخهای از آن به عنوان live منتشر میشود که قابل حمل است و نیازی به نصب ندارد.
سیستمعامل های غیر ویندوزی
اکثر سیستم عامل های غیر از ویندوز عموما از خانواده شبهیونیکس نسخه لایو جدا ندارند، درواقع اصلا نیازی ندارند! در هنگام نصب این سیستمعامل ها از کاربر سوال میشود که آیا میخواهید نصب شود یا به صورت زنده از آن استفاده کنید.
اما اگر به دنبال استفاده از ویندوز به صورت زنده هستید با کرمهای کامپیوتر همراه باشید.
امروز، دوشنبه ۲ اسفند ۱۴۰۰، جلسه دوم گروه نرمافزار آزاد هرمزگان را با حضور نویسنده این مطلب داشتیم و به پیشنهاد یکی از اعضا، یک بازی جالب کردیم: «به صورت چرخشی در یک دایره هرکس میبایست نام یک ماژول پایتونی، توکار یا غیر توکار، بگوید. نام ماژولها روی تابلو نوشته میشود و کسی حق تکرار اسم یک ماژول را ندارد. کسی که ظرف مدت زمان ۳۰ ثانیه نتوانست اسمی پیدا کند، از بازی خارج میشود و آخرین نفر باقی مانده در بازی برنده است». روشن است که در بازی حق جستجو کردن، نوشتن یا امثالهم را نداشتیم!
بنده در دانشگاه هرمزگان دستیار تدریس یا حل التمرین(TA) برنامهسازی پیشرفته هستم بودم. ضمن تصحیح پروژه دانشجویان به اشتباهاتی درست(!) در کد هایشان برخوردم. قسمت درست کدها این میباشد که «کار» میکنند اما به روش درست پایتون نوشته نشدهاند.