Compare commits

...

14 Commits

Author SHA1 Message Date
Palash Bauri 1e20f6246b Merge branch 'cms/bnblog/jonmodiner-gimmick' into 'main'
Update BN_Blog “jonmodiner-gimmick”

See merge request bauripalash/bauripalash.gitlab.io!2
2023-09-01 17:44:08 +00:00
Palash Bauri 0dcd5a522b update in homepage 2023-08-29 23:01:26 +05:30
Palash Bauri 6102e76f3f fixed a spelling mistake 2023-07-16 11:51:30 +05:30
Palash Bauri f2d983ae5b
new article bengali
Signed-off-by: Palash Bauri <palashbauri1@gmail.com>
2023-07-13 20:15:43 +05:30
Palash Bauri 98e27aed0b new article bn 2023-07-09 22:32:21 +05:30
Palash Bauri aa32acc5b4 new bengali article 2023-06-15 20:52:03 +05:30
Palash Bauri 37e3a4648e New article bye bye cpank 2023-06-11 09:58:59 +05:30
Palash Bauri 48dc151e8c new blog 2023-06-04 11:23:07 +05:30
Palash Bauri 52fd46c9b6 Updated zig as build system for cpank 2023-06-03 18:24:17 +05:30
Palash Bauri 77441389ce
updated about me 2023-05-30 19:32:28 +05:30
Palash Bauri 52a16d40b7 new article May 29 2023-05-29 09:59:18 +05:30
Palash Bauri 8cfce10a62
new article 2023-05-26 20:39:48 +05:30
Palash Bauri c5e46ee22b new short article 2023-05-24 17:41:29 +05:30
Palash Bauri a3213623f8
removed netlify cms 2023-05-13 09:56:12 +05:30
13 changed files with 410 additions and 93 deletions

View File

@ -0,0 +1,80 @@
+++
title = "আদর্শহীন রাজনীতি"
date = 2023-07-13
author = "Palash Bauri"
tags = [ "দর্শন", "রাজনীতি",]
+++
আমি যদি কোনো রাজনৈতিক দলের প্রধান হই, ধরি আমার দলের নাম আলুপোস্ত, এবং আমি নির্বাচনে জিতে কোনো রাজ্যের মুখ্যমন্ত্রী হলাম। তাহলে কী মুখ্যমন্ত্রী হিসাবে কোনো সাংবাদিক সম্মেলনের সময় আমার রাজনৈতিক বক্তব্য পেশ করা বা আমার দলের হয়ে তরফদারি করা ঠিক?
আমার মনে হয়না তা ঠিক, আমি সেই মুহূর্তে যে বক্তব্য রাখছি সেগুলো হল একজন মুখ্যমন্ত্রীর বক্তব্য, তখন আমি কোনো দলের সদস্য নই, আমার কাছে তখন সব দলই সমান।
আবার যদি আমি কোনো জায়গায় দলের হয়ে সভা করতে যাই, তখন আমি মুখ্যমন্ত্রী নই, তখন আমি শুধুমাত্র আলুপোস্ত দলের নেতা। আমি আমার দলের হয়ে প্রচার করবো, অন্য পার্টির ভুল ত্রুটি তুলে ধরবো, এবং তাত্ত্বিকভাবে দেখতে গেলে সেইখানে আমার বর্তমান সরকারের ভুল কাজের সমালোচনাও করা উচিত, কারণ সেই মুহূর্তে আমি সরকারের কেউ নই। তবে এখানে একটি সূক্ষ্ম সীমারেখার জন্ম হয়, আমি মুখ্যমন্ত্রী হিসাবে কী কী ভালো কাজ করেছি তার ফিরিস্তি দেওয়া কী ঠিক? আমি তো অন্য দলের তুলনায় অতিরিক্ত সুযোগ পাচ্ছি!
এই জিনিসগুলো, বর্তমানে সমাজে প্রত্যহ দেখতে পাই, মুলত যেসব রাজনৈতিক দলগুলির নিজস্ত কোনো স্বতন্ত্র আদর্শ নেই, যেমন পশ্চিমবঙ্গের তৃনমূল কংগ্রেস কিংবা দিল্লির আম আদমি পার্টি। অন্যদিকে ভারতীয় জনতা পার্টি বা কমিউনিস্ট দলগুলি যেমন কমিউনিস্ট পার্টি অফ ইন্ডিয়া (মার্কসবাদী) প্রভৃতি রাজনৈতিক দলগুলির নিজস্ব স্বতন্ত্র আদর্শ ও দর্শন বর্তমান।
আমি যদি আদর্শবাদী কোনো দলের যেকোনো একনিষ্ঠ সদস্যকে জিজ্ঞেস করি তাদের দলের ভবিষ্যৎ দর্শন কী, তারা যদি সঠিক জিনিস নাও বলতে অন্তত একটি সাধারণ ধারনা তারা দিতে পারবে। কিন্তু একটি আদর্শহীন দলের ভবিষ্যৎ দর্শন কী?
একটি রাজনৈতিক দলের আদর্শ ও উদ্দেশ্য কী বোঝার সবচেয়ে সহজ পদ্ধতি হল সেই দলের অভ্যন্তরীণ নিয়মতন্ত্র ও ইস্তেহার পর্যবেক্ষণ করা। চলো কয়েকটি উদাহরণ দেখা যাকঃ
প্রথমে শুরু করা যাক ভারতের কেন্দ্রের ক্ষমতায় থাকা ভারতীয় জনতা পার্টিকে দিয়ে,
তাদের ওয়েবসাইটের থেকে পাওয়া নিয়মতন্ত্রের আর্টিকেল ২ (Objective) -এর প্রথম পরিচ্ছেদেই আমরা পাই
```markdown
The Party is pledged to build up India as a strong and prosperous nation, which
is modern, progressive and enlightened in outlook and which proudly draws
inspiration from India's ancient culture and values and thus is able to emerge
as a great world power playing an effective role in the comity of nations for
the establishment of world peace and a just international order.
```
এখানের মুল তাৎপর্যপূর্ণ শব্দগুলি হল "ancient" , "culture" , "values" । এবং এর থেকে বোঝা যায় বিজেপির মুল দর্শন হল প্রাচীন ভারতের সংস্কৃতিকে আধার করে আধুনিক ভারত গড়ে তোলা। খুবই স্পষ্ট ও স্বচ্ছ ধারনা।
এবার কমিউনিস্ট পার্টি অফ ইন্ডিয়া (মার্কসবাদী) -এর নিয়মতন্ত্রের আর্টিকেল ২ (Aim) -এর প্রথম পরিচ্ছেদে পাই
```markdown
The Communist Party of India (Marxist) is the revolutionary vanguard of the
working class of India. Its aim is socialism and communism through the
establishment of the state of dictatorship of the proletariat. In all its
activities the Party is guided by the philosophy and principles of
Marxism-Leninism which shows to the toiling masses the correct way to the ending
of exploitation of man by man, their complete emancipation. The Party keeps high
the banner of proletarian internationalism.
```
সিপিআই(এম) এর দর্শন খুব সহজ, তারা মার্ক্স-লেনিন বাদে বিশ্বাসী, এবং তারা ভারতে সমাজতন্ত্র ও সাম্যবাদ প্রতিষ্ঠাতে আগ্রহী। এটিও খুব স্পষ্ট।
এবার যদি তৃণমূলের নিয়মতন্ত্রের আর্টিকেল ১ (Aim) থেকে আমরা পাই
```markdown
The aim of the Party shall be to make all round development of India in the
political, economic, industrial, social, cultural, agricultural sectors and to
establish India as a global power keeping in view the multi-lingual,
multi-faceted, multi-ethnic, rich culture and heritage of India.
```
উফঃ এই এতগুলি শব্দ ব্যায় বৃথা, এটি কোনো দর্শন ব্যাক্ত করেনা। আবার নিয়মতন্ত্রের আর্টিকেল ২ (Objective) থেকে আমরা তিনটি "পয়েন্ট" খুঁজে পাই
```markdown
(a) To uphold and adhere, with true faith and allegiance, to the Constitution of
India as by law established.
(b) To uphold and work for the furtherance of the principles of Nationalism,
Socialism, Secularism and Democracy.
(c) To eradicate illiteracy, poverty and injustice and cause upliftment of the
downtrodden by ensuring social equality, awakening of the masses by peaceful
means, movement and participation in the lawful electoral process.
```
যার মোদ্দা কথা হচ্ছে, আমরা ভারতের সংবিধান মানবো এবং অন্যায়, অবিচার, নিরক্ষরতা ইত্যাদির বিরুদ্ধে লড়াই করবো।
এতগুলো শব্দ ব্যায় করা হল কিন্তু দর্শন বা আদর্শ আমি খুঁজে পেলাম না। তাহলে এই দলগুলি টিকে আছে কী করে?
এই দলগুলো টিকে আছে কারণ তারা ক্ষমতায় আছে। এদের জন্ম অন্য কোনো দলের "Anti" বা বিপক্ষ হয়ে, যেমন তৃণমূলের জন্ম Anti-সিপিআই(এম) হিসাবে, আম আদমি পার্টির জন্ম Anti-কংগ্রেস-জোট (UPA) হিসাবে।
এই "Anti" দলগুলি তত দিনই টিকবে যতদিন এরা ক্ষমতায় আছে, কারণ তারা যে দলের বিপক্ষ হয়ে ক্ষমতায় এসেছে তারা বর্তমানে ক্ষমতায় নেই অর্থাৎ তাদের কাছে ওই দলের বিরুদ্ধে বলার নতুন কথা আস্তে আস্তে সীমিত হয়ে উঠবে এবং একসময় যখন তারা আর ক্ষমতায় থাকবে না, তারা আস্তে আস্তে হাওয়ায় মিশে যাবে। তবে আদর্শহীন দল মাঝে মাঝে ক্ষমতায় আসা গনতন্রের পক্ষে ভালো তাছাড়া উন্নয়ন বন্ধ হয়ে যাবে, তবে দিন শেষে সেই আদর্শবাদী দলগুলিই টিকে থাকবে।

View File

@ -0,0 +1,22 @@
+++
title = "রক্তে ভেজা ব্যালট"
date = 2023-07-09
author = "Palash Bauri"
tags = [ "এখন", "রাজনীতি",]
+++
গতকাল ৮ই জুলাই ২০২৩ সকাল টা থেকে শুরু হলো রক্তের হোলি, অবাক হওয়ার কিছু নেই ওটাকে পশ্চিমবঙ্গের ১০ম পঞ্চায়েত নির্বাচন বলতে আমি অপারক।
ঘণ্টায় ঘণ্টায় একজন মানুষ নিহত হচ্ছে, তা সে যে দলেরই হোক না কেন। এক মহিলা ও তার ভাইপো মিলে গোটা রাজ্যটাকে রসাতলে নিয়ে গেলো। আমি নিজের চোখে খবরের চ্যানেলে লাইভ দেখলাম অন্তত ১০ থেকে ১১ জন মারা যেতে, আর পশ্চিমবঙ্গের নির্বাচন কমিশন বলে কি না মাত্র কয়েকটি জেলায় বিক্ষিপ্ত ঘটনা ঘটেছে এবং ৮ জন মানুষ নিহত হয়েছে। কাল ভোটদান পর্ব শেষ হয়েছে তবে খুনোখুনি এত তাড়াতাড়ি শেষ হবে বলে মনে হয়না।
> গোঁফ রাখলেই মরদ হওয়া যায়না!
এটা কী ইয়ার্কি চলছে নাকি, তৃণমূলের কর্মী মারা গেলে বিজেপি / সিপিএম / আইএসএফ খুন করেছে আর যখন অভিযোগ ওঠে তৃণমূলের কেউ অন্য দলের কাউকে খুন করেছে, তখন তৃণমূলের অশিক্ষিত গর্ধবগুলো বলে "নারী ঘটিত কেস" কিংবা "জমি সংক্রান্ত কেস"। 
আমাদের পূর্বপুরুষরা বলে গেছে মেয়েরা/মহিলারা "মায়ের জাত", তবে ঘাঁসফুল দলের দলনেত্রীকে দেখে তা নিয়ে আমার সন্দেহ হয়। অর্ধেক শিক্ষা দপ্তর জেলের হাওয়া খাচ্ছে, আরও কয়েকজনের অর্ধেক পা জেলে ঢুকে আছে, এরা আবার মুখে বড় বড় বাতেলা মারে। কিসের মোহ? চাকরি তো নেতারা খেয়ে হজম করে দিয়েছে! আদর্শহীন পার্টির দলদাস হয়ে কতদিন পেট চলবে?
আমার মনে হয় কেন্দ্রীয় সরকারের উচিত অনতিবিলম্বে পশ্চিমবঙ্গে ৩৫৫ বা ৩৫৬ আইন জারি করা। তা যদি না হয় তাহলে ধরে নেওয়াই যেতে পারে ভেতরে ভেতরে দিদি-মোদির সমঝোতা হয়ে গেছে।
আমি কোন রাজনৈতিক দলের সমর্থক সেটা এখানে প্রাসঙ্গিক নয়, কেউ বলতেই পারে আমি বিজেপির চাম্‌চা কিংবা সিপিএমের ক্যাডার কিন্তু তা দিয়ে বাস্তবতা পরিবর্তিত হবে না। "দশজন বিশজন মারা গেলে", এই '১০' / '২০' এগুলো আমাদের কাছে শুধুই সংখ্যা মাত্র কিন্তু যে সন্তান অনাথ হয়ে গেলো, যে স্ত্রী বিধবা হয়ে গেল, যে মা-বাবা সন্তান হারা হয়ে গেলে তাদের কাছে '১' সংখ্যাটির গুরুত্ব লিখে ব্যাক্ত করা অসম্ভব।
যদি আর বেশিদিন পিসির সরকার থাকে তাহলে ওই সংখ্যাগুলি বাড়তে বাড়তে একসময় মূল্যহীন হয়ে পড়বে।

View File

@ -0,0 +1,30 @@
+++
date = 2023-06-15
description = "সুখের দিন"
images = ["https://b.og.palashbauri.in/api/og?date=2023-06-15T15%3A15%3A44.229Z&title=SUKHER%20DIN&gh=bauripalash&blog=Adventure%20of%20Palash%20Bauri"]
kws = ["বাংলা", "কবিতা" ,"রাজনীতি", "দর্শন"]
lastmod = 2023-06-15
showtoc = false
nocomment = false
noshare = false
showbread = true
noshowlastmod = false
tags = ["কবিতা"]
title = "সুখের দিন"
+++
# সুখের দিন
এ রক্তাক্ত ধরার বুকে
আমার আত্মা লুটোয় ধুলোতে।
পাখিরাও ডানা ছেঁটে ফেলে
নিজেকে খুন করে গোপনে।
নীল তিমির গলা কাটা রক্তে
গভীর সমুদ্রও আজ গাঢ় লাল।
চিরকাল তৃষ্ণায় তুলসী কাঁদে
রাতের সবুজ কারাগারে।
অন্ধ সেজে সব মানুষ
গিলে খায় যত সত্যি।
এ ক্ষতবিক্ষত দেশে
আমার ধ্বংস প্রাসাদে,
আমার মৃত্যু দিন হবে
সবচেয়ে সুখের দিন।

View File

@ -2,5 +2,7 @@
#### Hi :wave: I am Palash Bauri
<div class="myinfo">
(Update: I am little ill, that's why I haven't written anything recently)
<br>
I develop open-source programs which can be useful, fun, or maybe totally silly. I also write short stories and scientific articles in the Bengali Language, which got published in few renowned magazines.I am a student, taking a course in Elementary Education as well as pursuing Bachelor's Degree in English Literature
</div>

View File

@ -1,7 +1,7 @@
---
title: Who the Hell I am?
title: Who am I?
url: "/about"
showtoc: true
showtoc: false
noreadtime: true
nocomment: true
noshare: true
@ -16,37 +16,31 @@ images:
- post-cover.png
---
### Hi, I am Palash Bauri,
**Hi, I am Palash Bauri.**
I am a 20-year-old, kid, who loves to build open source software and write about what I think, about philosophy, human psychology, science, technology and many more bla bla bla.
I am 21 years old 'kid' pursuing a Bachelor's of English Degree from Netaji
Subhas Open University, India.
![](/images/palash_irl.webp?#round)
Besides that, I am student, I'm currently pursuing Bachelor degree on English Literature.
If you would like to have a chat with me, feel free to drop me an email, or maybe if you want you can text me on telegram at `bauripalash`. my electronic mail address is given below.
Since I was 1112 years old, I have been writing computer programs. I create
programs that can be useful, fun, or totally silly. You can find most of my
open source programs at [github/bauripalash](https://github.com/bauripalash).
---
My open source projects :
From the age of 12-13, I have been writing stories, poems, and essays in both
English and Bengali language (my mother tongue). Many of my short stories and
essays in Bengali have been published in a few renowned Bengali magazines such
as *Kishore Bharati*, *Jnan o Bijnaan* and many more.
[ OSS by Palash](https://bauripalash.github.io)
I have also published a book `আকাশগল্প` (ISBN: *978-93-91776-10-7*) (English : `Aakashgolpo`;
Trans: Tale of Sky), which is a collection of essays written in Bengali.
---
If you would like to know me better, or just chat, you can reach me in multiple
ways, you can drop me an *email* (address mentioned in footer), If you use
Twitter, you can DM me at `@bauripalash`. If you use telegram, you can text me
at `@bauripalash`. As you can see most of my usernames on the internet are just
`bauripalash`. Feel free to reach me, I would like to talk, I maybe be late
but I always reply.
### Some blogs I  read 
(At random order)
* [Recent content on acha.ninja](https://acha.ninja/)
* [computers are bad](https://computer.rip/)
* [The personal blog of Dave Rupert, web developer and podcaster from Austin, TX.](https://daverupert.com/)
* [Drew DeVault's blog](https://drewdevault.com/)
* [Kev Quirk](https://kevq.uk/)
* [Mozilla Hacks - the Web developer blog](https://hacks.mozilla.org/)
* [Pointers Gone Wild](https://pointersgonewild.com/)
* [Susam's Blog](https://susam.net/blog/feed.xml)
* [Software and such](https://tacaswell.github.io/)
* [The personal website of designer Bradley Taunt](https://tdarb.org/)
* [Recent content on, Technical Sourcery](https://www.technicalsourcery.net/)
* [The weird world of cyber, hax, privacy and Internet subcultures with a slice of retro.](https://thedorkweb.substack.com/)
* [Xe's Blog](https://xeiaso.net/blog)
* [daringfireball.net By John Gruber](https://daringfireball.net/)

View File

@ -0,0 +1,35 @@
+++
date = 2023-05-26
description = "I am taking a break from mastodon"
images = ["https://b.og.palashbauri.in/api/og/?title=I%20am%20taking%20a%20indefinite%20break%20from%20Mastodon&blog=Adventure%20of%20Palash%20Bauri&date=2023-05-26T15:07:34.695Z&gh=bauripalash"]
kws = ["mastodon", "social-media" ,"fediverse", "micro-blogging", "internet"]
lastmod = 2023-05-26
showtoc = false
nocomment = false
noshare = false
showbread = true
noshowlastmod = false
tags = ["internet", "short"]
title = "Indefinite break from Mastodon"
+++
I first joined Mastodon back in 2018. I chose `mastodon.social` as the Instance
of choice because it was the biggest. 19 toots later, in 2022 I created an
account in `fosstodon.org` instance, which I have been using since. But last
night, I decided to take an indefinite break from mastodon altogether.
I joint Mastodon because it seemed cool, and was the new hot topic at that time,
but gradually I got bored and frustrated with the whole ecosystem. I believe
that the whole idea of the Fediverse is fundamentally flawed, I am not going to
explain here what those are; but the keyword *self-hosting* is kind of getting
killed with mastodon's ecosystem.
If you want to find me, you **may** find me on Twitter [^1], telegram[^2],
email[^3]. Plus, I mostly do microblogging on my writefreely instance at
[notes.palashbauri.in](https://notes.palashbauri.in).
See You Soon!
---
[^1]: [@bauripalash](https://twitter.com/bauripalash)
[^2]: <https://t.me/bauripalash>
[^3]: Mentioned below in the footer

View File

@ -0,0 +1,76 @@
+++
date = 2023-06-11
description = "CPank is going to get deprecated"
images = ["https://b.og.palashbauri.in/api/og?date=2023-06-11T04%3A25%3A55.889Z&title=Bye%20Bye%20CPank%3B%20Welcome%20NeoPank&gh=bauripalash&blog=Adventure%20of%20Palash%20Bauri"]
kws = ["programming", "c" ,"interpreter", "windows", "programming-language", "bengali", "cross-compile"]
lastmod = 2023-06-11
showtoc = true
nocomment = false
noshare = false
showbread = true
noshowlastmod = false
tags = ["devlog", "programming"]
title = "Bye Bye CPank Welcome NeoPank"
+++
### Beginning
I have been working on writing an "almost perfect" and "correctly working" interpreter for at least two years, and *where I am now?*; **More or less where I started**.
There were two major factors in play for this situation,
First, I never should have done more than a single attempt to implement pankti in Rust.
The second is, Trying to achieve full Windows compatibility with C and Unicode.
### Rust
No hate for Rust, it is a great language, I have done numerous projects with Rust, but developing an interpreter or compiler is a whole new territory.
The fine-grained control of memory with raw pointers is very unnatural in the eyes of Rust, but the project demands it, thus I basically started writing C-Style unsafe Rust with very unpleasant syntax.
I should have stopped at the first attempt. Instead, I tried again and again at least I created 4-5 fully featured Pankti implementations, with bugs lurking around everywhere.
I have experienced that most of the time spent with the Rust variant of pankti is writing code to please the Rust compiler.
Maybe I am a bad programmer, or it could be that don't understand rust.
### C, Unicode on Windows
On every forum, every programming subreddit, IRC, or discord channel you will find frustrated programmers who hate Windows. Windows is the "brokenest" piece of software I have ever witnessed.
You see, on Linux or even all *nix have almost, if not fully perfect Unicode system. Utf-8, UTF-16, UTF-32, you get all working systems, but on Windows only thing you get is 90's wide chars,
The early prototypes of cpank were made with `wchar_t` but UTF-16 is a mess, I am not gonna explain the problems I faced with UTF-16, do a quick Google search, and all the bad things you will find about UTF-16 happened with my project.
The C implementation, aka. `Cpank` is a fully working piece of program on Linux but as you enter the Windows territory, things start to go haywire.
Windows uses UTF-16 internally, and there are all these messes with nonstandard APIs and functions; the code began getting complicated with all the windows specific tweaks I had to write.
### Depreciation
For the last couple of days, a single question was devouring my mind, should I switch to another "modern" language, at last, I decided, Yes, why not!
As I told previously, I will use either `D` or `Zig`, this time I went with Zig.
The Zig language is very small, just like C, yet is modern and fully featured.
> I don't know if people understand, Rust is not a C alternative, it doesn't even fall in the C territory, it's more of a C++ alternative.
As soon as `neopank` (the new pankti implementation written in Zig) is complete, `cpank` will get deprecated.
A snapshot will be made of the latest state of `cpank` and shifted into a separate repository for "historical" purposes, and the neopank repository will be merged into the main `pankti` repository
As of now, Jun 10, 2023, the lexer is complete, and work on the compiler and VM is going on at a decent pace.
### License change
Was GNU GPL 3 the right choice for cpank? I always wondered, it's true I don't want it to be misused in a way that people have to face any "inconvenience", this world is corrupted, humanity is on its last breath, people can make some slight changes and sell it, companies who have lots of money can advertise their version and persuade people to buy a piece of program which is, in reality free, if that happens, my work will be hidden beneath search result full of advertisements. That's why I went for a strong copyleft license.
But what if someone decides to incorporate pankti in a program that is already a full-fledged software on its own, what if a startup or a not-so-evil company wants to use pankti as a scripting language for their new game engine or spreadsheet program, with GPL wouldn't be able to unless they plan to open source their own software.
What if the government wants to use pankti as a learning tool via their own learning platform, as per law they'd be required to open source their program, which they may not like.
In my view, these are a few exceptions I'll let pass, but GPL won't let me do that, that's why I have decided to license neopank under Mozilla Public License 2.0 and as the cpank is going to be removed from the tree, I should not have any problem with doing so.
Let's hope for the best, and prepare for the worst.

View File

@ -0,0 +1,22 @@
+++
date = 2023-05-24
description = "small gesture of thoughtfulness can bring extra smiles."
images = ["https://b.og.palashbauri.in/api/og?date=2023-05-24T12%3A02%3A15.530Z&title=Creating%20extra%20smiles%20with%20just%20a%20single%20thoughtful%20act.&gh=bauripalash&blog=Adventure%20of%20Palash%20Bauri"]
kws = ["life", "children" ,"psychology", "birthday", "happy", "child-psychology"]
lastmod = 2023-05-24
showtoc = false
nocomment = false
noshare = false
showbread = true
noshowlastmod = false
tags = ["life", "psychology", "short"]
title = "Creating extra smiles with one thoughtful act."
+++
You are invited to the birthday party of your niece, what you would do, bring a present 🎁 for her and maybe bring some chocolates 🍫 too as a bonus, but there could be your other family members who brought their toddlers, they *may* feel left out. I am not saying they definitely will feel that, but children are naive,
What I do usually in that scenario is, I always bring 4 or 5 extra chocolates, when I know other children will be there.
![](https://media.tenor.com/nd8FbYHT1zYAAAAi/hasher-happy-sticker.gif)
Children are sweet and they certainly will be happy and surprised. This small gesture of thoughtfulness can bring extra smiles. 😊

View File

@ -0,0 +1,54 @@
+++
date = 2023-06-04
description = "My radical philosophy of programming"
images = ["https://b.og.palashbauri.in/api/og?date=2023-06-04T05%3A50%3A12.591Z&title=My%20radical%20philosophy%20of%20programming&gh=bauripalash&blog=Adventure%20of%20Palash%20Bauri"]
kws = ["programming", "c" ,"philosophy", "windows", "programming-language", "bengali", "cross-compile"]
lastmod = 2023-06-04
showtoc = false
nocomment = false
noshare = false
showbread = true
noshowlastmod = false
tags = ["philosophy", "programming"]
title = "My radical philosophy of programming"
+++
Since the initial covid lockdown, I have been working on Pankti Programming Language. Initially, it was written in Go, then I rewrote it in Rust, and it got too much complicated. Then I settled on C, though I am having some problems as I mentioned in my previous post[^1].
Over time I developed some strict philosophy around the development which I follow radically:
### 1. A program must do its job correctly.
No matter the input or host platform the program must generate the same output, if it fails it must produce error messages which enough information so that users can report the issue in-depth. Edge cases should be handled perfectly.
This point along with number 2 is the topmost priority.
### 2. The source code of the program must be simple to understand no matter the language used.
Use simpler algorithms. Write smaller functions. Does not matter if the program is slow or has memory leaks, if the program works correctly nothing matters anymore.
### 3. The source code should be modular
instead of writing huge chunks of code in a single file, break the file into smaller chunks, such as if needed the code can be used in future projects without big changes.
### 4. The code should be cross-platform.
Whereas possible Don't use nonstandard or platform-dependent code.
### 5. The code must be well commented.
such as that you don't even need to look up the programming language or library documentation every 5 seconds.
### 6. The programmer must write notes
More like a log of what has been done till now and what will be done.
### 7. The program should be well optimized
unless it makes the code hard to understand even with good comments.
### 8. Avoid sharp characters
Characters like angled brackets <...> should be avoided as far as possible, it really hurts the eyes to skim through the code.
---
[^1]: [Zig as build system for Cpank](https://palashbauri.in/zig-as-build-system-for-cpank/)

View File

@ -0,0 +1,52 @@
+++
date = 2023-05-29
description = "using zig as build system for Pankti Programming Language a Bengali programming language which runs on Windows, Mac, Linux, Android, and Web."
images = ["https://b.og.palashbauri.in/api/og?date=2023-05-29T04%3A23%3A45.381Z&title=Zig%20as%20build%20system%20for%20Cpank&gh=bauripalash&blog=Adventure%20of%20Palash%20Bauri"]
kws = ["programming", "c" ,"zig", "windows", "programming-language", "bengali", "cross-compile"]
lastmod = 2023-06-03
showtoc = true
nocomment = false
noshare = false
showbread = true
noshowlastmod = false
tags = ["devlog", "programming"]
title = "Zig as build system for Cpank"
+++
Cpank[^1] the reference implementation of Pankti Programming Language, written in C, is growing in size day by day, and the complications of building it in both Windows and Linux are becoming a huge pain.
The core interpreter is pretty small compared to other heavy-weight interpreters but the biggest problem was the GUI editor.
Pankti is a language targeted at the Bengali Language, though it has first-class support for English, scripts are supposed to be written in Bengali, and though customizable output and errors will be in Bengali script. Mostly all Terminal emulators have broken support for displaying complicated unicode characters thus users will mostly see messed up output from Cpank. A GUI with Unicode support can bring huge user experience improvements, users will see correctly rendered Bengali characters.
Modern programming language such as Rust, Go, etc. has their own built-in platform independent build system, you just run `go build` or `cargo build`, and boom 💥 a few seconds later you get a self-contained executable. But for C, things are not that simple, you don't get a built-in build system, you must use some external tools such as *GNU Make*, *Cmake*, *Meson* etc. The closest to cross-platform build systems you can get are cmake and meson (and a few others). Building the core interpreter is very simple, if you want you can just write a single-line terminal command and within two or three seconds, you get a single executable. But GUI is hard!
I have tried quite a few pure C GUI frameworks, but I chose to settle with IUP[^2], it's simple and lightweight. Though not that complicated to build, it requires some conditionals to be built for both Windows and Linux.
> IUP has experimental support for MacOS, but the good thing is I am not targeting MacOS, 'cause I don't own a Mac machine, so I can't actually test nor make Mac specific tweaks in the core interpreter. The interpreter may run without any tweaks, but I have no way to know it.
A few weeks ago, I was prototyping a turtle graphics system with [Raylib](https://www.raylib.com/), when I noticed Raylib is using [Zig](https://ziglang.org/) build system. I have been keeping track of Zig development for the last few months and was aware of the Zig build system but never really tried it out. Finally, I decided to give it a try, and surprisingly enough *it just works*, not only that I can even cross-compile to Windows without leaving Linux.
Building the GUI variant become as easy as building the core since commit [d70137d](https://github.com/bauripalash/pankti/commit/d70137df395f5b7040be3973b860a9df7720badb), I have been using zig as my default build system. On Windows complicated build system became child's play. The conditional steps I mentioned above got covered within a few lines of code. The best thing about Zig's build system is that it includes a full-fledged Clang compiler inside it, thus building on Windows got a lot easier as we no longer need setup a complicated C setup, I believe in future potential contributors of cpank will appreciate the current setup
When in my last [devlog #6](https://palashbauri.in/devlog-pankti-6/) I said about using zig, I didn't think I would use it so soon. Take a look at the current state of my `build.zig`[^3], it might help you should you decide to use zig as you build system.,
### Update: Jun 3, 2023
Well, Zig is creating a mess on Windows. Unfortunately, My tests were passing, and I thought "It's alive", but the celebration was very premature.
The basic fundamental functionality of cpank is not working if compiled with zig cc on Windows, the executable is unable to parse pankti scripts written in Bengali.
But interestingly enough, when I dug deeper into the Zig source code, I found out that the problem is not with Zig cc but with the clang itself. I discussed it with Zig folks, but the problem has nothing to do with Zig.
The core cli tool is not that much of a problem, it can be easily built with gcc or msvc but I'm struggling with GUI.
Huh ..... I am tired as well as frustrated.
---
[^1]: [bauripalash/pankti](https://github.com/bauripalash/pankti)
[^2]: [IUP Portable User Interface](https://www.tecgraf.puc-rio.br/iup/)
[^3]: main branch - [latest commit](https://github.com/bauripalash/pankti/blob/main/build.zig)

View File

@ -88,9 +88,20 @@
"toc-content"
],
"ids": [
"1-a-program-must-do-its-job-correctly",
"2-the-source-code-of-the-program-must-be-simple-to-understand-no-matter-the-language-used",
"3-the-source-code-should-be-modular",
"4-the-code-should-be-cross-platform",
"5-the-code-must-be-well-commented",
"6-the-programmer-must-write-notes",
"7-the-program-should-be-well-optimized",
"8-avoid-sharp-characters",
"TableOfContents",
"another-update",
"beginning",
"c-unicode-on-windows",
"content",
"depreciation",
"devlog---pankti",
"final-thoughts",
"fn:1",
@ -104,18 +115,21 @@
"hi-",
"hi--i-am-palash-bauri",
"hi--আম-পলশ-বউর",
"hi-i-am-palash-bauri",
"i-want-freedom",
"india",
"license-change",
"little-extra",
"masto_share",
"new-gpg-public-key-of-gmail-email-account",
"note-taking",
"pankti-programming-language",
"personal-updates",
"some-blogs-i--read-",
"rust",
"see-you-soon",
"update-jun-3-2023",
"দশহন--মতয",
"পরয়-বনধগণ--আম-পলশ-বউর"
"পরয়-বনধগণ--আম-পলশ-বউর",
"সখর-দন"
]
}
}

View File

@ -1,50 +0,0 @@
backend:
name: git-gateway
branch: main
publish_mode: editorial_workflow
media_folder: "static/images/uploads"
public_folder: "/images/uploads"
search: false
slug:
encoding: "ascii"
clean_accents: true
sanitize_replacement: "-"
collections:
- name: "enblog"
label: "E_Blog"
folder: "content/english/posts"
create: true
slug: "{{filename}}"
fields:
- {label: "Title" , name: "title", widget: "string"}
- {label: "Body", name: "body", widget: "markdown"}
- {label: "Date" , name: "date", widget: "date", format: "YYYY-MM-DD"}
- {label: "Description", name: "description" , widget: "string"}
- {label: "Images", name: "images" , widget: "list"}
- {label: "GNews Kws" , name: "kws" , widget: "list"}
- {label: "Tags" , name: "tags" , widget: "list"}
- {label: "Last Mod", name: "lastmod", widget: "date", format: "YYYY-MM-DD" }
- {label: "TOC", name: "showtoc", widget: "boolean", default: true}
- {label: "NoComment", name: "nocomment", widget: "boolean", default: false}
- {label: "NoShare", name: "noshare", widget: "boolean", default: false}
- {label: "NoShowLastMod", name: "noshowlastmod", widget: "boolean", default: false}
- name: "bnblog"
label: "BN_Blog"
folder: "content/bengali/posts"
create: true
slug: "{{filename}}"
fields:
- {label: "Title" , name: "title", widget: "string"}
- {label: "Body", name: "body", widget: "markdown"}
- {label: "Date" , name: "date", widget: "date", format: "YYYY-MM-DD"}
- {label: "Description", name: "description" , widget: "string"}
- {label: "Images", name: "images" , widget: "list"}
- {label: "GNews Kws" , name: "kws" , widget: "list"}
- {label: "Tags" , name: "tags" , widget: "list"}
- {label: "Last Mod", name: "lastmod", widget: "date", format: "YYYY-MM-DD" }
- {label: "TOC", name: "showtoc", widget: "boolean", default: true}
- {label: "NoComment", name: "nocomment", widget: "boolean", default: false}
- {label: "NoShare", name: "noshare", widget: "boolean", default: false}
- {label: "NoShowLastMod", name: "noshowlastmod", widget: "boolean", default: false}

View File

@ -1,14 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex" />
<title>Content Manager</title>
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
</head>
<body>
<!-- Include the script that builds the page and powers Decap CMS -->
<script src="https://unpkg.com/netlify-cms@^2.0.0/dist/netlify-cms.js"></script>
</body>
</html>