Latest Topics

Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

“Static Site Generator”- An ultimate solution

Now a day’s, speed, time and security plays the major role in building a website, however these things become a concerning issue due to the user satisfaction and privacy. You will not be pleased if you find your information being hacked due to poor maintenance, will you? I got your answer, it’s definitely a damn big NO!!
In this current era, you really don’t have to worry about building websites with that traditional and boring “Coding” methods. I know you are well known by this time regarding the most popular “Drag and Drop” approaches to build websites.
Keeping Security as well as this Simplification in mind, developers have been invented a great solution; “Static site generator.” Indeed its great!
Most of the sites on the web are either static or dynamic. But in recent time the popularity and the uses of static sites is increasing rapidly. Static site generator allows you to serve quickly with a great extent of simplicity as well as security benefits. There are tons of “Static Site Generators” available at the market for simplifying your life and works. OK, let’s know a bit more about them.
Photo by Kaleidico on Unsplash

Does the Static Site Generator make things more COMPLEX?


Static sites are the easiest way to create a basic website. Not at all like dynamic websites they don’t require any Web programming or database plan. This is basically an HTML site with a collection of some HTML pages who spat out an entirely static website. We can differentiate a static site generator between an employing hand-coded static sites over a full CMS site. Using raw data or user content, applying it over a template one can easily generate a static site through a static site generator.
Most of the websites are built upon both static and dynamic content but static sites offer several advantages. Mostly Static sites provide improved performance in comparison with the dynamic site. It can be served quickly with great simplicity to deploy. The setup of its server is much simpler which confirm the lowest security concern. There is no special requirement though.
Although having such advantages you need to worry about the real-time content issue. With a static site, the ability to have real-time content has been compromised. There is no possible solution to overcome this issue and that’s the major drawback of using static site generator. Taking a user generated comment for content or a blog is also challenging however there is no user input option available at all. Not only is that but for this instance there no admin UI options obtainable.
Moreover, a static site generator increases its admiration day by day. There are numerous choices to select from when selecting a static site generator for the next venture.
I have provided some of the best options you should consider among the list of static site generators below.

1. JEKYLL

Jekyll is considered to be the most popular static site generator so far. This was created by Tom Preston-Werner who was the co-founder of GitHub. Just because of its co interactivity with GITHUB people often use it for small projects and personal blogs. Jekyll basically built with Ruby.

Get begun with Jekyll at jekyllrb.com.
Pros
• Suitable for large scale application as well as websites.
• It’s easy to find any kind of help related Jekyll problem due to its large active community.
• It’s too easy to host your Jekyll site because it suits itself better with GITHUB pages.
• There are so many plugs in available to extend the functionality of Jekyll.
Cons 
• In order to make sure the best use of Jekyll you need set up an environment of Ruby thus Jekyll is mainly based on Ruby.
• It looks complex at first and you need time to become a pro in Jekyll.

2. NEXT.JS

Next.js is also a popular static site generator after Jekyll. It is generally provided by a cloud computing based company called ZEIT. Based on React and Javascript Next.js become an open source framework for developing static React applications.

Get begun with Next.js at nextjs.org.
Pros 
• Next.js rendered the server by default which ensures the performance.
• Setup is absolutely unnecessary because the code splitting automatically and make sure the page load faster.
• Customizable with configuration.
• Availability of enough official plugging.
Cons 
• React required.
• Integrated plugin system missing.

3. HUGO

Hugo is one of the well-known static site generator written in Googles own C based programming languages Go. Featuring over 165 contributors and a large number of users Hugo increases its fans in the market with a rapid rate. You can use the build in theme library of Hugo to build your own websites easily.

Get begun with Hugo at gohugo.io.
Pros 
• The building process is too fast.
• Lots of built-in theme library.
• Contains “Watch Mode” to refresh web page while editing.
• No need for an additional plugin.
Cons 
• Needs the broad plugin environment.
• Basic knowledge of understanding Go programming languages.

4. NUXT

NUXT is used for server rendered Vue application along with command line parameter based static HTML pages. NUXT definitely a good choice for them who are most familiar with VUE and want to developed server rendered Vue applications.

Get begun with NUXT at nuxtjs.org
Pros 
• Using Vue.js code can generate a static web page.
• Easy to learn and implement.
• Easy to configure Vue based SPA.
• So many building options available.
Cons 
• No limitation declared for static sites.
• Basic Vue.js Knowledge required.

5. GATSBY

Gatsby gained its popularity based on the under growing popularity of React. Gatsby is a React and GrphQL based static site generator for creating lightning-fast static websites. To make data available Gatsby simply use GrphQL. Gatsby is aimed for the fastest possible website making within time.

Get begun with Gatsby at gatsbyjs.org.
Pros 
• It contains rich plugin systems.
• Easy for the React users.
• Can collect your data from wherever they exist and integrate them with GrphQL server.
• Produces very fast static HTML pages.
Cons 
• Proper and solid knowledge of React, JS, GrphQL needed.

Photo by Artem Sapegin on Unsplash

My Word

Static site generator has the potential about reliability, stability and for the high traffic issue. So switching to a static site both saves your money as well as time. It could be one of most brilliant decision you have ever made.

প্রথম প্রোগ্রাম ।


প্রথমে কোডব্লোকস রান করি। তারপর নিচের কোডটুকু লিখি।

#include 
int main()
{
   printf("Hello Programming"); 
   return 0;
}
প্রোগ্রামটিকে first_program.c নামে সেভ করি। তারপর কোডব্লোকসের Build মেনু থেকে Build and run কমান্ডটিতে কিল্ক করি অথবা কিবোর্ড থেকে F9 বাটন চাপি। তাহলে নতুন একটা টার্মিনাল উন্ডোতে নিচের মত অাউটপুট দেখতে পাবো।
Output

Hello Programming
নোট: প্রতিটা সি প্রোগ্রাম main() ফাংশন থেকে এক্সিকিউসন শুরু করে। printf() ফাংশনটি কোটেশনের ভিতরে থাকা কনটেন্ট প্রিন্ট করে। ফাংশন নিয়ে পরবর্তিতে অামরা অারও বিস্তারিত অালোচনা করব।

C এর জন্য প্রয়োজনীয় সফটওয়্যার ।(C-PART-02)

......................................................................................................
আমরা কম্পিউটার ব্যবহার করে যাই করি না কেন তা কোন না কোন সফটওয়্যার ব্যবহার করেই করি। যেমন গান শুনতে গেলে কোন না কোন মিডিয়া প্লেয়ার ব্যবহার করি, তা হতে পারে উইন্ডোজ মিডিয়া প্লেয়ার কিংবা কে এম প্লেয়ার। আবার কোন কিছু লেখা লেখির কাজে ব্যবহার করি মাইক্রোসফট ওয়ার্ড কিংবা এ ধরনেরই কোন না কোন সফটওয়্যার।
একইভাবে প্রোগ্রামিং করার জন্যও বিভিন্ন ধরনের সফটওয়্যার ব্যবহৃত হয়।
     ক) প্রোগ্রাম লেখার জন্য ব্যবহৃত সফটওয়্যার
     খ) লিখিত প্রোগ্রাম চালানোর উপযোগী করার জন্য ব্যবহৃত সফটওয়্যার
ক) প্রোগ্রাম লেখার জন্য ব্যবহৃত সফটওয়্যারঃ সি তে প্রোগ্রাম লেখার জন্য বিশেষ কোন সফটওয়্যার এর দরকার নাই। যে কোন এডিটর সফটওয়্যার (যেমন- নোটপ্যাড, নোটপ্যাড++, জিইডিট) ব্যবহার করেই আমরা কোড লিখতে পারি। তবে সহজে কোডিং করা অর্থাৎ কোড লেখার জন্য আরেক ধরনের সফটওয়্যার ব্যবহার করতে পারি যেগুলো সাধারণত আইডিই (IDE) বা ইন্টিগ্রেটেড ডেভ্লপমেন্ট এনভাইরনমেন্ট নামে পরিচিত। যেমন- কোডব্লোকস, ভিজুয়্যাল স্টুডিও, টার্বো সি আইডিই।
খ) লিখিত প্রোগ্রাম চালানোর উপযোগী করার জন্য ব্যবহৃত সফটওয়্যারঃ প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে লেখা কোন প্রোগ্রাম চালানোর উপযোগী করার জন্য সাধারণত দুই ধরনের সফটওয়্যার ব্যবহার করা হয়-
     ১। কম্পাইলার (যেমন - জিএনইউ সি কম্পাইলার বা জিসিসি কম্পাইলার, মাইক্রোসফটের ভিজুয়্যাল সি কম্পাইলার এবং ইন্টারেক্টিভ সি কম্পাইলার)
     ২। ইন্টারপ্রিটার পিকক (picoc) সি ইন্টারপ্রিটার, জাভাস্ক্রিপ্ট তে ব্যবহৃত ইন্টারপ্রিটার )
কম্পাইলার টাইপের সফটওয়্যার গুলো সাধারণত পুরো একটা প্রোগ্রাম কে ইনপুট হিসাবে নেয় সেগুলোতে কোন ইরর বা ত্রুটি আছে কিনা দেখে, না থাকলে প্রোগ্রাম টাকে একটা ইন্টারমেডিয়েট অবজেক্ট কোডে রূপান্তরিত করে। পরবর্তীতে সেই অবজেক্ট কোড টাকে এক্সিকিউটেবল কোডে রূপান্তরিত করা হয়, যা রান করলে কোন একটা কাজ সম্পূর্ণ হয়।
অন্যদিকে ইন্টারপ্রিটার টাইপের সফটওয়্যার গুলো সাধারণত প্রোগ্রাম এর এক একটা লাইন কে ইনপুট হিসাবে নেয়, তাতে কোন ভুল বা ত্রুটি আছে কিনা দেখে, আর না থাকলে তা এক্সিকিউট করে।

সি প্রোগ্রামিং এর জন্য কি সফটওয়্যার ব্যবহার করব

সি মূলত একটা কম্পাইল্ড ল্যাঙ্গুয়েজ অর্থাৎ সি তে প্রোগ্রামিং করতে হলে কোন না কোন কম্পাইলার ব্যবহার করতে হবে। আমরা এক্ষেত্রে ব্যবহার করব জিসিসি কম্পাইলার। যেটি আমরা চাইলে ইন্টারনেট থেকে ফ্রি ডাউনলোড করতে পারব নিচের ওয়েবসাইট থেকে। যদিও কোডব্লোক একটা আইডিই, আমরা চাইলে এর সাথেই জিসিসি কম্পাইলারও প্যাকেজ হিসাবে ডাউনলোড করতে পারব। আমরা যারা নতুন তাদের জন্য কোডব্লোক এবং জিসিসি কম্পাইলার প্যাকেজ আকারে ডাউনলোড করাই সুবিধাজনক।
উপরের ওয়েবসাইট তে যাই। এখানে উইন্ডোজ (Windows), লিনাক্স (Linux), ম্যাক (Mac OS X) এর জন্য বাইনারী ফাইল দেয়া আছে যেগুলো ডাউনলোড করে সরাসরি ইন্সটল করা যাবে। যারা উইন্ডোজ ব্যবহার করি তারা তিনটা ফাইল ডাউনলোড করার অপশন দেখতে পাব। i) codeblocks-13.12-setup.exe, ii) codeblocks-13.12mingw-setup.exe iii) codeblocks-13.12mingw-setup-TDM-GCC-481.exe । প্রতিনিয়ত সফটওয়্যার যেহেতু আপডেট হয় সে জন্য ডাউনলোড করার সময় ফাইল গুলোর "13.12" সংখ্যাটা নাও মিলতে পারে। না মিললে চিন্তিত হবার কোন কারণ নেই।
ডাউনলোড করার পর ইন্সটল করার পালা। এই ফাইল গুলো বাইনারী ফাইল, মানে রান করার উপযোগী, সে জন্য ইন্সটল করার পদ্ধতিও আর দশটা সফটওয়্যার ইন্সটল করার মত। ( ফাইল টাতে ডাবল ক্লিক করা, এরপর কয়েকবার Next Button তে ক্লিক করা, সব শেষে Finish Button ক্লিক করা)

লিনাক্সে কমান্ড লাইন ব্যবহার করে কোডব্লোকস ইন্সটল করার পদ্ধতি।

প্রথমে অামরা সফটওয়্যার পেকেজলিস্ট অাপডেট করে নিব।
sudo apt-get update
তারপর কোডব্লোকস চালানোর জন্য একটি সাহায্যকারী পেকেজ ইন্সটল করব। এটি মুলত g++ ইন্সটল করে ।
sudo apt-get install build-essential
এখন অামরা কোডব্লোকস ইন্সটল করার জন্য নিচের কমান্ডটি চালাবো।
sudo apt-get install codeblocks
ইন্সটল করা হয়ে গেলে টার্মিনাল থেকে codeblocks এই কমান্ডটি দিলেই কোডব্লোকস রান করবে । অাপনি চাইলে অ্যাপলিকেশন মেনু থেকেও কোডব্লোকস রান করতে পারবেন।
....... Step by step শিখতে চইলা সাথে থাকুন .........।

যেভাবে সি (C) প্রোগ্রামিং ল্যাঙ্গুয়েজ এর জন্ম হয় । ( Part -01)



সেই ১৯০০ শতকের দিকে চার্লস ব্যাবেজের হাত ধরে প্রথম কম্পিউটার এর সূচনা। এরপর থেকে প্রতিদিন একটু একটু করে উন্নত হয়ে আমরা পেয়েছি আজকের আধুনিক কম্পিউটার। এই কম্পিউটার আসলে একটা যন্ত্র বা জড় বস্তু যেটা ০ আর ১ ছাড়া কিছুই বুঝে না। অর্থাৎ কম্পিউটার শুধুমাত্র বিদ্যুৎ আছে অথবা নাই, এই দুইটা অবস্থা বুঝতে পারে। যে শুধুমাত্র দুইটা শব্দ বা অবস্থা বুঝতে পারে তার সাথে ইন্টারেক্ট করা বা তাকে দিয়ে কাজ করানো সত্যিই কঠিন।
এই জন্য সবাই সেই ১৯০০ শতক থেকেই চেষ্টা করে যাচ্ছে এমন একটা ভাষা তৈরি করার যেটা ব্যবহার করে আমরা সহজেই কম্পিউটার এর সাথে ইন্টারেক্ট করতে পারি। এই চেষ্টারই ফলস্বরূপ আজকের এত কম্পিউটার প্রোগ্রামিং ল্যাঙ্গুয়েজ।
১৯৬৬ সালের দিকে ক্যামব্রিজ বিশ্ববিদ্যালয়ের মার্টিন রিচার্ড ডিজাইন করেন বিসিপিএল (BCPL) নামের প্রোগ্রামিং ল্যাঙ্গুয়েজ। এরপর ১৯৬৯ সালে আমেরিকার বেল ল্যাবরেটরিতে কেন থমসন ও ডেনিশ রিচি মিলিত ভাবে ডিজাইন করেন বি (B) নামের আর একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ। এরপর আসে সেই মাহেন্দ্রক্ষণ যখন সি নামের একটি কম্পিউটার প্রোগ্রামিং ল্যাঙ্গুয়েজ এর জন্ম হয়। ১৯৬৯ থেকে ১৯৬৩ সাল এর মাঝামাঝি। আবারও সেই বেল ল্যাবরেটরিতে ডেনিশ রিচি সি ল্যাঙ্গুয়েজ এর সূচনা করেন। তখন এটি মূলত ইউনিক্স কে টার্গেট করে ডিজাইন করা হয়েছিল এবং প্রায় ১৯৭৮ সাল পর্যন্ত এর ব্যবহার বেল ল্যাবরেটরি এর মধ্যেই সীমিত ছিল। ১৯৭৮ সালে কারনিহান (Kernighan) এবং রিচি (Ritchie) "The C Programming Language" নামে সি ল্যাঙ্গুয়েজ এর বিস্তারিত বিবরণ দিয়ে একটা প্রকাশনা বের করেন, যা "K & R C" নামেও পরিচিত। এর পরেই মূলত বেল ল্যাবরেটরি এর বাহিরে সি এর ব্যবহার শুরু হয়।
কম্পিউটার প্রফেশনালরা সেই সময় সি ব্যাপক ভাবে ব্যবহার করে শুরু করে। নির্দিষ্ট ও আন্তর্জাতিক কোন স্ট্যান্ডার্ড না থাকার কারনে অনেকেই সি ল্যাঙ্গুয়েজ কে বিভিন্নভাবে ব্যবহার করতে থাকেন। অনেক টা আমাদের বাংলা ভাষা ব্যবহারের মত। বিভিন্ন এলাকায় বিভিন্ন রকম। এজন্য ১৯৮০ সালের মাঝামাঝি আমেরিকান ন্যাশনাল স্ট্যান্ডার্ড ইন্সটিটিউট (ANSI X3J11 committee) সি ল্যাঙ্গুয়েজ এর জন্য একটা স্ট্যান্ডার্ড ডেফিনিশন নির্ধারন করে দেয় যা ANSI C নামেই বেশি পরিচিত। এরপর ১৯৯৯ সালের দিকে ইন্টারন্যাশনাল অর্গানাইজেশন অব স্ট্যান্ডারডাইজেশন সি এর নতুন ডেফিনিশন বা স্ট্যান্ডার্ড (ISO/IEC 9899:1999) তৈরি করে দেয় যা C99 নামে পরিচিত।এরপর প্রায় ১১ বছর পর সি এ জন্য ISO নতুন স্ট্যান্ডার্ডISO/IEC 9899:2011 ডিফাইন করে দেয় যা C11 নামেও পরিচিত।
........ Step by step শিখতে চইলা সাথে থাকুন .........।

PHP -BANGLA-E-BOOK

PHP -BANGLA-E-BOOK

Contact Us

Name

Email *

Message *

Time in Dhaka:

টেক-নলেজ

(টেক-নলেজ) এর পক্ষ থেকে আপনাকে স্বাগতম ও শুভেচ্ছা। বাংলায় বিজ্ঞান ও তথ্য-প্রযুক্তি চর্চাকে আরো এগিয়ে নিয়ে যাওয়াই আমাদের একমাত্র লক্ষ্য।