Pages: 1 2 [3]   Go Down
Author Topic: Arduino Library downloader  (Read 3489 times)
0 Members and 1 Guest are viewing this topic.
Norway@Oslo
Offline Offline
Edison Member
*
Karma: 12
Posts: 2033
loveArduino(true);
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

It still won't delete the library on my computer, but the application thinks it's deleted.

Also, building an IDE for the arduino will be a lot of work, your energy might be better placed in contributing to the current IDE. Ignore me if you're doing this as much for yourself as for us. Writing an IDE is a very good learning experience.


I want to start coding the web back-end soon. Do you have any more ideas for it? Anyone?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 36
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

you might be right.
i tried to work on the IDE because i am still digging into wxWidgets and learning a lot.

I branched the IDE Project so work can continue without interrupting the small Library application whenever i or some other want.

Bad that the removing does not work for you.
It is not really checking if the install or remove process was fully successful.
Some thing i can think of are some File or directory permission problems.

I will write a small debug version that writes a debug.txt so i can have a look at it.
(but first i need some sleep)

don't have any idea.
I think we should just look how it turns out and how the page is accepted by the other developers here. smiley-wink

Do you want to host my application on that webpage once it parses your XML?
Logged

Norway@Oslo
Offline Offline
Edison Member
*
Karma: 12
Posts: 2033
loveArduino(true);
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Of course I'll host it. Although I am the 'owner' of the website, I will think of it as 'ours'.


I'll start developing the back-end soon then. And we'll do as you say. Stay agile and react to requests and user feedback.


Good night!
03:14AM here, need me some sleep as well.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 36
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

i just updated it so it will show the user if the download, the extraction or remove was successful or not.

It will also create a debug.txt in the application directory with some information that could help to know what happens if something is not working.

It would be nice when you could try the new version and send me the debug.txt when it does not work again.

Thanks.
« Last Edit: November 27, 2010, 10:22:58 pm by beowulf6 » Logged

Norway@Oslo
Offline Offline
Edison Member
*
Karma: 12
Posts: 2033
loveArduino(true);
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The new version runs great!  smiley

Maybe I should convert the xml for this and encode it as the xml will be
so you can start testing for the new format?

We might double check so I've not forgotten anything.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 36
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

that is odd.

I have changed nothing regarding the functionality to extract or remove the correct files.

The only thing i can think of that have changed is the wxWidgets version with what i compiled the application that is now the newest SVN version 2.9.2.
(and that the file size somehow got double the size but that might only be a compiler configuration)

the new XML format would be nice so we can start to parse the new format.

Just one question. For what are the authors right under the root tag in your XML?
http://alexanderbrevig.com/hosting/arduinolibraries.net/ArduinolibML.xml
They are not connected to a library so i don't know if they are even needed there and the authors for the libs are right there inside the lib tag.

and 1 think i right now are think about is the version.
The version String should be the same for every lib. (like "0.0.1" to "0.1.3")
because at the moment every library developer uses another format there, even chars like "1.0.2c" or just the date.

that way i could just remove the dots(.) and i am able to read is as a value that is higher when the version is newer.
« Last Edit: November 28, 2010, 01:03:07 am by beowulf6 » Logged

Norway@Oslo
Offline Offline
Edison Member
*
Karma: 12
Posts: 2033
loveArduino(true);
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Proposed SQL 'schema':
Code:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- an author is a person that has written a library
-- mandatory fields: username , password and mail address
DROP TABLE IF EXISTS `al_authors`;
CREATE TABLE IF NOT EXISTS `al_authors` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `password` varchar(32) DEFAULT NULL,
  `mail` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- sample data for authors
INSERT INTO `al_authors` (`id`, `name`, `password`, `mail`) VALUES
(1, 'Alexander Brevig', 'temp', 'alexanderbrevig@gmail.com'),
(2, 'lsascha', 'temp', 'lsascha@gmail.com');



-- a category is classification of a library, we should discuss the complete list
-- mandatory fields: category name
DROP TABLE IF EXISTS `al_categories`;
CREATE TABLE IF NOT EXISTS `al_categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

-- sample data for categories
INSERT INTO `al_categories` (`id`, `category`) VALUES
(1, 'Hardware Abstraction'),
(3, 'Data Structure'),
(4, 'Math'),
(5, 'Timing & Multitasking');



-- a library is a collection of library versions for a specific purpose
-- mandatory fields: category_id, library name, library general description
DROP TABLE IF EXISTS `al_libraries`;
CREATE TABLE IF NOT EXISTS `al_libraries` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category_id` int(11) NOT NULL,
  `name` varchar(64) DEFAULT NULL,
  `description` text,
  `popularity` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `category_id` (`category_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- sample data for libraries
INSERT INTO `al_libraries` (`id`, `category_id`, `name`, `description`, `popularity`) VALUES
(1, 1, 'Button', 'Button is created to help readability of code. It abstracts away the pinMode, and digitalRead calls for the user.\r\nIt supports pullup and pulldown configurations.', NULL);


-- libraries and authors are linked together in this table
-- mandatory fields: library_id, author_id
DROP TABLE IF EXISTS `al_libraryauthors`;
CREATE TABLE IF NOT EXISTS `al_libraryauthors` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `library_id` int(11) NOT NULL,
  `author_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `library_id` (`library_id`),
  KEY `author_id` (`author_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- sample data for library authors
INSERT INTO `al_libraryauthors` (`id`, `library_id`, `author_id`) VALUES
(1, 1, 1); -- button > alexander


-- tags are content and context describers and can be specified by simple text in the backend
-- mandatory fields: tag text
DROP TABLE IF EXISTS `al_tags`;
CREATE TABLE IF NOT EXISTS `al_tags` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tag` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

-- sample data for tags
INSERT INTO `al_tags` (`id`, `tag`) VALUES
(1, 'button'),
(2, 'switch'),
(3, 'state'),
(4, 'press');



-- libraries and tags are linked together by this table
-- mandatory fields: library_id, tag_id
DROP TABLE IF EXISTS `al_librarytags`;
CREATE TABLE IF NOT EXISTS `al_librarytags` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `library_id` int(11) NOT NULL,
  `tag_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `library_id` (`library_id`),
  KEY `tag_id` (`tag_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

-- sample data for library tags
INSERT INTO `al_librarytags` (`id`, `library_id`, `tag_id`) VALUES
(1, 1, 1), -- button > button
(2, 1, 2), -- button > switch
(3, 1, 3), -- button > state
(4, 1, 4); -- button > press



-- libraries and versions of that library are linked toghether by this table
-- mandatory fields: library_id, major minor micro verion (1.4.3), url (optional description for changelogs etc)
DROP TABLE IF EXISTS `al_libraryversions`;
CREATE TABLE IF NOT EXISTS `al_libraryversions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `library_id` int(11) NOT NULL,
  `v_major` int(11) NOT NULL,
  `v_minor` int(11) NOT NULL,
  `v_micro` int(11) NOT NULL,
  `url` varchar(64) NOT NULL,
  `description` text,
  `score` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `library_id` (`library_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- sample data for a library version
INSERT INTO `al_libraryversions` (`id`, `library_id`, `v_major`, `v_minor`, `v_micro`, `url`, `description`, `score`) VALUES
(1, 1, 1, 6, 0, 'http://www.arduino.cc/playground/uploads/Code/Button.zip', 'Added uniquePress():bool\r\nAdded stateChanged():bool\r\nAdded wasPressed():bool\r\nConstructor that only requires a buttonPin. Presumes PULLDOWN', NULL);

I've not implemented anything regarding the 'tested on Arduino IDE 0021 with the UNO' feature. Is this necessary?
Logged

Norway@Oslo
Offline Offline
Edison Member
*
Karma: 12
Posts: 2033
loveArduino(true);
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

http://www.arduinolibraries.net/

Add Library is now implemented. For now the user is set to Alpha Tester and everything that is created now will be deleted.
Test it if you want!

The next iteration, I will implement an add author feature (the author that is logged in at the time of creation is the default author, this is set to Alpha Tester now but will require a login at a later point).
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 36
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hi. looks nice already.
Just one thing.
Please don't write the E-Mail addresses down in plain text everywhere.

Just don't want do get Spam from Spambots. smiley-wink

When you finished writing the XML from the page just tell me the URL and i will insert it into the application.

Most important stuff is already working in the application with the test XML from you.
After that we can build in the search into the application.

Logged

Pages: 1 2 [3]   Go Up
Jump to: