Thursday, June 24, 2010

CodeAssistor - Scrolling and Folding

I got a little off track today, rather than looking at stuff on the version 4 list, I fixed up some folding and scrolling stuff... now the editor doesn't fold away the cursor during a fold all. when fold all is performed, the cursor line is moved to the top line of the editor. when Unfoldall is performed the cursor stays at the current position (was getting lost before).

Also, now you can only hori-scroll the size of the longest line (plus a little bit of buffer), and horizontal scrolling via mousewheel was fixed on mac.

Ohh yeah, margins are a solid colour on mac now... rather than those nasty lines.

Wednesday, June 23, 2010

CodeAssistor - version 0.0.4 started

Version 0.0.4 is started. Java is colourized properly, and includes colourization of all the classes from the 1.5 JavaAPI. Python support is in both windows and mac and is colourized and folds properly... I dont use Python much so I am going to have to depend on other people to raise bugs against python.

Speaking of bugs... no one has raised any yet (I know they exist!), yet I've had ~65 downloads (I make the assumption that there are 15 users from that amount of downloads) since 0.0.3 was finalized. If you users are reading this, thanks for using the software and that your comments/critisms/bugfinds are welcome. Also, Launchpad makes "drive by" contributions very easy if a developer wants to join me by adding Linux support.

Saturday, June 19, 2010

CodeAssistor - version 0-0-3 Final

After fixing a few more bugs than I expected, the CodeAssistor version 0.0.3 is completed and barring any major bugs, finalized. I've updated Freashmeat and FOSSFORUS, placed the binaries and the source as zip files for general consumption.

The major task for 0.0.3 was windows support, however, since CodeAssistor is my primary editor now, I added functions that I really really wanted (such as foldAll).

Version 0.0.4 will target UI polish. I want to do things such as
- Better Java colouring
- Add Python/Perl/PHP/Win-Batch colouring and folding
- Darkmode where a darkcolour is the background ... lots of people like dark backgrounds
(note: I do not want to give the user the power to chose their own colour scheme... this may seem fascist or lazy of me, but my main goal is to have a very simple feature set... adding user defined colour schemes and font schemes adds a LOT of feature complexity, adds to the size of the final binary, and is sort of antithesis of what I want to accomplish... Im not just creating a notepad++ clone, I purposefully want something smaller... and yes, its a lot of work to add that stuff :P)
- Better Windows dialogs - Should be more similar to Windows Notepad.

Windows Executable
Macintosh Application
Source Code (including my version of Scintilla for superior folding)

My Triple Screened setup

A program called "Air Display" allows Mac users to use their iPads as an additional monitor. This gives me the ability to have three monitors. See screenshot

Friday, June 18, 2010

CodeAssistoro - Scratchpad of what needs polishing

Need to do all these things before version 0.0.5

5- Cut/Copy in finder window
3- CTRL+Z should not go before open point
4- Should pop warning to say "cannot save due to file access restrictions"
5- Only a single instance of the application
4- batchfile colourization
4- widen margin to accomidate 99,999 lined files
5- "dark mode" for those who like the dark
3- About Dialog
4- show if text is "dirty"

4- python perl php bash colourized
4- better java colour
3- all forms of makefile
3- About dialog

Thursday, June 17, 2010

CodeAssistor - version 0-0-3 release candidate 1

I've improved CodeAssistor in many ways over the past couple of days.
Find is fixed (it wasn't the compiler, see previous blog entry).
FoldAll and UnfoldAll have been added (Man this is sooooo useful!!!)
Long Line wrap has been added

My only concern is that pasting into the search box doesn't work in windows... no idea why.

Anyway, grab it while its hot.

Tuesday, June 15, 2010

Never blame the compiler

In my previous post, I demonstrated how I could get codeassistor to perform the exact same sequence of inputs in different ways depending on if the code was optimized or not. Turns out, I was improperly using a structure (didn't set all the values of the structure properly).

Never blame the compiler

Sunday, June 6, 2010

An interesting finding about compilers

In our binary world of software, a set of consistent in-volatile variables has one and only one path it can take through a static codebase. Bugs exist because variables are never consistent or in-volatile; except during unit testing. Unit testing should use a large enough data set to test all possible variable combination sets, but it is nearly impossible to thoroughly unit test certain codebases (eg codebase for a user experience), thus bugs exist.

However, what do you do when your set of variables passing through a static codebase is the same, with two exceptions.
1) user input timing
2) compiler optimization options

Case: "Backwards Find in Windows & TDM of Mingw"
I cannot be entirely scientific with this. Heck this is a blog post and I've found a workaround for my problem. I highly encourge you "the reader" to investigate this more thoroughly and tell me I've overlooked some stupid thing

Problem Desc: When using the backwards find in Codeassistor, backwards find does not wrap around to the bottom of the sourcefile and search upwards for the search term if the search term cannot be found from the current point of the cursor to the beginning of the sourcefile. Unless the codebase is compiled using the -O0 optimization option.

Steps to reproduce
1) grab the codeassistor source and the mullinpatches branch of scintilla.
2) compile the code via "make -f -j5"
3) after the test application has popped up, press CTRL+F for find and type "ei" (no quotes) then ENTER.
4) Alt+Tab from the find popup to the editor window
5) press F3 for backwards search multiple times

Expected Result:
The editor will jump to the bottom and find the last occurrence of the string "ei"

Actual Results:
The editor will highlight the second character of the sourcefile (in this case a "*")

6) Quit Codeassitor; type "make -f clean" ENTER
7) Edit and change -Os to -O0
8) repeat steps 2-5

Results (expected and actual):
The editor will jump to the bottom and find the last occurrence of the string "ei"

It seems like the -Os (for that matter all -O optimization except O0) performs the test one way, and the -O0 performs another way.

-Os drops my final executable IN HALF! from 250KB to 124KB. I am not supremely concerned about this because 250 is acceptably small... but what happens if my executable grows to be 10MB ? I would much prefer a 5MB exe to a 10MB one.

Note: the bug might be in the codeassistor, however the code is acting differently to a non-volitle (except user timing) dataset depending on compiler option.

Ipad review after day one

OVerall there are slight problems but it's features make up for them

Typing is much more difficult than a laptop or even a blackberry for that matter. Holding the internet in your hand is they way it's supposed to be. Reading books on an eink screen is nicer on the eyes but the iPad is still acceptable. Watching is great. Reading technical papers is good. The speed of the software is amazing.

Saturday, June 5, 2010

Smegol says "It's my birthday, and I wants it"

I bought myself an iPad today. Cause I wanted one.

I want a larger screen book reader for technical papers ( I'll give you a review later on.

Thursday, June 3, 2010

CodeAssistor on Windows : Alpha Release

Super Dooper Alpha release for windows

Find/Colouring/Goto all the stuff that mac has... but there are bugs
- cannot wrap backwards on find

Im sure there is more, I didn't test very thoroughly, but its bedtime and I'd like to have this available to download on other machines for testing tomorrow morning.

Wednesday, June 2, 2010

Find: codeassistor on windows

I have to implement a "Find" dialog for windows. The popup-edit box method I use in mac doesn't work so well because Scintilla takes over from my search-edit box whenever I click the search edit box (the search-edit box is inside the bounds of the scintilla editor).

Im going to have to implement find dialogs anyway, so that there is some better control over find... but yeah, I had to do it for windows right from the get-go.

Anyways, basic find is completed for windows, though there are bugs, you can at least find stuff with it.

Next step is the line-goto dialog.