Skip to content

blue-droid-clan/Hinto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

hinto: elemental programming

to do:
	- bootstrap: a primordial hinto app
		- ability to create a new Data item
			- enter name via keyboard
			
		- able to drag new item around screen
		
		- able to save current state of app, then restore at a later time
		
		- implements modes
			- design
			- use
		
		- basic workspace management
		
	- Workspace Management
		- Project
			- Task
				- Step
				
	- Application Modes of Use
		- Developing
			- Designing / Coding
			- Testing
		- Using
		
	- Serialization Framework
		- needs to be very lightweight
		- not very feature rich
		- byte[] initially
			- then JSON
			
	- Testing Framework
		- just like other testing frameworks, but smarter
		- try to automate most of the low-hanging fruit
			- i.e. null check, boundary conditions, etc.
			
	- System
		- Events
		- IO
			- Console
			- File
			- Shared Preferences
			- Http
		- Intents?
		- Broadcast Receivers?
		- Services?
		- Processes?
		- Concurrency? uh oh, here we go...
		
	* Atoms
		* UserDefinedData
			- screen location stuff:
				- Point: requires Number
					- LocationOnScreen : Point - helpful alias for readability sake
				- Rectangle: requires Number

			- ability to serialize UserDefinedData :: requires Serialization Framework
				- name
				- id
				- for Views
					- Point on screen
					
			- Boolean
			- Test(Data first, Data another) :: Boolean
				- Equals
				- And
				- Or
				- Not
				- other boolean operations …
			- Decision
				- perform(Test test, Function truth, Function falsity);
				
			- Index: is it necessary?

			
		- Chain
			- need an easier way to add a bunch of items
				- Chain
					- public Chain addAll(Object ... items);
					- public Chain addAll(Object[] items);
				- Chain.Factory.createAddingAll(Object ... items)
				- Chain.Factory.createAddingAll(Object[] items)
				
			- can specify the launch Function: Function to be performed when Chain.perform() is called
				- i.e. given the Functions (print, evaluate, returnToStart, read)
					you can specify "read" as the first Function to perform
	
	- Environment
		- Development
			- Runtime: state of the system as the user sees and experiences it
			- Edit:  can tinker with the underlying mechanics of the Environment
				- Design:
				- Contract : Test :: requires Boolean, Test
					- public Boolean precondition()
						- if False is returned, it means the given Test failed
						- throw Error?
					- display of contracts is OFF by default
						- can turn it on when editing, however
				- Configuration: setup the default configuration for the Environment
				- Testing: design and run the tests the Atoms in your Environment need
				- Documentation:
					- Development Docs
					- RTFM: 
						- would be nice to make this community-editable
							- community ranks the best comments
							- combines the best-of wikis and community-ranking systems
			- Distributed: collaborative development, oh my
			
		- User
			- Runtime
			- Design
			- Configuration
			- Documentation: 
				- RTFM
			- Distributed: collaborative, interactive sharing of the experience, oh yes
			
	- Display
		- DataView
		- DevelopmentView : DataView
			- LogCatView
			- DocumentationView
			- TestingView
			- EnvironmentView
			- DebuggingView
	
	- Workspace
	- Ideas
		- would like to be able to specify that a function is performed after a given amount of time (for example, 150 milliseconds)
		- voice input
			- for naming newly minted items
			- commands:
				- i.e. create function

About

let's see where this takes us.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages