This is the fourth installment of the exciting project MemBro! This version is built upon Web-Tech like javascript. To run this on your desktop computer you need to install Electron. Some of the download links are included below.

To run MemBro execute electron and point it at the membro.asar file with the command:
/path/to/electron membro.asar

One of the great things about this is it is easily cross platform, and there are several projects to allow installers on Windows and Mac. This will come soon...

Download Description
MemBro The MemBro code. Run the app with "electrol membro.asar"
Download electon below.
Electron for Windows Electron for Windows 64 bit
Electron for Mac OS X Electron for Mac OS X
Electron for Linux 32 Electron for Linux 32 bit
Electron for Linux 64 Electron for Linux 64 bit

Changes

Date Change
2018-09-17Improves performance. Simplifies the build.
Much to my surprise the primary culprit of the performance was updating the tray icon unnesesarily. The next culprit is as expected: the serialisation. But it was about a quater of the time that updating the icon took. The tray icon and meny now only updates when nessesary. I merged the git log and electron build stages. This will make them use fewer pipeline minutes.
2018-09-17Gives the windows icons.
2018-09-17Fixes some defaults:
Empty text now has a greyed out "Enter text..." Notifications can no longer scroll horizontally. Next Notification is now next reminder.
2018-09-07Fixes the backspace error and the build failure.
The build failure was introduced by carelessly editing makefiles. In particular trying to get a valid package.json into the build directory. This has been fixed. The backspace issue seems to be that printing the selection once having backspaced everything froze chrome. To work around this either jsonify it or don't print it. I opted for the latter.
2018-09-05Removed some dependencies and improved the package.json management.
This should make bundeling easier, more accurate and smaller.
2018-09-03Fixes bugs, changes which selection-range is used.
Changes the default capture function to be the screen capture instead of browse. Changes teh bundle view to always use the date it was opened. This should fix the irritating cahnges to the timeline. Changes the make files to the dncnmcdougall fork of selection-range. Hopefully this will fix the pesky loosing focus bug.
2018-08-28Adds legacy documentation
2018-07-11Undoes part of the 'fix' for notifications. Removes the introduced bug.
2018-06-20Fixes bugs in timers and notifications.
The notifications should be less annoying. The notifications should not show "complete" memories.
2018-05-31Update .gitlab-ci.yml
2018-05-31Add .gitlab-ci.yml
2018-05-19Removes some dangling commas
2018-05-16Style twweks. Rich text display. Short previews.
Tweeked the styling for the screen component: it now displayes images correctly. Tweeked the styling for the notification: only the correct bit scales. Rich text in the list and notification is displayed corecctly. Previews in the list and notification are restricted to 50 chatracters. Wrote a utility for restricting the ength of a document fragment. Uses dom-iterator and domify.
2018-05-15Fixes the selection in the Bundle
2018-05-09Adds snooze timer, rich text
2018-03-02Changes to make.
Don't know why it is now working and was not.
2018-03-02Can now capture individual screens and windows.
Adds the capacity to capture individual screens and windows. Moves the styling for tabs to a tabs style sheet. Creates an active and inactive colour in the library style sheet. Applies the appropriate backgrounds to windows. Restyled the border for capture and notification windows. Removed the border of the capture dialogue. Added a screen compoent that can be used to add a "screen border" to an object.
2018-02-19Small make cleanup.
2018-02-19Cleans up build and bundle.
In particular this removes the runtime requirement on istanbul. built with coverage then istanbul is pulled in. Thus it is a build dependancy but not a run dependancy (unless incoverage). This means that the bundled filesize is substantailly smaller (~10Mb). Removed the min folder from moment. This saves another 1.4Mb. The final asar is down from 18Mb to 9.5Mb.
2018-02-19Merge branch 'master' of https://bitbucket.org/dncnmcdougall/membro-4
2018-02-19Improvements to capture and general styling.
This makes the maximum resolution of capture the full size of all screens. This should make captuing anything result in full resolution, from the full screen down to an individual window. Adds the Content.less file which store styling information about the content. This means that this can be shared between the bundles and the capture dialogues. Moves the dependencies on the .css files into the Makefile.dep_css. This seems cleaner.
2018-02-19Completes removing position from the serialisation.
2018-02-19Removes the position, in the hope of maintaining serialisation comaptibility.
2018-02-15Improves capture, serialisation, logging. Cleanup.
Screen capture now uses a better resolution when capturing the whole screen. Serialisation now should provide better error feedback. (I don't quite understand why it was working at all.) Logging using the RenererHelpers now prints info about where the message came from. (Abusing the node Error library, yay electron). removed the last of the old membro node_modules.
2018-02-14Styles the tabs in the bundle.
2018-02-13Default snooze time no 300s not 30s
2018-02-12Updates the readme. Allows deleting of bundles.
2018-02-12Cleans up the build for the website.
Removed some unneeded files. Changes the make files to make building a little smoother.
2018-02-10Adds an options dialogue which has position options.
In particular the positions of the notification and the capture dialogues can be changed in real time. This added an options dialogue. This required a tab view and radio button based screen position selectors. The options dialogue also had to be added to all the relevant events, like the tray and a button in the list.
2018-02-10The timeline is working.
2017-11-30Updates README
2017-11-30fixes shift click in list
2017-10-16Adds various bug fixes: new bundles, text, animation
* Moves the Create Bundle to the MembroModel. * Adds reading of text files to the Copy.js. This enables the adding of text content. * Fixes the event on the add button in the bundle view. * Fixes the content lists not working for empty content. * Fixes the animations in the bundle view * Updates the README * Cleans up some print statements.
2017-10-15Membro can now be paused and muted.
2017-10-14Updates the TODO list. Next: Pause, Mute
2017-10-14Adds case statement indenting.
2017-10-14Introduces the TrayManager.
The tray manager is responsible for the tray icon. The manager updates the icon and the tray menu based on the state of the application.
2017-10-14Adds icons for mute, snooze, pause
2017-10-14Notifications can now be snoozed and respect options.
Snooze now hides and shows bundles as appropriate. The notification, in theory, reads the options. Cleaned up some messages emitted from the bundle.
2017-10-12Notification and capture options have an effect.
2017-10-11Refines the options model
2017-10-09Adds an initial options model.
2017-10-09Adds items to the README.
2017-10-09Renames and adds some images.
2017-09-30Styles the list and tray. Updates the README.
This adds some styling improvements to the list. This changes which method is called when the notification timer expires. The notification now pushes a full update. This adds some items to the system tray. They don't do anything yet. This adds some updates to the todo list in the README.
2017-09-30Adds buttons to tthe notification. Notifications can show bundles.
The show and cell click events on the bundle have been linked up. The snooze event still needs to be done.
2017-09-28Causes the bundle to update the notification time. Other fixes.
The Bundle view now updates the next notification time, as expected. Also fixes some issues in the ScheduleModel. As an upshot the bundle now shows the timeline a bit better. Made RendererHelpers now usable in the renderer and the Main threads (Should rename it).
2017-09-28Corrects the next notification time and the new bundle button.
Note that the NewBundle frame still needs to be fixed.
2017-09-28Fixes and styles the notification.
2017-09-26Adds in the ground work for the notification.
The timer, in theary, is now active. The window pops up. However the times on the bundles themselves need to be checked, and the actual code for displaying the notification needs to be checked. There is presently an assert.
2017-09-04Updates the TODO list
2017-09-04Re-adds the capture dialogue and screen capturing.
2017-09-03Reintroduces browsing for content.
2017-03-29Styles the ribbon.
Updates packages. Begins work on capture.
2017-02-21Styles the Bundle and adds preview and description events.
2017-02-11Adds the images folder to the initialiser.
2017-02-11Adds props to the content.
2017-02-08Adds general events and props. Fixes the img Folder.
Most renderers now accept an events object. This contains the event handlers for the elements. Some of the hybrid elements contain many event handlers. These event objects can be packed and unpacked with the EventPacker. The properties have a similar arraignment. However it has not been as extensively applied. The images state now has the correct folder.
2017-02-07Adds initial javascript for bundle.
2017-01-31Completes the list.
2017-01-30Moves the NewList to the new system.
Simplifies the Makefile: The dependences were unnecessary and reduced build speed, they have been removed.
2017-01-29List uses model. Times use moment.
2017-01-21Removes some log statements.
2017-01-21The app starts the system tray with the new model!
2017-01-21Changes the test to only test custom actions.
2017-01-20Removes useless tests.
2017-01-20More moving tests to new Model
2017-01-20Begins moving tests to new model.
2017-01-17Moves main to use more of the new model.
Adds StateInitialiser, StateManager, and ViewManager classes. Changes Serializer to use the new Model. Changes main to use the new classes and to use Serializer.
2017-01-14Adds renderers and model for the BundleView
2017-01-14Adds content renderers.
2017-01-10Begins implementing the ListViewModel
2017-01-10Updates the README
2017-01-10Adds the list table renderers.
2017-01-08Adds the list cell renderer.
2017-01-08Adds the Notification, Date and Time renderers.
2017-01-04Adds notification renderers.
2017-01-03Begins the move to the ModelReducer
Added a section to the README to document the process. Added the model to the makefiles Fixed some of the model to pass linting (corrected some errors, yay linting). Added some classes to the Notification, as an experiment. Added some renderers. Updated the dependencies.
2016-11-13dds the first renderer to the notification
2016-11-06Starts using the new ModelReducer framework.
2016-11-06Moves the stylesheets to be with the views.
2016-09-10Updates the readme
2016-09-10Corrects teh infinite updating of the notification.
2016-09-10Implements final work on distributed loading.
Expands the state validator to be able to validate collections directly. Expands the Serializer to utilise this functionality. Snuck in a correction to the state request default test. Moved the adding of default images back to main.js
2016-09-06Implements initial work for distributed loading.
This is currently broken the next thing to do is to make the StateValidator able to validate collections of a Model without that being contained in an other State. This then needs to be added to the State serializer.
2016-08-15Merges and shares the bundle filter in the notifications.
Conflicts: src/view/Bundle/Bundle.js Changes: Updates the bundle filter in both the notification and notification manager so that deleted bundles are ignored. Updates the readme. Fixes teh dropdown menue.
2016-08-15Adds a default state test.
2016-08-15Merge branch 'master' of https://bitbucket.org/dncnmcdougall/membro-4
2016-08-15Removes deleted items from the notification manager.
2016-08-15Fixes the add content dropdown.
2016-08-11Updates the todo list
2016-08-10Fixes 2 start-up issues.
1: The default images property is null, not an empty list. -> Fixed by adding an item. 2: If membro.json is deleted, but the saves dir is not membro fails to start. -> Made the checks separately.
2016-08-10Makes Bundle and CaptureDialogue use State.images.
2016-08-10Changes capture and copy to name images better
The images are now saved with bundleId _ contentId [_Ico] .png
2016-08-10Corrects getNextAvailableId to handle 1 entity.
2016-08-10Cleans up redundant tests
2016-08-10Updates the todo list and make file.
2016-08-04Makes teh notification look pretty
2016-08-04Restyles the notification.
2016-08-04Removes icons from the tray menu.
2016-08-04Implements sorting for the list.
2016-08-03Uses the Images state. Moves the content thumb. renderer.
2016-08-03Changes list content preview to images and improves styling.
2016-08-03Updates the todo list.
2016-08-03Adds deselect to the list.
2016-08-03Centralises showDevTools in the ViewManager.
2016-08-03Corrects makefiles to not continuously reinstall modules.
2016-08-02Corrects the coverage after directory changes.
2016-08-01Returned membro/Util
2016-08-01Merge branch 'master' of https://bitbucket.org/dncnmcdougall/membro-4
2016-07-27Corrects the Bundle's createDefault.
2016-07-27Adds the new list to the make file.
2016-07-27Changes the list view tr=o use a raw table.
2016-07-27Merge branch 'master'
2016-07-27Removed the dev tools from the notification.
2016-07-23Updates teh README
2016-07-23Adds a default test, and calls it for add children.
2016-07-23Removes teh final npm command.
2016-07-23Updates git ignore to ignore teh cover dir.
2016-07-21Adds and fulfills the test for Content.Set action (and Description).
2016-07-21Updates .gitignore to include swp files, saves and the membro.asar.
2016-07-13Fixes strat up. Clean up old code.
2016-07-12More corrections to VAlidator and test.
2016-07-12Validator debugging.
2016-07-12Added deserialising. Corrected test and validator.
2016-07-11First attempt at de-serializing.
2016-07-11Added timers to the notifications.
2016-07-10Fixed serialisation.
2016-07-10Implemented simple serialization and timing.
Make the StateSerializer merely write the json to file. This is very crude, but will work. Currently, though, it crashes. (Check dir exists?) Added a search for the newest bundle to the notification update. This should be used to update a timer.
2016-06-30Added tray, stugeling with new button.
2016-06-17Single test for actions and requests.
2016-05-21Update TODO list
2016-05-21Add basic capture dialogue
2016-05-21Capture.html oly captures
2016-05-18Capture.html now saves and has buttons.
2016-05-17Add save dir to IpcEvents and Bundle
2016-05-17Clean Copy.js, add todo.
2016-05-15Copy saves files to targetDir and adds a Content
2016-05-14Removed 'position' property from content
2016-05-14Capture the screen.
2016-05-14Modified the testing, added a watch script.
2016-05-13Correction for moved image copying to Copy.html
2016-05-13Moved image copying to Copy.html from Capture.html
2016-05-13Capture html now loads given images.
Given an array of filenames in the url this window loads each and will (does not yet) save them to file after resizing them. Note that the content of the Capture html should be moved to the Copy.html.
2016-05-13Fixed breaks introduced by move to h()
Content.js was corrected to work as it used to. Content.js was corrected so that it is a module correctly. Bundle.js was corrected to use localtion.search
2016-05-13Make stores the run deps in run_modules/package.json.
Also updated the packages.
2016-05-12Found more JSX to refactor.
2016-05-12README now uses tabs
2016-05-12Refactored Content to hyper-script
2016-05-12Added tests for property setters in Timer
2016-05-12Added more lintier tests
2016-05-12Refactored Content to use hyper-script
2016-05-12Updated TODO
2016-05-12Updated TODO list
2016-05-12Moved the TODO list into the README.md
2016-05-12Corrected .gitignore and added missing files
2016-05-12Adds many linting rules
2016-05-12Migrated to E1.01
2016-05-12initial commit with current code