Ack! Accidentally clicked send.
I have a database of composers, the pieces they wrote and the movements of
those pieces. It is sent to qooxdoo as Json, and using a Json marshal made
into 3 classes. The kids property in composers stores the array of pieces,
and the same is true for the kids property of pieces, which stores an array
of movements.
I use this to render a tree in one tab of the backend, and I can add
composers, pieces and movements as needed. However, because the data set
is so large, I do some lazy loading. At first, each composer's only child
node is a piece called "Loading..." When the code sees it, it lazy loads
the children and updates the display. All this works perfectly for years
and still works.
In the tab where I edit concert info, I am re-using the data from the
composers/pieces/movements tab to provide the source to choose program
info. I created a widget years ago that allows clicking a composer from a
selectbox qx.ui.form.List, which populates another selectbox with the
composer's pieces, lazy loading as necessary, and then chooses movements,
lazy loading as necessary.
This process is too slow, it takes me hours because there is a subtle bug
where selecting the movements does not actually work unless I de-select
them and re-select them. Also, scrolling through the list of composers and
pieces is too slow.
Thus I had the idea of instead using qx.ui.list.List. Coupling this with a
text field and using that to filter the list. So if we are playing
Beethoven String Quartet Op. 59 No. 2, I could type "bee" and it will
filter the list of 115 composers to just Beethoven. I click Beethoven and
the qx.ui.list.List model changes to the pieces he wrote and the text field
changes to "Beethoven, Ludwig can ". I type "59" after that and it filters
to the 3 Op. 59 quartets he wrote. I click 59 No. 2 and the text field
changes to "Beethoven, Ludwig van String Quartet in E minor Op. 59 No. 2"
and disables itself. Meanwhile, the list updates to the 4 movements and I
can deselect any we are not playing on that concert.
All of this worked except when I clicked Beethoven, the widget remained
selected after the model change and often the movements would not display
properly sometimes, with no clear cause-effect, implying an asynchronous
issue of some sort.
I pulled out the specific code, and the bug disappeared. So, there is
something about the interaction of the larger code and the smaller that
triggers the bug. This is why I erased the whole thing. It needs a
smarter re-imagining before I can restart it, and as I said, my available
development time was this week. I won't have another window for a month or
so.
If you have read this far, thank you!
Thank you also for the quick and calmly measured responses. Much
appreciated
Greg
On Aug 29, 2013, at 7:44, Gregory Beaver <[email protected]> wrote:
Thank you all for the quick feedback. A few responses:
1) the prettify feature in chrome was a new one and will make debugging the
generated accessors possible, one problem solved
2) I debug in source mode, sorry that was not explicit. I am not a
masochist in that way :)
3) although I was trying to debug 50 lines of code, I neglected to
explicitly state that I was drawing upon about 4000 lines of pre-existing
code and simply trying to add a new widget in the mix.
4) when a selection is updated in the model, the actual rendering happens
magically later and this is where debugging breaks down. I was able to
verify that the selection was properly becoming no selection, but the
rendered view selected the same widget even though its underlying model had
completely changed. Even after pouring over the source on github (lots
easier than on disk) for hours I was still unable to determine where
rendering occurs. Trying to break on any exception, stepping through the
code also failed to locate where it happens. This is what I mean by "black
magic." Perhaps there is a way to spit out debug info on events in
qooxdoo, but I did not see a way when stepping through event handling.
5) what am I actually trying to do? This should help you all help me. :)
I am working on the backed to my quartet's website. We have a calendar
which is directly linked to our google calendar. When an event appears on
the private calendar, a cron job pulls the data into a database, spits out
an email with the details etc. etc. I then log into our backend and using
qooxdoo, update the event to include detailed information like the concert
program, ticket information, the presenter and concert hall, etc. the
backend generates info for our public google calendar, and our website
pulls the data out and renders it using PHP. The qooxdoo backend is 100%
separated, and the whole thing uses SQLite and git. Changes to the website
appear at a test site and have to be manually pushed and then pulled to the
public website, so it is all redundantly backed up.
The part I am working on is the concert programs.
On Aug 29, 2013, at 0:53, "Joaquín Fernández" <[email protected]>
wrote:
Hi Greg
You can debug minified code in Chrome step by step using pretty print tool
in developer tools.
Go to Sources tab and click in '{}' icon in bottom toolbar. If this icon is
selected, all code is beautified when you debug source code including auto
generated code in qooxdoo and minified code from build job.
Hope this help you.
Regards
Joaquín F.
Enviado de Samsung Mobile
-------- Mensaje original --------
De: Gregory Beaver <[email protected]>
Fecha:
Para: qooxdoo Development <[email protected]>
Asunto: [qooxdoo-devel] Frustrating development
Dear qooxdoo,
I wrote a very complicated application based on qooxdoo a few years ago.
It still works great but there are some kinks that I was trying to work
out. I spent 13 hours over the past week trying to get 50 lines of code to
work. 8 of that was trying to debug a problem with appearance and the
magical fact you have to tell some things what they should look like in
some circumstances, but not in others. No errors or warnings to assist
either.
Then, I ran into a weird bug with selection that I cannot reproduce with
any shorter code, and spent 6 hours writing no new code and simply trying
to figure out where the hell selection is converted to actual highlighting
in qx.ui.list.List
As of right now, I have erased all the work and thrown in the towel. I
have not had this much frustration and impossibility of solving a banal
issue since I worked with Microsoft Access in 2000.
There has got to be a better way to do things. Too much is magic, the
generated code has no line breaks and can't be stepped through even in
source mode.
I have literally run out of all of my available time allotted for this
project, and we have to stick with the older not-quite-working code as a
result.
If any of you have successfully found a time-efficient way to debug
problems in selection or binding or any other qooxdoo black magic, I would
appreciate the tips for the next time I have a block of time to try
something. Until then, I hope my utter failure is a wake up call from a
former evangelist of qooxdoo (one of my blog posts is a top hit in google
search for qooxdoo with many visitors every day).
Thanks,
Greg
—
Sent from Mailbox <https://www.dropbox.com/mailbox> for iPhone
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel