LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   General (https://www.linuxquestions.org/questions/general-10/)
-   -   What can be more simpler than a GUI based Text editor to start an open source project ? (https://www.linuxquestions.org/questions/general-10/what-can-be-more-simpler-than-a-gui-based-text-editor-to-start-an-open-source-project-837843/)

Aquarius_Girl 10-13-2010 12:46 PM

What can be more simpler than a GUI based Text editor to start an open source project ?
 
Already looked up SourceForge.
I want to start a very simple open source project based on C/C++ and Qt with zero Database dependence.

Kindly guide.

sag47 10-13-2010 01:23 PM

This post is a good resource for what you wish to accomplish.

I recommend you use the latest QT Creator as it comes with tons of live code samples of projects which will help you get any project off of the ground.

As for what would be simpler is a GUI based calculator where a user types a calculation in a display (or by pushing buttons of the calculator) and then calculating it.

This can be as simple or complicated as you want it with basic arithmetic, trigonometry, number conversion (base/temperature/units), advanced forms, menus, key detection, history tracking, and the list goes on. I created one when I was learning JavaScript and it branched off into libraries for other applications.

Aquarius_Girl 10-13-2010 01:27 PM

sag47

That was helpful. Thanks. Is there something else that can be considered instead of the Editor, no Calculator please.

You have now edited your post.
I have already built a calculator, though it didn't have a GUI.

sag47 10-13-2010 01:38 PM

Well your question is a matter of relativity. I don't know what your strengths are so there's no way for me to surely recommend a project which will work for you.

How about a simple MDI application which is an image viewer:
1 menu called File with 2 submenus (Open and Close).
Have it only open 1 format (uncompressed BMP which is one of the simplest formats)

Your program will read the binary format of the image opened, read it's dimensions, create an image dialog, and then draw pixel by pixel in a sweep the image from the file onto the screen where the user can see it.

That is a very simple program if you've done image processing before and even if you haven't it's a good experience to learn how. You can add annotation and drawing tools to it later.

sag47 10-13-2010 01:47 PM

The best way to tackle something like that is to create a base library for opening the image and storing it into RAM.

Separate the functions of your backend from your GUI (opening image, saving a new one, loading it into RAM for drawing, or even a get pixel function which takes coordinates for drawing and returning a color value for that pixel). So your GUI just plugs into your backend with a single function call.

If you do that then your application code will be very modular and the GUI can be redesigned or entirely reimplemented in another platform without much hassle.

MrCode 10-13-2010 03:01 PM

Quote:

Originally Posted by sag47
How about a simple MDI application which is an image viewer:
1 menu called File with 2 submenus (Open and Close).
Have it only open 1 format (uncompressed BMP which is one of the simplest formats)

LOL, this is really close to a small-time thing I did back when I was on Windows, except in mine you could negate the image colors, too (it was just using raw Windows GDI, no cross-platform libs unfortunately :().

lumak 10-13-2010 09:56 PM

Write software for tablet PCs. Or add extensions to make software more useful for tablets. Such that selection methods suck when you don't have a control key. Adding a check box next to each message in an e-mail client (like that on web mail interfaces) would improve usefulness. Or adding a virtual keyboard onto a secure screen locking program as there is no way to securely lock your session and use a separate virtual keyboard.

Aquarius_Girl 10-14-2010 06:14 AM

sag47

Thanks for the efforts,

Of course it is my fault, I did not mention my limitations in my first post.

I have not used Qt before nor any other GUI creation tool.
My maths is very weak, in fact I was never interested in Maths.
I want some project in which I can learn how to apply various "design patterns" using "C++".

Since I have to choose my domain as an Application programmer I think it is necessary for me to know at least one GUI tool so I selected Qt. I worked for sometime in C++, so I want to use that too.

Now can someone guide me ?

sag47 10-16-2010 05:21 PM

Quote:

Originally Posted by anishakaul (Post 4127013)
in fact I was never interested in Maths.

1st: programming in any language is math. So if you don't like math then you chose the wrong profession unless you're a GUI designer. In which case you're just working in Gimp or Photoshop on icons and the brute work is done by programmers. In this case you needn't know C++ so go with Graphic Design.

Quote:

Originally Posted by anishakaul (Post 4127013)
I want some project in which I can learn how to apply various "design patterns" using "C++".

2nd: This is so vague I don't think anyone can answer you. Why do you quote yourself and what are these design patterns you're talking about? Do you mean templates that can be used to change the look of your program? Or do you mean a program that generates templates for other programs based on user input? There's too many questions we would ask ourselves to figure out what you're talking about.

Why don't you just bite the bullet and start programming something? Either one of the projects suggested here or make up your own. Then, once you have some code which you're having trouble with ask a more specific question.

Quote:

Originally Posted by anishakaul (Post 4127013)
Now can someone guide me ?

We can't. We can't be innovative for you. We can only point you in the right direction. Based on the information you gave us and the questions you asked we would basically be pointing in all directions at once which is useless. Please step back, think, and formulate a better question to your problem. We can't make design choices for you but we can certainly help you correct some code that is giving you compiling errors. When I say we, I mean we the LQ community which you are apart of.

Hopefully you understand what I mean.

dugan 10-17-2010 10:07 AM

Quote:

Originally Posted by sag47 (Post 4129843)
programming in any language is math.... what are these design patterns you're talking about?

http://en.wikipedia.org/wiki/Design_patterns

They're my favorite example of a programming concept that isn't mathematically modelable.

EDIT: the Wikipedia link should really have led here:

http://en.wikipedia.org/wiki/Design_...ter_science%29

sag47 10-17-2010 07:01 PM

Quote:

Originally Posted by dugan (Post 4130332)
http://en.wikipedia.org/wiki/Design_patterns

They're my favorite example of a programming concept that isn't mathematically modelable.

Ah I see. Well then I guess I'll let someone else talk about that. It's out of the scope of my current expertise.

@anishakaul: you can just ignore my last post regarding me questioning you on design patterns.

Aquarius_Girl 11-22-2010 04:53 AM

Thanks for the concern.
 
Quote:

Originally Posted by sag47 (Post 4129843)
What are these design patterns you're talking about?

:)This book is one of the best that I have found so far on the "object oriented design patterns". Just "Look inside" the index of that book and you'll know what I was talking about.
http://www.amazon.com/Object-Oriente.../dp/0136291554

Quote:

Originally Posted by sag47 (Post 4129843)
Why don't you just bite the bullet and start programming something?

That's what I have done now :) I have started the "Text Editor" and who said it is simple ???? Since now I am thinking on the performance I have learnt a new way of representing data {by searching Google of course} and then there is the mighty ncurses to be used! and a make file is to be written...wow so much work to do.. It would have been simple if I had gone with the arrays and closed my eyes on the other problems ;)
http://www.linuxquestions.org/questi...acters-844505/

The thread I have pointed to is "not" for advertisement, I just meant to say that I have started "something".

Thanks again.

Alexvader 11-22-2010 06:58 AM

Quote:

Originally Posted by anishakaul (Post 4126265)


What can be more simpler than a GUI based Text editor to start an open source project ?


Already looked up SourceForge.
I want to start a very simple open source project based on C/C++ and Qt with zero Database dependence.

Kindly guide.

I know what :D

A cooperative multi agent framework, driven by Recurrent Neural Networks with Dynamical topological update, in charge of the coordination of an autonomous fleet of Drone Fighter aircraft, Drone tactical bombers, and early warning, ranging and ECM platforms...

Can anything be simpler than that... :D ?

.... oh, and implement all this in RtOS, in really fast and massively redundant computing nodes, hardware shipped in each aircraft, served by wideband, frequency agile, stream encrypted telemetry and data-link connections between the drones...

... once all this is set up, just perform a "real" test, on the autonomy and cognitive capabilities of that... "thing"...

http://en.wikipedia.org/wiki/Collective_intelligence

.... over DPRK... :D http://www.korea-dpr.com/

catkin 11-22-2010 07:33 AM

Quote:

Originally Posted by anishakaul (Post 4166938)
I have started the "Text Editor" and who said it is simple ???? Since now I am thinking on the performance I have learnt a new way of representing data {by searching Google of course} and then there is the mighty ncurses to be used! and a make file is to be written...wow so much work to do.. It would have been simple if I had gone with the arrays and closed my eyes on the other problems ;)

Projects can get complex very quickly when the creator is tempted to make them optimal. Sure, an optimal solution is the ultimate aim but I would counsel keeping it simple at first. In this case, use arrays or even a single array for starters. They are sub-optimal but you can use the features of C++ to hide the data structures behind the interfaces (that's probably the wrong jargon for C++). If you structure the software cleanly you can refine the data structures later. Keywords: stubs, rapid prototyping.

You can even start without a versioning repository and without automated testing but they will save time overall so chances are you will want to add them later.

If the intention is to practice application development then none of the time taken familiarising with the development environment toolset will be wasted -- although you may feel you are being distracted from design and programming!

You might like to incorporate debugging facilities from the outset. They are usually a great investment, repaying many times over the time spent creating them.

If you are really virtuous you will document it too -- starting with functional and interface (OS, internal and external) specifications, data structure descriptions, coding standards, naming conventions, architecture, etc.

H_TeXMeX_H 11-22-2010 12:07 PM

What can be more simpler than a GUI based Text editor to start an open source project ?

A CLI based text editor.


All times are GMT -5. The time now is 04:53 AM.