સંસ્કૃતમાં च પોસ્ટફિક્સ નોટેશનમાં લખાય છે
કોમ્પ્યુટર વિજ્ઞાનમાં અલગ અલગ નોટેશન આવે છે - પ્રિફીક્સ, ઇનફીક્સ, અને પોસ્ટફિક્સ.
3 + 4
અહીં + કારક(=operator) છે જયારે સંખ્યા 3 અને 4 સંકાર્ય છે. કારક સંખ્યાની વચ્ચે લખાય છે એટલે એને મધ્યપ્રત્યય(=ઇનફીક્સ/infix) નોટેશન કહેવાય છે. આ નોટેશન ઘણું પ્રચલિત છે એટલે તમને આ બધે જોવા મળશે. ખાસ કરીને ગણિતમાં.
જો કારકને સંખ્યાની શરૂઆતમાં લખવામાં આવે તો એને પૂર્વપ્રત્યય(=પ્રિફીક્સ/prefix) નોટેશન કહેવાય છે. જેમ કે,
+ 3 4
આમતો આ નોટેશન ખાસ પ્રચલિત નથી, પણ લિસ્પ(=lisp) પ્રોગ્રામિંગ ભાષામાં આ ખુબ જ વપરાય છે, સંપૂર્ણ ભાષા પૂર્વપ્રત્યય નોટેશનમાં છે અને એમાં કૌંસનો બહુ ઉપયોગ થાય છે - (+ 3 4).
અને છેલ્લે આવે છે, ઉત્તરપ્રત્યય(=પોસ્ટફીક્સ/postfix). જેમાં કારક છેલ્લે લખાય છે, અને સંખ્યા પહેલા લખાય છે. જેમ કે,
3 4 +
આ નોટેશન પ્રચલિત નથી. પણ સંસ્કૃતમાં જયારે બે શબ્દો વચ્ચે અને(=and) વાપરવાનું હોય ત્યારે च(=અને) શબ્દોના અંતમાં આવે છે.
જેમ કે, ગુજરાતીમાં આપણે લખીશું/બોલીશું:
રામ અને કૃષ્ણ.
જયારે એ સંસ્કૃતમાં આ લખાશે/બોલશે:
रामः कृष्णः च |
તમે કહેશો કે આ શું? આમાં તો બધું ભેગું કર્યું - ગુજરાતી, કોમ્પ્યુટર વિજ્ઞાન અને એની ભાષા, અને સંસ્કૃત.
તો આજ ફાયદો છે, એક કરતાં વધુ વિશે જાણવાનો. તમે ગમે ત્યારે જોઈએ એ પ્રમાણે મિશ્રણ કરી શકો છે, કેમ કે તમને આવડે છે!
From Intern to Software Architect
You start your journey as an intern or junior software engineer. At this level, you care about the syntax and language constructs such as defining variables or constants correctly, writing a function that might be reusable, or constructing conditions correctly. Let's call this level - 1.
As you start to become more familiar with the language and code, your focus shifts towards the program files. Now, you start to care about files instead of language constructs as you're comfortable with syntax and language constructs. You can now connect the files across a bug fix or a change that you need to make. You're now at level - 2.
As you become more experienced, you now start to care about a module - not just a set of files but a logically related set of files. Previously, it was a set of program files only. But now you start to see program files as a module. You know the connection between files and can reason about them. You reach level - 3.
Next, you continue your journey and start seeing multiple modules all together as an app. You are not seeing the language constructs, you're not seeing a set of files, you're not seeing a module, but a set of modules all together as a whole app. You're now caring about the whole app. When you review the PRs, you are adding the whole app context to the review before you approve and merge. You're now at level - 4.
As you gain more experience, you start to see a bigger picture than the app. You're now seeing things outside of the app such as services, proxies, DNS, security, firewalls, and many surrounding services. You now not only care about the app but about these services as well, which are required for your app to be alive. You now know the exact details about how a request comes into the app and goes out through all these services. You're now at level - 5.
Your journey continues and you start to connect with other teams who manage other apps that make up the whole product. You start to see a bigger picture than the app and services. You know how apps live together, how they communicate, how they are monitored, and much more. You're now at level - 6.
I'm going to stop here at level - 6 as I think this is where the role of a software architect becomes clear and in full view. I'm not saying that the level steps stop here. But this is where I want to stop for this article discussion.
In summary, you started with syntax and reached the level where you care more about app servers, proxies, communication, security, and so on.
---
Although I've used labels level 1 - 6, you can give a position you like against the levels based on the hierarchy you have seen in organizations. For example,
Level - 1 = Intern
Level - 2 = Jr. Software Engineer
Level - 3 = Software Engineer
Level - 4 = Sr. Software Engineer
Level - 5 = Principal Software Engineer
Level - 6 = Architect
Or you can combine some levels against the same position.
Level - 1, 2 = Jr. Software Engineer
Level - 3, 4 = Software Engineer
Level - 5 = Lead Software Engineer
Level - 6 = Architect
Or you can introduce more levels. For example,
Level - 3 can be divided into two parts as Software Engineer and Sr. Software Engineer, where you write software engineering with design patterns as an effective solution in the later position.
---
Now, let's take a top-down look.
At level - 6, the architecture is created so well that at level - 5 you don't have to worry about other apps. At level - 5, the app is set up very well so that at level - 4 you don't have to worry about surrounding services. At level - 4, the app is created and maintained very well so that at level - 3, you don't have to worry about other modules within the app. This continues at level - 2, where the code is crafted so well that you don't have to worry at level - 1 that your minor code change will throw a module error or bring down the app or crash the product!
Layers of abstraction are added so well that at the given level, only the necessary context is required. When you're at level - 6, you don't have to care about the code of the app or module because it is taken care of at levels - 3 and 4. Similarly, at level - 2, you don't have to worry about other parts of the product as they are taken care of at a higher level. You just have to worry about a set of files.
---
With the advancement of AI, the border between these levels has started to become blurred. Not between levels but between the whole range of levels. You, as level - 2, are expected to work on levels - 1 to 4, or level - 4 is required to work on levels - 3 to 6. Geniuses can jump between these levels, but lack the knowledge that only comes with experience.
અધૂરો ઘડો છલકાય ઘણો
આ કહેવતનો અર્થ છે - જેમ અડધો ભરેલો ઘડો હલનચલનથી વધારે છલકાય છે, તેમ અધૂરું જ્ઞાન ધરાવનાર વધારે બોલે છે, વધારે દેખાડો કરે છે. આને લગતી બીજી પણ એક કહેવત છે - ખાલી ચણો વાગે ઘણો. આ કહેવતનો પણ મતલબ સમાન છે.
ભર્તૃહરિ પણ નીતિશતકમાં આ મતલબની વાત કહે છે.
अज्ञः सुखमाराध्यः सुखतरमाराध्यते विशेषज्ञः।
ज्ञानलवदुर्विदग्धं ब्रह्मापि नरं न रञ्जयति॥
અજ્ઞાનીને સમજાવવો સરળ છે, જ્ઞાનીને સમજાવવો તો એનાથી પણ સરળ છે, પણ જેની પાસે અલ્પજ્ઞાન છે, જે અંધકારમાં ડૂબેલો છે, તેને સ્વયં બ્રહ્માજી પણ સમજાવી શકતા નથી.
अज्ञः = અજ્ઞાની
सुखमाराध्यः = सुखम् + आराध्यः = સુખપૂર્વક + પ્રસન્નતાથી
विशेषज्ञः = વિશેષજ્ઞ / જ્ઞાની
सुखतरमाराध्यते = सुखतरम् + आराध्यते = વધુ સુખપૂર્વક + પ્રસન્નતાથી
ज्ञानलवदुर्विदग्धं = ज्ञान + लव + दुर्विदग्धम् = જ્ઞાન + ઓછું / અંશ + ખરાબ રીતે દાજેલો / અહંકારથી ભરેલો
ब्रह्मापि = ब्रह्मा + अपि = બ્રહ્મા + પણ
नरं = નર
न = ના
रञ्जयति = પ્રસન્ન કરવું
તડપદી ભાષામાં કહેવાય છે ને, "આને હવે ભગવાન નીસે આવીને હમજાવશે તોય ઇ નઇ હમજે".
કલાકારની ફિલમ આવી
કલાકાર વિવાદોમાં સપડાયો,
લાગે છે કલાકારની ફિલમ આવી.
કલાકાર આંદોલનમાં જોડાયો,
લાગે છે કલાકારની ફિલમ આવી.
કલાકાર મંદિરમાં દેખાણો,
લાગે છે કલાકારની ફિલમ આવી.
કલાકારને ચિંતા જાગી,
લાગે છે કલાકારની ફિલમ આવી.
TIL: fetch() in Node is powered by undici
Undici means eleven in Italian. It is an HTTP/1.1 client. 1.1 -> 11 -> Eleven -> Undici.
fetch() that we use in Node is actually from undici library/package. As this library is written and maintain by Node team and part of Node runtime, we directly get fetch() function without installing it separately as external package.
But, if you want, you can still use it as project dependency using following command:
npm i undici
If following is the code we have:
const resp = await fetch("http://api.example.com/data");
Then we need to add fetch import statement as:
import { fetch } from "undici"; const resp = await fetch("http://api.example.com/data");
Yes, drop-in replacement!
Most of the time, we don't need this library unless we want to use latest and greatest feature of library that are yet not available within Node. But, doing so will add burden to manage the additional dependency. Plus, it will increase the bundle size as it is now a package used by our app than the runtime itself.
નામમાં શું રાખ્યું છે?
તારક મહેતાકા ઉલ્ટા ચશ્મામાં એક સીન છે, જેમાં જેઠાલાલ કહે છે, કે નુતને કીધું છે ને કે, "નામમાં શું રાખ્યું છે" તો બધા પુછે છે કે, આ "નુતન" કોણ? નુતન, વૈજ્ઞાનિક. પછી બધાને ખ્યાલ આવે છે, કે આતો ન્યૂટનની વાત કરે છે! ત્યાં પાછો પ્રશ્ન ઉભો થાય છે, કે "નામમાં શું રાખ્યું છે" એ વાક્ય ન્યૂટને થોડું કીધું હતું? એ તો શેક્સપીયર એ કીધું હતું. વાત સાચી છે, કે આ વાક્ય શેક્સપીયર એ કીધું હતું પણ જેઠાલાલનો જવાબ પણ રસપ્રદ છે, એ કહે છે - એ જ નામમાં શું રાખ્યું છે ન્યૂટન કે શેક્સપીયર!
"નામમાં શું રાખ્યું છે" આ વાત આટલા વર્ષો પેલા ઉચ્ચારણ પામી. તો પણ, આ નામની માયાજાળ ગઈ નથી. કોમ્પ્યુટર વિજ્ઞાનમાં એક અવતરણ(=quote) છે,
There are only two hard things in Computer Science: cache invalidation and naming things.
Phil Karlton
મતલબ કે, કમ્પ્યુટર સાયન્સમાં ફક્ત બે જ મુશ્કેલ બાબતો છે: કેશ ઇનવેલિડેશન અને નામકરણ.
એટલે ભલે "નામમાં શું રાખ્યું છે" એવું કહેવાય છે પણ કોમ્પ્યુટર વિજ્ઞાનવાળા પૂછો તો ખબર પડે કે, કેટલું અઘરું છે એ! બાકી તો ભાષાના નામ ખાલી "C" કે "D" કે "F" કોણ રાખે?! કોણ ભાષાનું નામ ઓક(=Oak) રાખે કે, મારી બારીની બહાર ઓકનું ઝાડ છે, એટલે મેં ભાષાનું નામ Oak રાખ્યું (જે પછી થી બદલાયને Java થયું).
TIL: You don't need dotenv in latest version of Node
Starting from Node v20.6.0, you don't need dotenv package to load the environment variables within process.env scope as Node now natively support loading the environment variables from default .env file or custom .env files such as .env.development or others.
There are two ways, you can use this feature.
1. Pass .env to the script as CLI flag: Consider the example where you've following two scripts in your package.json file.
"dev": "nodemon app.js", "start": "node app.js"
Then you can pass the .env file to the app.js script as value of --env-file CLI flag.
"dev": "nodemon --env-file=.env app.js", "start": "node --env-file=.env app.js"
Or you can pass different .env file based on the environment.
"dev": "nodemon --env-file=.env.development app.js", "start": "node --env-file=.env app.js"
2. Load within code using loadEnvFile(): Function loadEnvFile() is available within process module that we can import and optionally pass the .env file name to the function.
const process = require("process") // Loads the default .env file in current directoy. process.loadEnvFile() // OR pass a custom path process.loadEnvFile("./config/.env")
Now, you can use environment variables within process.env scope from the given environment file.
XWayland 26.1 RC1
ઓગસ્ટ 2026માં XWayland 26.1 RC1 ની જાહેરાત કરવામાં આવી. Wayland ની પ્રથમ આવૃત્તિ(=Version) આવી એને આજકાલ કરતાં લગભગ 14 વર્ષ (પ્રથમ આવૃત્તિ તારીખ - 22 October 2012) થઇ ગયા. Wayland માં હજુ પણ આપણે સંપૂર્ણ સ્થાનાંતર નથી કરી શક્યા. KDE અને GNOME જેવા મોટાં સોફ્ટવેર Wayland માં સ્થાનાંતર કરી ગયા પણ જે વર્ષોથી apps બનેલી છે X માં તેને ફરીથી લખવી Wayland માં, એ સરળ કામ નથી.
અહીં XWayland એક દુભાષિયા(=compatibility layer) તરીકે કામ કરે છે. X11 app ને લાગે છે કે તે સામાન્ય X server સાથે વાત કરી રહી છે; વાસ્તવમાં તે XWayland સાથે વાત કરે છે, અને XWayland બીજી બાજુ Wayland ની સાથે વાત કરે છે. એટલે KDE અને GNOME આ રીતે જૂની apps ને ટેકો(=support) આપે છે.
આ માત્ર જુના સોફ્ટવેરને ચલાવવાનો જુગાડ નથી, પણ ક્યારેક કોઈ વસ્તુ એક જ દિવસે નાશ પામતી નથી. દિવસો, મહિનાઓ, વર્ષો લાગે છે. ઘણીવાર આ પ્રકારે દુભાષિયાને લઈને કામ કરવું પડે છે, જેથી બધી aaps જે X માં બની છે, જે એની ઈકો-સિસ્ટમ છે, એ ધીરે ધીરે Waylandમાં સ્થાનાંતરિત થઇ શકે.
આ ઉપરથી બીજી એક વાત યાદ આવી - ઘણી વાર YouTube માં એવા વિડિઓ આવે છે, જેમાં વ્યકિત કહે છે, કે PHP is dead અથવા Java is dead અથવા Node is dead, મતલબ કે, હવે આ PHP કે Java કે Node કોઈ વાપરતું નથી, હવે એ ભાષા શીખવી નકામી છે, નોકરી નહિ મળે, હશે તો પણ જતી રહેશે, વગેરે વગેરે. પણ, હજુપણ લાખો નહિ પણ કરોડો apps આ ભાષાઓમાં છે, અને એ ક્યાંય જવાની નથી, જે એ બીજી કોઈ ભાષામાં ભવિષ્યમાં લખાશે તો પણ વર્ષો નીકળી જશે અને ત્યાં સુધી એ વપરાશમાં રહેશે. આતો વાત એવી છે, કે મેં એક YouTube માં વિડિઓ બનાવ્યો કે આ વિડિઓ જોવીને Node શીખો અને તમે એ વિડિઓ જોવીને Node શીખી ગયા. હવે મારે નવો વિડિઓ બનાવો છે તો હું કોઈ બીજી ભાષા પર બનાવીશ જેમકે Java. પણ, તમે Java શું કામ શીખશો? તમારે જરૂર શું છે શીખવાની? તમને Node આવડે છે અને એમાં તમારું કામ ચાલે છે. એટલે હું શું કરીશ કે પેલા તમને એમ કહીશ કે, Node હવે જૂની થઇ ગઈ, એ ધીમે ધીમે બાઝારમાંથી ગાયબ થઇ રહી છે - Node is dead. એક વાર ડરનો માહોલ થઇ ગયો એટલે તમે એ ડર માંથી છટકવા મને પૂછશો તો હું કહીશ કે Java શીખો અને તરત હું મારો આગળનો વિડિઓ પકડાવી દઈશ.
અંતે મુખ્ય વાત ઉપર પાછા આવીએ. કે, તરત જ સ્થાનાંતર શક્ય નથી - વિચારોનું પણ. ધીરે ધીરે બની શકે, ઘણીવાર વચલો માર્ગ પણ લેવો પડે તો ઘણી વાર થોડી બાંધ-છોડ પણ કરવી પડે અને પછી જ સંપૂર્ણ સ્થાનાંતર શક્ય છે.
ટ્યુરિંગ એવોર્ડ
નોબૅલ પ્રાઈઝ પાંચ જ વિષયોના સંશોધનમાં મળે છે. આ પાંચ વિષયો છે - ભૌતિક વિજ્ઞાન, રસાયણ વિજ્ઞાન, શરીર વિજ્ઞાન (અથવા દવા), સાહિત્ય, અને શાંતિ.
કોમ્પ્યુટરના સંશોધનમાં નોબૅલ પ્રાઈઝ મળતું નથી પણ એના બદલે એ જ કક્ષાની ખ્યાતિ ધરાવતું ટ્યુરિંગ પ્રાઈઝ એટલે કે ટ્યુરિંગ એવોર્ડ(=Turing Award) મળે છે. એલન ટ્યુરિંગ કે જે કોમ્પ્યુટર વિજ્ઞાનના પિતા તરીકે ઓળખાય છે, એમની યાદમાં આ અવોર્ડનું નામ રાખવામાં આવ્યું છે. એવોર્ડ જીતનારને એવોર્ડ ઉપરાંત $1 મિલિયન એટલે કે 10 લાખ ડોલર મળે છે અને જીવન પર્યાંત પ્રસિદ્ધિ ને આદર તો ખરો જ.
સૌ પ્રથમ આ એવોર્ડ એલન પર્લિસ(=Alan Perlis) આપવાંમાં આવ્યો હતો અને ત્યારબાદ કોઈ અસામાન્ય સંજોગોને બાદ કરતા લગભગ દર વર્ષે આપવામાં આવે છે.
સામુદાયિક ધ્યેયનો અભાવ
ઘણું લાંબા વખતથી આપણા બધાંનું મળીને એક જ એવું ઉદાત્ત જીવનધ્યેય આપણી દૃષ્ટિ સામે કશું જ રહ્યું નથી. બીજાં પ્રાણીઓ જેમ પોતપોતાની વ્યક્તિગત ઇચ્છાઓને કારણે છે છે અને પોતાની જરૂરિયાતો પૂરી કરવાના વ્યક્તિગત પ્રયત્નમાં આખી જિંદગી પસાર કરે છે, લગભગ તે જ સ્થિતિ આપણે મનુષ્ય હોવા છતાં આજે આપણી થયેલી છે. આપણું સમાજમાં દરેક યુગમાં વિદ્વાનો હતા, પંડિતો હતા, મહાન સંતપુરુષો હતા; ધનવાન, ઐશ્વર્યવાન પુરુષો હતા; એકથી એક ચડિયાતા એવા બળવાન, રણશુરા અને ધુરંધર યોદ્ધાઓ હતા; વિલક્ષણ બુદ્ધિશાળી મુત્સદ્દીઓ હતા; પરંતુ બધાંએ મળીને પોતાની શક્તિ અને બુદ્ધિથી પ્રાપ્ત કરવાનું કોઈ પણ સામુદાયિક ધ્યેય આપણી સામે ન હતું. જે ધ્યેયથી બધાંને ધન્યતા લાગે, બધાંને સરખી જ કૃતાર્થતા અને ગૌરવ લાગે અને જે બધાંના સહિયારા પરિશ્રમ અને ઐક્ય સિવાય, એકબીજા માટે એકબીજાને સંતોષપૂર્વક અને સાચા દિલથી કરવા પડતા સ્વાર્થત્યાગ સિવાય પ્રાપ્ત થવું શક્ય નથી એવું કોઈ પણ જીવનધ્યેય આપણી પાસે રહ્યું ન હતું. તેનાં અનિષ્ટ પરિણામો આપણે ભોગવતા આવ્યા છીએ, અને આજે પણ ભોગવીએ છીએ. હજી પણ આપણે બધાંના એકત્રિત સદ્ગુણો ને સ્વાર્થત્યાગથી પ્રાપ્ત થનારું ઉદાત્ત ધ્યેય આપણે સ્વીકાર્યું ન હોવાથી આપણા બધાંની શક્તિમાં કે કતું ત્વમાં એકરસતા આવી શકતી નથી. આપણું બધાંમાં એકતા નિર્માણ થઈ બધામાં એક જ પ્રાણ સંચરવા લાગતો નથી. આપણા સાધુચરિત અને પુરુષાર્થી આગેવાનો આપણને સ્વાર્થત્યાગને અને ઐક્યનો ઉપદેશ કરી રહ્યા છે તોપણ હજી તે આપણા ચિત્તમાં જડ ઘાલતો નથી.
~ વિવેક અને સાધના પુસ્તક માંથી, લેખક કેદારનાથ
TIL: Node doesn't have environments
We all are familiar with different types of environments where our application is run:
- Development
- Testing
- Staging
- Production
People in Node use NODE_ENV environment variable to set/get the environment. But, as mentioned on the official getting started guide,
There is no difference between development and production in Node.js
Libraries use of NODE_ENV is purely conventional.
But, if you want to use NODE_ENV then the only possible value it can have is production.
setting NODE_ENV to anything but production is considered an antipattern.
Refer the Node.js, the difference between development and production for the exact details.
Emacs Minipost Pt. 6
Do you remember that in last Minipost we did some modifications in main.c file and saved it again for the sake of practice? I wants you to open that directory/folder location in file manager.
Notice we're seeing two files - main.c file and another file that has same name but ends with ~ e.g. main.c~. This is how Emacs save the backup of your file in case something goes wrong.
If you want, we can disable this backup saving by configuring this option in Emacs config file. Open the Emacs config file and add following:
(setq make-backup-files nil)
Follow these steps:
- Press
ctrl-xctrl-fand open the Emacs config file (write the relative or absolute path). - Do the modification as suggested above. e.g. add
(setq make-backup-files nil)in config file. - Press
ctrl-xctrl-sto save the config changes. - Go to file manager and delete
main.c~file. - Press
ctrl-xctrl-fand open themain.cfile. - Remove that extra
printf()that we added previously. - Press
ctrl-xctrl-sto save the changes inmain.cfile. - Go to the file manager and see if we now have
main.c~file or not? - Confirm that we don't have. If that is the case, yay! If not then try closing and then re-opening the Emacs.
Summary: We disabled the backup saving functionalities and practice the whole save, open, save flow.
શોખ
તમને કોઈ વિષયનો શોખ છે. તમારો એ મનગમતો વિષય હોય એમાં તમે આનંદથી સમય પસાર કરો છો. ક્યારેક કંટાળો આવે ત્યારે એ તમારો શોખ કંટાળો દૂર કરે છે. ક્યારેક થાક લાગે છે ત્યારે એ તમારો શોખ થાક દૂર કરે છે. ક્યારેક તમે હતાશ થાવ ત્યારે એ તમારો શોખ હતાશા દૂર કરે છે. ક્યારેક તમારે તમારું મગજ એક જગ્યાએ થી બીજી જગ્યાએ વાળવું હોય / divert કરવું હોય ત્યારે એ એ તમારો શોખ તમને તાજગી આપે છે. પણ...
તમને એવો વિચાર આવ્યો અથવા કોઈકે તમારા મગજમાં એવો વિચાર રોપ્યો કે, આ શોખથી પૈસા કમાવી શકાય તો? અને તમે ગણતરી મંડી. થયું પછી!
તમારો શોખ હવે ખાલી આનંદ માટે નથી, પણ પૈસાની ગણતરી લાગી છે એના ઉપર. અને હવે તમારો શોખ તમને કંટાળો આપે છે. કારણ કે એ શોખને તમારે આવકના સાધન તરીકે પ્રસ્તુત કરવાનો છે. એ શોખથી તમને થાક લાગે છે. કારણ કે, તમારે સતત પ્રયત્નશીલ રહેવાનું છે, આવક ઉભી કરવા. એ શોખ તમને હતાશા તરફ લઇ જાય છે, કારણ કે, એમાંથી જરૂરી આવક ઉભી થતી નથી. તમે હવે તમારા વિચારો બીજી તરફ વાળી શકતા નથી. કારણ કે, તમારો શોખ જ તમારો મુખ્ય વિચાર થઇ ગયો છે. ક્યાં જશો હવે?
જરૂરથી આમાં અપવાદ હોય શકે છે, અને અપવાદો ઘણા છે. ભારત સરકાર તરફથી મળેલા પુરસ્કારોની યાદી તપાસશો તો તમને જરૂરથી ઘણા લોકો મળશે જેમનાં શોખ અને વ્યવસાય(જો એ લોકો પણ એ રીતે જોતા હોય તો!) એક જ હશે. પણ આવા વિરલા કેટલા? આ "રાસાયણિક" મિશ્રણ જોખમી નીવડી શકે છે, કૃપા કરીને જોઈતી તકેદારી લો.
AI હવે દરેક ડિજિટલ અનુભવનો ભાગ
આજે ટેક દુનિયામાં સૌથી મોટી ચર્ચા આર્ટિફિશિયલ ઇન્ટેલિજન્સ(AI)ની આસપાસ છે. તાજા અહેવાલો મુજબ Googleના Gemini એપ યુઝર્સની સંખ્યા 1 બિલિયન એટલે કે એક અબજ સુધી પહોંચી ગઈ છે. આ સમાચાર બતાવે છે કે AI હવે માત્ર ટ્રેન્ડ/હવા નથી, પરંતુ રોજિંદા જીવનનો મહત્વપૂર્ણ ભાગ બની રહ્યો છે. ડેવલપર્સ, વિદ્યાર્થીઓ અને વેપારીઓ માટે AI વધુ ઝડપી, સરળ અને ઉપયોગી બનતું જાય છે.
બીજી તરફ, કંપનીઓ હવે AI સાથે નવા પ્લેટફોર્મ અને પ્રોડક્ટ્સ પર પણ જોર આપી રહી છે. સ્ટાર્ટઅપ્સથી લઈને મોટા ટેક જાયન્ટ્સ સુધી, દરેક કંપની પોતાની સર્વિસમાં AI જોડીને સ્પર્ધામાં આગળ રહેવા માંગે છે. આથી આવનારા મહિનાઓમાં વધુ સ્માર્ટ એપ્સ, ઝડપી ઓટોમેશન અને નવા ડિજિટલ અનુભવ જોવા મળશે.
Emacs Minipost Pt. 5
Do you remember that in previous Minipost, we created a main.c file? In this Minipost, we're going to open it.
Open the Emacs and press ctrl-x ctrl-f. It asks you the path/file name that you want to open.
P.S. It supports auto-complete. So, just write few characters and press Tab. Emacs will auto-complete path/file name for you!
Type a path/file name and press Enter. Emacs will open the file!
Let's modifies the code and add one more printf().
#include <stdio.h> int main(int argc, char** argv) { printf("hello, world\n"); printf("how are you?\n"); return 0; }
We know how to save, right? ctrl-x ctrl-s. Press.
We now know how to create, open, and save the file in Emacs! Yay!
Summary: Now, you know how to open an existing file and save it with modified content.
આઠ દાયકાની આજાયબી
આપણે મનગમતી ફિલ્મ માટે દાયકાઓ સુધી બ્લેકમાં ટિકિટ ખરીદી છે અને હજુ આજેય દક્ષિણ ભારતમાં ખરીદીએ છીએ. બેવકૂફ અભિનેતા અને અભિનેત્રીઓ આપણા યુવક અને યુવતીઓના આદર્શ છે, રોલ મોડેલ છે. ઠોઠ લોકો પણ સ્ટાઈલિશ દેખાવા મથે છે. તેમને સારા દેખાવામાં રસ છે, સારા હોવામાં રસ નથી. આપણે એક સામાન્ય દાખલો મેળવવા માટે સરકારી કાર્યાલયમાં વધારાના પૈસા પણ આપીએ છીએ. આપણે ગમે તેટલું ભણેલા છીએ તો પણ ટ્રાફિક પોલીસની પકડમાંથી છટકવા માટે ખિસ્સામાંથી એકાદ નોટ સરકવા દઈએ છીએ. આપણે આગળ નીકળી જવા માટે ગમે ત્યારે આપણા વાહનો રોંગ સાઈડમાં કે ફૂટપાથ પર પણ ચડાવી દઈએ છીએ. બે નંબરના ભ્રષ્ટ આચરણથી ઘરમાં આવેલા નાણાં જોઈને આપણા દેશની માનવંતી ગૃહિણીઓના ચહેરા પર અજાયબ સ્મિત ફરકે છે. એ સ્મિત કૈકેયી, મંથરા કે આમ્રપાલી જેવું છે.
આ બધા જ આપણા પોતાના વિનાશના રાજમાર્ગો છે. જે આપણે પસંદ કરેલા છે. તમારી પસંદગીઓ જ તમારું ભવિષ્ય નક્કી કરે છે. પ્રજાને ખોટા રસ્તેથી પાછી વાળવી એ તો મહાપુરુષોનું અથવા સમાજમાં અત્ર તત્ર ફેલાયેલા અનામી સત્પુરુષોનું કામ છે.
~ ગુજરાત સમાચાર ના તારીખ 15-ઓગસ્ટ-2026માં લખાયેલા તંત્રી લેખમાં થી. જોકે હવે "તંત્રી લેખ" એવું લખતા નથી, પણ લખાણ આ કોલમમાં ખુબ સુંદર રીતે લખાય છે. બીજું ના વંચાય તો કઈ નહિ આ કોલમ વાંચવી.
AI ડેટા ચોરી સામે નવું હથિયાર - નવા પ્રકારના ફોન્ટ
AI સતત નવા ડેટા માટે રાત-દિવસ જોયા વગર દુનિયા આખીની વેબસાઈટ, બ્લોગ્સ, ફોટા, વિડિઓ, દસ્તાવેજો, વગેરે સ્ક્રેપ કર્યા જ રાખે છે. AI ને નવો ડેટા જોઈએ છે, જેથી એ પોતાની ગુણવત્તા, પોતાની આવડત સુધારી શકે.
આની સામે ઘણા લોકોને વાંધો છે, ખાસ કરીને સર્જનાત્મક(=creative) કાર્યો સાથે જોડાયેલા લોકો. AI એમનાં સર્જનાત્મક કાર્યોનો ઉપભોગ કરે છે, એમાંથી શીખે છે, અને એવું અથવાતો ક્યારેક એનાથી પણ ચડિયાતું બનાવે છે. આતો યંત્રો સીધા માનવો જોડે, માનવોની જેમાં તાકાત(=strength) છે એમાં હરીફાઈ/સ્પર્ધામાં ઉતાર્યા! આ ઉપરાંત વળતર, જરૂરી સંદર્ભ, શ્રેય, અને માનવ સબંધો ઉપરાંત લાગણીઓને લગતા મુદ્દાઓ પણ છે. આ મુદ્દાઓનો હજુ સુધી કોઈ તોળ(=solution) નથી આવ્યું એના ઉપાયો શોધવાનું ચાલુ જ છે.
એક ઉપાય હાલમાં ચર્ચામાં આવ્યો છે - ફોન્ટ, નવા પ્રકારના ફોન્ટ.
કમ્પ્યુટરમાં જે લખાણ વાંચો છો, એ ફોન્ટ છે. ફોન્ટ ગ્લિફના બનેલા છે જેમ બારાક્ષરી મૂળાક્ષરોની બનેલી છે. કમ્પ્યુટર જયારે વાક્યને તમારા વાંચવા માટે, કમ્પ્યુટર પર દોરે છે, ત્યારે એની પાછળ અત્યંત જટિલ અને રસપ્રદ ગણતરીઓ ગણાય છે. એટલું જ નહિ, આ ગણતરીઓ થયા પછી પણ કેટલીક પ્રક્રિયાઓ(=processes) થાય છે. એમની એક છે - લીગેચર(=ligatures). અમુક અક્ષરો જો સાથે લખાય તો તે વધુ સારા લાગે, વાંચવામાં સરળ પડે, અને આંખોને પણ તકલીફ ન પડે એ માટે લીગેચર પ્રક્રિયા થાય છે. તો આ લીગેચર ને સરળ ભાષામાં સમજીએ જેથી નવા પ્રકારના ફોન્ટને કઈ રીતે આ લડાઈમાં લઇ શકાય એ સમજવામાં સરળતા પડે.
ફોન્ટ (ફાઈલ)માં લીગેચર નું એક કોષ્ટક(=table) હોય છે, જે સંકેત(=hint) આપે છે કે જયારે અમુક શબ્દ સાથે આવે ત્યારે એ શબ્દોને આલગ આલગ ના દોરતાં તેમને વણાંક સાથે સાથે દોરવા. જેથી શબ્દ સાચો લખાય ઉપરાંત વાંચવામાં પણ સરળ પડે અને ઉઠાવ પણ આવે.
ઉદાહરણ તરીકે "વ્યકિત" શબ્દ લઈએ. તમે આ શબ્દને સરળ રીતે વાંચી શકો છો. કેમ કે, ફોન્ટમાં આ શબ્દ માટે જરૂરી સંકેતો આપેલા છે. જેમકે, જો "ક" અને "ત" સાથે આવે તો "કત" ન લખતાં "ક્ત" લખવું. "કત" માં બંને અલગ અક્ષરો છે એટલે બંને સ્વતંત્ર રીતે વંચાશે. જયારે, બીજા "ક્ત" માં બને જોડાઈ ગયા છે આથી "ક" નું સ્વતંત્ર અસ્તિત્વના રહેતા "ક્ત" સાથે વંચાશે. એમાં પણ જો " િ" + "ક" + "ત" આવે તો "કિત" ના દોરતા "ક્તિ" દોરવું. આ પ્રકારનો સંકેત કોષ્ટકમાં લખેલો હશે.
જો હું મારા કમ્પ્યુટર સેટિંગમાં જઈને લીગેચરની પ્રક્રિયા જે દરેક વખતે થાય છે, એને બંધ કરી દવ તો "વ્યકિત" આ રીતે દોરાશે.
જોયું. વાંચવામાં અઘરું પડે છે. હવે તમને જો લીગેચર વિષે ખબર પડી ગઈ હશે એમ ગણી આગળ વાત આગળ ચલાવીએ.
અત્યાર સુધી આ લીગેચર કોષ્ટક એક, બે, કે ત્રણ અક્ષરોના સંકેત(=hint) પૂરતું માર્યાદિત હતું. પણ નવા પ્રકારના ફોન્ટ, જેમકે ShieldFont આને આગળ લઇ જઈ શબ્દ સુધી લીગેચરના સંકેતો મુક્યા.જેમ " િ" + "ક" + "ત" મળે તો એનું "ક્તિ" કરવું એમ ShieldFont એવું કહે છે કે, જો ધારો કે, "engine" શબ્દ મળે તો એમાં જોડાણ-બોડાણ કાંઈ નહિ આખેઆખો શબ્દ જ બદલી નાખવો. જેમકે, "engine" નું "horse" અથવાતો "morning" નું "tunnel" અને "poison" નું "nector" કરી નાખવું, વગેરે.
આમ કરવાથી વાંચનાર માટે તો સાચા જ શબ્દો દોરાશે પણ AIના સોફ્ટવેર જે વાંચતા નથી અને સ્ક્રેપ કરે છે એને જેમ લીગેચરની પ્રક્રિયાનો સમાવેશ નથી થતો એમને કાંઈક બીજું જ હાથમાં આવશે! જેમકે, વાંચનારને કાંઈક નીચે પ્રમાણે વંચાશે -
"This is a text written in English. Read it aloud."
પણ AIની પાસે કાંઈક નીચે પ્રમાણે મળશે.
"This is a concert twined in English. Reset it aloud"
જોવી લો! ક્યાંથી ક્યાં મતલબ ચાલ્યો ગયો! છેને બાકી તોડ?
અંતે આ પ્રકારની જે સુવિધા આપે છે, એ ShieldFontની વેબસાઈટ જોવાનું ચુકતા નહિ. ત્યાં તમને આ લેખ કરતા વધુ જાણવા મળશે ઉપરાંત તમને થતા પ્રશ્નોના જવાબ અને live demo પણ છે. આ ઉપરનું ઉદાહરણ "This is a text..." મેં ત્યાં live demo માં અજમાવીને જ અહીં લખ્યું છે.
Emacs Minipost Pt. 4
Open the Emacs. You should see the following screen.
Remove these two lines (or comments) from the scratch pad and type the following code.
P.S. You might face difficulty while adding the indentation. For now, stay with me and type spaces literally instead of tabs.
#include <stdio.h> int main(int argc, char** argv) { printf("hello, world\n"); return 0; }
We know how to save the file, right? Yes, ctrl-x ctrl-s. Press. But, we haven't created the file yet. So, Emacs first ask to create the file and then will save the content of it.
Here, instead of typing the name of the file, you can type the full path if you don't want to save at the default location that Emacs is suggesting and then press Enter.
Congratulation on creating and saving the files using Emacs!
Summary: Now you know how to create and save the file from Emacs only!
ફ્રાન્સ ૧૧ ઓગસ્ટથી અનિચ્છનીય ટેલિમાર્કેટિંગ કોલ્સ પર પ્રતિબંધ મૂકશે
શું તમને માર્કેટિંગ એટલે કે વસ્તુ જાહેરાતના ફોન આવે છે? શું તમે પૂર્વ મંજૂરી વગર આવતા આ પ્રકારના ફોનથી કંટાળી ગયા છો? તો તમારા માટે તો નહીં પણ ફ્રાન્સના લોકો માટે સરકાર કાયદો લાવી રહી છે કે, પૂર્વ મંજૂરી વગર જો ટેલેમાર્કેટિંગના ફોન આવશે તો દંડ થશે.
આ કાયદો ૧૧ ઓગસ્ટથી લાગુ પડશે. નિર્ણય ૧૧ ગ્રાહક સંસ્થાઓની સંયુક્ત માંગ બાદ ફ્રેન્ચ સંસદે મંજૂર કરેલા કાયદા હેઠળ લેવામાં આવ્યો છે. અત્યાર સુધી કેટલીક શરતો સાથે માર્કેટિંગ કૉલ્સની મંજૂરી હતી, પરંતુ નવા નિયમનો મુખ્ય હેતુ લોકોને વારંવાર આવતા અનિચ્છનીય અને પરેશાન કરનારા ફોનથી સુરક્ષિત કરવાનો છે.
નવા કાયદા હેઠળ વ્યક્તિ કે કંપની જો ગ્રાહકની મંજૂરી વિના માર્કેટિંગ ફોન કરશે તો તેના પર દંડ થઈ શકે છે. આવા અનધિકૃત ફોનની ફરિયાદ કરવા માટે જાહેર વેબસાઇટની વ્યવસ્થા પણ કરવામાં આવી છે, જેથી ગ્રાહકો નિયમનો ભંગ કરનારાઓની જાણ કરી શકે. આ પગલાને ફ્રાન્સમાં ગ્રાહક અધિકારોને મજબૂત કરવા અને ટેલિમાર્કેટિંગમાં વધુ કડક નિયંત્રણ લાવવાના મહત્વપૂર્ણ પ્રયાસ તરીકે જોવામાં આવે છે.
ઓપન સોર્સ
કોમ્પ્યુટરના ક્ષેત્રમાં ઓપન સોર્સ(=open source) શબ્દ ઘણો પ્રચલિત છે. કોઈ સોફ્ટવેર ઓપન સોર્સ છે એનો મતલબ એ સોફ્ટવેરનો કોડ વાંચવા માટે ઉપલબ્ધ છે, સુધારા વધારા કરવા માટે ઉપલબ્ધ છે, બીજાને આપવા માટે ઉપલબ્ધ છે, એને બીજાને પૈસાથી વેચવાં માટે ઉપલબ્ધ છે, આનાથી બીજા સોફ્ટવેર બનાવવા માટે ઉપલબ્ધ છે. આ પ્રકારની સ્વતંત્રતા કેટલા અંશે ઉપલબ્ધ છે, એ સોફ્ટવેરના લાઇસન્સ પર આધાર રાખે છે. જેના વિષે આપણે આગળ વાત કરીશું.
આ એક રસપ્રદ વાત થઇ, નહિ?
ધારો કે તમે કોઈ ફિલ્મ પર કામ કરી રહ્યા છો અને એની વાર્તા/કથા(=script) તમે જાહેરમાં મૂકી દીધી છે, અને એ કોઈ બીજા વ્યક્તિ વાપરી શકે, એમાં ફેરફાર કરી ને બીજી કથા બનાવી શકે અને એને મફતમાં કે પૈસાથી બીજાને વેચી શકે!
ધારો કે તમે કોઈ સંગીત/ગીત પર કામ કરી રહ્યા છો એની શબ્દ અને સંગીત રચના તમે જાહેર કરી દીધી છે, કોઈ પણ એનો ઉપયોગ કરીને એ ગીત બનાવી શકે, જાહેરમાં મૂકી શકે, વગાડી શકે, અને મફતમાં કે પૈસાથી વેચી શકે!
તમને એવા વિચાર પણ આવે કે, આમ થોડું હોય, મહેનત એક વ્યક્તિ કરી, અને બીજો પૈસા કમાય? આમ થોડું ઘર ચાલે? જાહેર કરનાર વ્યક્તિ કેવો કહેવાય? વગેરે વગેરે. પણ, કરોડો નહિ તો પણ લાખોની સંખ્યામાં ઓપન સોર્સ સોફ્ટવર ઉપલબ્ધ છે, જેનો તમે ઉપયોગ કરી શકો છો, વાપરી શકો છો, બીજાને આપી શકો છો, એમાં સુધારા-વધારા કરી શકો છે, અને એને મૂળ વ્યક્તિ કે જેને એ સોફ્ટવેર બનાવ્યો એને પૈસા આપ્યા વગર બીજાંને વહેંચી શકો છો.
જે તે કોડ/સોફ્ટવેર કેટલા અંશે ફેરફાર માટે, વેચાણ માટે, ઉપલબ્ધ છે એ એની સાથે વાપરવામાં આવેલ લાઇસન્સ પર આધાર રાખે છે. ઘણા પ્રકારના લાઇસન્સ ઉપલબ્ધ છે, સોફ્ટવેર બનાવનાર વ્યકિત કોઈ પણ લાઇસન્સ વાપરી શકે અને એના આધારે સોફ્ટવેર/કોડની સ્વતંત્રતા નક્કી થાય.
જેમકે, કોઈ વ્યક્તિએ મ્યુઝિક પ્લેયર(=music player) નો સોફ્ટવેર બનાવ્યો અને એનો કોડ એને MIT લાઇસન્સ સાથે જાહેરમાં મુક્યો. તો હવે આ લાઇસન્સ પ્રમાણે કોઈ પણ વ્યક્તિ આ સોફ્ટવેરનો કોડ લઈને પોતાના માટે અલગથી મ્યુઝિક પ્લેયર બનાવી શકે છે, એમાં સુધારો કરીને વાપરી શકે છે, બીજાને આપી શકે છે, પૈસા લઈને વહેંચી શકે છે, એનો ઉપયોગ કરીને બીજો સોફ્ટવેર - જેમકે વિડિઓ પ્લેયર(=video player) બનાવી ને વહેંચી શકે છે. અંતે, પોતે ભલે બીજાનો કોડ વાપરીને સોફ્ટવેર બનાવે. પણ પોતાનો સોફ્ટવેરનો કોડ ના પણ આપે. MIT લાઇસન્સમાં જેમ સ્વતંત્રતા મળે છે, એમ જવાબદારી નથી આવતી. એટલે કે, મૂળ વ્યક્તિ પહેલેથી કહી દે છે, કે જો આ સોફ્ટવેરથી કાંઈ નુકસાન થાય તો અમારી જવાબદારી નથી, તમારો ડેટા ઉડી જાય, કોમ્પ્યુટરમાં નુકસાન થાય, ગણતરીમાં નુકસાન થાય તો પણ અમારી જવાબદારી નથી.
આગળના ફકરામાં એક વાક્યનો ભાગ અહીં ફરીથી લખું, "પોતે ભલે બીજાનો કોડ વાપરીને સોફ્ટવેર બનાવે. પણ પોતાનો સોફ્ટવેરનો કોડ ના પણ આપે." અહીં તમે બીજાનો કોડ લીધો પણ તમે એમાંથી બનાવેલા સોફ્ટવેરનો કોડ અપાતા નથી. એવું જો મૂળ બનાવનારને ના કરવા દેવું હોયતો એ સોફ્ટવેરને GNU GPL લાઇસન્સ સાથે સોફ્ટવેરને જાહેરમાં મૂકી શકે, કેમ કે આ સોફ્ટવેરમાં આગળ જણાવેલ સ્વતંત્રતા તો મળે જ છે પણ એમ એક મુદ્દો વધુ ઉમેરાય છે અને એ છે કે, તમે સોફ્ટવેરમાં સુધારો વધારો કરો તો એ સુધારા વધારા કરાયેલ સોફ્ટવેરનો કોડ પણ બીજાને આપવાનો છે અને એ પણ આજ લાઇસન્સ સાથે જેથી આ સાંકળ તૂટે અહીં. એમાં પણ આગળ જણાવેલ જવાબદારી આવતી નથી.
ઘણા લોકો GPL ને કેન્સર લાઇસન્સ કહે છે, કારણકે એ ફેલાય છે જેમ આગળ કીધું એમ. વધુમાં એ લાઇસન્સથી તમે કોઈ સોફ્ટવેર બીજાનો આપો - મફતમાં કે પૈસાથી તો તમારે એ લાઇસન્સ પ્રમાણે એને કોડ પણ આપવો જ પડે અને એ પણ સ્વતંત્ર છે સુધારા વધારા કરવામાં. આ વાત ખાસ કરીને એવી કંપનીઓને લાગુ પડે છે, જેમણે મૂળ સોફ્ટવેરનો ઉપયોગ કર્યો પણ હવે એમાં સુધારો કરીને ઓપન સોર્સ નથી કરવો, એ સુધારો બહાર પડવો નથી.
કંપનીઓને પોતાની અલગ દ્રષ્ટિ છે આ વિષયને જોવાની. ઘણી કંપનીઓ સોફ્ટવેરનો કોડ જાહેર નથી કરતી. કેમકે, કોડમાં એમના ઉદ્યોગનું રહસ્ય છે, અથવાતો એમનો સોફ્ટવેર એજ આવકનો સ્ત્રોત છે, જો એ ઓપન સોર્સ કરશે અને બીજો લોકો જાતે કોડમાંથી સોફ્ટવેર બનાવી લેશે તો આવક બંધ થઇ જશે અથવાતો એમની પાસે કોડ જશે તો બીજા પાસે એમાં સુધારા-વધારા કરાવી લેશે - ઓછી કિંમતથી કે મફતમાં. તો ઘણી કંપની ગોપનીયતાના લીધે ઓપન સોર્સ નથી કરતી. ઓપન સોર્સ કરવાથી કોઈ વ્યકિત એ કોડ વાંચશે અને જો એને એમાં ખામી મળી તો એ ખામીથી સોફ્ટવેર હેક કરીને ડેટા ચોરી ચોરી લેશે, વગેરે વગેરે.
તેમ છતાં ઘણી વાર વ્યક્તિ સારા ઉદ્દેશ્ય સાથે કોડને ઓપન સોર્સ કરે છે. એનો ઉપયોગ બીજો વ્યક્તિ, ત્રીજી કંપની વાપરે છે અને એમાંથી પૈસા કમાય છે. જેમકે, મરાક સ્ક્વાયર્સ(=Marak Squires) કે faker.js કરીને એક લાયબ્રેરી બનાવી જે ફેક ડેટા બનાવે, તમારે જેવા જોઈએ એવા. આ લાયબ્રેરી સોફ્ટવેર ટેસ્ટ કરવામાં ખુબ વપરાતી. અને કંપનીઓ કરોડો કમાતી, પણ બનાવનારને કઈ મળતું નહિ એટલે એને લાયબ્રેરી ઉડાડી દીધી. એ સમયે ખુબ અંધાધુંધી ફેલાયી હતી!
બીજો પણ એવો એક કિસ્સો છે, જેમાં વ્યક્તિ સોફ્ટવેર ઓપન સોર્સ કરે છે અને વારસો સુધી જાણવણી કરે છે, પૈસા વગર અને જયારે એમાં કઈ ખામી જોવા મળે છે ત્યારે જે વ્યક્તિ એ સોફ્ટવેર વાપરતો હોય એ બનાવનારને ઝડપથી ખામી દૂર કરવાનું કહે છે, મફતમાં, તરત, ઓર્ડરથી. વળી પોતે એમાંથી પૈસા કમાય છે!
તો એની સામે સારા ઉદાહરણો પણ જોવા મળે છે. RedHat કરીને કંપની કે જે $32 બિલિયોન એટલેકે 3243224300000.00 રૂપિયામાં IBM એ ખરીદી એ પુરી કંપની ઓપન સોર્સ સોફ્ટવેર પર ચાલે છે, ઓપન સોર્સ સોફ્ટવેરને સારો બનાવી એનો સપોર્ટ આપે છે, વહેંચે છે, અને મૂળ બનાવનાર વ્યક્તિને પણ સમયાંતરે પૈસા આપતા રહે છે, કામમાં મદદ કરતા રહે છે.
ઘણા લોકો સોફ્ટવેરને ઓપન સોર્સ કરીને ઋણ ચૂકવે છે. એમનું એવું માનવું છે, કે બીજા ઓપન સોર્સ સોફ્ટવેરથી જ્ઞાન મળ્યું તો એમાંથી બીજા સોફ્ટવેર બનાવી ઓપન સોર્સ કરીએ જેથી બીજા લોકોને પણ નવા જ્ઞાનનો મોકો મળે.
ઘણા લોકો એને મૂળભૂત હક તરીકે જોવે છે. જેમકે, GNU.org વાળા મને છે કે બધા સોફટરે ઓપન સોર્સ જ હોવા જોઈએ. તમારે એના પૈસા લેવા હોય તો લઇ શકો પણ એનો કોડ તો જાહેર જ હોવો જોઈએ, એમાં શું લખ્યું છે, અમારો કેટલો ડેટા તમે લો છે, બીજું શું શું કરો છ એ બધું શુ લખ્યું છે, એ અમે જોવી શકતા હોવા જોઈએ અને સાથે એમાં સુધારો-વધારો પણ કરી શકતા હોવા જોઈએ. GNU.org વાળાએ ઘણા સોફ્ટવેર ઓપન સોર્સ કર્યા છે GPL લાઇસન્સ સાથે અને કેટલાક તો એવા સોફ્ટવેર છે, જે આખી દુનિયા વાપરે છે, મફતમાં, જો તમે કોમ્પ્યુટરથી ઈન્ટરનેટ વાપરતા હોય તો સમજો કે GNU.org વાળાએ લખેલા ઘણા સોફ્ટવેર વપરાતા હશે અને ત્યારે એ વેબસાઈટ તમે જોઈ શકતા હશો. અને જો તમે એન્ડ્રોઇડ મોબાઇલ વાપરો છો તો એમાં એમના ઘણા સોફ્ટવેર છે, જે તમને દેખાતા નથી પણ અંદર સતત વપરાય છે.
GNU.org વાળા જયારે બધા જ સોફ્ટવેર ઓપન સોર્સ હોવા જોઈએ એવું મને છે તો ઘણા એવું મને છે, બધા નહી તો અમુક મહત્વના સોફ્ટવેર તો ઓપન સોર્સ જ હોવા જોઈએ. જેમ કે, Ladybird Browser વાળા બ્રોઉસર બનાવે છે ઓપન સોર્સ અને મફતમાં પણ.
અંતે એક મહત્વની વાતનો ચોખ પડવો છે એ કે - ઓપન સોર્સ મફત હોય શકે અને ના પણ હોય. પણ એનો કોડ તો જાહેર જ હોય.









