برنامه نویسی واکنشی

معرفی شیوه های نوین برنامه نویسی

برنامه نویسی واکنشی

معرفی شیوه های نوین برنامه نویسی

در این وبگاه سعی می شود که منابع و مقالات جدید در دسترس پارسی زبانان قرار گیرد.
که شامل موضوعات زیر می شود:
,scala,java Nio, non-blocking, event-driven

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

در مرحله خاصی از ادراک این مفهوم سیر می کند.

در نوشتار زیر سعی بر این است که برای شروع یک فعالیت باید از پایه به یک

  1. هدف درست(به این مفهوم که خود هدف درست انتخاب شده باشد.)
  2. استواری در رسیدن به هدف
  3. درک درست
  4. تلاشی که با سه گام قبلی هماهنگ باشد.
  • ابتدا به  فایل ارایه که دکتر احمد روستا درباره مدیرت عمر تهیه کرده توجه نمایید.
  • دو فایل صوتی(یک و دو)  حول  مفاهیم ارتباط روانشناسی شخصیت با موفقیت های اقتصادی صحبت می شود.
  • پس از درک مفهوم بیان شده لازم است به کشف خویشتن بپردازید برای این کار از برنامه Enneagram Pro استفاده کنید.
  • مهمترین مرحله ای که یک کار افرین باید به آن توجه کند این است که پس از اطلاع از "خود واقعی اش" باید  یک سوال چطور از خود بپرسد مثل:

چطوری می توانم با این چیزی که هستم یک کار آفرینی موفق بشوم؟

پاسخ دادان به این سوال باعث ساختن/کشف راه خواهد شد در صورتی که با پرسید سوال چرا (مثل: چرا من این شخصیت رو دارم؟) باعث نا امیدی و... می شود.

و یک برداشت آزاد از قانون مور توجه کنید"هر چیزی در هر زمان می تواند اشتباه از اب در آید".

خواننده گرامی لطفا مطالب این پست را به شکل مرتب( همانگونه که ارائه شده) مطالعه بفرمایید.

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ ارديبهشت ۹۳ ، ۱۲:۳۳
irgeek

یکی از سایت های جالبی که بهش سرمیزنم سایت usesthis هست که نرد های ایرانی سعم می کنن دانسته ها شخصی شون رو به اشتراک بزارن

سایت کاریا  و خوش فکری هم که دیگه بماند.

 

۲ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۳ ، ۱۶:۴۷
irgeek

چند وقت پیش  بعد از انتشار جاوا 8 بود که امید با لامبادا حال کرده بود و درموردش تویت می کرد. بگذریم.


vertx   یک سکوی توسعه عالی هست که مزایای همچون چند زبانی و ... به ارمغان میاره که در موردش می توانید به سایتش مراجعه کنید.

یک مثال ساده راه گشا خواهد بود.

public class SimpleFormUploadServer extends Verticle {
  public void start() {
    vertx.createHttpServer().requestHandler(new Handler<HttpServerRequest>() {
      public void handle(final HttpServerRequest req) {
        if (req.uri().equals("/")) {
          // Serve the index page
          req.response().sendFile("simpleformupload/index.html");
        } else if (req.uri().startsWith("/form")) {
          req.expectMultiPart(true);
          req.uploadHandler(new Handler<HttpServerFileUpload>() {
            @Override
            public void handle(final HttpServerFileUpload upload) {
              upload.exceptionHandler(new Handler<Throwable>() {
                @Override
                public void handle(Throwable event) {
                  req.response().end("Upload failed");
                }
              });
              upload.endHandler(new Handler<Void>() {
                @Override
                public void handle(Void event) {
                  req.response().end("Upload successful, you should see the file in the server directory");
                }
              });
              upload.streamToFileSystem(upload.filename());
            }
          });
        } else {
          req.response().setStatusCode(404);
          req.response().end();
        }
      }
    }).listen(8080);
  }
}

 

 حال اگر همین مثال را با جاوا8 بنویسیم به این شکل خواهد بود.

public class SimpleFormUploadServer extends Verticle {
  public void start() {
    vertx.createHttpServer().requestHandler(new Handler<HttpServerRequest>() {
      public void handle(final HttpServerRequest req) {
        if (req.uri().equals("/")) {
          // Serve the index page
          req.response().sendFile("simpleformupload/index.html");
        } else if (req.uri().startsWith("/form")) {
          req.expectMultiPart(true);
          req.uploadHandler( upload)-> {
              upload.exceptionHandler((Handler)( event) ->{
                  req.response().end("Upload failed");
                }
              });
              upload.endHandler((Handler)( event) ->{
                  req.response().end("Upload successful, you should see the file in the server directory");
                }
              });
              upload.streamToFileSystem(upload.filename());
            }
          });
        } else {
          req.response().setStatusCode(404);
          req.response().end();
        }
      }
    }).listen(8080);
  }
}

 

 

 همانطور که نا گفته پیداست لامبادا باعث کوتاهی کد و خوانایی بهتر و ... شده که یک نتیجه به دنبال دارد:

vertx  که با جاوا 8  دلپذیر تر شد.

۰ نظر موافقین ۰ مخالفین ۰ ۲۳ فروردين ۹۳ ، ۱۶:۳۳
irgeek

خوش حالم که  اتفاقات جالبی در شرف انجام است .

 

انشاالله دور دوم جاوا کاپ 8 اسفند 92  برگزار خواهد شد.

به پذیرفته شدگان آزمون  گواهی نامه اعطا Java Programmer و Java Professional Developer   می گردد.   

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۰ بهمن ۹۲ ، ۰۹:۵۶
irgeek

چیزی که امروز در وب لاگ میزارم شاید خیلی ها مثل خودم دنبالش باشن.

کتاب اول: Getting Started with OrientDB

که از اینجا دانلودش کنید.

کتاب دوم: Getting Started with Hazelcast

که از اینجا دانلودش کنید.Hazelcast

کتاب سوم: Netty in action

که از اینجا دانلودش کنید.

۱ نظر موافقین ۰ مخالفین ۰ ۱۹ بهمن ۹۲ ، ۱۹:۱۴
irgeek

وقتی شروع به یادگیری و توسعه برنامه های هوشمند  میکنی نباید این مفاهیم گم بشه!:

  1. داده های قابل اطمینان هستند.
  2. استنتاج فورا انجام خواهد شد.
  3. اندازه داده های برنامه مهم نیست.
  4. مقیاس پذیری برنامه یک مشکل حاد نیست.
  5. همه جا  می توان از یک کتابخانه خوب استفاده کرد.
  6. زمان محاسبات از قبل مشخص است.
  7. مدل های پیچیده بهتر هستند.
  8. مدل های بدون ارتباط موجود هستند.

بر گرفته از کتاب Algorithms of the Intelligent Web

۰ نظر موافقین ۰ مخالفین ۰ ۰۲ بهمن ۹۲ ، ۲۳:۱۷
irgeek

بهترین IDE حال حاضر زبان های جاوا و اسکالا

امکانات جدید :

  • تبدیل کدهای جاوا به اسکالا
  • هوشمندی بهتر

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ دی ۹۲ ، ۱۲:۰۴
irgeek

اولین کتاب 

The Opportunity Analysis Canvas

لینک دانلود:http://bayanbox.ir/id/6259820817593809163

کتاب دوم

30Days Of Getting Results

لینک دانلود: http://bayanbox.ir/id/16266623728708528

کتاب سوم:

Hackers & Painters

لینک دانلود:http://bayanbox.ir/id/1172132343213423842

 

۰ نظر موافقین ۱ مخالفین ۰ ۰۹ دی ۹۲ ، ۰۱:۲۱
irgeek

اگر شما هم مثل من از Play   استفاده می کنید و دوست دارید که همزمان از همان منابع در sbt هم استفاده کنید بدون حتی دانلود کردن خود sbt  به صورت زیر عمل کنید:

به پوشه نصب Play   رفته ویک فایل با نام sbt.bat  ایجاد می کنیم که محتوای فایل به صورت زیر است:

:begin

@echo off

 

setlocal enabledelayedexpansion

 

set p=%~dp0

set p=%p:\=/%

set fp=file:///!p: =%%20!

set buildScript="%~dp0framework\build.bat"

java -Dsbt.ivy.home="%~dp0repository" -Dplay.home="%~dp0framework" -Dsbt.boot.properties="%fp%framework/sbt/sbt2.boot.properties" -jar "%~dp0framework\sbt\sbt-launch.jar" %*

فایل را ذخیره کرده و یک فایل دیگر به نام  sbt2.boot.properties  درزیر شاخه framework\sbt ایجاد می کنیم که محتوای آن به شرح زیر است:

[scala]

  version: 2.9.2

 

[app]

  org: org.scala-sbt

  name: sbt

  version: ${sbt.version-read(sbt.version)[0.12.2]}

  class: ${sbt.main.class-sbt.xMain}

  components: xsbti,extra

  cross-versioned: ${sbt.cross.versioned-false}

 

[repositories]

  local

  maven-local

  typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]

  maven-central

 

[boot]

  directory: ${play.home}/sbt/boot

 

[ivy]

  ivy-home: ${play.home}/../repository

 

 از مخازن Play  در sbt استفاده میکنیم.

تذکرات: از آنجا که Play   به عنوان یک افزونه sbt است اینکار به راحتی و بدون نیاز به ابزار اضافی  انجام می پذیرد.

برای لینوکس نیز میتوان کار مشابهی کرد که با کمی تلاش به همین شکل قابل دست یابی است. نسخه Play  مورد بحث 2.1.1 است.(:

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ آبان ۹۲ ، ۱۵:۱۳
irgeek

از انجا که من جدیدا از IntelliJ IDEA استفاده می کنم دوستداشتم ببینم که چه امکاناتی در این مورد به من میده؟

چیزی که من پیدا کردم اینها بودند:

·HQL console

·تولید خودکار POJO از روی دیتابیس به همراه xml های نگاشت اشیا

·تولید فایل کانفیگ به راحتی چند کلیک

·ایجاد وابستگی بین اشیا از طریق GUI

چیزهایی که اذیتم کرد این ها بودند:

·سرایند کل فایل های کانفیگ که ایجاد کرده برای فایل های نگاشت این بود:

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"

می بایست با این:

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"

 وبرای کانفیگ خود HIBERNATE  این تولید شده بود:

http www.hibernate.org/dtd/hibernate-configuration-3.0.dtd""

که باید با این یکی:

http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd""

 عوض می شد.

فایل log4j.properties را جای خوبی کپی نکرده بودم  و IDEA (برخلاف NetBeans  و Eclipse   که همیشه  پیدا میکردند)پیدا نمیکرد و باید دوباره Class path  را کانفیگ می کردم .

چیزی که من از این اولین تجربم یادگرفتم زیاد به این IDEA  اعتماد نکنم هرچند که بهترین IDE جاوا یی هست که من تجربه کردم.

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ آبان ۹۲ ، ۱۵:۱۰
irgeek