Showing posts with label how. Show all posts
Showing posts with label how. Show all posts

Wednesday, May 28, 2025

How to Write Your Own E-book?

Writing an e-book is a powerful way to share knowledge, tell a story, or build your brand. Whether you're an expert in a specific field, an educator, a blogger, or simply love to write, an e-book allows you to reach a worldwide audience. The motivation for writing an e-book can also serve as a substitute for the motivation to write a traditional book, potentially even stemming from a time before e-books existed. This is largely an individual matter. If you were to ask Manuel Radovanović what motivated him to write the e-book How to Become a Programmer and Never Give Up!Clean Code by Manuel Radovanović, it dates back to the late 1990s. He based his programming education and his own programming code on books written by the greatest programming experts.

Buying a programming book at a bookstore and completing all the programming exercises from it has become more of a tradition today. The reason is AI – Artificial Intelligence – which has changed how we learn and apply coding. But some habits never change. You might think that the mentioned e-book isn't a tutorial on how to learn a specific programming language, but it's much more than that. Download completely free of charge and read the book here. While it's increasingly easy to learn programming languages today, the key question is what to do with that knowledge. A second question is what would serve as your motivation to write an e-book. What story or knowledge do you wish to share with the world? And perhaps you'd also ponder, why an e-book, specifically.

A girl is writing an e-book on a tablet

A girl is writing an e-book on a tablet

Unlike printed books, you can create an e-book yourself without a publishing house, not to mention the financial costs. You need almost no material resources to write an e-book, provided you have a computer and an internet connection. You can use free tools for writing, designing, and distributing your e-book online. Unlike printed books, you don't pay for a publisher, printing, or delivery, which is also limited, especially if you consider print runs. Your e-book has no print run and can reach millions of readers, depending on how many people you interest in downloading it from the internet. Readers from any country can download the book instantly. There's no waiting for printing or delivery. With a good idea and motivation, you can write an e-book in just a few days.

Similarly, thanks to advanced technology and AI – Artificial Intelligence – you can now write your e-book in a foreign language without needing to hire translators. Your authorial control is much greater than when writing a printed book, as you decide on the content, design, price, and promotion method. Nothing depends on a publisher, editorial policy, or print run. You can also sell your e-book or offer it to websites that sell e-books. You can simply upload your e-book to platforms like Amazon or Gumroad, and it can generate income for months or years without additional work. However, you can also use it as a lead magnet, a gift for email subscribers, or part of a course. With your e-book, you simply increase your authority in the specific field you're writing about. It's all up to you.

What Are the First Steps in Writing an E-Book?

Thursday, February 20, 2025

Discover the Secrets of How the C Programming Language Compiler Works, and Learn How Your Code Becomes Executable

A compiler is a software tool used to translate source code written in a programming language into executable code that can be run on a computer. This is a process that involves several stages, including lexical analysis, syntax analysis, and semantic analysis of the source code. The compiler then generates executable code that is ready to run. While simple language can be used to explain compilers, understanding their operation and translation process can be essential for software engineers and programmers who write software. That's why we separated this topic from the previous post, see here; and gave it special significance.

The first good question you would probably have for us is, in what program is the compiler for the C programming language written? If we go back a little in history, we know that older computers mostly used assembly language, while higher-level programming languages began to develop when the benefits of reusing software on different processors increased. The first higher-level programming language, Plankalkül, was proposed as early as 1943. Since then, several experimental compilers have been developed. Fortran's team, led by John Backus of IBM, introduced the first complete compiler in 1957. Since then, compilers have become increasingly complex as computer architectures have evolved.

Today, it is common practice to implement compilers in the same language that is being compiled. Therefore, it is assumed that the compiler of the C programming language is coded in the C programming language, as for example all .Net programming languages have an open-source Microsoft compiler called Roslyn which is written in the C# programming language. However, to create the first C compiler, its creator Dennis Ritchie used the previous programming language B, which was developed by Ken Thompson.

Compiling files written in the C programming language is not uncommon even in the most modern corporations

Compiling files written in the C programming language is not uncommon even in the most modern corporations

Dennis Ritchie later expanded the B programming language and created the C programming language, so the original C compiler was also written in B. We mostly use GCC compiler version 14 or newer, this text was written in 2025; and there is no theoretical chance that you will find any command in the B programming language in it. Because the GCC compiler does not support the B programming language, it considers it too obsolete. But we know that the GCC compiler is written in a combination of the C and C++ programming languages, with the possibility that it may also contain some parts written in other programming languages such as Objective-C and some newer ones.

When you flawlessly write C code in any text editor and create a text file, you can call the C compiler to translate it into machine code so that your program can run. The compiler runs a translator or translation unit, known as a Translation Unit, which consists of the source file and header files that are referenced using #include directives. If your code is correct, the translator creates an Object File, which we recognize by the. o or .obj suffix, and we call such object files modules. The standard library of the C programming language contains translated object files in machine language, which allows faster access to standard functions that we call in our programs.

It is important to note that when we say that a file is translated into machine language in the C programming language, it is first translated into assembly programming language in a temporary file, which is then translated into machine language, after which the temporary file is deleted. When compiling a program, we recognize such a file by the . s suffix. The translator separately translates each source file with all the header files it contains into separate object files, i.e., modules. The translator then calls the Linker, which combines all object files and all used functions from the library into an Executable File. Do not confuse this process with .Net technology. In .Net technology and the C# programming language, things are different.

How the C Programming Language 'Understands' Your Code: A Journey Through the Compilation Stages

Saturday, February 18, 2023

Pokrenite svoje putovanje veb razvoja, uvod u Laravel radni okvir

Ukoliko učite PHP programski jezik, čiji tutorijal možete pogledati ovde; možete se pitati šta je to Laravel i zašto bi ste i to učili. Zar PHP programski jezik nije dovoljan da iskodirate kakav god hoćete veb sajt, pa ukoliko je neophodno ako zatreba možete ubaciti i JavaScript i Ajax. Pa, vidite ovako; Laravel je open-source framework; na Srpskom jeziku radni okvir; za PHP programski jezik. On vam pomaže tako što preuzima odgovornost umesto vas za veliki deo poslovne logike vaših aplikacija, za mnoge uobičajene komponente kao što su validacija unosa, pristup bazi podataka, autentifikacija korisnika, izrada šablona itd. Danas programeri koriste mnogobrojne radne okvire za razvoj aplikacija, veb sajtova, biblioteke i komponente koje su drugi programeri iskodirali i testirali da vi to ne morate isto kodirati. Radni okviri održavaju konzistentnost i fleksibilnost i dok vi razmišljate, gde i kako nešto iskodirati u PHP programskom jeziku u vašem projektu koji postaje sve veći i kompleksniji; radni okvir razmatra samo: "Koju komponentu treba da koristim ovde?" Ako se pitate zašto baš Laravel; onda je moj odgovor zato što je trenutno jedan od najboljih za PHP developere. Ako se vratimo u prošlost; jedan od prvih radnih okvira je bio 2004 godine Ruby on Rails. Brzo je postao popularan jer je takođe popularizovao MVC, konvenciju nad konfiguracijom i mnoge alatke koje su doprinosile programerima brz razvoj aplikacija. Zatim se pojavio CakePHP 2005 godine i onda se razvoj nastavio u vidu CodeIgniter, Simfony, Kohana, Zend Framework itd. Još, 2010 godine CodeIgniter je postao veoma popularan radni okvir za PHP programere ali je kasnije počeo da zaostaje u tehnološkom razvoju i postao je previše spor. Zato je u junu 2011 godine, Taylor Otwella ponudio svoj radni okvir; napredniju alternativu CodeIgniter-a koju danas zovemo Laravel 


( Laravel je trenutno jedan od najboljih radni okvira za PHP programere )

Laravel 1 je doneo autentifikaciju, lokalizaciju, modele, views, sesije i rutiranje. Sve je iskodirano od nule. Laravel 2 je bio zaslužan za kontrolore, IoC i Blade. Laravel 3 je doneo Artisan i Bundles. Laravel 4 je otišao još dalje sa distribucijom paketa preko Composer radnog okvira. Zato se i kaže da je Laravel baziran na PHP programskom jeziku ali i na drugom radnom okviru Composer-u. Laravel 4 je još 2013 godine doneo još mnogo divnih stvari koje PHP programerima olakšavaju posao poput database seeding, automatsko upravljanje sa konekcijama baza podataka, 2014-te upravljanje PHP Cloud serverima, Vargrant okruženje, upravljanje pretplatama itd. Laravel 5 je još 2015 godine doneo novu strukturu direktorijuma i keširanje ruta itd. Od prekjuče; tačnije 16 februara 2023 godineLaravel je izbacio 10.2 stabilnu verziju koji zahteva minimum PHP 8.1 verziju. Svake godine se u prvih 6 meseci u SAD-u održava konferencija Laracon dok se ista održava u Evropi; tačnije Amsterdam-u u drugoj polovini godine; gde možete uvek saznati skoro sve o razvoju Laravel radnog okvira. E sad se možete pitati, ako je Laravel toliko dobar radni okvir zašto ga svi ne koriste? Mislim da postoje više razloga. Promene se često dešavaju u različitim verzijama, komponentama, kodu i postoje neke knjige i odlična dokumentacija o Laravel-u ali ponekad je komplikovano sve to uklopiti i ispratiti. Ukoliko koristite Share Hosting kod nekog provajdera; možda on jednostavno neće raditi. Druga stvar je ako vi zakupite vaš server. Tad možete da kontrolišete i da instalirate svašta na vaš hosting. Možete kompletan projekat da održavate i menjate kad se nešto promeni. Ali to zahteva mnogo više učenja i strašno je kad nad nekom komponentom nemate kontrolu. Zbog toga neki stariji iskusniji PHP programeri se drže čistog PHP  programskog jezika bez bilo čega što to može narušiti. Sve u svemu, što se mene tiče u svemu trebate biti fleksibilni; potrebno vam je vreme i mnoge greške da bi ste bili iskusniji u PHP  kodiranju ali jednostavno nema odustajanja. Uvek napredujete i učite. Još pre par meseci nije bilo šanse da instaliram Laravel na noviju verziju Linux distribucije Ubuntu-a zbog grešaka koje nisam razumeo dok je to danas druga priča.

Kako da instaliram Laravel?

Tuesday, November 28, 2017

Rad sa WPF prozorima

Ukoliko niste pročitali post “Uvod u WPF – Windows Presentation Foundation“ savetujem vam da to obavezno uradite i steknete neki uvid u WPF; pre nego što pristupite praktičnoj primeni. Ali nemojte dozvoliti sebi da vas to obeshrabri. Učenje WPF shvatite više kao igranje, jer je zaista interesantno šta sve za razliku od Windows Forms možete da radite sa WPF kontrolama. Sve ono što vas je kočilo kod Windows Forms kontrola da napravite, u WPF je to moguće stavljanjem WPF kontrola u WPF kontrole i kombinovanje istih da rade kao jedna. Pitanje je samo koliko ima nešto smisla kombinovati ili ne. Znači mogućnosti su ono što vam treba biti motivacija. Ja sam svestan da čak i danas postoji mnogo hobista a ne programera koji i dalje ne žele da pređu sa Windows Forms na WPF, ali to više nije ni smešno. Neki to rade zato što im je računar previše star dok drugi jednostavno smatraju učenje XAML uz C# komplikovanim. XAML vam jednostavno olakšava linije i linije code-a, vreme i na jednostavan način povećava kreativnost. Da ne spominjem da vi većinu XAML code-a možete da kreirate podešavanjem svojstava u Properties upotrebom miša. Vaše WPF kontrole naravno možete obogatiti i već napisanim stilovima, animacijama i čime god vi želite, stime da vremenom skupljate i čuvate XAML code koji možete koristiti u više vaših aplikacija. Ali uzmite u obzir da nešto što ste pravili u Windows 7, npr. stil za ListBox kontrolu, neće biti isto transparentan na Windows 10. Ponekad će te u vašim stilovima i šablonima trebati promeniti i prilagoditi novijim operativnim sistemima. Iz tog razloga ukoliko pravite WPF aplikaciju u komercijalne svrhe, morate testirati vašu WPF aplikaciju na više računara, Windows operativnih sistema i korigovati razliku. Ali takođe u dokumentaciji morate navesti za koji operativni sistem je pravljena vaša WPF aplikacija, da ukoliko izađe sledeća verzija Windows-a i vaša aplikacija na njemu ne izgleda baš kao što treba da izgleda, vi ne snosite nikakvu odgovornost.   


( Pravljenje WPF aplikacija je kreativnost i igra ) 

Razlike između WPF i Windows Forms su pre svega što WPF omogućava da pravite mnogo robusnije, bolje i lepše prozore. Početnike najviše zbunjuje što pozicioniranje kontrola je u WPF totalno drugačije i zavisi od panela koji su ne vizualni ali omogućavaju automatsku promenu veličine svih kontrola u njima prilikom promene veličine prozora. Tačno je da za mnogo stvari koje ste radili u Windows Forms, to neće raditi na isti način. Ali će raditi na drugi način, često i bolji ili uopšte neće raditi. Poznato je da WPF aplikacije često imaju svoj vlastiti dizajn i da su često okrenute svom vlastitom šarenilu. Čak što više to se i traži od WPF aplikacija, iako ne treba preterivati. Međutim, postavlja se pitanje koliko je to poželjno s obzirom da nas praksa uči da boje prozora treba da kontroliše sam sistem i da korisnik kroz Windows operativni sistem treba da odredi izborom Windows teme kako će i prozori u vašim WPF aplikacijama biti obojeni. Rešenje je da u svojim WPF aplikacijama omogućite kroz opcije vaše aplikacije i takvu mogućnost. Visual Studio .Net je na primer takođe WPF aplikacija koja deli svoj dizajn na Color Theme kao što su Dark, Blue ili Light. Međutim vi možete pronaći mnoštvo kolor tema za Visual Studio .Net na Internet-u i njih koristiti. Npr. pogledajte moje video tutorijale za osnove C# i videćete da se u njima koristi ne standardna Visual Studio .Net kolor tema. Znači i vi možete omogućiti u vašim WPF aplikacijama da korisnici vaše WPF aplikacije koriste i teme za vašu aplikaciju. Imajte samo u vidu da vaše WPF aplikacije mogu koristiti i slabovidi korisnici i oni koji ne vide sve boje, i bilo bi poželjno omogućiti i njima neku temu. Dok učite dajte sebi slobodu i sa bojama i sa oblicima prozora kako samo vaša mašta može učiniti. Ali samo dok učite WPF; koristite sve boje; poenta je da uživate u vlastitoj kreativnosti. Što više budete eksperimentisali; vaše WPF aplikacije će biti bolje. Krenimo prvo od WPF prozora praktičnim primerima.

Šta je ResizeMode svojstvo i kako ga podesiti?

Saturday, June 17, 2017

Šta je novo u Microsoft Visual Studio 2017

Microsoft Visual Studio je Microsoft-ov IDE - integrisano programersko okruženje, ili jednostavnije rečeno skup programskih alata koji vam omogućavaju da programirate skoro sve što želite da programirate od najednostavnijeg software-a do veštačke inteligencije. Prvi Microsoft Visual Studio je nosio naziv Microsoft Visual Studio 97 i kao što pretpostavljate izašao je na tržište 1997 u februaru, tako da danas najnoviji Microsoft Visual Studio 2017, koji je na tržište izašao 7 marta 2017 godine; ujedno slavi i 20 godina postojanja ovog izvanrednog IDE-a. Danas sa Microsoft Visual Studio 2017 možete da razvijate skoro sve vrste aplikacija bez obzira koju platformu target-irate; ali imajte na umu da Microsoft Visual Studio 2017 deli na različite pakete i da na primer Microsoft Visual Studio 2017 koji radi na Windows platformi ne sadrži iste mogućnosti i klase kao Microsoft Visual Studio 2017 na Mac računarima ili Microsoft Visual Code na Linux operativnom sistemu. Windows platforma za Microsoft Visual Studio 2017 je i dalje dominantna zbog logičkih razloga jer na primer nema smisla praviti WPF aplikacije za Linux operativni sistem kad WPF aplikacije ne rade na Linux operativnim sistemima. Međutim, šta ako vam kažem da vi u Microsoft Visual Studio 2017  možete programirati C++ programe koji će da rade na Linux operativnom sistemu? Zvuči neverovatno, ali može. Microsoft je takođe proširio svoj IDE na familiju paketa koji su od izuzetne pomoći ukoliko zapošljavate programere i radite na velikim projektima. Sa pravom vam mogu reći da su Microsoft-ovi proizvodi danas apsolutno okrenuti potrebama kompanija i srednjih preduzeća dok uloga individualnog programera nije beznačajna jer i kao individualni programer vi možete videti poboljšanja koja vam olakšavaju programiranje.  


( Microsoft Visual Studio 2017 )

Microsoft Visual Studio 2017  familiju čine sledeći paketi. Svaki ima svoju cenu, memorijske zahteve dok su neki besplatni. Mogu se instalirati na engleskom, kineskom, češkom, francuskom, italijanskom, nemačkom, japanskom, korenskom, portugalskom, poljskom, ruskom, španskom i turskom jeziku; što nije slučaj sa svim paketima.          
  • Visual Studio Enterprise 2017
  • Visual Studio Professional 2017
  • Visual Studio Community 2017
  • Visual Studio Test Professional 2017
  • Visual Studio Test Agent 2017
  • Visual Studio Test Controller 2017
  • Visual Studio Team Foundation Server Office Integration 2017
  • Visual Studio Feedback Client 2017
Tehnologija sve više napreduje, pokriva sve više poslovnih oblasti, uređaja i programiranje aplikacija postaje kompleksnije. U mnogim zemljama informatička literatura kasni godinama i ne pokriva sve mogućnosti koje donose najnovije instalacije i poboljšanja. Zbog toga je i edukacija često nepotpuna i ostavlja vam prostor da samo kroz vlastito pretraživanje Internet-a dođete do novijih informacija koje često menjaju i konfigurisanje i code koji poznajete od ranije. I pored ogromnih i brzih promena Microsoft je uspeo da kroz sve ove godine zadrži status Microsoft Visual Studio-a kao najboljeg i najmoćnijeg IDE-a za programere na svetu ali isto tako je uspeo da C# programski jezik napravi najkompletnijim programskim jezikom. Ukoliko ste početnik u programiranju; sva kompleksnost Microsoft Visual Studio 2017 ne treba da vam programiranje čini nedostižnim, već trebate da imate svakodnevnu rutinu da programirate i ujedno učite novine. Zato svako ko želi da uči C# programski jezik pre svega treba da poznaje osnove ali i da ima svoj vlastiti projekat koji će konstantno da testira, unapređuje, menja i da na taj način ostane u toku progresa. Microsoft Visual Studio 2017 jeste namenjen timskom poslu ali definitivno pažnja prema individualnom programiranju ne izostaje.      

Koji su minimalni sistemski i hardverski zahtevi za instalaciju Microsoft Visual Studio 2017 ?