Omnimaga: The Coders Of Tomorrow
Welcome, Guest. Please login or register.
 
Omnimaga: The Coders Of Tomorrow
24 May, 2013, 08:03:27 *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   home   news downloads projects tutorials misc forums rules new posts irc about Login Register  
+-OmnomIRC

You must Register, be logged in and have at least 40 posts to use this shout-box! If it still doesn't show up afterward, it might be that OmnomIRC is disabled for your group or under maintenance.

Note: You can also use an IRC client like mIRC, X-Chat or Mibbit to connect to an EFnet server and #omnimaga.

Pages: [1]   Go Down
  Print  
Author Topic: Prizm developer code of ethics -  (Read 1028 times) Bookmark and Share
0 Members and 1 Guest are viewing this topic.
z80man
Casio Traitor
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 04 September, 2012, 19:42:33
Date Registered: 26 December, 2010, 10:02:50
Location: City 17
Posts: 966


Topic starter
Total Post Ratings: +83

View Profile
« on: 31 October, 2011, 01:12:41 »
+5

Here is a list of rules and suggestions that I believe those who develop for the Prizm should keep in mind for their apps. Many of these apply to all platforms whether it be other calculators or computers but a few are more targeted at the Prizm.

  • Treat the user's calculator with respect. Don't use any code that will put THEIR calculator at risk! Test your programs extensively and remove any holes that could potentially cause a major error. Even if you're not liable for damage, these types of incidents can tear apart communities.
  • Applications need to be free. I shouldn't have to even say this one because it rare to happen on a calculator and no good distribution method currently exists. Do note that if you choose to follow this path, few if any people will buy your apps.
  • I can't force you to do this, but open source really is a good idea. Source stealing is very rare these days and you really shouldn't care too much if someone borrows a routine. Yes, they should credit you but it's not like your losing any money by their doing so. These are free apps, by the way, so any sharing is only benefiting the common good and remember that our goal is not to please ourselves but to please our users.
  • If you choose to follow an open-source approach, keep your code very clean and well commented. Explain what each function does and how the more complicated algorithms work. Additionally, you should provide documentation for the user on how to compile the application or, better yet, provide a shell script and makefile.
  • Do everything you can to remove bugs. The best way to find bugs is to try to purposely break your programs to see how they respond to odd conditions. If a program asks a user to enter in how much money they would like to bet, enter a negative number and see what happens and if needed fix the resulting bug or glitch. Another good way to test for bugs is to release alpha and beta versions of your apps because others may find issues you never knew existed.
  • Provide a line of communication for your users. Not everyone has an account on Omnimaga or Cemetech, so you need to provide an email, not only so you can provide the occasional help but also so users can report those all-important bugs.
  • Your distribution file should include a readme. This should contain usage instructions, compilation directions, and how you can be contacted. Make it easy for the user to find what they're looking for and don't make it too long.
  • Value user friendliness over extreme optimization. I'm not condemning optimization—in fact, every program should be extensively optimized—but what I'm warning against is overdoing it. You should always program in extensive exception handlers to prevent the user from breaking your apps. Graphical appearance should also be focused upon. Most users would prefer a sharp UI over an additional frame per second.
  • If this is an ongoing project, updates should be regularly released and easily available. Even if an update only fixes a few minor bugs it is still worth it to release.
  • Maintain a project topic on a calculator forum. It is recommended that the first post contain all of the most recent updates, screenshots, and information as it is easiest to find in that format. It is also a good idea to have a change log there or in your readme file as it provides a full development history.
  • Remember to credit everyone who helped with development of your project. This includes programming, graphics, ideas, music, etc. This should be done in the readme, the project topic, and if possible within the application itself.
  • Design your programs to have full forward compatibility and, unless it would hinder application development, full backward compatibility. Don't assume that Casio will never modify the Prizm in the future because chances are that we will see some major changes just like we've seen with every other calculator in history. How you do this is up to you, but one way to do this to make effective use of syscalls as they are pretty well written in stone; a well designed program or routine will also stand the test of time.
  • Keep a common user interface. Just like most Windows, Mac, or Linux apps have a similar feel within their own OS we ought to do the same. The best way to keep the look and feel of apps the same is to use either OS or shell calls to draw windows and other UI elements.
  • Keep backups of your projects! This cannot be stressed enough. Store updates frequently on multiple computers, on flash drives, online, or in that cloud thing. One thing I recommend is forming an account on GitHub (https://github.com/). You can keep your projects in an online repository and it can also make distribution easier too. Many major open source projects are also stored here including the Linux Kernel which it was originally designed for.
« Last Edit: 31 October, 2011, 01:52:20 by calcdude84se » Logged


List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)
calcdude84se
Needs Motivation
Members
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 14 May, 2013, 16:12:14
Date Registered: 21 April, 2010, 04:20:59
Posts: 2207


Total Post Ratings: +62

View Profile
« Reply #1 on: 31 October, 2011, 01:53:49 »
0

z80man, I edited it a bit for better English. Also, since you mentioned GitHub, perhaps an elaboration on version control would be in order?
Personally, I am already aware of these things, but a reminder is always nice Smiley
Logged

"People think computers will keep them from making mistakes. They're wrong. With computers you make mistakes faster."
-Adam Osborne
Bug me about PartesOS. I might just need reminding.
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Online Online

Gender: Male
Last Login: Today at 07:58:11
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50232


Total Post Ratings: +2615

View Profile WWW
« Reply #2 on: 31 October, 2011, 05:11:32 »
0

Nice post, and I agree a lot about the Open source, especially since the Prizm community is so young right. There aren't a lot of apps yet and it's good if new people interested in developing for the Prizm have access to examples, not just documentation.
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
Hayleia
Programming Absol
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Last Login: Today at 07:13:04
Date Registered: 01 June, 2011, 20:12:47
Location: ud-ud ?
Posts: 2055


Total Post Ratings: +256

View Profile
« Reply #3 on: 31 October, 2011, 09:46:40 »
0

I totally agree with you. There is just a point that needs to be cleared. Some of your points doesn't only apply to the Prizm Wink.
So yeah, I should make readmes -.-°

EDIT: I made a readme w00t
« Last Edit: 01 November, 2011, 10:17:08 by Hayleia » Logged





Spoiler for what I am according to...:
me: useless
Pokemon Test: an Absol
turiqwalrus: an eggplant
p2: A HUMAN BEING !
Blackpilar and p2: iplantonlyplantwantplanttoplantknowplantifplantyouplantareplantaplantboyplantorplantaplantgirlplant
click here to know where you got your last +1s
AngelFish
This is my custom title
Administrator
LV12 Extreme Poster (Next: 5000)
*
Offline Offline

Gender: Male
Last Login: Yesterday at 08:17:37
Date Registered: 15 August, 2010, 09:18:54
Posts: 3190


Total Post Ratings: +220

View Profile
« Reply #4 on: 31 October, 2011, 18:37:50 »
0

Here is a list of rules and suggestions that I believe those who develop for the Prizm should keep in mind for their apps. Many of these apply to all platforms whether it be other calculators or computers but a few are more targeted at the Prizm.

  • Treat the user's calculator with respect. Don't use any code that will put THEIR calculator at risk! Test your programs extensively and remove any holes that could potentially cause a major error. Even if you're not liable for damage, these types of incidents can tear apart communities.
...
  • Value user friendliness over extreme optimization. I'm not condemning optimization—in fact, every program should be extensively optimized—but what I'm warning against is overdoing it. You should always program in extensive exception handlers to prevent the user from breaking your apps. Graphical appearance should also be focused upon. Most users would prefer a sharp UI over an additional frame per second.

The first one is especially important in the case of custom flash routines. Don't use them. They have the potential to seriously damage calcs.

Also, the second may not be true for programming utilities like interpreters and emulators. In such reasonably uncommon situations, extreme optimization is often entirely warranted (and lamented if not present).
« Last Edit: 31 October, 2011, 18:38:08 by Qwerty.55 » Logged

∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ
z80man
Casio Traitor
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 04 September, 2012, 19:42:33
Date Registered: 26 December, 2010, 10:02:50
Location: City 17
Posts: 966


Topic starter
Total Post Ratings: +83

View Profile
« Reply #5 on: 01 November, 2011, 07:53:51 »
0

Also, the second may not be true for programming utilities like interpreters and emulators. In such reasonably uncommon situations, extreme optimization is often entirely warranted (and lamented if not present).
Very true but those kind of projects are not very common. Unless a program is pushing the limits of the hardware extreme speed optimization is not necessary. In addition to emulators and interpreters games such as fps's could also fall into this category. One of the main reasons why I put that there is that I find it annoying in some programs when you see a function that is called at most once per second and is optimized to save 10 T states at the cost of 30 additional bytes. That there is just bad programming and all it does is increase the size.
Logged


List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)
calcdude84se
Needs Motivation
Members
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 14 May, 2013, 16:12:14
Date Registered: 21 April, 2010, 04:20:59
Posts: 2207


Total Post Ratings: +62

View Profile
« Reply #6 on: 01 November, 2011, 13:58:59 »
0

Well, that's not really optimization at that point. That's a poor choice of speed optimization over the more sensible size optimization. (You seem to have ignored that programs can also be optimized for size. Wink)
Logged

"People think computers will keep them from making mistakes. They're wrong. With computers you make mistakes faster."
-Adam Osborne
Bug me about PartesOS. I might just need reminding.
MPoupe
LV4 Regular (Next: 200)
****
Offline Offline

Last Login: 22 May, 2013, 10:08:17
Date Registered: 04 January, 2011, 18:41:18
Posts: 161


Total Post Ratings: +28

View Profile WWW
« Reply #7 on: 01 November, 2011, 15:47:33 »
0

Most users would prefer a sharp UI over an additional frame per second.
[Citation needed] :-)

I cannot agree with this. I think super nice (and slow) GUI is nice on few first uses. But I prefer faster (and simple / ugly) GUI in the most used application.
Also the optimizing the code is important, the calculator is not fast enough, it is something like Pentium I.

Logged
z80man
Casio Traitor
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 04 September, 2012, 19:42:33
Date Registered: 26 December, 2010, 10:02:50
Location: City 17
Posts: 966


Topic starter
Total Post Ratings: +83

View Profile
« Reply #8 on: 01 November, 2011, 17:13:48 »
0

Well, that's not really optimization at that point. That's a poor choice of speed optimization over the more sensible size optimization. (You seem to have ignored that programs can also be optimized for size. Wink)
that's what I meant there by size optimization. Many people forget the all important size optimization and focus on speed. It also should be noted that on the prizm a size optimization is often also a speed increase too because of the reduced chances of a cache miss
Logged


List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)
Pages: [1]   Go Up
  Print  
 
Jump to:  

Powered by EzPortal
Powered by MySQL Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Powered by PHP
Page created in 0.313 seconds with 30 queries.
Skin by DJ Omnimaga edited from SMF default theme with the help of tr1p1ea.
All programs, games and songs avaliable on this website are property of their respective owners.
Best viewed in Opera, Firefox, Chrome and Safari with a resolution of 1024x768 or above.