|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On July 06 2012 06:03 teamamerica wrote: Hey peoples, I was wondering if anyone had any recommendations as to the fastest way to parse html from the web. The background is that it's summer and between work and sc2, I still have some free time so figured I'd try my hand at developing a opensource android application for the website captionfish (as right now it doesn't have one and I need to use it pretty often, even though I might end up being the only one to ever use the app ^^). Although it'd be nice to have a ton of features, my first concern is the speed of parsing the data and displaying it. Basically it's parsing the HTML for certain elements.
My question could be completely off base but I think that's what I need to do at least, since I've never attempted a project like this.
Should I: use HTMLParser use HTMLCleaner use Androids built in document/XPath use lxml (some python parser that wraps C libraries) and figure out how to use this through JNI something else?
or: stop being a lazy bum, try all options, and report back (not keen on trying the lxml cause that'd mean figuring out how to use JNI, although I have some old class project that I can look back on so not too terrible I guess).
>use Androids built in document/XPath
Sounds like the smartest choice, but since you haven't seen any implementations close to this, I would start researching close implementations rather than designing your own.
|
On July 06 2012 06:39 RoyGBiv_13 wrote:Show nested quote +On July 06 2012 06:03 teamamerica wrote: Hey peoples, I was wondering if anyone had any recommendations as to the fastest way to parse html from the web. The background is that it's summer and between work and sc2, I still have some free time so figured I'd try my hand at developing a opensource android application for the website captionfish (as right now it doesn't have one and I need to use it pretty often, even though I might end up being the only one to ever use the app ^^). Although it'd be nice to have a ton of features, my first concern is the speed of parsing the data and displaying it. Basically it's parsing the HTML for certain elements.
My question could be completely off base but I think that's what I need to do at least, since I've never attempted a project like this.
Should I: use HTMLParser use HTMLCleaner use Androids built in document/XPath use lxml (some python parser that wraps C libraries) and figure out how to use this through JNI something else?
or: stop being a lazy bum, try all options, and report back (not keen on trying the lxml cause that'd mean figuring out how to use JNI, although I have some old class project that I can look back on so not too terrible I guess). >use Androids built in document/XPath Sounds like the smartest choice, but since you haven't seen any implementations close to this, I would start researching close implementations rather than designing your own.
The thing about HTML on the web is that it's not XML and can't be parsed like XML. Even sites that claim to be xhtml are often not xml because of lazy web designers. That means that xml libraries usually won't work.
Use a library that is specifically designed for HTML and is tolerant to faulty HTML. I don't know HTMLParser but it sounds like your best bet.
|
On July 06 2012 06:52 Morfildur wrote:Show nested quote +On July 06 2012 06:39 RoyGBiv_13 wrote:On July 06 2012 06:03 teamamerica wrote: Hey peoples, I was wondering if anyone had any recommendations as to the fastest way to parse html from the web. The background is that it's summer and between work and sc2, I still have some free time so figured I'd try my hand at developing a opensource android application for the website captionfish (as right now it doesn't have one and I need to use it pretty often, even though I might end up being the only one to ever use the app ^^). Although it'd be nice to have a ton of features, my first concern is the speed of parsing the data and displaying it. Basically it's parsing the HTML for certain elements.
My question could be completely off base but I think that's what I need to do at least, since I've never attempted a project like this.
Should I: use HTMLParser use HTMLCleaner use Androids built in document/XPath use lxml (some python parser that wraps C libraries) and figure out how to use this through JNI something else?
or: stop being a lazy bum, try all options, and report back (not keen on trying the lxml cause that'd mean figuring out how to use JNI, although I have some old class project that I can look back on so not too terrible I guess). >use Androids built in document/XPath Sounds like the smartest choice, but since you haven't seen any implementations close to this, I would start researching close implementations rather than designing your own. The thing about HTML on the web is that it's not XML and can't be parsed like XML. Even sites that claim to be xhtml are often not xml because of lazy web designers. That means that xml libraries usually won't work. Use a library that is specifically designed for HTML and is tolerant to faulty HTML. I don't know HTMLParser but it sounds like your best bet.
They're all designed around parsing HTML. I was just curious if anyone had exp. with them. For reference, I find the TL-android-app a bit slow (compared to the browswer) although I'm not sure if the bottleneck is in getting or displaying the data. It uses html-cleaner.
|
On July 06 2012 07:27 teamamerica wrote:Show nested quote +On July 06 2012 06:52 Morfildur wrote:On July 06 2012 06:39 RoyGBiv_13 wrote:On July 06 2012 06:03 teamamerica wrote: Hey peoples, I was wondering if anyone had any recommendations as to the fastest way to parse html from the web. The background is that it's summer and between work and sc2, I still have some free time so figured I'd try my hand at developing a opensource android application for the website captionfish (as right now it doesn't have one and I need to use it pretty often, even though I might end up being the only one to ever use the app ^^). Although it'd be nice to have a ton of features, my first concern is the speed of parsing the data and displaying it. Basically it's parsing the HTML for certain elements.
My question could be completely off base but I think that's what I need to do at least, since I've never attempted a project like this.
Should I: use HTMLParser use HTMLCleaner use Androids built in document/XPath use lxml (some python parser that wraps C libraries) and figure out how to use this through JNI something else?
or: stop being a lazy bum, try all options, and report back (not keen on trying the lxml cause that'd mean figuring out how to use JNI, although I have some old class project that I can look back on so not too terrible I guess). >use Androids built in document/XPath Sounds like the smartest choice, but since you haven't seen any implementations close to this, I would start researching close implementations rather than designing your own. The thing about HTML on the web is that it's not XML and can't be parsed like XML. Even sites that claim to be xhtml are often not xml because of lazy web designers. That means that xml libraries usually won't work. Use a library that is specifically designed for HTML and is tolerant to faulty HTML. I don't know HTMLParser but it sounds like your best bet. They're all designed around parsing HTML. I was just curious if anyone had exp. with them. For reference, I find the TL-android-app a bit slow (compared to the browswer) although I'm not sure if the bottleneck is in getting or displaying the data. It uses html-cleaner.
Generally, processors are fast enough now that parsing HTML is likely not going to be your bottleneck, assuming you're parsing and caching/memoizing parsed results intelligently.
|
Does anyone here have any experience in iOS development? Specifically, publishing an app to the iPhone store?
I do iPhone development for my company, but that's all in-house enterprise stuff that doesn't get published to the store, so this is a first time for me. I'm writing an app for a friend of mine and his business. The thing I'm concerned about is that I think if I publish it using my developer's license, it will have to be in my name, and not his company's name. Is that true? Should I recommend him to buy his own developer's license?
|
Hey everyone,
I am taking java classes for the summer and am having a hard time understanding the material. I know what certain code/syntax does but it seems like I choke when it really matters (example: exams, and sometimes homework assignments). I have been recently practicing on http://www.codingbat.com and was wondering if just doing problems is the best way?
How useful is Java for learning other programming languages? Also, I would appreciate any recommendations for books/videos. Thanks a lot!
|
On July 07 2012 08:21 SlowBullets wrote:Hey everyone, I am taking java classes for the summer and am having a hard time understanding the material. I know what certain code/syntax does but it seems like I choke when it really matters (example: exams, and sometimes homework assignments). I have been recently practicing on http://www.codingbat.com and was wondering if just doing problems is the best way? How useful is Java for learning other programming languages? Also, I would appreciate any recommendations for books/videos. Thanks a lot!
What are the exams like and what sort of things are you choking on? Java is commonly used as a starting language (don't necessarily agree with it, but it is). Most of the fundamentals from Java are going to carry over to most imperative programming languages (C#, C++, C, etc). Doing examples like those certainly is going to help as long as you are learning something and they aren't super easy for you. When I am learning a language, I will often make up my own super simple problems/experiments on the fly to make sure I understand the syntax and the behavior of features that I am not completely familiar with yet.
|
ok, this is kind of wierd, but its driving me crazy. its not really a programming question, but this is the only place i know where to get help from. i jsut started teaching myself java with eclipse (4.2.0) and i was making an applet with graphics. i had eclipse open, a folder open with the java source files and all that, and a folder where i was making my graphics. i alt-tabbed to adobe flash so i could make a new gif, and when i looked back at my source folder, all my files were missing. the java class files were still there, but all of my graphics were just gone. i had another folder inside the source folder with backups of my grpahics, but thats all gone too it blew my mind, and i have no idea where they went. my java program doesnt work anymore because the files are missing. i checked the recycle bin, and used the built-in search function in windows explorer, and i cant find them anywhere. im using windows 7.
is this an eclipse problem, a windows problem, or some kinda virus, and more importantly, how do i get them back??? i put a lotta work into those gifs and i really dont want to remake them from scratch T_T
|
On July 08 2012 23:45 snively wrote: ok, this is kind of wierd, but its driving me crazy. its not really a programming question, but this is the only place i know where to get help from. i jsut started teaching myself java with eclipse (4.2.0) and i was making an applet with graphics. i had eclipse open, a folder open with the java source files and all that, and a folder where i was making my graphics. i alt-tabbed to adobe flash so i could make a new gif, and when i looked back at my source folder, all my files were missing. the java class files were still there, but all of my graphics were just gone. i had another folder inside the source folder with backups of my grpahics, but thats all gone too it blew my mind, and i have no idea where they went. my java program doesnt work anymore because the files are missing. i checked the recycle bin, and used the built-in search function in windows explorer, and i cant find them anywhere. im using windows 7.
is this an eclipse problem, a windows problem, or some kinda virus, and more importantly, how do i get them back??? i put a lotta work into those gifs and i really dont want to remake them from scratch T_T That seems really weird but if in the future you want to avoid the same kind of thing I suggest you learn a version control system like git.
|
|
This site looks nice to toy around with git without any pressure. Back in the days I learnt git the hard way reading the ebook "Pro Git": http://git-scm.com/book.
Whatever you do, stop using SVN or even worse CVS. Once you are into Git you do not want to go back again. It is such a beautiful and powerful tool.
|
have you had a look at eclipses "restore from local history" feature? rightclick the parent folder of all your missing stuff and find it there. Maybe eclipse still has backup copies of your files.
the thing is, eclipse delete just does delete. It doesn't do the windows style "move to bin" instead of delete. A lot of applications actually do that. So your files will never go to your bin. So if you accidentally deleted something in eclipse, it's really gone, except for backup copies.
Best way still would be to use some kind of version control, or maybe even just dropbox which creates backup copies as well. But see if eclipse still has some backups with that restore from local history thing first.
|
On July 09 2012 00:54 MisterD wrote: have you had a look at eclipses "restore from local history" feature? rightclick the parent folder of all your missing stuff and find it there. Maybe eclipse still has backup copies of your files.
the thing is, eclipse delete just does delete. It doesn't do the windows style "move to bin" instead of delete. A lot of applications actually do that. So your files will never go to your bin. So if you accidentally deleted something in eclipse, it's really gone, except for backup copies.
Best way still would be to use some kind of version control, or maybe even just dropbox which creates backup copies as well. But see if eclipse still has some backups with that restore from local history thing first.
i tried this just now and it says "no deleted resources in local history for selected container"
as another note, i found out that all my other projects with non-java source files (graphics and such) have had their files removed too, so theres no way i accidentally deleted all of my graphics in all my folders.
ive given up on getting my files back, but id like to know what the heck hapenend in the first place T_T
thanks for the help
|
On July 09 2012 05:28 snively wrote:Show nested quote +On July 09 2012 00:54 MisterD wrote: have you had a look at eclipses "restore from local history" feature? rightclick the parent folder of all your missing stuff and find it there. Maybe eclipse still has backup copies of your files.
the thing is, eclipse delete just does delete. It doesn't do the windows style "move to bin" instead of delete. A lot of applications actually do that. So your files will never go to your bin. So if you accidentally deleted something in eclipse, it's really gone, except for backup copies.
Best way still would be to use some kind of version control, or maybe even just dropbox which creates backup copies as well. But see if eclipse still has some backups with that restore from local history thing first. i tried this just now and it says "no deleted resources in local history for selected container" as another note, i found out that all my other projects with non-java source files (graphics and such) have had their files removed too, so theres no way i accidentally deleted all of my graphics in all my folders. ive given up on getting my files back, but id like to know what the heck hapenend in the first place T_T thanks for the help have you browsed the workspace folders manually to see if the files are still there? and i mean just go and look, not windows search or something. sounds more like you accidentally enabled a resource filter in eclipse that just doesn't display anything other than java files anymore Oo
or did you store all your image resource files in the bin folder? i hope not.
|
I'm working on learning C and I made this simple number guessing game. I'm curious about the length of what I wrote and if it actually needs to tbe this long. I'm sure theres a way to compress it, maybe with functions, but im not quite there yet. I do want to know if this looks ok as far as clarity and use of functions goes. I know that scanf() is not a good choice but I'm still working on figuring out getchar() as an alternative, it still seems really abstract to me, its mostly just that that data types of confusing I think. I did manage to use getchar() and putchar() to spit out the ascii value of a character for me. SO basically i'm still a total noob but I'm having fun.
Here's my game 
+ Show Spoiler + #include <stdio.h> #include <stdlib.h>
/* Number Guessing game! */
int main(void) { int number; srand(time(NULL));
number = (rand() % 10) + 1;
int attempt; int guess; attempt = 0;
printf("I am thinking of a number between 1 and 10, you have 3 chances to guess it.\n");
for (attempt = 0; attempt < 3; attempt++){ scanf("%d", &guess);
if (guess == number){ printf("YES %d! congrats you guessed it!\n", number); break; }
if (guess < number){ if (attempt == 2){ printf("%d is too low\n", guess); } else{ printf("%d is too low, try again\n", guess); } } if (guess > number){ if (attempt == 2){ printf("%d is too high\n", guess); } else{ printf("%d is too high, try again\n", guess); } } } if (attempt == 3){ printf("the number was %d\nsorry you lose\n", number); } printf("thanks for playing!\n");
getchar(); getchar(); return 0; }
|
On July 09 2012 00:41 soiii wrote:This site looks nice to toy around with git without any pressure. Back in the days I learnt git the hard way reading the ebook "Pro Git": http://git-scm.com/book. Whatever you do, stop using SVN or even worse CVS. Once you are into Git you do not want to go back again. It is such a beautiful and powerful tool. My company just switched over to GIT from CVS and its been a great change. One of the issues with GIT that I've found is the lack of a relationship between a commit and a push. If someone has made 20 local commits and pushes it to my shared repo, there isn't an easy way to back out all of his changes except reverting each commit one by one.
|
On July 09 2012 13:00 Azerbaijan wrote:I'm working on learning C and I made this simple number guessing game. I'm curious about the length of what I wrote and if it actually needs to tbe this long. I'm sure theres a way to compress it, maybe with functions, but im not quite there yet. I do want to know if this looks ok as far as clarity and use of functions goes. I know that scanf() is not a good choice but I'm still working on figuring out getchar() as an alternative, it still seems really abstract to me, its mostly just that that data types of confusing I think. I did manage to use getchar() and putchar() to spit out the ascii value of a character for me. SO basically i'm still a total noob but I'm having fun. Here's my game + Show Spoiler + #include <stdio.h> #include <stdlib.h>
/* Number Guessing game! */
int main(void) { int number; srand(time(NULL));
number = (rand() % 10) + 1;
int attempt; int guess; attempt = 0;
printf("I am thinking of a number between 1 and 10, you have 3 chances to guess it.\n");
for (attempt = 0; attempt < 3; attempt++){ scanf("%d", &guess);
if (guess == number){ printf("YES %d! congrats you guessed it!\n", number); break; }
if (guess < number){ if (attempt == 2){ printf("%d is too low\n", guess); } else{ printf("%d is too low, try again\n", guess); } } if (guess > number){ if (attempt == 2){ printf("%d is too high\n", guess); } else{ printf("%d is too high, try again\n", guess); } } } if (attempt == 3){ printf("the number was %d\nsorry you lose\n", number); } printf("thanks for playing!\n");
getchar(); getchar(); return 0; }
The middle part can be shortened a lot by using extra variables. You can also initialize variables when you are defining them.
+ Show Spoiler + #include <stdio.h> #include <stdlib.h>
/* Number Guessing game! */
int main(void) { srand(time(NULL));
int number = (rand() % 10) + 1; char *lowhigh_text = 0; char *retry_text = 0; int attempt = 0; int guess = 0;
printf("I am thinking of a number between 1 and 10, you have 3 chances to guess it.\n");
for (attempt = 0; attempt < 3; attempt++){ scanf("%d", &guess);
if (guess == number){ printf("YES %d! congrats you guessed it!\n", number); break; }
lowhigh_text = (guess < number) ? "low" : "high"; retry_text = (attempt < 2) ? ", try again" : "";
printf("%d is too %s%s\n", guess, lowhigh_text, retry_text); } if (attempt == 3){ printf("the number was %d\nsorry you lose\n", number); } printf("thanks for playing!\n");
getchar(); getchar(); return 0; }
|
not a big fan of using ? for if statements
readability > conciseness imo :-)
|
On July 09 2012 16:22 opsayo wrote: not a big fan of using ? for if statements
readability > conciseness imo :-)
If you add whitespace, that single line is a lot more readable than
if (guess < number) { lowhigh_text = "low"; } else { lowhigh_text = "high"; }
It always depends on how it's used. With the ternary ?: operator, it's clear that the variable gets assigned either value. In the if/else case you have to check each block to check if it's really the same variable that gets assigned.
While maintaining and repairing some of our legacy code, I got caught several times by code like:
if (a == b) { temp = x; } else { tmp = y; }
|
On July 09 2012 05:28 snively wrote:Show nested quote +On July 09 2012 00:54 MisterD wrote: have you had a look at eclipses "restore from local history" feature? rightclick the parent folder of all your missing stuff and find it there. Maybe eclipse still has backup copies of your files.
the thing is, eclipse delete just does delete. It doesn't do the windows style "move to bin" instead of delete. A lot of applications actually do that. So your files will never go to your bin. So if you accidentally deleted something in eclipse, it's really gone, except for backup copies.
Best way still would be to use some kind of version control, or maybe even just dropbox which creates backup copies as well. But see if eclipse still has some backups with that restore from local history thing first. i tried this just now and it says "no deleted resources in local history for selected container" as another note, i found out that all my other projects with non-java source files (graphics and such) have had their files removed too, so theres no way i accidentally deleted all of my graphics in all my folders. ive given up on getting my files back, but id like to know what the heck hapenend in the first place T_T thanks for the help
You can use a file recovery tool such as http://www.piriform.com/recuva to attempt to recover some of the files. It will scan your hard drive for deleted files and allow you to restore them. The files may have been partially overwritten by other data if you've been adding new files to the hard drive after you lost your images (theoretically you could recover part of the image if this happens but I don't know if any tools exist to do so).
In the future you should use either a seperate external hard drive (which is not plugged in when it's not being used) or an online backup service for backups. Even a large capacity flash drive can be used to back up your most important files.
|
|
|
|