۱۸ آذر، ۱۴۰۰
@danial_kh یک گفتگو به اسم رمزنگاری و جلوگیری از دانلود ویدیوها در سایت درست کرد.
سلام دوستان. توی پروژهای که با nodejs
,nuxt
و express
نوشته شده، نیاز دارم که ویدیوهایی که میفرستم سمت کلاینت رو به نحوی رمزنگاری، استریم یا ... کنم تا به نحوی از اینکه کاربر عادی بتونه اونهارو دانلود کنه جلوگیری کنم. توی ریسرچ هام به استریم کردن و یا تغییر فرمت به ts و همچین چیزاهایی رسیدم اما نمونه کد یا اطلاعات بیشتری ازشون به دست نیاوردم.
اگه تجربهای دربارهی اینکه چطوری میشه سمت بک، انکریپت و سمت فرانت دیکریپت کرد یا راهکاری میشناسید که بشه جلوی دانلود کردنشون رو گرفت ممنون میشم به تشتراگ بذارید.
۱ اردیبهشت، ۱۴۰۰
@danial_kh یک گفتگو به اسم تغییر تنظیمات وب پک و ترجمه es6 به es5 درست کرد.
سلام دوستان.
یه app
ی دارم که با nuxtjs
و vuetify
نوشتمش و هر پکیجی هم که نصب شده از جلمه همین vuetify
از es6
دارن استفاده میکنن و خب مرورگرهای IE 10
و IE 9
رو دیگه ساپورت نمیکنه. اما داریم شرکت هایی که هنوز دارن از این مرورگرها استفاده میکنن و نمیتونم مجبورشون کنم که نسخه مرورگرشون رو ببرن بالا به IE 11
و میگن app
ت کار نمیکنه. میخواستم ببینم راه حلی وجود داره که کانفیگ هارو تغییر بدم تا es6
رو موقع build
به es5
ترجمه کنه؟!
۴ بهمن، ۱۳۹۹
@danial_kh یک گفتگو به اسم استاندارد داکیومنت نویسی برای یک اپ درست کرد.
سلام دوستان.
یه پنل مدیریتی طراحی کردم که به قشر خاصی از مدیران مشاغل میتونه کمک کنه و دارای بخش های زیادی هم هست. حالا میخوام یه صفحه ویکی و یه سایت دیگه ایجاد کنم و داکیومنتیشن پنل رو داخلش قرار بدم برای استفاده ی مشتریان تا به راحتی بتونن صفر تا صد کار با نرم افزار رو یاد بگیرن و ازش استفاده کنن و یه بخش دیگه واسه ی تیم توسعه دهنده که هر کسی از تیم خواست روی یه بخشی از کد کار کنه بتونه وارد بخش مربوط به اون قسمت بشه، سناریو رو بخونه، کامل متوجه کاری که اون بخش میکنه بشه و بعد از اون بره سراغ کد زدن.
حالا میخوام روش و استانداردی که برای نوشتن این نوع داکیومنت ها وجود داره رو پیدا کنم و طبق اون سر فصل ها و جزییات رو ایجاد کنم.
ممنون میشم اگه تجربه ای دارید به اشتراک بذارید.
۲۲ دی، ۱۳۹۹
@danial_kh یک گفتگو به اسم نمایش فایل ها با فرمت docs, xls, csv, pdf, pptx و ... توی صفحه html درست کرد.
چطوری میتونیم فایل هایی با فرمت docs
, xls
, csv
, pdf
, pptx
و ... توی صفحه html
نمایش داد؟
الان از تگ iframe
استفاده کردم و فقط pdf
رو تونست نمایش بده و بقیه فایل ها رو پشتیبانی نکرد.
روش بعدی که پیش رفتم این بود که از api google
استفاده کردم. این روش مشکل پشتیبانی از فرمت های مختلف رو واسم برطرف کرد اما مشکل دیگه ای به وجود اورد که اولین دفعه لود نمیشه و داخل body
تگ iframe
چیزی نیست و حتمن باید reload
بشه تا ساخته بشه.
<iframe :src="'https://docs.google.com/viewer?embedded=true&url=' + resume.url />
۱۸ اسفند، ۱۳۹۸
@danial_kh به گفتگوی تغییر زبان صفحات در Vue جواب داد.
i18n.set('fa')$
اینو امتحان کن اگه جواب داد، v-model
درست کار نمیکنه یا اون return-object
اشتباهه
۱۱ دی، ۱۳۹۸
@danial_kh به گفتگوی انتخاب برنامه نویسی برای بازی تحت وب جواب داد.
shahryarjb@ من مدتیه دارم با vuejs
و nodejs
کار میکنم و یکی از دوستام چند سالیه با جاوا کار کرده. اون بدون استفاده از هیچ موتوری و فقط با کدنویسی محض توی اندروید استدیو داره گیم میسازه و بازی هاشو توی مارکت ها منتشر میکنه و چون کارش هم عالیه روزی نیست از طرف شرکت های بازی سازی یا تبلیغات باهاش تماس گرفته نشه. خب؛ منم به این صنعت علاقه ی زیادی دارم، هم درآمدش و هم الگوریتم و فرایندی که پشت پیاده سازی گیم وجود داره. نمیخوامم که برم جاوا یا زبان دیگه ای یاد بگیرم. میتونی اگه اطلاعاتی یا منابعی بابت گیم های تحت وب با جاوا اسکریپت (پیاده سازی و درآمدزایی) داری بهم بدی؟؟؟؟
۵ اسفند، ۱۳۹۷
@danial_kh به گفتگوی پادکست جواب داد.
amir@ آیا بهتر نیست برای پادکست هاتون هم یه بخش نظرات بذارید تا کاربران هم در مورد مطلبی که صحبت کردی نظرشون رو بیان کنن؟!
مثلن همین چیزی که در مورد پادکست "چرا بعضی ها ساکت هستند؟" میخوام بگم و اون اینه که:
منم دارم با vue
و nuxt
اپلیکشن مینویسم اما هنوز توی بخش های authentication
، session
و ssr
توی nuxt
مشکل دارم و از اینکه شنیدم میخوای فیلم آموزشی برای nuxt
بسازی واقعن خوشحال شدم چون طبق ویدیوهای قبلی ای که ازت دیدیم، میدونیم مفاهیم رو کاملا اصولی و پایه ای یاد میدی.
۲۵ بهمن، ۱۳۹۷
@danial_kh به گفتگوی ارسال لینک صفحه به ایمیل کاربر و ریدایرکت کاربر پس از لاگین به آن صفحه با کلیک روی لینک جواب داد.
amir@ شما هم از سشن برای این کار استفاده کردین؟
و پس از لاگین، سشن رو چک میکنید اگر وجود داشت router
رو تغییر میدید؟
منapp
رو با nuxt
و vue
نوشتم.
@danial_kh یک گفتگو به اسم ارسال لینک صفحه به ایمیل کاربر و ریدایرکت کاربر پس از لاگین به آن صفحه با کلیک روی لینک درست کرد.
توی یه سایت خرید و فروش سه کاربر از نوع مدیر و فروشنده و خریدار دارم.
وقتی یک خریدار محصولی رو از سایت به سبد خرید خودش اضافه میکنه و اونو ثبت میکنه، این سفارش رو توی پنل فروشنده این محصول نشون میدم تا با هم بر سر شرایط خرید بحث کنن.
کاری که میخوام انجام بدم اینه که برای اطلاع رسانی به فروشنده از ثبت این سفارش، لینکی حاوی آدرس صفحهای که فروشنده باید بره تو پنل خودش و سفارش رو ببینه رو به شماره موبایلش یا آدرس ایمیلش میفرستم.
مشکلم اینجاست:
با کلیک کاربر روی لینک اگر از قبل لاگین نباشه، مستقم به صفحه لاگین فرستاده میشه. حالا وقتی لاگین کرد چطور تشخیص بدم که باید به آدرس قبلیای که وارد کرده بود بفرستمش؟
و اینکه آیا میشه اعتبار سنجی آدرس قبلی رو انجام بدم تا اول اینکه آدرس درست باشه و بدون پارامترهای اضافه ای که کاربر ممکنه توی لینک اضافه کرده باشه دوم اینکه ممکنه کاربر آدرس یک صفحه که فقط مدیر حق دسترسی به اونو داره وارد کرده و وقتی با کاربر نوع فروشنده و خریدار لاگین میکنه به اون صفحه ریدارکت نشه؟
۲۰ بهمن، ۱۳۹۷
@danial_kh به گفتگوی نحوه ی شروع یادگیری برنامه نویسی (معرفی جاوا) جواب داد.
اقا shahryarjb@ شما برای آموزش swift
برنامهای ندارین؟!
۴ دی، ۱۳۹۷
۲ دی، ۱۳۹۷
@danial_kh یک گفتگو به اسم آموزش vue-ssr درست کرد.
اقای amir@ هیچ برنامه ای برای آموزش vue-ssr
ندارین؟
حتی توی سایت های انگلیسی زبان هم نمیشه آموزش به درد بخوری برای vue-ssr
پیدا کرد. دموی سایتی که خود Evan You
با vue-ssr
ساخته و گذاشته هم کار نمیکنه. اغلب همه nuxt
را برای ssr
پیشنهاد میکنند و چیزی برای vue-ssr
نمیگن. مدیریت کوکی و شسن برای express
نوشته شده و برای استفاده اون در vue-ssr
هیچ راهی پیدا نکردم و موقعی که قراره از لاگین داخل سایت استفاده کنی نمیدونی چطور از کوکی و سشن بهره ببری.
ای کاش شما برنامه ای برای آموزش vue-ssr
داشتین.
دوستان دیگه هم اگه اموزشی در این مورد سراغ دارن لطفا لینکش رو بذارن.
۳ آبان، ۱۳۹۷
@danial_kh یک گفتگو به اسم شکسته شدن جداول بزرگ هنگام پرینت گرفتن درست کرد.
هنگام پرینت گرفتن از صفحه های html
اگه داخل صفحه مون جدولی داشته باشیم که طولش بیشتر از صفحه A4
باشه یا مکان قرار گیری جدول و دیگر اجزای صفحه به گونه ای باشه که بعضی از سطرهای جدول هنگام پرینت شکسته بشه و به صفحه بعدی پرینت منتقل بشه، ممکنه قسمتی از متن اون سطر توی یه صفحه قرار بگیره و بقیش توی صفحه بعدی.
یه روش حلش اینه که یه جدول ثابت مثل فاکتور درست کنیم و اطلاعاتمون رو بریزیم توی اون، حالا طول و عرض جدول و تعداد سطرهاش مشخصه، اما باز هم اگه محتوایی که داخل هر سطر میریزیم بیش از یک خط رو به خودش اختصاص بده، باز هم طول جدول تغییر میکنه و باعث مشکل میشه.
چطور میتونم مدیریت کنم که سطری از جدول به جای اینکه شکسته بشه و قسمتی از اون داخل یه صفحه و بقیش داخل صفحه بعد قرار میگیره از css
و page-break-before
استفاده کنم تا کل اون سطر به صفحه بعدی منتقل بشه و شکسته شدنی در کار نباشه!
۱۵ شهریور، ۱۳۹۷
@danial_kh به گفتگوی آموزش ویو جواب داد.
اگه زبان انگلیسی تون خوبه، توی یوتیوب بگردین، آموزش های متعددی پیدا میکنین که برای سایت های مختلف، از پایگاه داده های مختلف و از فریم ورک های مختلف استفاده کرده برای آموزش vue
که پایین همین پیغام، لینک دوتاشو براتون میذارم
اما اگه زبانتون خوب نیست، توصیه میکنم همین فیلم آموزش vue
اقای عظیمی رو چند بار نگاه کنید تا پایه ی vue
رو کاملا یاد بگیرید تا وقتی میرید سراغ فیلم های انگلیسی بدونید چیزایی که دارن استفاده میکنن چی هست و فقط استفاده ها از اونا رو یاد بگیرید.
۲۷ امرداد، ۱۳۹۷
@danial_kh به گفتگوی پادکست جواب داد.
آقا امیر، پادکست " توسعه وب در سال جدید " واقعا برام مفید و کارآمد بود، شاید سمت و سوی برنامهریزی چند سالهام با این پادکست تغییر کرد.
میدونم میشه با یه سرچ، تموم تکنولوژی های جدید رو پیدا کرد و در موردش مطالعه کرد، اما به شخصه، خود من که دارم با vue
کار میکنم و قصد یادگیری node
و ... رو دارم، واقعا ماهر شدن در همین دور مورد هم نیاز به تلاش مداوم داره، اینکه شما تو یه پادکستی مثل همین که بهش اشاره کردم بیاین اینجوری (یا حتی ریزتر) خط بدین، میتونه کمک بزرگی به اون کسایی که تازه کارن بشه.
۲۵ امرداد، ۱۳۹۷
@danial_kh به گفتگوی راه اندازی GitHub روی سرور محلی جواب داد.
@woohee گیت هاب، یک سرویس میزبانی وب برای پروژههایی است که از سیستم سورس کنترل گیت استفاده میکنند.
خیلی ساده و خلاصه بخوام بگم، وقتی شما داخل یه تیم دارین روی یک پروژه کار میکنید، شما انجام یه بخش از پروژه رو به عهده میگیرید و بقیه هم بخش های دیگه رو
خب وقتی کار شما تموم میشه، بقیه چطور باید به کدهای شما دسترسی پیدا کنن و اونا رو به پروژه اصلی اضافه کنن؟! یا شما چطور می خواین کدهایی که بقیه نوشتن رو ببینید و پروژه تکمیل بشه؟! ممکنه بگین خب میرم کپی میکنم توی پروژه اصلی، اما اگه فقط دو نفر روی یه فایل محتوا بریزن، مسلما محتوای قبلی از بین میره.
اینجا هست که اسم چیزی بنام git
مطرح میشه که به شما این امکان رو میده که یه پروژه اصلی رو به git
معرفی کنید و بقیه بیان اون رو از مسیر گیت، بگیرن و کدهاشون رو بزنن و دوباره از همین گیت به پروژه اصلی اضافه کنن.
خب اینجا خود git
تغییرات در فایل ها رو دنبال میکنه و مانع از هم گسیختگی پروژه میشه. در این حین، گیت لب و به ویژه گیت هاب امکاناتی فراتر از این چیزی که من گفتم رو در اختیارتون قرار میده که کار روی پروژه های بزرگ رو نه تنها امکان پذیر، بلکه لذت بخش میکنه.
اطلاعات تکمیل تر رو میتونید خودتون با یه سرچ ساده پیدا کنید.
@danial_kh به گفتگوی راه اندازی GitHub روی سرور محلی جواب داد.
همین که تایید کردید گیت هاب چنین امکانی رو نمیده ازتون ممنونم
باید کار رو با ubuntu
و gitlab
شروع کنم.
@danial_kh به گفتگوی راه اندازی GitHub روی سرور محلی جواب داد.
@amin ممنون دوست عزیز
۲۴ امرداد، ۱۳۹۷
@danial_kh یک گفتگو به اسم راه اندازی GitHub روی سرور محلی درست کرد.
شاید بدونید که چند روزی هست که GitLab
هم روی ابر گوگل رفته و ایران عزیزمون هم تحریم شده از طرف گوگل هست و حتی به GitLab
هم دسترسی نداریم!
پرداخت های GitHub
هم برای پروژه های private
از داخل ایران به راحتی صورت نمیپذیره، البته اگه اونم تا آینده نزدیک مثل GitLab
نشه.
با چند نفری که صحبت کردم میگفتن توی شرکتشون اونا GitLab
رو روی ubuntu
و حتی GitHub
رو روی سرور محلی خودشون (windows)
قرار دادن و دارن کدهاشون رو روی همین سرور محلی مدیریت میکنن.
اما اطلاعاتی که بهم دادن، فقط در همین حد بود!
خواستم بیبینم از شما دوستان، کسی اطلاعاتی در مورد قرار دادن GitHub
روی سرور محلی (اگه ویندوز باشه که چه بهتر) یا حتی GitLab
داره بهم بده؟
خلاصه هم اکنون، به شدت نیازمند یاری شما هستم!
تو این شرایط، به یاد جملهای که امیر عزیز توی یکی از پادکست هاش گفت "همیشه وضع همین جور نمیمونه و شماهایی که داخل ایران هستید هم، اینترنت آزاد خواهید داشت" می افتم!
۷ امرداد، ۱۳۹۷
@danial_kh به گفتگوی خطای تغییر داده ها خارج از mutation در Vuex هنگام edit جواب داد.
با زیر و رو کردن وب و نشون دادن خلاقیت از خودم! به یه راه حلی رسیدم که برای اینکه بحث بسته بشه مینویسمش.
همواره برای اینکه داده ای را داخل store
ذخیره کنیم، باید از action
به mutation
بریم و توابع ذخیره را بنویسیم.
حالا اگه داخل store
حالت سختگیرانه (یا strict = true
) فعال باشه، هر وقت غیر از action
و mutation
داده ای داخل store
تغییر کنه با error
مواجه خواهیم شد.
این معمولا زمانی به وجود می آید که ما مدل رو (v-model)
دقیقا داده ای انتخاب کنیم که از store
گرفتیم.
با اینکار با تغییر مقدار داده به دلیل bind
شدن، داده ی داخل store
تغییر میکند و خطا ظاهر میشود.
راه حل در اینجا استفاده کردن از event
ها بجای v-model
است.
اگر آرایه ای داخل store
داریم و بخواهیم اون رو تغییر بدیم، ممکنه با event
ها هم مسئله حل نشود و نشه برای هر مقدار داخل آرایه یه event
در نظر بگیرید.
این جا حتی با assign
کردن آرایه به آرایه جدید هم، پیوند بین داده ی local
و store
شکسته نمیشه و خطا ظاهر خواهد شد.
راه حل در اینجا push
کردن آرایه به آرایه جدید و کار کردن با آن است.
۳۰ تیر، ۱۳۹۷
@danial_kh به گفتگوی خطای تغییر داده ها خارج از mutation در Vuex هنگام edit جواب داد.
@tilkacoder وقتی اون بخش از کدها رو بارگذاری کردم، لینکشو میذارم
۲۹ تیر، ۱۳۹۷
@danial_kh یک گفتگو به اسم خطای تغییر داده ها خارج از mutation در Vuex هنگام edit درست کرد.
سلام دوستان
یک input
دارم با یک button
<input v-model="product.name">
<button @click="save">save</button>
که تابع save
داره متغیر داخل store
را تغییر میده، به شکل زیر:
methods: {
save () {
this.product.id = create_UUID () // create unique ID
this.$store.dispatch('addToProducts', this.product)
}
}
و تابع addToProducts
هم توی store
داخل action
وجود داره که تابع دیگه را که توی mutation
وجود داره فراخونی میکنه و اون هم مقدار را داخل آرایه مورد نظر ذخیره میکنه.
تا این جا همه چی بدون مشکل داره کار میکنه.
مشکل اونجایی شروع میشه که مقدار داخل همین آرایه رو از طریق getters
از store
میگیرم و می خوام edit
کنم
computed: {
getProduct () {
this.editProduct = this.$store.getters.products
}
}
<input v-model="editProduct.name">
<button @click="saveChange">save Change</button>
مشکل درست همینجاست. به محض اینکه کاربر متن داخل input
رو تغییر میده به دلیل bind
بودن، ارور زیر به وجود میاد:
"Error: [vuex] Do not mutate vuex store state outside mutation handlers."
در حالیکه من دارم داخل تابع saveChange
میگم مقدار آرایه داخل store
را تغییر بده (توابع داخل action
و mutation
را بدلیل طولانی شدن سوالم، نمی نویسم)
methods: {
saveChange () {
this.$store.dispatch('editProducts', this.editProduct)
}
}
حتی گفتم یک شیء جدید بسازم و مساوی آرایه ای که از store
گرفتم بذارم و edit
رو روی اون انجام بدم اما باز هم همون ارور به وجود اومد.
نکته: داخل store
من strict: true
رو هم قرار دادم تا این ارور رو بهم نمایش بده
لطفا اگه کسی راه حلی داره کمکم کنه چون یکی دو روزی هست وقتم رو گرفته و هیچ نتیجه ای هم نگرفتم، مخصوصن مدیر سایت؛ امیر آقا که با vue
کار میکنن.
۲۱ خرداد، ۱۳۹۷
@danial_kh به گفتگوی کار تیمی در GitLab جواب داد.
@psobhanlo بله ما هر کدوممون یه fork
گرفتیم
۲۰ خرداد، ۱۳۹۷
@danial_kh به گفتگوی کار تیمی در GitLab جواب داد.
@tilkacoder من اینجوری متوجه شدم که هر بار پس از commit
کردن ابتدا باید جدیدترین تغییرات روی سرور رو دریافت کنیم و سپس push
رو انجام بدیم. حالا اگه درخواست merge
بفرستم و تغییراتم پس از تایید شدن، روی پروژه اعمال بشه و من مشغول کار جدیدی روی بخشی از پروژه باشم دوباره قبل از push
کردن باید اون تغییر جدید روی پروژه رو دریافت کنم که مثلا همون تغییری هست که من ایجاد کرده بودم و به پروژه اضافه شده بود.
@danial_kh یک گفتگو به اسم کار تیمی در GitLab درست کرد.
من و دوستم در حال یادگیری git
هستیم و قصد کار کردن به صورت گروهی روی یک پروژه توی سرویس gitlab
رو داریم. هر کدوممون روی یک قسمت کار می کنیم و کار رو را تا قبل از مرحله push
کردن ادامه میدیم (کارهایی که امیر اقا عظیمی توی آموزش git
برای همکاری توضیح دادن) اما وقتی قصد داریم push
را انجام بدیم با اروری مواجه میشیم که میگه قبل از push
کردن باید pull
کنید و وقتی این کار رو می کنیم تمام تغییراتی که توی فایل هامون به وجود آورده بودیم از بین میره. حالا سوالم اینه کجا رو داریم اشتباه میریم یا کدوم کار رو انجام نمیدیم که به این مشکل برمیخوریم.
حیفم میاد از امیر آقا عظیمی بابت زحمتایی که کشیده تا باعث رشد برنامه نویسی بین فارسی زبونا و این امید و انگیزهای که به جوونا میده تا بدون ترس برنامه نویسی رو شروع کنن، در اینجا تشکر نکنم. آرزوی موفقیت بیشتر برای امیر عزیز ( و تیمش توی پارس کلیک ) دارم.