During learn and experience

آیا Dashboard Blogger ف-ی-ل-ت-ر شده است ؟

سلام
دیشب واقعا شوکه شدم وقتی صفحه Dashboard بلاگر باز نشد و پیغام Access forbidden رو دیدم. حقیقتش هنوزم توی شوکم و نمی دونم آیا واقعا مخابرات ایران این قسمت بلاگر رو ف-ی-ل-ت-ر کرده یا گوگل دسترسی این قسمت رو از کاربرانی که از ایران وارد می شوند گرفته. البته با توجه به متن بسم الله الرحمن الرحیم که در بالای وبلاگ های blogspot (بجای پنل مدیریتی بلاگر) قرار داده شده به نظر می رسه کار کار خودیاس.
والا دیگه من نمی دونم کجا برم که دم این خودیا اونجا نباشه و سنگ لای چرخ ما نندازن. 
بگذریم ، بهرحال بازم ما هستیم دوستان در خدمت شما.

شاد باشید.
۰۶ ارديبهشت ۸۹ ، ۲۱:۰۹ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

جنگ سیستم عامل های موبایل (قسمت سوم)




آیا مایکروسافت می تواند سهم بیشتری داشته باشد ؟
در حالی که بالای 90 درصد بازار سیستم عامل دسکتاپ در اختیار ویندوز و مایکروسافت می باشد ، در بازار سیستم عامل های موبایل وضعیت معکوسی برای مایکروسافت وجود دارد و تنها 8 درصد این بازار در اختیار سیستم عامل ویندوز موبایل می باشد.
البته مایروسافت با عرضه ویندوز موبایل نسخه 6.5 گام بزرگی برای بدست آوردن سهم بیشتر از این بازار برداشته است اما با وجود رقبای قدرتمندی مانند: symbian ، iPhone OS و android بنظر می رسد مایروسافت راه سختی در پیش دارد. مطمئنا با عرضه ویندوز موبایل 7 می توان در باره آینده این سیستم عامل موبایل تصمیم گیری دقیق تری داشت.

شرکت های تولید کننده تلفن های هوشمند که از سیستم عامل Windows Mobile استفاده می کنند
  • HTC
  • Samsung
  • Sony Ericsson
  • iMate
  • Motorola (بصورت محدود)
  • Del (بصورت محدود)
  • Toshiba (بصورت محدود)
  • Asus (بصورت محدود)
  • Gigabyte (بصورت محدود)
  • Acer (بصورت محدود)
  • LG (بصورت محدود)
برتری ها Windows Mobile
شاید بیشترین مزیت این سیستم عامل یدک کشیدن نام ویندوز است ، بدلیل محبوبیت سیستم عامل ویندور ، کاربران انتظار زیادی از سیستم عاملی که ادعا دارد نسخه موبایل همان سیستم عامل است دارند. وجود نرم افزارهای فروان برای این سیستم عامل به استفاده کنندگان آن امکانات فراوانی را می دهد علاوه بر این وجود ابزارهای توسعه قدرتمند (Visual Studio) برای تولید برنامه برای این سیستم عامل و همچنین پلتفرم .Net برروی این موبایل می تواند در آینده قدرت نرم افزاری بیشتری برای این سیستم عامل به ارمغان آورد.
اما مهمترین نکته ای که نباید از آن غافل شد پشتیبانی بزرکترین شرکت نرم افزاری جهان (مایکروسافت) از این سیستم عامل می باشد که باعث می شود تجربیات غنی نرم افزاری و بودجه بالا همیشه در اختیار تیم توسعه ویندوز موبایل قرار داشته باشد.

چالش های Windows Mobile
عرضه نهایی نسخه 7 می تواند برای این سیستم عامل هم موقیت آمیز و هم چالش زا باشد. در صورتی که قابلیت خارق العاده ای در نسخه جدید این سیستم عامل گنجانده نشده باشد نه تنها نمی تواند سهم این سیستم عامل از بازار را افزایش دهد بلکه با وجود رقبای جدید (مانند android و bada) باعث کاهش سهم بازار این سیستم عامل نیز می شود.

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

شاد باشید.
۰۳ ارديبهشت ۸۹ ، ۱۵:۳۳ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

Java EE 6 - JAXB 2.2

XML is used in platforms for defining deployment descriptors, metadata information, and so on. XML is also used as an integration technology that solves the problem of data independence and interoperability.  Associated with these XML documents, schemas are used to validate exchanged data.
In Java, there are several low-level APIs to process XML documents and XML Schemas , from common APIs (javax.xml.stream.XmlStreamWriter and java.beans.XMLEncoder) to more complex and low-level models such as Simple API for XML (SAX), Document Object Model (DOM), or Java API for XML Processing (JAXP). JAXB provides a higher level of abstraction than SAX or DOM and is based on annotations.

JAXB defines a standard to bind Java representations to XML and vice versa. It manages XML documents and XML Schema Definitions (XSD) in a transparent, object-oriented way that hides the complexity of the XSD language.
Except for the @XmlRootElement annotation, The following code shows the code of a normal Java class.

package test.jaxb;

import javax.xml.bind.annotation.XmlRootElement;


/**
*
* @author Saeed Zarinfam
*/
@XmlRootElement

public class CreditCard {

private String number;
private String expiryDate;
private Integer controlNumber;
private String type;

public CreditCard(String number, String expiryDate, Integer controlNumber, String type) {
this.number = number;
this.expiryDate = expiryDate;
this.controlNumber = controlNumber;
this.type = type;
}

public CreditCard() {
}

public Integer getControlNumber() {
return controlNumber;
}

public void setControlNumber(Integer controlNumber) {
this.controlNumber = controlNumber;
}

public String getExpiryDate() {
return expiryDate;
}

public void setExpiryDate(String expiryDate) {
this.expiryDate = expiryDate;
}

public String getNumber() {
return number;
}

public void setNumber(String number) {
this.number = number;
}

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}
}

As shown in the following code ,With this annotation and a marshalling mechanism, JAXB is able to create an XML repreentation of a CreditCard instance :

package test.jaxb;

import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

/**
*
* @author Saeed Zarinfam

*/
public class Main {

public static void main(String[] args) {
try {
CreditCard creditCard = new CreditCard("1234", "12/09", 6398, "Visa");
StringWriter writer = new StringWriter();
JAXBContext context = JAXBContext.newInstance(CreditCard.class);
Marshaller m = context.createMarshaller();
m.marshal(creditCard, writer);
System.out.println(writer.toString());
} catch (JAXBException ex) {
ex.printStackTrace();
}
}
}
 
Reference : Beginning   Java™  EE 6 Platform  with GlassFish™  3 From Novice to Professional 

 
 
 
 
 
have a nice time.

۱۶ فروردين ۸۹ ، ۱۹:۴۲ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

جنگ سیستم عامل های موبایل (قسمت دوم)

جنگ سیستم عامل های موبایل (قسمت اول)

نقش Nokia و Symbian در جنگ سیستم عامل های موبایل
Nokia حتی قبل از تملک کامل سهام Symbian و سپس اپن سورس کردن آن ، بعنوان برترین حامی و استفاده کنند سیستم عامل Symbian شناخته می شد. پس از اپن سورس شدن کامل سیستم عامل Symbian آینده روشنی برای آن تصور می شود علاوه براین Nokia سرمایه گذاری شدیدی برروی توسعه و قدرتمند تر کردن این سیستم عامل کرده است. تقریبا تمامی تلفن های هوشمند Nokia  (بغیر از N900) از سیستم عامل Symbian استفاده می کنند. بطور حتم آینده فروش تلفن های هوشمند Nokia و سیستم عامل Symbian با یکدیگر گره خورده است.

شرکت های تولید کننده تلفن های هوشمند که از سیستم عامل Symbian استفاده می کنند
  • Nokia 
  • Sony Ericsson
  • Samsung
  • LG (بصورت محدود - آخرین گوشی تولید شده با سیستم عامل Symbian در فوریه سال 2009)
  • Motorola (بصورت محدود - آخرین گوشی تولید شده با سیستم عامل Symbian در سال 2008)
برتری ها Symbian  
یکی از برتری های بزرگ برای Symbian وجود نرم افزارهای فراوان برای این سیستم عامل است علاوه بر این حمایت بزرگترین شرکت تولید کننده تلفن های همراه یعنی Nokia از این سیستم عامل نیز می تواند برگ برنده ایت سیستم عامل باشد. 
از دیگر مزایای این سیستم عامل نیاز به منابع سخت افزاری پایین می باشد که باعث بالا رفتن کارایی تلفن های هوشمندی که از این سیستم عامل استفاده می کنند می شود. 

چالش های Symbian
چالش بزرگ برای Symbian افزایش محبوبیت Android در میان تولید کنندگان تلفن های هوشمند می باشد ( ممکن است با عرضه Windows Mobile 7 محبوبیت این سیستم عامل نیز افزایش یابد) که باعث کاهش سهم Symbian از بازار سیستم عامل های موبایل می شود.
رابط کاربری و امکانات سه بعدی از دیگر نقاط ضعف این سیستم عامل می باشد که در صورت بهبود پیدا نکردن مطمئنا باعث عقب افتادن Symbian از سایر رقبا می شود.

آینده Symbian 
به نظر بنده در آینده نزدیک با وجود رقبایی مانند: Android , Windows Mobile 7 , iPhone و توزیع های سیستم عامل Linux برای موبایل (مانند Maemo و Meego) مطمئنا سهم Symbian از بازار سیستم عامل های موبایل کاهش پیدا خواهد کرد اما این کاهش به اندازه ای نخواهد بود که صدر نشینی Symbian در بازار سیستم عامل های موبایل را به خطر بیاندازد.
البته با برنامه های خوبی که Nokia برای این سیستم عامل در نظر گرفته است (مانند : معماری جدید گرافیک دوبعدی و سه بعدی ، بهبود رابط کاربری و ...) در آینده دور نیز کار برای رقبا سخت خواهد شد.
به نظر بنده یکی از کلیدی ترین نکاتی که بنیاد Symbian و شرکت Nokia باید به آن توجه کنند از دست ندادن شرکت های تولید کنند تلفن همراه (Sony Ericsson و Samsung) است بدلیل اینکه مشارکت سایر شرکت ها در توسعه سیستم عامل Symbian باعث بهیود کیفیت این سیستم عامل می شود. البته تا به اینجا Nokia پس از تملک کامل Symbian تا حدود زیادی حسن نیت خود را با اپن سورس کردن کامل پلتفرم Symbian به شرکت های تولید کننده تلفن همراه ثابت کرده است.
و اما آخرین نکته ای که به نظر من از اهمیت بالایی برخودار است سرعت در توسعه امکانات جدید برای سیستم عامل Symbian است ، در جنگ سیستم عامل های موبایل هر کسی که سریعتر قابلیت های جدید سیستم عامل خود را عرضه کند موفق تر خواهد بود.
شاد باشد.
۱۳ فروردين ۸۹ ، ۰۱:۳۱ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

جنگ سیستم عامل های موبایل (قسمت اول)

در حال حاضر سیستم عامل های زیادی برای تلفن های همراه در بازار موبایل وجود دارد (Symbian ، Windows Mobile ، Android ، iPhone ، Linux ، Maemo ، Bada و ...) که هیچ کدام از این سیستم عامل ها تسلط کامل بر این بازار را در دست ندارند. طبق آمار اعلام شده در February 2010 سیستم عامل Symbian در صدر سیستم عامل های نصب شده برروی تلفن های  هوشمند قرار دارد:
  1. Symbian --- 47.2%
  2. RIM BlackBerry --- 20.8%
  3. iPhone --- 15.1%
  4.  Windows Mobile --- 8.8%
  5. Android --- 4.7%
همانطور که در رده بندی بالا مشاهده می کنید با اینکه سیستم عامل Symbian رتبه اول این رده بندی رادر اختیار دارد ولی طبق آمار ارائه شده در سه ماهه دوم سال 2009 سهم این سیستم عامل 3.1% کاهش پیدا کرده است. و با توجه به پیشرفت خوب سیستم عامل Android و همچنین عرضه Windows Mobile 7 تا پایان سال 2010 و عرضه سیستم عامل های جدید برپایه Linux (مانند : Meego و Maemo) این سهم از بازار برای سیستم عامل Symbian کماکان رو به کاهش می باشد.

در این سری از مطالب به بررسی آینده بازار سیستم عامل های موبایل و جنگ فعلی شرکت های بزرگ بر سر این بازار می پردازیم.
۱۰ فروردين ۸۹ ، ۰۹:۵۰ ۱ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

آیا واقعا سیستم عامل Google Android از جاوا پشتیبانی می کند ؟

در حال حاضر Java ME بعنوان اصلی ترین گزینه برای توسعه برنامه های موبایل در دنیای تلفن های همراه شناخته می شود. بدلیل اینکه تقریبا بالای 90% تلفن های همراه (از گوشی های ساده گرفته تا گوشی های هوشمند) قابلیت اجرای برنامه های Java ME که در قالب فایلهایی با پسوند jar عرضه می شوند را دارند.
در دنیای گوشی های هوشمند (smart phones) اکثر سیستم عامل های شناخته شده (Symbian , Windows Mobile , Linux) برروی خود بصورت پیش فرض JVM دارند که از یکی از نسخه های استاندارد MIDP پشتیبانی می کند. این امر سبب می شود که چندین هزار برنامه Java ME موجود در بازار قابلیت اجرا بروی این سیستم عامل ها را داشته باشند.
متسفانه سیستم عامل جدید شرکت گوگل با نام Android ، قابلیت اجرای برنامه های جاوا براساس استاندارد Java ME را ندارد. این در حالی است که این سیستم عامل زبان برنامه نویسی جاوا را برای توسعه برنامه های Third Party برروی Android انتخاب کرده است و استفاده از جاوا فقط در سطح زبان برنامه نویسی می باشد و گوگل برای سایر اجزای پلتفرم Java ME جایگزین معرفی کرده است:

استفاده از Dalvik virtual machine بجای Java virtual machine.
استفاده از byte code مخصوص به Dalvik virtual machine بجای استفاده از byte code استاندارد.
جایگزینی کتابخانه های مخصوص به خود بجای کتابخانه های استاندارد Java ME.

جدا از دلایل فنی استفاده از Dalvik virtual machine بجای Java virtual machine توسط گوگل به نظر من گوگل با این کار یک ویرایش (Edition) جدید برای زبان برنامه نویسی جاوا عرضه کرده است (Java Android Edition = Java AE).
این اقدام گوگل در صورت جا افتادن سیستم عامل Android باعث چند دستگی در برنامه های تولید شده با استفاده از زبان برنامه نویسی می شود امیدوارم همان بلایی که برسر C++ آمد برسر زبان برنامه نویسی جاوا نیاید.

شاد باشید.
۰۵ فروردين ۸۹ ، ۲۳:۰۹ ۲ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

LWUIT = Lightweight UI Toolkit

شاید یکی از بزرگترین برتری های برنامه نویسی برروی پلتفرم جاوا قابلیت اجرای برنامه های جاوا برروی  mobile devices (مانند: تلفن های همراه) می باشد. 
امروزه تقریبا تمامی تلفن های همراه قابلیت اجرای برنامه های جاوا را دارند و Java ME بعنوان یک استاندارد برای تلفن های همراه و توسعه برنامه برای تلفن های همراه تبدیل شده است. 
LWUIT یک ابزار برای تولید رابط کاربری برای برنامه های Java ME می باشد. که توسط شرکت Sun Microsystems توسعه داده شده است. هدف اصلی این ابزار تولید راحت تر ، سریعتر و زیباتر رابط کاربری برای برنامه های Java ME می باشد.
API های LWUIT شبیه به API های کتابخانه Swing طراحی شده اند و تولید برنامه های LWUIT شبیه به تولید برنامه های Swing می باشد که این امر باعث استفاده مجدد از تجریبات توسعه دهندگان آشنا با کتابخانه Swing می شود.
از نکات قابل توجه این ابزار (بخصوص برای توسعه دهندگان برنامه های موبایل در ایران) پشتیبانی کامل از راست به چپ می باشد. بدلیل اینکه ابتدا این ابزار توسط مرکز توسعه شرکت  Sun Microsystems در اسرائیل ایجاد شده بود پشتیبانی از راست به چپ در کامپوننت های رابط کاربری آن دیده شده بود.
LWUIT علاوه بر قابلیت هایی که در Swing وجود دارد (نظیر: مدیریت رویدادها ، سلسه مراتب کامپوننت ها و container ها و...) قابلیت هایی نظیر themeing ، painters ، انیمیشن و ... را نیز در خود جای داده است.

شاد باشید. 
۰۱ فروردين ۸۹ ، ۱۳:۱۳ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

Working with cookies in GWT

In GWT you can work easily with cookies. GWT has a class that name is Cookies , with this class you can set your values into browser cookie mechanism or get values from browser cookie this class has several static method for this purposes.

Cookies.setCookie(cookieName, cookieValue, expires);

With the above method you can set your value into browser cookie with a cookie name. you can also set a timeout for your cookie in milliseconds (expire time).

You can remove your set cookie with the removeCookie method.

Cookies.removeCookie(cookieName);

With the following method you can get the list of all set cookie.
 
Cookies.getCookieNames();

and finally you can get a spesific cookie with the following method.

Cookies.getCookie(cookieName);

have a nice time.
۱۹ اسفند ۸۸ ، ۲۳:۴۱ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

Using System Clipboard in Java Swing

A System Clipboard is a part of Swing and AWT API  that implements a mechanism to transfer data using cut/copy/paste operations.
With the flowing source code first we set a text into System Clipboard and then register a listener for printing change of the System Clipboard content.

package saeedswing;

import java.awt.Toolkit;

import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.FlavorEvent;
import java.awt.datatransfer.FlavorListener;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.UnsupportedFlavorException;

import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

/**
*
* @author Saeed Zarinfam
*/
public class NewMain {

public static void main(String[] args) {
String someText = "Saeed";
StringSelection ss = new StringSelection(someText);
Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
systemClipboard.setContents(ss, null);

systemClipboard.addFlavorListener(new FlavorListener() {

public void flavorsChanged(FlavorEvent e) {
try {
Clipboard clipboard = (Clipboard) e.getSource();
System.out.println("flavorsChanged : "

+ clipboard.getContents(null).getTransferData(DataFlavor.stringFlavor));
} catch (UnsupportedFlavorException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
});

JFrame jFrame = new JFrame();
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jFrame.setVisible(true);
}
}


have a nice time.
۱۹ اسفند ۸۸ ، ۰۰:۰۲ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

تورم در مدرک و تحصیلات دانشگاهی !!!

سلام
احتمالا اکثر کسانی که این مطلب رو می خونند درباره تورم اطلاعاتی دارند. در ویکی پدیای فارسی آمده است "هر چند طبق تئوری‌های مختلف، تعاریف متفاوتی از تورم صورت می‌گیرد، اما، تمامی آنها به روند فزآینده و نامنظم افزایش در قیمت‌ها اشاره دارند". طبق این تعریف واژه تورم معمولا برای ارزش کالا مورد استفاده قرار می گیرد.
می توان با یک مثال یک تعریف عامیانه از تورم ارائه داد ، همانطور که پدرها و پدربزرگ هامون برامون تعریف کردند زمان اونها با 5 هزار تومان می شد یک ماشین خرید و یا 1 سال یک خانواده رو چرخوند و ... اما در حال حاضر با یک 5 هزار تومانی بزور میشه یک ناهار درست حسابی در یک رستوران خورد.
حالا همه اینهارو گفتم که آخرش بگم دیروز توی ماشین یه بنده خدایی گفت "یادش بخیر یه زمانی یه نفر دیپلم داشت همه می گفتن طرف دیپلم داره یا اگه فوت می کرد می گفتن فلانی که مرد دیپلم داشتا ولی الان دیگه فوق لیسانسم ارزش نداره".
حالا شما قضاوت کنید در این مورد نمیشه از واژه تورم برای ارزش مدرک تحصیلی استفاده کرد. مدارکی که یه زمانی ارزش داشتن و الان برای صحبانشون شدن دردسر. فکر کنم هیچ جای دنیا مثل کشور ما نشه واژه تورم رو برای مدرک تحصیلی استفاده کرد.
شاید خنده دار باشه که یه خبررو بخونیم که در آمریکا هنوز سکه های 1 دلاری ضرب میشه (به دلیل تورم پایین هنوز کاربرد داره) ولی ما داریم به تولید اسکناس 50 هزار تومانی فکر می کنیم ولی دیگه واقعا گریه داره که توی کشورهای دیگه همیشه لیسانس ، لیسانسه (ار نظر ارزش علمی روز) ولی توی کشور ما لیسانس مثل اسکناس ها در طول زمان دچار تورم میشه و از ارزشش کاسته میشه تا جایی که دیگه الان آگهی های استخدام دولتی هم مدرک زیر فوق لیسانس قبول نمی کنه.
پول رو می گیم 3 تا صفر از جلوش ور می داریم مثلا همه چیز درست میشه ولی مدرک تحصیلی چی ...

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

شاد یاشید.
۱۷ اسفند ۸۸ ، ۰۹:۰۹ ۲ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

Qt User Interface Compiler

در خلال توسعه و تولید برنامه با استفاده از Qt Framework ابزارهای زیادی مورد استفاده قرار می گیرد ، یکی از مهمترین ابزارهایی که در پشت صحنه مورد استفاده قرار می گیرد Qt User Interface Compiler یا همان uic است. اگر شما رابط کاربری برنامه خود را با استفاده از نرم افزارهای QT Creator یا QT Designer طراحی می کنید حتما متوجه شده اید که خروجی قسمت  طراحی فرم بصورت visual این دو نرم افزار ، فایل هایی xml با پسوند ui است که اطلاعات فرم طراحی شده را با استفاده از تگ های xml در خود ذخیره می کنند.
وظیفه uic خواندن این فایل های با فرمت xml و ایجاد فایل های C++ header متناظر برای آنها می باشد. در حقیقت QT Creator و QT Designer برنامه های Qt را در دو فاز کامپایل می کنند ، فاز اول کامپایل فایل های ui به فایل های C++ header و در فاز دوم کامپایل تمامی فایل های C++.

شاد باشید.

۱۴ اسفند ۸۸ ، ۱۲:۰۹ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

تفاوت ${...} و #{...} در JSF expression language

با افزوده شدن تکنولوژی JSF به تکنولوژی های لایه وب Java EE افرادی که در گذشته از J2EE استفاده می کردند و با expression language ها در JSP آشنا بودند ، expression language ها در صفحات JSP را با استفاده از ${...} تعریف می کردند ، با ورود JSF توسعه دهندگان با syntax جدیدی از expression language آشنا شدند که از نظر مفهومی مانند expression language ها در JSP بود ولی بجای ${...} با #{...} تعریف می شدند.

از نظر تکنولوژی های JSF و JSP قواعد نوشتن expression language در هر دو حالت یکسان می باشد اما اگر یک expression language درون ${...} تعریف شود مقدار آن در زمانی پردازش صفحات توسط سرور محاسبه می شود (اصطلاحا immediate evaluation) ولی اگر یک expression language درون #{...} قرار بگیرد سرور مقدار آن را تازمانی که به آن expression language نیاز نباشد محاسبه نمی کند (اصطلاحا deferred evaluation).

شاد باشید.
۰۷ اسفند ۸۸ ، ۰۰:۴۶ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

دانلود Firefox gwt-dev-plugin

بمنظور توسعه برنامه های GWT باید از GWT Developer Plugin استفاده کنید. GWT Developer Plugin for Firefox پلاگین مورد نظر برای مرورگر Firefox می باشد.
با استفاده از لینک زیر بدون استفاده از پ-ر-و-ک-س-ی می توانید آخرین نسخه GWT Developer Plugin for Firefox را دانلود کنید (مخصوص توسعه دهندگان ایرانی).

gwt-dev-plugin.xpi

شاد باشید.
۲۷ بهمن ۸۸ ، ۱۵:۴۰ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

دانلود gwt-2.0.2.zip

با استفاده از لینک زیر بدون استفاده از پ-ر-و-ک-س-ی می توانید آخرین نسخه GWT = Google web toolkit را دانلود کنید (مخصوص ایرانی ها).
از این پس می توانید نرافزارهایی را که بدلیل تحریم نمی توانستید دانلود کنید را در این وبلاگ به راحتی دانلود کنید.

Download Google Web Toolkit (GWT) free

gwt-2.0.2.zip

شاد باشید.
۲۷ بهمن ۸۸ ، ۱۴:۵۴ ۲ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

درباره Qt و C++



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

با توجه به تمام موارد بالا تقریبا باز هم نتونستم خودم رو کنترل کنم و C++ رو شروع کردم. Framework های زیادی برای زبان C++ وجود داره ، دربین این Framework به نظرم Qt از جنبه های مختلف بهتر و قویتر به نظر رسید مثلا موارد زیر را می توان بعنوان مزیت های این Framework بیان کرد:

- Cross Platform بودن (سرو تهم رو بزنن جاوا کارم)
- وجود ابزار های قوی برای توسعه دهندگان (مثل Qt creator و ...)
- وجود یک community قوی و همچنین حمایت شرکت بزرگی مثل Nokia
- وجود کتابخانه های فراوان و متنوع در زمینه های مختلف
- و...

به نظر من اگر قرار باشه مصیبت برنامه نویسی با C++ را قبول کنیم Qt بهترین Framework برای توسعه برنامه های C++ می باشد. البته این نکته را هم یادآوری بکنم که Qt برای زبان جاوا یک binding به نام Qt Jambi دارد که البته به نظر من اگر کسی می خواهد برای تولید برنامه ها از زبان جاوا استفاده کند بهتر است از همان کتابخانه های مشهور جاوا استفاده کند (Swing ، SWT).

در کل تا این لحظه مشکل یا ایراد خاصی در Qt ندیدم و به نظر می رسه با یک Framework کامل روبرو هستم.

شاد باشید.
۲۶ بهمن ۸۸ ، ۲۱:۳۹ ۲ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

معماری JSF 2



عکس فوق یک دید سطح بالا از معماری JSF 2 را نمایش می دهد. دلایل زیادی وجود دارد که باعث می شود معماری JSF ، غنی (rich) و انعطاف پذیر باشد. در زیر به این دلایل می پردازیم:

1- FacesServlet: کلاس servlet اصلی در برنامه های JSF است که شروع پاسخ به تمامی درخواست هایی که از سمت کلاینت به برنامه JSF می آید می باشد و به راحتی می توان آن را تنظیم کرد.
2- JSF به توسعه دهندگان اجازه می دهد از چندین PDL (زبان تعریف رابط کاربری) نظیر JSP یا Facelet استفاده کنند.
3- Renderers: این قسمت معماری وظیفه نمایش کامپوننت ها و قرار دادن مقادیر وارد شده توسط کاربر درون کامپوننت ها را بر عهده دارد.
4- Converters: مکانیزمی برای تبدیل کردن مقادیر وارد شده توسط کاربر می باشد.
5- Validators: مکانیزمی برای اعتبار سنجی مقادیر وارد شده توسط کاربر می باشد.
6- Managed bean و navigation: منطق کاری برنامه درون managed bean ها انجام می شود و همچنین درون آنها چگونگی navigation بین صفحات نیز کنترل می شود.
7- پشتیبانی از AJAX: بصورت توکار JSF 2 از AJAX پشتیبانی می کند.

همانطور که ملاحضه کردید معماری JSF یک معماری کامل است و تمامی جنبه های مهم در برنامه های تحت وب را درون معماری خود جا داده است.

منبع : Beginning Java™ EE 6 Platform with GlassFish™ 3 From Novice to Professional

شاد باشید.
۲۵ بهمن ۸۸ ، ۱۲:۰۰ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

آینده GWT UIBinder

در حال حاضر برای ساخت رابط کاربری در GWT دو روش وجود دارد:
  • ایجاد رابط کاربری با استفاده از programming
  • ایجاد رابط کاربری بصورت Declarative با استفاده از UIBinder
در این پست در باره UIBinder بعنوان قابلیت جدید GWT 2 صحبت کرده بودیم. افرادی که از نسخه های قبلی GWT استفاده کرده اند می دانند که در روش Declarative قابلیتی وجود ندارد که نتوان با استفاده از روش programming پیاده سازی کرد. روش Declarative بعنوان یک روش جایگزین پیشنهادی برای ایجاد رابط کاربری در GWT است.

اما سوال اصلی این است که با وجود یک روش (
ایجاد رابط کاربری با استفاده از programming) چرا تیم GWT تصمیم به ارائه یک روش پیشنهادی دیگر کرده است. تحلیل بنده از دلایل بروز این اتفاق و آینده این قابلیت بصورت زیر است:

- روش
programming در بین برنامه نویسان محبوبیت فراوانی داشت ولی جذابیت زیادی برای طراحان وب که بیشتر عادت به استفاده از tag برای توسعه برنامه تحت وب داشتند نداشت به همین دلیل قابلیت ایجاد رابط کاربری با استفاده از UIBinder (که از تگ های xml استفاده می کند ) می تواند توسعه دهندگان بیشتری را جذب GWT کند.

-
ایجاد رابط کاربری با استفاده از UIBinderاحتیاج به کدنویسی کمتری دارد که باعث می شود چیدمان رابط کاربری از منطق و رویداها جدا باشد و همچنین باعث تولید کدهای خواناتری می شود.

- بطور کلی تولید ابزار طراحی رابط کاربری بصورت visual برای روش های برپایه تگ راحت تر از
تولید ابزار طراحی رابط کاربری بصورت visual برای روش های برپایه کد می باشد. من فکر می کنم که تیم GWT قصد دارد در آینده یک ابزار طراحی رابط کاربری بصورت visual بعنوان eclipse plug-in عرضه کند و این اولین قدم برای ارائه چنین محصولی است.

در نهایت به نظر بنده این قابلیت جدید یک پیشرفت خوب برای GWT به حساب می آید (با اینکه من هنوز از روش
programming استفاده می کنم) و در صورتی که یک ابزار طراحی رابط کاربری بصورت visualهم برای این قابلیت عرضه شود می تواند GWT را بیش از پیش قدرتمند تر و محبوب تر کند.

شاد باشید.
۱۹ بهمن ۸۸ ، ۰۸:۴۷ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

???????? در خروجی گزارش JasperReport

شاید بسیاری از برنامه نویسان فارسی زبان به این مشکل در استفاده از ابزار قدرتمند JasperReport برخورد کرده باشند. مشکل از این قرار است که زمانی که شما متن فارسی درون خروجی گزارش خود دارید ، آن متون بصورت ?????? نمایش داده می شوند.
تا به این لحظه دو دلیل برای وجود این مشکل پیدا کرده ام (به احتمال زیاد دلایل دیگری نیز می تواند وجود داشته باشد).

1- مقداردهی نکردن ContentType برای HttpServletResponse:
charset اطلاعاتی که قرار است درون خروجی گزارش نمایش داده شود باید بصورت زیر مشخص شود:

response.setContentType("text/html;charset=UTF-8");

2- پس از مقداردهی ContentType متد getWriter از کلاس HttpServletResponse فراخوانی شود
دقت داشته باشید شئ PrintWriter را حتما بعد از مقداردهی ContentType با استفاده از متد getWriter بگیرید.

response.setContentType("text/html;charset=UTF-8");
out = response.getWriter();

شاد باشید.
۳۰ دی ۸۸ ، ۱۰:۳۴ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

استفاده از امکانات Subversion در Microsoft Word



در حال حاضر تقریبا تمامی محیط های برنامه نویسی یا بصورت مستقیم و یا با استفاده از plug-in از Subversion پشتیبانی می کنند. مشکلی که من در روزهای گذشته داشتم این بود که می خواستم درون نرم افزار Microsoft Word نیز بتوانم همانند محیط های برنامه نویسی فایل های ویرایش شده را برروی سرور commit و یا update کنم و بتوانم از دستوراتی مانند diff استفاده کنم.
برای این کار قاعدتا باید دنبال plug-in برای Microsoft Word می گشتم ، پس از کمی جستجو msofficesvn را پیدا کردم (البته بدلیل اینکه میزبان این پروژه سایت Google Code می باشد برای ایرانیان قابل دسترسی نیست و باید از پ-ر-و-ک-س-ی استفاده کنید).
این plug-in از نرم افزار TortoiseSVN برای انجام عملیات خود استفاده می کند و مراحل نصب آن نیز سرراست می باشد ، البته امکانات و دستورات این plug-in به اندازه امکانات محیط های برنامه نویسی کامل نمی باشد.

شاد باشید.
۱۵ دی ۸۸ ، ۲۲:۴۱ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام

open-closed principle in object oriented design

The open-closed principle states that a software module should be:
  • Open for extension — It should be possible to alter the behavior of a module or add new features to the module functionality.
  • Closed for modification — Such a module should not allow its code to be modified.
In a nutshell, the open-closed principle helps in designing software modules whose functionality can be extended without having to modify the existing code.

resource: Software Architecture Design Patterns in Java by Partha Kuchana (April 22, 2004)
۲۱ آذر ۸۸ ، ۱۲:۵۵ ۰ نظر موافقین ۰ مخالفین ۰
سعید زرین فام