|
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. |
$str = explode(' ', $attributes);
foreach ($str as $string) { if (strstr($string, 'something')) { $service = explode('something', $string); } }
return substr($service[1], 0, -1);
I just love it when people write self-documenting code... It strikes the right strings.
|
So it just so happens I'm taking a microcontroller class this quarter using AVR and our professor had code that counted using a modulo operator like so:
if((count % 64) == 0) { //do something }
His reasoning for this was so that you could avoid resetting the counter back to 0 every time the loop executes. Is that right? You lose one line of code but you end up using modulo which is probably a super expensive computation in comparison to a simple equality check and reset.
|
On October 21 2015 03:39 Itsmedudeman wrote:So it just so happens I'm taking a microcontroller class this quarter using AVR and our professor had code that counted using a modulo operator like so: if((count % 64) == 0) { //do something }
His reasoning for this was so that you could avoid resetting the counter back to 0 every time the loop executes. Is that right? You lose one line of code but you end up using modulo which is probably a super expensive computation in comparison to a simple equality check and reset. Your compiler will (or at least should) turn a modulo of a (constant) power of 2 into a simple bitmask, which should be a lot faster than a conditional jump. In the general case modulo is slow though.
I suppose at microcontroller level this stuff might actually be relevant, but always remember that you should profile before you do something in the name of performance.
|
Basically my last week at work has been profiling stupid Bluetooth code, fml and f Bluetooth. The word profiling causes physical pain to me.

Going to take the hardest programming class at my university next term, real-time os or "trains" as we call it. A lot of embedded C :3 any tips for preparation? I feel like I should write some C utility libraries for linked lists and queues and unit tests.
|
I had a quick jquery question. I'm making my table and i'm appending rows and stuff.
$('.table').append("<tr><td>Non-white</td><td>'nMen'</td><td>'nWomen'</td><</tr>'");
nMen and nWomen are both variables but I dont know how to reference them so they show up as numbers and not as nMen and nWomen in the cell.
EDIT: Solved my own question
|
On October 21 2015 03:39 Itsmedudeman wrote:So it just so happens I'm taking a microcontroller class this quarter using AVR and our professor had code that counted using a modulo operator like so: if((count % 64) == 0) { //do something }
His reasoning for this was so that you could avoid resetting the counter back to 0 every time the loop executes. Is that right? You lose one line of code but you end up using modulo which is probably a super expensive computation in comparison to a simple equality check and reset.
It's properly a general rule he learned on a platform which had this feature. It might not be true in the general case.
In microcontrollers you sometimes do weird things. Today on several highly used platforms you should stay far away from switch statements and just use else if statements. It saves 40% power... Which is absurd to wrap ones head around but if you do a controlled test where you measure the used battery usage you will see that it is real..
|
On October 21 2015 16:23 windzor wrote: In microcontrollers you sometimes do weird things. Today on several highly used platforms you should stay far away from switch statements and just use else if statements. It saves 40% power... Which is absurd to wrap ones head around but if you do a controlled test where you measure the used battery usage you will see that it is real..
Why? Compiler bugs or something?
|
On October 22 2015 00:19 netherh wrote:Show nested quote +On October 21 2015 16:23 windzor wrote: In microcontrollers you sometimes do weird things. Today on several highly used platforms you should stay far away from switch statements and just use else if statements. It saves 40% power... Which is absurd to wrap ones head around but if you do a controlled test where you measure the used battery usage you will see that it is real.. Why? Compiler bugs or something?
I guess it depends on the language (for microcontrollers it'll most likely be C) and its switch statement implementation.
Anyway, I don't think there should be that much difference. The compiler should turn if/elseif ladders into switches (jump tables) and vice versa if that would work better.
Here's some interesting reading on it (albeit a bit dated): http://embeddedgurus.com/stack-overflow/2010/04/efficient-c-tip-12-be-wary-of-switch-statements/
It seems that with switch statements you get good average performance but its best performance is worse than if-else and you can't optimize it (like you can if-else by evaluating the most common thing first).
|
|
+ Show Spoiler + private void buttonStart_Click(object sender, EventArgs e) { int principal = 1000; double rate = 0.05; int count = 1;
while (count <= 5){ string someString = (Math.Round(principal * (Math.Pow(1 + rate, count)))).ToString(); listBoxOutputs.Items.Add(someString); count = count + 1; } }
This is C#, how do I apply Math.Round() here to have 2 points after the decimal?
Google tells me that it should work like a=1.333 Math.Round(a,2) = 1.33
In my example, where do I put that 2?
|
On October 24 2015 04:29 Thaniri wrote:+ Show Spoiler + private void buttonStart_Click(object sender, EventArgs e) { int principal = 1000; double rate = 0.05; int count = 1;
while (count <= 5){ string someString = (Math.Round(principal * (Math.Pow(1 + rate, count)))).ToString(); listBoxOutputs.Items.Add(someString); count = count + 1; } }
This is C#, how do I apply Math.Round() here to have 2 points after the decimal? Google tells me that it should work like a=1.333 Math.Round(a,2) = 1.33 In my example, where do I put that 2?
Assuming your explanation is correct (don't have C# running on my machine to verify this), you'll want a ", 2" after the second close paren on that line. Something like this:
string someString = (Math.Round(principal * (Math.Pow(1 + rate, count)), 2)).ToString();
It's exactly the same as the example, except a is replaced with some expression whose value you're interested in printing.
|
It works, I have no idea why the 2 would be there and not one parenth left.
|
On October 24 2015 06:00 Thaniri wrote: It works, I have no idea why the 2 would be there and not one parenth left.
var a = principal * Math.Pow(1 + rate, count); string someString = Math.Round(a, 2).ToString();
Is it clearer now?
|
Ah the separation helped a lot, thank-you to both of you.
|
Hello everyone. Thank you OP for making this thread and sharing the other posts on the first post about learning C first and stuff. I'd like to participate in this thread and learn more about programming. My issue is not learning the language as syntax or how things work in the stack or windows API or other stuff, but not finding anything to practice this learning process on. My imagination is closer to -9000. So I can't really come up with some ideas to make software and practice my learning on it.
My work field as an administrator does not give me problems to be solved by using stuff like "memory optimizing" and other stuff I'd like to see like testing performance on certain programs.
I'd love if anyone can point me where I can find "ideas" on programs to develop even if they were already developed. The goal here is not commercial to sell. But a practice area, out of college homeworks and projects. I never got anything to practice my knowledge on.
Thanks.
|
Hyrule18969 Posts
What I do is find something that I use and try to copy it. Battle.net bots are where I started, but anything will do really: IRC clients, websites, basic games (connect four or something), whatever.
|
My girlfriend expressed an interest in learning to code (from absolutele zero), so I pointed her towards codecombat.com as a fun way to start. It is aimed at kids, but it looks pretty decent. Opinions?
|
|
On October 25 2015 01:01 Nesserev wrote:Show nested quote +On October 24 2015 17:35 WrathSCII wrote: Hello everyone. Thank you OP for making this thread and sharing the other posts on the first post about learning C first and stuff. I'd like to participate in this thread and learn more about programming. My issue is not learning the language as syntax or how things work in the stack or windows API or other stuff, but not finding anything to practice this learning process on. My imagination is closer to -9000. So I can't really come up with some ideas to make software and practice my learning on it.
My work field as an administrator does not give me problems to be solved by using stuff like "memory optimizing" and other stuff I'd like to see like testing performance on certain programs.
I'd love if anyone can point me where I can find "ideas" on programs to develop even if they were already developed. The goal here is not commercial to sell. But a practice area, out of college homeworks and projects. I never got anything to practice my knowledge on.
Thanks. Well, there's always Project Euler if small coding problems interests you: https://projecteuler.net/If you're interested in larger projects, you could do the following: - When you use particular libraries, but find that they could be improved or they're not being supported/maintained anymore, feel free to contact the author(s) of that library and reach out a hand. - Have you ever joined an AI contest, or any type of coding contest? Do you have a personal website with portfolio projects? Interested in pentesting and hacking? - Also, maybe you can't think of anything to do, because your knowledge or field of attention is limited to certain areas. It might be a good idea to delve into fields that you've never delved into...
Thank you very much for sharing about projecteuler. I'll definitely check it out! For now I'm only interested in smaller projects to strength my knowledge in the language and in certain parts of "things" like optimizing memory and strengthening my thinking and develop some background on things.
I have interest in emulator projects. I tried to get into one of them and talked with some of the developers there. They were really nice guys and willing to help. But the gap was just way too huge for me to fit in. I had to ask for many many things and I did not like that, even if they were always willing to answer any question no matter how trivial it was, I just couldn't keep asking.
It was not a syntax issue. It was more of a background issue on many topics like graphics / memory / system calls / and many other things that I have absolutely 0 knowledge about. So small projects that have defined goals would be the best for me.
About your questions, I never joined an AI contest or any type of coding contest before nor I have a website and I have no projects I have worked on. For now I need to "practice" my knowledge and upgrade it with experience. Since I have nearly zero experience(Who am I kidding I literally have zero experience). I need to work on that, for now, small projects would be perfect for me.
Although I am interested pentesting and hacking, it is still way too early for someone with my current experience 
Thank you again for replying to my post!
|
My tip would be don't be afraid to try and take on something a bit bigger than something you think you can handle. If you only do practice problems that you already know all that teaches you is memorization skills. When you work on a harder project you can learn so much more by being forced to branch out of your comfort zone and learn things you can't learn from a textbook by encountering your own unique problems and problem solving your way through them with whatever resource available.
|
|
|
|