If you don't know what LostMVC was please read What was LostMVC - Web Framework
I've decided to officialy abandon the LostMVC project I have been working in the past 2 to aprox 3 years. (From 2013 to 2016) (Github: https://github.com/Enotsoul/codru-web-framework)
Let me first tell you that this has been a formidable learning experience. I've spent 1 to 3 days per week working on it.
Reviewing my time tracking software with both Project Hamster and my own Timetracking software built with this framework estimated around 1500 hours spent on this project and all subprojects. Including virtual machine management, installation, management, updates, debugging etc.
For some time I was sad that I spent so much time working on such a big project and I wanted to abandon it earlier. But since i've created multiple subprojects based on it it had been a hard choice.
So I felt that I wasted time on it instead of working on other projects. I was highly discouraged.
But I've learned some valuable lessons which I only had read about in the past. Knowledge is the key but practice is the palace.
I've been inspired to think that all great inventors and geniuses had such experiences.
If you read the life of Leonardo da Vinci you will stumble upon many "failed" experiments.
Maintaining such a huge process alone is cumbersome and error prone.
Everytime a new third party library comes out you have 2 options.
Use the old one and miss out improvements or security fixes but have working code
Use the new one and spend a lot of time fixing issues, writing new testcases, modifying the whole system again.
Updating sub systems.. Freaking out because an existing project crashed even though you had TESTS and a full PDLC.
LostMVC was a project I've worked on in my spare time between 2014 and 2016.
It's essentialy a web framework built from scratch using Tcl and the NX/NSF Next Scripting Framework https://next-scripting.org/xowiki/
built and optimized specially for NaviServer.
NSF and NX
To understand the full potential of LostMVC and Codru we first have to analyze the Next Scripting Framework for which I've written more on a different page.
NaviServer has a long history, longer than Apache's history. NaviServer was built by NaviSoft way back in 1993, acquired by AOL in 1995
It combines everything a modern wbeserver needs with builtin functions. It's support for Tcl as the per defautl programming language.
Although one could easily add PHP.
One of it's cool features is a pooled database connection system which maintains a pool of connections for your prefered database.
Data Share between threads via protected variables and caches. Threads are isolated with each it's own unique Tcl interpreter so no threading issues here.
And many more things...
LostMVC - Codru core features
Information and Cyber Security has now become a huge field. It is much more complex than it was a few years ago. This has to do with all the advancements in software and technology.
From null to even intermediate in Cyber Security and Penetration Testing will more than likely take anyone with no skills at least a few years if they spend 2-3 hours a day. This is because by merely using some "hacking" tools it's not enough, we need to understand how everything works.
Anyone can start to learn "hacking" in the confinement of their homes. This can be done 100% legally as long as you do not attempt to attack anything outside of your private network. This means you can learn to "hack" in a 100% legal way.
In this post I intend to show how easy it is to take a screenshot from the CommandLine.
Why would you want to do that?
Well there are times when you simply want to take a screenshot of the screen at certain times to track your activity. Or to make a simple screencast without having to install additional tools.
What is password management and why should you care?
We all have tens of online accounts where we're identified by an username/e-mail and a password. Managing all of them can be a hard task. Nothing is hard when you want to keep your information secure and don't want someone to steal your identity, forge documents in your name or deplete your bank account!
NSF is a highly flexible Tcl based, object oriented scripting language which can be used to build other OOP languages like NX.
NX is the next generation object oriented programming system.
It;s one of the things that kept me going and developing software in Tcl an obscure yet powerful language.
It's also per default supported with the NaviServer webserver and the OpenACS platform.
I've used TclOO for my Codru - LostMVC web framework and then switched and rewrote everything in NSF / NX.
A tutorial that scratches the surface of the powerful NX/NSF will help you in getting started.
It has some unique things which change the way you write OOP programs. It was built on the strengths of XOTcl.
Why should you learn and love to use Linux as a development platform?
This question will for sure be something any serious developer asks himself.
Yes, you could use Windows or Mac but why Linux for development?
The biggest reason is that everything is Open Source. This means you have access to binaries and the code to see how something works. Naturally, not anyone using Linux will look at all the source code. But compiling your own binaries from source is an essential skill.
This is Example 2 in the series about learning to program by making games with Tcl and Tk.
Today we will be creating a Tic tac Toe game.
Again as in the previous example https://andreiclinciu.net/number-guessing-game-tcl-tk/ we will be doing this in multiple versions
I won't explain everything, but what we will do is very simple:
- We draw a 3x3 grid of buttons
- When we click a button it switches by changing it to X or O
- depending on the previous setting, registering this in the global gameboard variable
- Switching X or O after each click, disabling the command ( so you can't click 10 times)
- Initialize the Gameboard