اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


مهران محمودی

مدیر بازنشسته
  • تعداد ارسال ها

    482
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    14

آخرین بار برد مهران محمودی در خرداد 26

مهران محمودی یکی از رکورد داران بیشترین تعداد پسند مطالب است !

4 دنبال کننده

درباره مهران محمودی

  • درجه
    مدیر بازنشسته
  • تاریخ تولد ۹۸/۱۰/۰۴

روش های تماس

  • اسکایپ
    Meran.Mahmoudi
  • آدرس سایت
    http://AnswerCenter.ir
  • یاهو
    MehranMahmoudi1119

مشخصات پروفایل

  • محل زندگی
    قزوین
  • محل تولد
    قزوین
  • علایق
    -
  • شغل
    -

آخرین بازدید کنندگان نمایه

2,677 بازدید کننده نمایه
  1. سلام، فی نفسه کار سختی نیست و میتونید خودتون انجام بدید. قسمتی که چالش برانگیزه پرداخت و ثبت نام به عنوان توسعه دهنده گوگله که 25 دلار نیاز داره. ما هم به علت تحریم های بانکی نمیتونیم مستقیما پرداخت رو انجام بدیم. من از طریق یکی از آشنایان که در آمریکا زندگی میکنه پرداخت های گوگل پلی رو انجام میدم. مبلغ رو واسه ایشون واریز میکنم و پرداخت از اونجا انجام میشه جهت اطمینان خاطر که مشکلی پیش نیاد. چون اگه گوگل متوجه بشه از ایران هستید بلافاصله اکانت رو بلاک میکنه. خودتون هم میتونید از طریق سایت هایی مثل payment24 کارت اعتباری تهیه کنید، شارژش کنید و پرداخت رو انجام بدید. به همین دلیل نیاز به سرور مجازی دارید که این فرایند رو از اول تا آخر از طریق اون انجام بدید. فکر میکنم آموزش های زیادی در سطح اینترنت وجود دارن. متاسفانه فرصت چندانی ندارم که اینجا سر بزنم، برای اطلاعات و راهنمایی بیشتر میتونید از طریق ایمیلی که در امضای بنده وجود داره تماس بگیرید. موفق باشید.
  2. مهران محمودی

    طراحی وب با جاوا

    سلام، جناب مهدی نژاد اطلاعات خوبی ارائه کردن، بنده هم دانسته های خودم رو در اختیارتون میذارم. از جاوا در طراحی سایت زمانی استفاده میشه که بحث امنیت فوق العاده بالا (به دلیل تراکنش های مالی زیاد و شدیدا حیاتی مثل سیستم های بانکی، سیستم های دانشگاهی که بحث پرداخت شهریه دارند و سیستم هایی از این قبیل) مطرح باشه. به عنوان مثال دوستانی که در دانشکده های فنی درس خوندن با سامانه ناد reg.tvu.ac.ir قطعا آشنا هستن! این سیستم با جاوا نوشته شده. نکته قابل توجه اینه که تمام دانشکده های فنی کشور (دقت کنید تمام دانشکده های فنی کشور!) دارن از این سامانه برای انتخاب واحد، مشاهده کارنامه، اعتراض به نمره، پرداخت شهریه و ... استفاده میکنن! این سامانه علی رغم اینکه سرعت پایینی که داره، از هسته قدرتمندی برخورداره. یا یک مثال دیگه: تا جایی که در جریانم اکثر سیستم های درون بانکی ایران با جاوا نوشته شدن؛ همینطور در جاهایی که بحث داده کاوی (Data Mining) مطرحه جاوا میتونه گزینه مناسبی باشه. (البته اگر اشتباه میکنم لطفا تصحیح کنید!) این نکته رو هم باید عرض کنم که تمام این سامانه ها با سایر زبان ها هم قابل پیاده سازی هستن، ولی به دلایلی که ذکر کردم یعنی امنیت و حیاتی بودن تراکنش ها، تیم های برنامه نویس حرفه ای به جاوا روی میارن. منتهی برای وبسایت های تجاری طور (شخصی، شرکتی، فروشگاهی، دانلود موسیقی، دانلود فیلم، دانلود نرم افزار، آموزشی، انجمن، گالری عکس و ...) استفاده کردن از جاوای خالص صرفا زیاد کردن زحمت خودِ برنامه نویسه و نیاز مبرم بهش نیست. استفاده از جاوا اسکریپت کاملا معقول و عادیه و چیز عجیبی در طراحی یک سایت نیست! امروزه کمتر سایت استانداردی رو میشه دید که از جاوا اسکریپت استفاده نکرده باشه. خصوصا برای اعتبارسنجی های سمت کاربر، جلوه دادن به سایت، پیاده سازی تکنیک AJAX و ... پس میشه گفت کاری که میخواید بکنید الزاما نباید با جاوا انجام بشه! کاملا اختیاریه. موفق باشید.
  3. سلام، بررسی کنید فکر میکنم سورس زیر مد نظرتون باشه. Check user inactivity.rar
  4. سلام، اگه اندروید استودیو و جاوا کار میکردید میشد یه کارهایی کرد! چرا که کتابخانه های متعددی برای جاوا وجود دارن که میشه باهاشون فایل های Excel تولید کرد. سریع ترین راهی که در حال حاضر میتونه کمکتون کنه به نظرم استفاده از فایل های CSV هستش! ساختار کلی این فایل ها به این شکله: R1C1,R1C2,R1C3 R2C1,R2C2,R2C3 R3C1,R3C2,R3C3 R4C1,R4C2,R4C3 R5C1,R5C2,R5C3 R به معنای Row یا سطر، و C به معنای Column یا ستون هستش. R3C2 به معنای سطر سوم، ستون دوم. به این صورت که هر سطر در این ساختار با CRLF یا newLine یا n\ از هم جدا میشن و هر ستون هم با کاما مشخص میشه. برای تولید یک رشته حرفی با این ساختار تنها کاری که از دستم براومد این کد جاواست: #If JAVA public String getCsvText(android.database.Cursor cursor) { StringBuilder sb = new StringBuilder(); cursor.moveToFirst(); if (cursor.getCount() > 0) { for (int i = 0; i < cursor.getCount(); i++) { cursor.moveToPosition(i); if (i == 0) { for (int j = 0; j < cursor.getColumnCount(); j++) { sb.append(cursor.getColumnName(j)); if (j != cursor.getColumnCount() - 1) sb.append(","); else sb.append("\n"); } } for (int j = 0; j < cursor.getColumnCount(); j++) { sb.append(cursor.getString(j)); if (j != cursor.getColumnCount() - 1) sb.append(","); else sb.append("\n"); } } } else { sb.append(""); } return sb.toString(); } #End If این کد رو در بین کدهای B4A خودتون بذارید و به شکل زیر ازش استفاده کنید. این اشیا رو در نظر بگیرید: Dim cursor1 As Cursor Dim sql1 As SQL Dim jObj As JavaObject در رویداد Activity_Create: If FirstTime Then jObj.InitializeContext End If جایی که میخواید از یک پرس و جو یا Query فایل CSV تولید کنید: cursor1 = sql1.ExecQuery("SELECT * FROM Table") Dim strCSV As String = jObj.RunMethod("getCsvText",Array As Object(cursor1)) File.WriteString(File.DirRootExternal,"export.csv",strCSV) به این صورت خروجی در فایلی با نام export.csv در DirRootExternal ذخیره میشه... موفق باشید.
  5. سلام، کاربر گرامی بنده متوجه شدم که چند روز اخیر درگیر کامپایل کردن سورس تلگرام هستید. به احتمال زیاد دلیل اینکه به مشکل میخورید اینه که بخشی از تلگرام (نسخه اندروید رو در جریان هستم) با سی پلاس پلاس نوشته شده. لذا نیازمند NDK هست. فایل رو از گیت هاب دانلود میکنید و بعد داخل اندروید استودیو Import میشه؟ توصیه میکنم اول سورس کد رو Fork کنید روی اکانت گیت هاب خودتون و بعدش از طریق منوی VCS اندروید استودیو و اضافه کردن Remote به اکانت گیت هاب خودتون + Clone کردن سورس، به اندروید استودیو اجازه بدید خودش سورس رو از اونجا دریافت کنه و پروژه بسازه. اینکار باعث میشه Gradle رو به سازگارترین حالت ممکن بسازه و اگر هم مشکلی هست، روی سایر بخش ها باشه و چندان چالشی روی همگام سازی Gradle گریبان گیر شما نشه. کار با Version Control ها مبحث گسترده و کارآمدیِ که متاسفانه در ایران خیلی خوب بهشون توجه نمیشه. شخصا در بسیاری از تیم های برنامه نویسی متوجه شدم که برنامه نویس ها ازش استفاده نمیکنند! بنده کمکی از دستم برنمیاد که بگم از چه راهی وارد بشید تا این مشکلات رفع بشن، ولی اطلاعاتی که داشتم رو در اختیارتون گذاشتم شاید کمکتون کنه! تا جایی که میتونید Android SDK خودتون رو کامل کنید. از بخش Extras در SDK Manager فایل های LLDB و CMAKE و NDK رو دانلود کنید. Android Gradle Plugin خودتون رو به بالاترین نسخه ش ارتقا بدید. نسخه Android Studio رو به بالاترین نسخه ش ارتقا بدید. از به روز بودن Android Sdk Tools و Build-Tools خودتون مطمئن بشید. سورس رو که گرفتید از بخش File - Project Structure مسیر NDK رو به پروژه معرفی کنید. ضمنا بهتره نام پوشه دانلودی NDK رو به ndk-bundle تغییر بدید و سپس به پروژه معرفی کنید. در نهایت باید این رو بگم بسیاری از برنامه نویس های پیشروی اندروید، روی Linux با اندروید استودیو کار میکنن. سرعتش روی لینوکس تقریبا 3 برابر ویندوز میشه! چرا که هسته اندروید بر پایه لینوکس نوشته شده و این باعث میشه بسیاری از ابزار مورد نیاز رو شما روی لینوکس راحت تر داشته باشید. لپ کلام: اغلب تلگرام های غیر رسمی (و البته اکثر اپلیکیشن های Play Store و بخش زیادی از اپلیکیشن های حرفه ای کافه بازار) در محیطی برپایه یونیکس (مکینتاش و یا لینوکس) نوشته شدن و روی ویندوز، اندروید کار کردن غیر منطقیه! (این حرف رو بسیاری از توسعه دهندگان کاربلد اندروید بارها و بارها زدن) کامپایل گرفتن تلگرام هم نه که غیرممکن باشه! بلکه کمی دشواره اگه به ابزار و مفاهیم کلی اندروید تسلط نداشته باشید طاقت فرساست. الفبای موضوع چیزِ پیچیده ایه! امیدوارم موفق بشید. موفق باشید!
  6. سلام، کدهایی که دوستان دادن مشکلتون رو حل میکنه به نظرم. منتهی بنده پیشنهاد میکنم ساختار پایگاه داده تون رو درست کنید. برای چنین چیزی (اگه درست متوجه شده باشم هر ستون نام استان رو داره و سطرهاش شامل شهرهای اون استان میشن) در اصل شما باید دو جدول مجزا داشته باشید که با یکدیگر ارتباط دارن. مثال: جدول Province (استان): فیلد Id: حاوی یک مقدار عددی که میتونه Auto Increment باشه و به شکل خودکار بهش اضافه بشه. فیلد Name: نام استان جدول City (شهر): فیلد Id: میتونه اختیاری باشه. ولی بهتره که وجود داشته باشه (مثل فیلد Id جدول Province) فیلد ProvinceID: کلید خارجی که با فیلد Id جدول Province ارتباط داره، در مثالی که میزنم بهتر متوجه میشید. فیلد Name: نام شهر مثال: در جدول Province سطرهایی به این شکل وجود داره: 1 تهران 2 قزوین در جدول City: 1 2 قزوین 2 2 تاکستان 3 1 تهران 4 1 ورامین 5 1 لواسان 6 1 شمیران 7 1 قرچک 8 2 آوج شما متوجه میشید شهر "ورامین" متعلق به استانی هست که در جدول Province مقدار Id برابر با 1 هستش. و از اونجا هم میفهمید که در جدول Province شهر تهران دارای Id برابر 1. پس میشه این نتیجه رو گرفت: شهر ورامین متعلق به استان تهران هستش. پایگاه داده از این نظر که میتونه قلب تپنده یک اپلیکیشن محسوب بشه، شدیدا حائز اهمیت هستش و باید به درستی طراحی بشه. جزء اصول اولیه طراحی یک اپلیکیشن، آماده سازیِ دیتابیس اونه! کاملا قبل از شروع کدنویسی... اصولا یه شغلِ مجزاست در تیم های نرم افزاری! ولی خب ما تو ایرانیم :-) توصیه من اینه که ساختار رو صحیح طراحی کنید، اگر به این شکل جلو برید احتمالا تو دیتابیس دچار پدیده ای به نام "افزونگی" میشید که برای یک اپلیکیشن آفتِ بزرگیه! ضمن اینکه توسعه دادنش هم در آینده سخت تر میشه. موفق باشید.
  7. سلام، دلیل منطقی ای براش وجود نداره. B4A رو کاملا حذف کنید. JAVA رو کاملا حذف کنید. دوباره نصبشون کنید.
  8. سلام، بنده سمت این کار و تلگرام های غیر رسمی نرفتم. اطلاعی هم درموردشون ندارم. چیزی که مشخصه اینه که شما باید تمام خطاها رو رفع کنید. نهایتا مشکلاتی از قبیل استفاده از gradle با وجود تحریم هایی که از سوی گوگل اعمال شده، نداشتن کتابخونه استفاده شده، همگام نبودن نسخه ی بخش های مختلف sdk با سورس کد و ... رخ بده. بعید میدونم کسی که سورس کد رو منتشر میکنه، کدهای خطادار بذاره!! شما بررسی کنید مشکل از چه چیزی ناشی شده و سعی کنید که رفعش کنید. موفق باشید.
  9. اون در خواست دانلود sdk 26 بخاطر این خط در فایل build.gradle هستش که خودتون دارید. اگه نمیخواید دانلود کنید، نسخه ای رو قرار بدید که sdk داشته باشیدش. محتویات اون فایل رو باید به درستی بنویسید. معمولا خود اندروید استودیو به طور درست اون رو پر میکنه، ولی بخاطر import کردن احتمالا اینکار رو به هردلیلی نمیکنه! نسخه gradle رو با توجه به نسخه android studio تنظیم کنید. در نظر داشته باشید که اگه این رو تغییر دادید، باید محتویات فایل gradle-wrapper.properties رو هم درست کنید و مقدار زیر رو به درستی تنظیم کنید. به عنوان مثال (این برای بنده هستش، ممکنه واسه شما تفاوت داشته باشه): distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip نسخه اندروید استودیوتون رو متوجه نشدم! 3.0.1 ؟ موفق باشید.
  10. سلام، منظور بنده فایل build.gradle ای بود که در تصویر زیر مشخص کردم. اونی که شما دادید فایل پایینیشه... عرض کردم اونی که مربوط به پروژتون میشه نه اونی که برای ماژول app هستش. ViewMode رو بذارید روی Android و محتویات اون فایل رو اینجا قرار بدید (البته اگه مشخصات signKey داخلش هست حذف کنید)
  11. سلام، لطفا محتویات فایل build.gradle مربوط به پروژه تون رو اینجا قرار بدید که بتونیم ببینیم. اینی که گذاشتید برای ماژول app هستش. نسخه اندروید استودیو رو هم ذکر کنید.
  12. سلام، توضیحات بیشتری رو لطفا ارائه بدید. میخواید دقیقا چه کاری رو انجام بدین؟ سوالتون واضح نیست.
  13. سلام، توضیحات بیشتری رو لطفا ارائه بدید. میخواید دقیقا چه کاری رو انجام بدین؟ سوالتون واضح نیست.
  14. سلام، این نرم افزار کاربردش به این قدری که شما گفتید، وسیع نیست. یعنی: اینطور که گفتید انواع بازی ها رو پوشش نمیده و فقط مراحل بازی ای که در ویدئو مشاهده میکنید رو میتونه طراحی کنه، چرا که توسط شخصی که پست رو گذاشته نوشته شده و صرفا برای خودش و کاربردهایی که نیاز داره. بنابراین نمیتونید جایی پیداش کنید! و حتی اگه گیر بیارید هم کدهای تولید شده اش به دردتون نمیخوره چون کاملا برای استفاده شخصی هستش. چیزی که مشخصه اینه که بر مبنای libGDX (از خوبای جاوا، ارادت داریم) نوشته شده که یه یک پکیج، Framework یا موتور فوق العاده قدرتمند برای بازی سازیه و پلتفرم های متفاوت رو پشتیبانی میکنه. گویا برای B4A هم وجود داره و میتونید از لینک زیر اطلاعات بیشتری رو کسب کنید: B4A Library - libGDX - Game Engine | B4X Community - Android, iOS, desktop, server and IoT programming tools بنده در مورد نسخه B4A این کتابخونه اطلاعی نداشتم حقیقتش... همین الان متوجه شدم وجود داره :-) موفق باشید.
  15. بله درسته، باید Intent رو در لحظه اجرا شدن تو اکتیویتی کنترلش کنید. برای دریافت Intent ای که باعث اجرا شدن اکتیویتی شده، میتونید از کد زیر استفاده کنید: Dim startingIntent As Intent startingIntent = Activity.GetStartingIntent و برای استفاده از مقادیر موجود در Intent هم از کدهایی با ساختار زیر استفاده کنید (با توجه به نیازتون نام Key رو تغییر بدید): startingIntent.GetData startingIntent.GetExtra("key")