Armin Ronacher: پایتون خانه من است!

Armin Ronacher سازنده فلسک و چند کتابخونه دیگه برای پایتونه، از نوشته‌هاش می‌تونیم متوجه بشیم که آدم باحالیه و من به شخصه دوستش دارم و کاراش رو دنبال می‌کنم. توی یه مطلب کوتاه وبلاگ‌ش از پایتون یه حرفایی میزنه که گفتم جالبه بهشون اشاره بکنم.

بعد از اینکه Guido van Rossum از سمتش به عنوان BDFL (دیکتاتور خیرخواه جاویدان) توی پروژه پایتون دست کشید و گفت که می‌خوام به یه تعطیلات دائمی برم من یه لحظه عمیق‌تر به فکر پایتون افتادم و گفتم که واقعا پایتون تاثیر بسیار زیادی روی زندگی من داشته! پایتون خونه منه، خیلی از روابط دوستی‌م رو از طریق پایتون به دست آوردم و حتی می‌تونم بگم که آشنا شدن با همسرم رو هم مدیون پایتون هستم.

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

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

پایتون توی Guido van Rossum خلاصه میشه. صد در صد مشارکت کننده بسیار زیاد دیگه ای وجود داشته که به پایتون و توسعه‌اش کمک کردند ولی خب اگه به نسخه‌های اولیه زبون برگردیم می‌بینیم که کارهای Guido واقعا تاثیر گذار بودن و واقعا امروز به چشم میان. 

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

سخنی با Guido van Rossum: نمی‌دونم چطوری بگم که واقعا مدیون‌ت هستم، با وجود داشتن نظراتی که برخی اوقات با نظرات تو توی این سال‌ها مخالف بودن اما همیشه باید بگم که ممنون‌تم.

به نظرم خیلی همچین حرفایی مهمه. کسی که داره از یه ابزار استفاده می‌کنه و حالا زندگی‌ش براساس یه انتخاب حال و هوای خوبی گرفته چقدر خوبه که یه تشکر از سازنده‌ش بکنه. حالا این یه تکلیف اخلاقی یا همچین چیزایی نیست ولی خب نکته مثبتی توش بوده که به نظرم باید بهش توجه کرد. قدردانی از آدم‌هایی که نقش مثبتی روی بهتر کردن دنیا داشتن 🙂 – ارسطو

 

اهمیت حضور زنان در دنیای تکنولوژی

یه ضرب و المثل چینی هست که میگه «زنان نصف آسمون رو در اختیار دارن» خب اگه بخوایم آسمون رو برداریم می‌تونیم بجاش تکنولوژی رو بزاریم. چرا که تقریبا نصف کاربران تکنولوژی رو خانوما تشکیل میدن. اما مشکل اینه که اونا رو خیلی کم می‌بینیم. تقریبا خیلی کم از اونا حرف می‌زنیم.

با در نظر گرفتن اینکه زنان بخش قابل توجهی از نیروی کار جهانی رو شامل می‌شن و همچنین روی سودآوری شرکت‌ها و… تاثیر دارن، نادیده گرفتن‌شون غیر قابل تحمل و پذیرش هستش. پس باید یه فکری کرد!

توی مقاله‌ای تحت عنوان «Women Matters» از McKinsey نشون میده که تقریبا کمی کمتر از ۴۰ درصد نیروی کار جهانی رو زنان تشکیل میدن و در کل تنها ۲۵٪ از این کارها مربوط به سمت‌های مدیریتی میشه. خب این یعنی ۷۵٪ بقیه رو مردها تشکیل می‌دن و از نظر نویسنده این قابل قبول نیست. Dominic Barton یکی از اعضای هیئت مدیره McKinsey  میگه که ما توی یه سطح کوچیکی متوجه شدیم که حضور زنان به عنوان افرادی در هیئت مدیره تاثیر خوبی روی وضعیت مالی شرکت می‌ذاره و این حائز اهمیته.

در یک تحقیق از PwC نشون داده که حضور زنان در تیم‌های کاری میتونه نرخ موفقیت بالایی رو برای تیم به ارمغان بیاره. همچنین در مطالعه‌ای روی ۴۵۰ هزار شرکت تازه تاسیس به این نتیجه رسیدن که شرکت‌هایی با حضور بیشتر زنان (در بخش مدیریت) تونسته که ۳۲ درصد بهتر نسبت به شرکتی که کاملا به دست مردان مدیریت میشه عمل کنه. 

چند تا مثال ساده از زنانی که در حوزه تکنولوژی تونستن به موفقیت چشمگیری برسن رو اینجا لیست می‌کنم … در رابطه با چند نفرشون به صورت کوتاه میگم اما می‌تونید با سرچ کردن اسماشون توی اینترنت به موفقیت‌هاشون پی ببرید:

  • Jesse Genet
  • Tina Sharkey
  • Amy Chang
  • Emily Weiss

Jesse Genet مؤسس وبسایت Lumi قبلا توی یه شرکتی کار می‌کرده و ظاهرا قرارداد خیلی خوبی داشته اما بیرون میاد و میره سراغ تاسیس شرکت خودش. شرکتی که در این چند سال اخیر به موفقیت‌های خیلی خوبی دست پیدا کرده و تونسته که سرویس‌های جهانی ارائه بده. –وبسایت

Amy Chang مؤسس وبسایت Accompany هستش … این وبسایت یه بانک اطلاعاتی مبتنی بر هوش مصنوعیه که افراد رو براساس سلایق و علایق‌شون به همدیگه مرتبط میکنه همچنین به شرکت‌ها این کمک رو میکنه که آدمای مربوطی رو برای محصولات‌شون پیدا کنه.

اسم هر کدوم از این افراد رو توی گوگل سرچ بکنید می‌تونید کلی اطلاعات راجع بهشون پیدا کنید. 

اسم بردن از این مثال‌ها نشون میده که زنان می‌تونن نقش بسیار مهمی رو در دنیای تکنولوژی داشته باشن. زنان بسیار موفق دیگری نیز وجود دارند که در هیئت مدیره شرکت‌های بزرگی مثل گوگل و فیسبوک حضور دارن Sheryl Sandberg و Marissa Mayer دو تن از این افرادند. Meg Whitman هم داریم که یکی از افراد کلیدی و مهم توی شرکت HP هستش … «به شخصه HP رو دوست دارم (خودم نه نویسنده اصلی)»

خیلی خیلی مهمه که شرکت‌ها بتونند جنسیت‌های مختلف رو در بخش کارمندان و هیئت مدیره استخدام بکنند چون جنسیت ملاکی برای محدودیت‌ فکری نیست!

لینک نوشته اصلی

کتاب «تکنیک‌های مدرن طراحی وب»

کتاب «تکنیک‌های مدرن طراحی وب» سعی دارد تا شما را با رویکردی‌ترین و جدید‌ترین تکنیک‌هایی که در دنیای طراحی وبسایت می‌توانید مشاهده کنید آشنا سازد. در رابطه با هر کدام از تکنیک‌ها به صورت کامل توضیحاتی ارائه شده است، همچنین همراه با این توضیحات مثال‌هایی نیز وجود دارد. بهتر است همراه با مطالعه موردی هر کدام از تکنیک‌ها و توضیحات مربوط به آن‌ها، مثال‌ها را نیز به خوبی دنبال کنید. مثال‌ها به شما درک بسیار واضح‌تری از ماهیت تکنیک‌ها و حضور آن‌ها در دنیای عملی‌ را می‌دهند.

 

کتاب از ۶ فصل تشکیل شده است. هر کدام از این فصل‌ها به شرح یک تکنیک منحصر به فرد می‌پردازد. در نسخه اصلی کتاب، از این تکنیک‌ها به عنوان تکنیک‌های منحصر به فرد سال ۲۰۱۸ نام برده می‌شود، اما به نظر نمی‌رسد که چنین عنوانی کاملا درست باشد. در حقیقت برخی از این تکنیک‌ها را می‌شود در سال‌های قبل نیز مشاهده کرد، اما در سال ۲۰۱۸ می‌توانیم گسترش هر چه بیشتر این تکنیک‌ها در دنیای وب را شاهد باشیم.

دانلود رایگان

تشکر از فرزین عزیز بابت طراحی جلد کتاب

حل مشکل Race Condition توی جنگو

داشتم یه اپلیکیشن ساده جَنگو رو می‌ساختم که با یه مشکل به اسم Race Condition برخوردم. خیلی چیز جالب و در عین حال ساده‌ایه که باید حتما حتما حل بشه. خب منبع این آموزش کوچولو موچولو وبسایت اصلی Django هستش و توی آخر همین پست لینکش رو گذاشتم.

قضیه از چه قراره؟! تصور کنید که یه وبسایت فروشگاهی دارید که توش میخواید یه مداد بفروشید. تعداد مدادهای موجودتون ۱۰ تا هستش. منطق برنامه شما به این صورته که به ازای هر فروش یک عدد از مقادیر موجودتون کم میشه. پس من اگه بیام یه مداد بخرم میشه ۹ تا.

ولی وقتی من میام یه مداد می‌خرم دقیقا چه چیزی اون پشت مشتا اتفاق می‌افته. خیلی ساده است: بانک اطلاعاتی میاد اول مقدار موجود رو می‌گیره و اون رو میبره تو رَم، براساس منطق برنامه میاد یه دونه کم میکنه پس مقدار ۱۰ توی رم میشه ۹ و در نهایت object.save() … مقدار توی بانک اطلاعاتی ذخیره میشه.

حالا یه مشکلی که پیش میاد توی این حالت چیه؟ اینکه اگه دو نفر همزمان داشتن یه مداد میخریدن چه اتفاقی می‌افته.

نفر ۱: بانک اطلاعاتی ۱۰ رو گذاشته توی رم و یکی ازش کم میکنه و مقدار میشه ۹ و ذخیره می‌کنه.

نفر ۲: بانک اطلاعاتی ۱۰ رو گذاشته توی رم و یکی ازش کم میکنه و مقدار میشه ۹ و ذخیره می‌کنه.

وقتی انبار رو نگاه می‌کنی می‌بینی ۸ تا مداد داری ولی بانک اطلاعاتی میگه ۹ تا داری! اینجوریه که برنامه شما خطا میره  ☺😉🙃

راه‌حلش چیه؟! خب این مطلب می‌خواد همین رو بگه. برای حل این مشکل کافیه از یه F() expression هستش:

اول بیایید اون رو import کنید:

from django.db.models import F

F() به ما این قابلیت رو میده که قبل از ذخیره داده یا همون object.save() توی بانک اطلاعاتی، اون فیلد یا آبجکتی که می‌خوایم ذخیره بشه رو بروزرسانی کنیم. اینطوری دیگه مشکل Race Condition رو نداریم.

برای استفاده از این حالت می‌تونید توی تعریف View به صورت زیر کار بکنید:

reporter = Reporters.objects.get(name='Tintin')
reporter.stories_filed = F('stories_filed') + 1
reporter.save()

reporter.name = 'Tintin Jr.'
reporter.save()

خیلی ساده و خوشمزه 😉

موسیقی این مطلب هم یک کار از نوازنده جَز Django Reinhardt:

چرا پایتون رو یاد بگیریم؟ 🐍

چرا پایتون رو یاد بگیریم؟ 🐍همممم، سوال خوبیه! ممنون که پرسیدید! خب قبلا بهتون یه سری راهکار برای انتخاب یه زبان برنامه‌نویسی مناسب دادم. می‌تونید توی این لینک راجع بهش بخونید. ولی خب توی آخراش گفتم که من پایتون و جاوااسکریپت رو انتخاب کردم. حالا می‌خوام بگم که چرا رفتم سراغ پایتون!

نمی‌خوام از علایق شخصی‌ بگم، بیشتر می‌خوام تکنیکی باشه.

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

بیایید یه مقایسه ساده بین نوشتن یه برنامه Hello World توی سی‌پلاس‌پلاس و پایتون رو ببینیم:

#include <iostream>
int main()
{
  std::cout << "Hello World!" << std::endl;
  return 0;
}

حالا همین برنامه رو می‌خوایم توی پایتون بنویسیم.

print ("Hello World!")

حالا این فقط یه ویژگی ساده از پایتونه، ولی باید بگم که پایتون یه جوری اعتیاد آوره🚬! یعنی اگه بتونی با پایتون کد بنویسی و باهاش حال بکنی، کم پیش می‌آد که وسوسه کدنویسی توی زبون‌های C-Style (شبیه سی) رو بکنید. من که به شخصه اینطوری شدم ولی خب یه راه حل‌م جبر بود. چون من سراغ جاوااسکریپت هم رفتم به یه سری دلایل!🧐🤪

 

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

 

یه دلیل دیگه اینکه از پایتون خوشم میآد، اینه که من به ریاضی خیلی علاقه دارم. پایتون به شما خیلی توی حل کردن مسائل ریاضی کمک می‌کنه. یه کتابخونه به اسم Numpy داره که تقریبا میشه گفت خیلی خوبه :))😍 با این کتابخونه شما می‌تونید کارهای ریاضی مختلفی بکنید … همچنین از قابلیت‌هایی مثل آرایه و … هم استفاده بکنید.

 

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

 

پایتون یه آینده خوبی داره! من همیشه به این موضوع که هوش مصنوعی آینده تکنولوژي‌ها‌ست باور داشتم و دارم. وقتی که پایتون این قابلیت رو داره که با هوش مصنوعی ارتباط برقرار کنه و پیاده‌سازی‌ش بکنه، پس چرا یادش نگیریم! مثل اینه که میگن امروز دلار ۳ هزاره پس فردا میشه ۱۰ هزار … خب شما با ۲۰ میلیون تومن‌تون چیکار می‌کنید؟ میرید دلار می‌خرید دیگه 👀😉 –حالا مثال خیلی زیاد بود ولی خب انقدر همه جا بحث فقط شده دلار دلار دلار این مثال اومد تو ذهنم –

 

درک کردن برنامه‌نویسی با پایتون ساده است. همیشه توی دانشگاه‌ها و مراکز آموزشی با همه این درگیری رو داشتم که آقا شما به کسی که برنامه‌نویسی بلد نیست باید برنامه‌نویسی یاد بدی نه C# یا هر چیز دیگه‌ای. حتی در یک مرحله‌ای برنامه‌نویسی باید به صورت خیلی ساده تدریس بشه، مثلا با برنامه Scratch ولی با یه زبون اینترپرایس مثل سی‌شارپ به نظر نمی‌رسه که خیلی منطقی باشه. پایتون هم یه زبون ساده است. شما رو خیلی با سینتکس عجیب و غریبی همراه نمیکنه، پس شما شانس بیشتری در یادگیری دارید.

 

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

 

کار با بانک‌های اطلاعاتی SQL و NoSQL توی پایتون خیلی ساده است. پیکربندی عجیب و غریبی نمی‌خواد و تقریبا همه چی آماده‌س. پس یادگیری ادغام کردن دانش برنامه‌نویسی با SQL هم در پایتون ساده است.

 

پایتون رو میشه توی هر نرم افزار ویرایشگر کدی نوشت. این خوبه! بهتون آزادی میده. بعضیا ATOM دوست دارن، بعضیا میرن سراغ VIM بعضی دیگه Sublime Text و… . اینطوری خیلی بیشتر حال میده تا مجبور باشی حتما از یک IDE استفاده بکنی.

 

پایتون مزیت‌های بسیار زیاد دیگه‌ای داره که به نظر نمی‌رسه با فقط حرف زدن بهش رسید. باید امتحان‌ش کنید.

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

دم هممون گرم که انقدر باحالی‌م 😁🤓😎