বাংলায় অবজেক্টিভ-সি, সুইফ্ট এবং আইওএস অ্যাপ ও গেম ডেভেলপমেন্ট

বাংলায় অবজেক্টিভ-সি এর ধারনা ভাগা-ভাগি মূলক সিরিজ পোস্ট পুরোদমে চলছে। আশা করি এই সিরিজের ১০ চ্যাপ্টার শেষে আরেকটি সিরিজ শুরু হবে “রিয়াল আইফোন অ্যাপ্লিকেশন ডেভেলপমেন্ট উইথ ইউজার ইন্টারফেস – ১০ চ্যাপ্টার”
কেউ এই মাল্টি সিরিজের লেখক হয়ে দুই একটি চ্যাপ্টার নিয়ে লিখতে চাইলে যোগাযোগ করতে পারেন কমেন্টে।
গরম থাকতে থাকতেই ৪টি ম্যাজর সেকশন (Obj-C, iOS-GUI, Game, Publish&Marketing) সম্বলিত একটি পূর্ণ বাংলা কাগুজে বই আসতে পারে। যত বেশি Crowd Authors ততো কম ভুল এবং সঠিক তথ্যের শেয়ারিং

সেকশন ১ঃ অবজেকটিভ সি এর বেসিক ধারনা

UploaDrop [A Dropbox based File Uploading Solution of large files]

What is it?
UploaDrop is a dropbox based upload script which is used for uploading files and folders to dropbox instead of server storage.

Motivation
Most of the time, we, the developers, must have to manipulate large files on the website like videos, audios or other documents. If the unit size of files is small, then its okey. There is no big deal to handle these files of small size. But when the application requires to upload files of large size like 5GB on each upload, we need to consider the reliablity of the upload script. We need to consider the maximum size of files which can be uploaded. We need to consider the maximum bandwidth we can use at a time. We have to take the burden of server optimization.

To get rid of these headache, we can handle this file manipulation tasks to other 3rd party who is already established with the service of file manipulation.

Dropbox is cloud based file hosting server in which users can upload their files and can download when needed. Dropbox has provided lots of features including large file uploading with optimized way.

Dropbox has also provided an api which is highly user-friendly so that any developer can use that.

Objective
To develop a script in which visitors/users of the application can upload file via drag drop or choosing. Instead of the hosting space, these files will be uploaded on dropbox space of the owner of the application. Then these files can be used for different purposes.

Features
1. Multiple files uploading at a time
2. File uploading to owner’s dropbox storage
3. No need to have headache about file manipulation, storage, bandwidth of file uploading.
4. Recrsively finds every files from all folders and uploads to dropbox

Acknowledgements
First of all I would like to thank the Dropbox Team for providing this awesome service.

Then I thank Mr. Nuhil Mehdy (nuhil.net) to give me the idea.

Lets start the development of an simple application called UploaDrop by which end user will upload something to your website, and instead of your host, it will be uploaded on dropbox.

When you are a Developer
The first task is to create an app on your Dropbox account using developer account.

1. Go to https://www.dropbox.com/developers/apps and Click on “Create app” button.

2. Fill these given fields as the picture shows.

3. After completing the creation of your app you will see the details of your app by going https://www.dropbox.com/developers/apps and click on the App Name ‘UploaDrop’.

See the rounded area which provides app key and app secret. These two key defines the access of your dropbox account for uploading from outside.

4. Now open composer.json for editing and set these keys on this like the picture shows.

5. OK, In this step you are all set. Now lets get the access key. Execute getAccesskey.php on the browser which returns a url like
https://www.dropbox.com/1/oauth2/authorize?locale=&client_id=12ab34vd&response_type=code

6. Copy this url and paste on the browser. It will ask for permission to create a folder named app name on the dropbox account.

Click on “Allow”

7. An access key will be displayed like the given screenshot.

Save the Access key on some secured place.

8. Open index.php and and edit the $accesskey field on line 10.

Open processupload.php and do the same task on line 5.

Here, developer’s work is finished. All configuration is finished.

Front End behavior
1. Hit “index.php” on the browser, the front end page will be arrived.

2. In the drag&drop area, user can drag&drop their files and folders. A progress bar will be shown for each of the files when uploading. After completation of uploading of all files click on “Finish Uploading”.

This is the simple app. Actually, It is a brief instruction of how to use Dropbox Core Api.

Future Works
1. In the top area, all existing files are being displayed in recursive structure which is coded by me. In dropbox core api, there are options to create download link of each files, Editing, Deleting etc. These 3 features can be achieved in future.

2. If any compressed file is drop on the drag&drop area, it doesnt extract the compressed file. In future, it can be an issue.

Source Code (Github)
Watch Demo

Review of basic Java Standard Edition (আস্তে আস্তে জাভা শিখি)

Here is a list of basics about Java what we must know.

  • Code Structure
    [public static void main(String a[]) , class name]
  • Difference between C, C++ and JAVA
  • Why Java is better than other programming languages?
  • What do you mean by OOP?
  • Does Java supports OOP?
  • Define these terms
    • inheritence
    • encapsulation
    • polymorphism
  • Access Specifiers
  • Friend function
  • Friend Class
  • Super class, Sub class
  • Difference between abstract class and interface
  • implement or extend
  • Virtual class, virtual function
  • Differences between Function Overloading & Operator overloading
  • String Manipulation

As per my knowledge, If we learn these things with practicing some code related to these topics, we can start for any kind of development or to take in part in java related exams.

I am sorry to say that I can’t share these things right now. But in near future, a brief of these topics will be here.

[polldaddy poll=7717806]

API vs Library vs SDK [Self Note]

A Library is a collection of code that we can call from our own code, to help us do things more quickly/easily. For example, Let there is a class for pagination, and we just call the method of that class which does the pagination work.

An API (application programming interface) is a term meaning the functions/methods in a library that we can call to ask it to do things for us – the interface to the library.

An SDK ( (software development kit) is a library (often with extra tool applications, data files and sample code) that aid us in developing code that uses a particular system (e.g. extension code for using features of an operating system (Windows SDK), drawing 3D graphics via a particular system (DirectX SDK), writing add-ins to extend other applications (Office SDK), or writing code to make a device like an Arduino or a mobile phone do what we want)

[Collected]

HAPPY NEW YEAR, 2014 🙂

প্রতিক্রিয়া [আমি ও রুয়েট]

গত মঙ্গলবার (১৭ই সেপ্টেম্বর, ২০১৩) তারিখে আমার রুয়েট জীবনের শেষ ক্লাস, ক্লাসটেস্ট, ল্যাব, ল্যাব ফাইনাল, কুইজ , বোর্ড ভাইভা সব কিছুর পরিসমাপ্তি ঘটল।বাকি শুধু ফাইনাল পরীক্ষা আর থিসিস। এরপর থেকেই আমার ফেসবুকের ওয়াল ভরে আছে বন্ধু,ক্লাসমেট,রুমমেটদের দু:খভরা স্ট্যাটাস দিয়ে। তাই আমিও লিখতে বসলাম।তবে আমি লিখব সেইসব জিনিসের তালিকা যা আমি ঢাকা গিয়ে মিস করব।

খাবার-দাবার :

  • বৈশাখী হোটেলের ডালভাজি (সকালের নাস্তা, পরোটার জন্য না, ডালভাজির জন্য যেতাম)।
  • কাশেমের (k.f.c) হোটেলের আলুভাজি (শুধু আলুভাজি দিয়েই দুই প্লেট ভাত খেয়ে ফেলা সম্ভব)।
  • নর্দানের মোড়ের নাহিলের আম্মার (আমাদের খালা) বানানো ছোলা(প্রতিদিন বিকালে দুই বাটি) আর বেগুনি।
  • ডাইনিং এর পাতলা ডাল। আমার কিন্তু ভালই লাগে।খাওয়া শেষে একবাটি ডাল চুমুক দিয়ে খাওয়া ( পুরো মাখখখখখন)।

বন্ধু-বান্ধব ও অন্যান্য:

  • ডলারের সাথে সেন্স অব হিউমার এর প্র্যাকটিস।
  • সাদিয়া জামান এর সাথে রাত ১২ টার পর ফেসবুকে আড্ডা (3rd ও 4th সেমিস্টারে, সে যাবতীয় পড়াশুনা শেষ করে তারপর ফেবুতে আসত।)
  • প্রবালের একটু পর পর ফেবুতে নক করে “ওই, কি করস?” জিগ্গাসা।
  • রন্জুর ইংরেজী।
  • কারনে অকারনে শাহেদকে মারধোর করা।
  • অভির সাথে শেষ বেঞ্চে বসে সারা ক্লাস ধরে গল্প আর স্যারদের ঝাড়ি খাওয়া।
  • তাহমিদকে চুম্মা দিতে চাইলে ওর লজ্জাভরা মুখ দর্শন।
  • অনিকের সাথে গভীর রাতে মেসেন্জারে অহেতুক গেজানো। নেই কাজ তো খই ভাজ টাইপ
  • কিছু শুভাকাঙ্খী।
  • কিছু অশুভাকাঙখী।
  • সামাদের সাথে রোজ গভীর রাতে তালাইমারী যাওয়া
  • গভীর মনোযোগ দিয়ে স্যার / ম্যাডামের লেকটার শুনার সময় অহেতুক মিসকল দিয়ে অনন্যার মনোযোগ নষ্ট করা।
  • রুমে আই.বি খেলার আসরে রন্জুর “আর কোন পিট নেই” বলা।
  • রুমে আই.বি খেলার আসরে হারার সময় দেবুর নিজের পক্ষে নতুন নতুন নিয়ম আবিস্কার
  • কিছু বন্ধু যারা আমার সামনে আমার সমালোচনা করে। (আমার পছন্দের কাজ)
  • কিছু মানুষ যারা আমার পেছনে আমার সম্পর্কে কটুক্তি করে এবং আমার সামনে খুবই ভাল ভাব ধরে। (আমার অপছন্দের কাজ)
  • কিছু জুনিয়র যারা “দাদা দাদা” ডাকতে ডাকতে অস্থির করে ফেলে।
  • কিছু জুনিয়র যারা পাশ কেটে চলে যায় এবং মনে মনে গালি দেয়।
  • কিছু মানুষ যাদের কমন সেন্স এ আমি মুগ্ধ।
  • কিছু মানুষ যাদের কমন সেন্স আমার থেকেও কম (আমার কমন সেন্স এর মার্ক ১/১০০)।
  • কিছু বন্ধু-বান্ধব যারা আমার উপর খুবই রাগ সেই শুরু থেকে কিনতু আমি কারন জানি না।আমার সামনে প্রকাশ করে না কিনতু আমার অন্য এক বন্ধুর কাছে কটুক্তি করে। 🙂
  • কিছু প্রিয় বন্ধু-বান্ধব (প্রবাল, সাদিয়া জামান ,অভি)সময়ের ব্যবধানে যাদের সাথে দুরত্ব বেড়ে গেছে (দোষটা হয়ত আমারই)
  • ফয়সাল যাকে না দেখলে আমি বুঝতাম না যে আমার থেকেও নিশ্চিন্ত পোলাপান আছে।
  • কিছু শিক্ষক, কিছু সিনিয়র, কিছু সমবয়সী, কিছু জুনিয়র যাদের থেকে আমি সামনে আগানোর অনুপ্রেরণা পাই।

আরও আনেক কিছু আছে। এখন মনে পড়ছে না। মনে পড়লেই আপডেট হবে। 🙂

Removing index.php from url of CodeIgnitor project | Using .htaccess file

Step 1 : Edit the configuration file to give the permission to override default settings.
command: sudo nano /etc/apache2/sites-available/default
Change the value of AllowOverride to ‘All’ from ‘none’

sample:


    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    
        Options FollowSymLinks
        AllowOverride All                                 <- HERE
    
    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All                                 <- HERE
        Order allow,deny
        allow from all
    

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    


Step 2: Enable module rewrite
command: sudo a2enmod rewrite

Step 3: Restart apache server
command: sudo service apache2 restart

sample .htaccess:

RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

N.B: Don’t forget to press Enter once at the end of the htaccess file.Because Newline represents the end of file.

SELF NOTE

Facebook isn’t loading on MAC? (ম্যাক এ ফেসবুক আসে না?)

টাকা পয়সা জমিয়ে একটা ম্যাক কিনলাম। এরপর বাংলালায়নের নতুন মডেমের সফ্টওয়ার দিয়ে আমার পুরান মডেম দিয়ে নেট কানেক্ট করলাম।নেট কানেক্টেড কিন্তু কোন পেজ আসে না।কয়েকদিন চলল এভাবে।৩-৪ দিন পর থেকে ফেসবুক বাদে বাকি সব লোড হচ্ছিল। “ফেসবুক কেন আসে না” এই প্রশ্ন করতে করতে যখন দিশেহারা তখন সন্ধান পাইলাম কি করলে ঠিক হবে।কিন্তু সেই করাটা কোথায় হবে সেটা খুজে পাচ্ছিলাম না।আরও ৩-৪ দিন পর পেয়ে গেলাম এই মাত্র (৫ই জুলাই,২০১৩ রাত ১০:০৭)।

চলেন সমাধানটি দেখে নেই।
প্রধমেই চলে যান “System Preference” এ। তারপর “Network” এ।
বামদিকের লিস্ট থেকে সিলেক্ট করেন আপনার ইন্টারনেট ব্যাবহার করার মাধ্যমটি।
“Advanced” এ ক্লিক করে “Hardware” এ যান।
এবার নিচের মত করে সবগুলি অপশন সিলেক্ট করে “OK” চাপুন।
Configure : Manually
MTU : 1400

বাকিগুলো অপরিবর্তনীয়।
এখন ধুমাইয়া ফেসবুকিং করছি।

কি মিয়া ভাই, কই যান? MTU কি জিনিস শুনবেন না?
“communication protocol” এর একটি নির্দিস্ট লেয়ারে সর্বোচ্চ যে কয়টি ফ্রেম পাঠানো যায় সে সংখ্যাকে বলা হয় MTU (Maximum Transmission Unit)
বিভিন্ন ISP এর MTU এর মান বিভিন্ন হয়।তাই MTU এর মান ম্যানুয়ালী পরিবর্তন করতে হয়।

নুহিল ভাই এবং জয় দা কে ধইন্যা।

Top X rated products for Virtuemart Joomla 2.5

As one of my client upgraded his site from joomla 1.5 to 2.5 .Everything was ok but top rate product module was for only joomla 1.5/1.7 version. So, He told me to find a suitable module for Display top rated products. I have searched a lot but didn’t get any working module for solving this.So, I have decided to create a module. So ,I learn’t how to create a simple module for joomla 2.5 from here converted the code(top rated module for 1.5) for Joomla 2.5. As database structure in 2.5 is changed from 1.5/1.7 I had to play with SQL queries. Here is the module .You can use this and let me know reviews.

Feature:

  1. Its easy to use
  2. Can be defined the number of top products to display

Download this module from here .
send email on ujjal.ruet@yahoo.com

Thank you.

Example :

Converting a .JAR Into .EXE for WIndows user

We, the Java developers, develop softwares using Java because of it’s platform independency . Though now-a-days JDK is available to users,we usually provide JAR file of the software to the user.So, users can start it with only a double click. But  still some windows users prefere .exe version of that software. So, now I am going to tell you about a software by which we can convert a .jar file to .exe for windows user.

Before starting this we must read these two posts carefully.

Click here

We will use Jar to exe convert wizard 1.8 to convert  our jar files to exe.

 

Step 1 : Install the software and run the wizard.

Step 2:  Browse project.jar and press next.

Step 3: Select Console application or Windows gui application

Step 4: Select the Main class from where the software will start and keep “select a picture for splash window” blank.

Step 5: enable Support System tray and disable all others disable. [or, you can change as your requirements.]

Step 6: Add others Jars you have used like mysql-connector.jar . Usually these are on project/dist/lib/ if you are using Netbeans IDE. 

Step 6:  press Next and Finish.

Step 7 : We got the converted exe file of our jar file.

 

Thanks for reading this post.

Ujjal