Page 2 of 14 FirstFirst
1
2
3
4
12
... LastLast
  1. #21
    Pit Lord Moosie's Avatar
    Join Date
    Jun 2011
    Location
    England
    Posts
    2,320
    I can't say I've ever used a site for learning, I prefer the old method of picking up a book and reading it, just my style. I loose focus when i'm online.

    That said, I use abebooks.com abebooks.co.uk.. I picked up some mega cheap php books (currently learning it).

  2. #22
    Quote Originally Posted by Synthaxx View Post
    Updated OP with almost all links people have suggested. I didn't add "The New Boston" simply because it seems rather varied on what it covers with the first thing I saw being something about wildlife.
    There's about 400 or so videos on programming (in varied popular languages), but the creator has started branching out beyond computer sciences. For what it's worth, I think the programming tutorials are pretty worthwhile and great for a first timer (it's what I've been using as an online resource).

  3. #23
    Quote Originally Posted by razorback07 View Post
    I can't say I've ever used a site for learning, I prefer the old method of picking up a book and reading it, just my style. I loose focus when i'm online.

    That said, I use abebooks.com abebooks.co.uk.. I picked up some mega cheap php books (currently learning it).
    http://www.safaribooksonline.com/
    Its more of a portal to every major tech publisher; but it gives a nice area where you can find a book and then look elsewhere to find it cheap.

  4. #24
    Updated the OP with some more links you guys posted. I'll have a better look at the books pages again and probably add them after that. I should have added that if people want to showcase projects they've made, that's welcome. I'll be making space in the original post to show any that people post. I won't be posting mine up right away out of respect for this being a general discussion (and education) thread, but if others decide they want them showcased, then I'll go ahead and start making room for them. I'm thinking that if we show what's possible, it might interest others into investigating it, and might even put to rest the age old "but you can't do X in Y language!" discussions.

    Related, I just finished up another project in Delphi with the Firemonkey framework. It's called Atom, and it's a simple audio player. It's got the basics such as playlist and playing audio, but it's also got song identification technology in it (thanks to the Echonest API).



    As you can see, it's got a unique design. Red bar is the volume control, and a blue bar that goes around the inside circles shows song position. Drag and drop is the only way to add songs right now, and on Windows 8, you've got to avoid running it as Administrator. This is a security choice made by Microsoft (i.e. you can't drag and drop files onto an application if it's running at a different privilege level) and not something that I've got the power to change.

    It's still got a few issues, but those will be fixed up in due time. The center button (with the magnifying glass) is the song ID button. Clicking that records 20 seconds of the song, compresses it down to <200KB, sends it off to Echonest, and get's the result 5-10 seconds later. This is all done with a single click. There's an indicator to show this process as well as an in-application 'overlay' that shows the song artist and title once available. The other button you see on the left of it is track repeat. By default, it repeats the playlist until you click stop. With track repeat active, it repeats just the current track. There was a shuffle button, but it wasn't working out as I'd hoped so I disabled it before release.

    The biggest hassle for this was adding controls for volume and song position. See, there's 2 invisible controls there that are typically used for selecting an angle (0-359). Problem is that their 'hitbox' is a square. Sizing them up to work perfectly with each other was a real bind because at the corners of those squares, it could interfere with control. There's also some math involved in calculating the current angle and pitching it as a volume/song position. The math is actually
    For values below 0 degrees; (Control Max Value / 360) * (-Control Current Value + 0)
    For values 0 to 180 degrees; (Control Max Value / 360) * (-Control Current Value + 360)

    The minus sign at the beginning of the second part of the equation basically takes the positive angle and makes it the negative equivalent (e.g. 180 becomes -180). I'm not sure why I did this, think it was something along the lines of anything above 180 causing it to stop at 180 regardless (and thus stop at 50% volume/song position). If it was on a straight trackbar, then this issue wouldn't have cropped up. Dealing with a control that's not meant to be used in this way meant I had to think outside the box. In the end though, I got the design and functionality of it down. It's not perfect (e.g. it's possible to go beyond 100 and it'll reset back to 0), but it's good enough for most use. Just to make sure that you could get exactly 100%, scroll up and scroll down on the mousewheel allows finetuning. It also stop if it goes beyond 100% or below 0% instead of going to the other end of the scale.

    A lot of the code used was related to the playlist. Let me tell you, making a functioning playlist is not the easiest task in the world. Compared to working with Echonest, getting the playlist functioning properly was a pain in the ass. Long story short, it mostly works, but there might be a few issues with it. If there's errors, they're not critical, it does just mean you'll probably have to manually skip to the next song.

    One of the biggest issues right now is it's not possible to reorganize the playlist. I'm aiming to fix that up in a future version.
    Last edited by Chronalis; 2013-01-27 at 05:11 PM.

  5. #25
    Pit Lord Iamanerd's Avatar
    Join Date
    Jul 2011
    Location
    Connecticut, USA
    Posts
    2,325
    Wow Synthaxx your Atom program looks really good! I love the UI you chose, its got a very "slick" feel to it. I must say it's a job well done sir! I'd love to try making a Music player myself but I don't think I'm quite ready for that yet, I might be able to pull it off in Java or even C# but I want to do it in C++ haha. But that UI design is top-notch!
    Intel I7-5930K @ 4.5GHz | H100i GTX | Asus X99-A | 32GB Corsair Vengeance 2400MHz
    Intel 750 PCIe 400GB SSD | Samsung 840 EVO 500GB/1TB | 512GB MX100 | 1TB WD Black x2 | 2TB WD Black |3TB WD Green NAS x2
    EVGA 980Ti ACX2.0+ SC+ | EVGA 850W | NXZT H440 NEW | Dell U3415W | Razor Naga Molten Edition | CM Quick Fire Rapid TK
    Schiit Asgard 2 | Schiit Modi 2 Uber | Presonus E5 x2 | Beyerdynamic DT990's 600 Ohm

  6. #26
    Fluffy Kitten Badpaladin's Avatar
    Join Date
    May 2010
    Location
    oregon
    Posts
    11,094
    Since I'm still relatively new to C++, I'm still in the process of learning some of the stuff you can do with it (who isn't?). Here's a fun little thing you can do:

    Code:
    TYPE Func1(/* parameters */)
    {
       /* Func1 Stuff */
    }
    
    TYPE Func2(/* parameters */)
    {
       /* Func1 Stuff */
    }
    
    struct Instance {
       typedef TYPE (*SomeFunc)(TYPE);
    
       SomeFunc TheFunc;
       TYPE someData
    
       TYPE InstanceFunc(/* Parameters */)
       {
          stuff = TheFunc(someData);
    	  
          /* OtherFunc stuff */
    
          return theStuffToReturn;
       }
    };
    
    /* ... */
    
    Instance instanceList[] = {
       {Func1, dataToPassIn},
       {Func2, dataToPassIn},
    };
    
    /* ... 
    
       The following is inside some other function
    */
    
    
    TYPE somedata;
    
    for (int index = 0; index < ARRAY_COUNT(instanceList); index++) {
       Instance &theInstance = intanceList[index];
       TYPE coolStuff = theInstance.InstanceFunc(someData);
       
       /* do more cool stuff */
    }
    Pretty neat stuff. Dunno how useful it would be, but it's still kinda fun and shows off some of the cool stuff C++ can do. Makes you appreciate statements like "it takes a long time to master C++"
    My Short Required Reading List: One. Two. || Last.fm

  7. #27
    Quote Originally Posted by Iamanerd View Post
    Wow Synthaxx your Atom program looks really good! I love the UI you chose, its got a very "slick" feel to it. I must say it's a job well done sir! I'd love to try making a Music player myself but I don't think I'm quite ready for that yet, I might be able to pull it off in Java or even C# but I want to do it in C++ haha. But that UI design is top-notch!
    Thanks. I actually got the idea from a UI control I saw a few weeks ago; http://dribbble.com/shots/403299-Ui-stuff

    The one on the right was what I was interested in and originally intended to just make something that looked identical just as a progress bar design. That's actually what it was originally, just instead of having the notches, it was a round arc (like the volume control in Atom) and had text in the center. Literally, the moment I saw that page, I wanted to make something out of it.

    I've never used sites like that to get ideas before, but looking through their entire GUI tags section has given me some more ideas lately (http://dribbble.com/tags/gui). Most of it is aimed at mobile and web, but I can translate much of it into desktop software.

    Music players aren't actually that difficult with regards to the basics. Most languages have a media player component of some sort (and you should be able to import the Windows Media ActiveX control otherwise). It's usually just Open File > Play, and using a trackbar's value property to show the songs position (usually exposed through something like MediaPlayer1.Media.CurrentPosition). I'd actually say it's good as a mid-starter project (i.e. halfway between completely new and intermediate). It's definitely something I'm considering doing as a basic project if/when I move over to C++.

  8. #28
    Pit Lord Iamanerd's Avatar
    Join Date
    Jul 2011
    Location
    Connecticut, USA
    Posts
    2,325
    Quote Originally Posted by Synthaxx View Post
    Thanks. I actually got the idea from a UI control I saw a few weeks ago; http://dribbble.com/shots/403299-Ui-stuff

    The one on the right was what I was interested in and originally intended to just make something that looked identical just as a progress bar design. That's actually what it was originally, just instead of having the notches, it was a round arc (like the volume control in Atom) and had text in the center. Literally, the moment I saw that page, I wanted to make something out of it.

    I've never used sites like that to get ideas before, but looking through their entire GUI tags section has given me some more ideas lately (http://dribbble.com/tags/gui). Most of it is aimed at mobile and web, but I can translate much of it into desktop software.

    Music players aren't actually that difficult with regards to the basics. Most languages have a media player component of some sort (and you should be able to import the Windows Media ActiveX control otherwise). It's usually just Open File > Play, and using a trackbar's value property to show the songs position (usually exposed through something like MediaPlayer1.Media.CurrentPosition). I'd actually say it's good as a mid-starter project (i.e. halfway between completely new and intermediate). It's definitely something I'm considering doing as a basic project if/when I move over to C++.
    Yeah that's true, I could basically create a basic one the just reads in the users selected mp3 file. Then have the play/pause and a progress bar that measures where the song is, and show the song name up top. But for a good GUI design well that'll take me a bit but I'm going to try it out in C++ and I'll do one in Java for the hell of it. Also thanks for that site it has some really good ideas for GUI design and it's definitely something I have trouble coming up with on my own for a good looking deisgn.
    Intel I7-5930K @ 4.5GHz | H100i GTX | Asus X99-A | 32GB Corsair Vengeance 2400MHz
    Intel 750 PCIe 400GB SSD | Samsung 840 EVO 500GB/1TB | 512GB MX100 | 1TB WD Black x2 | 2TB WD Black |3TB WD Green NAS x2
    EVGA 980Ti ACX2.0+ SC+ | EVGA 850W | NXZT H440 NEW | Dell U3415W | Razor Naga Molten Edition | CM Quick Fire Rapid TK
    Schiit Asgard 2 | Schiit Modi 2 Uber | Presonus E5 x2 | Beyerdynamic DT990's 600 Ohm

  9. #29
    I'm not sure if this is of use to anyone, but I figure it's worth putting out there just in case. It's mostly math based, but it's useful for plotting coordinates on a map. It's also extremely simple. I really struggled to find a short and simple explanation for it. I didn't need absolute precision or anything to deal with real world map sizes, just something very rough and calculated using pixels.

    The challenge I came up against tonight was plotting coordinates on an out of scale map. The map is a basic one of the world, but without the Arctic or Antarctic (so just the main continents really).

    The map's dimensions are 1400x749.
    The world coordinate point (0,0) is at pixel (564,416).
    The map scale is (x4.07, x5.43) as it needs to scale to fit the UI (see bottom for how scales were calculated).

    I thought it'd be a hassle to plot coordinates on such a map. I spent 4 hours going through potential solutions, with none of them working. After some time, I started to look into advanced maths. The problem with this was that it was just too complex for my needs. I mean, after all, these plotted points are fairly large in terms of scale, so it only needs to be roughly equivalent. The actual math involved turned out to be fairly simple in the end;

    Longitude to X: Point_Zero_Long + (Longitude * X_Scale)
    Latitude to X: Point_Zero_Lat - (Latitude * Y_Scale)

    To put that into the values I provided above;
    Longitude to X: 564 + (Longitude * 4.07)
    Latitude to X: 416 - (Latitude * 5.43)

    Longitude and Latitude would be replaced with the relevant values. I had a small circle that I would move to the coordinates I specified. With this, I was able to plot several different locations from a list and the circle would move to the location. As said, it's not totally accurate, but it's close enough provided the scale of the dots are appropriate for the UI you're designing. In my case, one dot would cover most of central England. It's a user-friendly UI, so it's important for me to account for scale. The good thing about this is that it'd be possible to calculate the coordinates back from any point you click on the map with reversed math.

    Take note - Longitude calculation uses ADDITION while Latitude calculation uses SUBTRACTION.
    This is what initially screwed up my calculations. I'd tried both of them as +, and both as -, but it's important that you get it right. When I was using the incorrect signs, it'd be correct plotting for some coordinates, but then be on an entirely different continent for others.

    The scales were calculated based on some unique math associated with my map. In my case, the minimum latitude was -55, and the maximum was 83. That's a 138 range. The minimum longitude was -164, and the maximum was 180, thus a 344 range.
    1400 (map width) divide 344 (long. range) = 4.07 rounded.
    749 (map height) divide 138 (lat. range) = 5.43 rounded.

    The whole design of this does basically require you to have your map scale in a nonlinear way. In my case, it scales to fit the window even if it means the image becomes skewed or distorted. I calculated the actual appropropriate landmass, and decided to ignore the sea in the far south and north (hence why it's not range -90 to +90), as well as some of the sea on the far west (hence why min long. is -164 instead of -180). It's really just because it's for IP geolocation and as such it's highly unlikely there'll be a co-ordinate out at sea. Even if there is, the calculation doesn't give any min or max ranges, it just affects the scale.

    One thing to note; It'd be best to deal with absolute scales, rather than rounded scales, as the coordinates can be a little further out that you'd expect in some cases (especially negative latitude with positive longitude). It's still fairly close, but it's not as close as other coordinates are.

    If you're dealing with a UI of a specific size and don't have to worry about resizing, then it's not as much of a problem. As most people will deal with full maps as opposed to only landmass, simply replace long. range with 360, and lat. range with 180.

    If you're zooming in on a map, then that's a little more advanced, and you'd probably need to start dealing with more advanced calculations.
    Last edited by Chronalis; 2013-02-03 at 05:23 AM.

  10. #30
    Moderator -aiko-'s Avatar
    Join Date
    May 2010
    Location
    The House of All Worlds
    Posts
    8,161
    Quote Originally Posted by Hastings95 View Post
    Have any of you used Unity before?

    The "club" I'm in is using it to make a game, we've already made one already, and I was wondering if it was a decent engine to keep using.
    Unity is great! Especially Unity 4, it's been getting some really nice features - Mecanim has been really useful.
    The only issue I've heard of is difficulty with networking, but I don't think that's much of an issue. Not sure why you'd want to use Unity for network multiplayer. :s Oh, source control is an issue I suppose. The Unity Asset server license costs like $600 or something and requires Unity Pro ($1500). Lucky for me I'm working alone.

  11. #31
    Warchief Prixie's Avatar
    Join Date
    Nov 2010
    Location
    Oostende, Belgium
    Posts
    2,024
    Aside from all the big languages mentioned here in the thread; in my school they taught us VB.Net.
    It's actually a pretty good language to start with, really easy to understand and work with. It also has quite a lot of tutorials and code samples online to work with.
    If I recall correctly, the Curse Client also uses .Net, so it's a great example to see what it's worth.

    Learning VB.Net, it's really easy to swap over to C#.
    \\ My signature got removed because it was 21,12 Kb over the limitation \\

  12. #32
    Quote Originally Posted by Hastings95 View Post
    Aye, we used the trial version, so it was good enough for our purposes (which was a small 1v1 pvp game with both players on the same computer. Also the first game our group made).

    It's still in beta, since we plan to get it able to be played over the internet, and want to finish up one of the classes, but close to being done.

    We've also got a second game in the works, an RPG this time. Not much information on it at this time, we have a website, but it's currently offline, we have the money, but our web guy has stopped being reliable.


    Side note, this thread has been un-stickied for some reason, any info why?
    Is there any chance for you to give us a preview or access to the beta? I'm curious to what the Unity engine and a dedicated group can do.

  13. #33
    Titan Frozenbeef's Avatar
    Join Date
    Aug 2009
    Location
    Uk - England
    Posts
    12,449
    Do any programmers actually use UML to design their programs? -.- Learning it this year and it seems like it's just an extra burden to have on your mind when trying to think/ make the program work >.<

  14. #34
    Quote Originally Posted by Frozenbeef View Post
    Do any programmers actually use UML to design their programs? -.- Learning it this year and it seems like it's just an extra burden to have on your mind when trying to think/ make the program work >.<
    UML is mainly used as a first rough guideline, something as a go-between for the customer's needs analysis and the first build of the program. however, you don't need to keep your UML diagram updated throughout the dev process. and there are devs that don't use UML at all. it can be useful to get a vague idea of how your project should interact, but it's not a mandatory step. you'll always notice that you'll need helper classes and interfaces for similar classes, amongst other things. and UML can only do so much for most of these.
    Currently only reading the Funny Pictures Megathread because the rest of the forums is filled with piss, whiners and pissed whiners.

  15. #35
    Old God Kujako's Avatar
    Join Date
    Oct 2009
    Location
    In the woods, doing what bears do.
    Posts
    10,760
    These days, I tend to work in god awful languages such as Lotus Script (domino) and APEX (sales force). But its what they pay me to do so...
    It is by caffeine alone I set my mind in motion. It is by the beans of Java that thoughts acquire speed, the hands acquire shakes, the shakes become a warning.

    -Kujako-

  16. #36
    Pandaren Monk
    Join Date
    Jul 2010
    Location
    Ireland
    Posts
    1,828
    Quote Originally Posted by Frozenbeef View Post
    Do any programmers actually use UML to design their programs? -.- Learning it this year and it seems like it's just an extra burden to have on your mind when trying to think/ make the program work >.<
    Nope, learned it last year as well and we were even told by lectures when chatting to them, that its a waste of time, but only helps in showing how important planning is in the long run.

  17. #37
    Quote Originally Posted by Frozenbeef View Post
    Do any programmers actually use UML to design their programs? -.- Learning it this year and it seems like it's just an extra burden to have on your mind when trying to think/ make the program work >.<
    I thought it was handy to have a plan, to help me channel my thoughts... Though it can always change in programming, especially if you think of something new, or need a new subroutine or have found a way how to make your program more efficient.
    Kuroiwolf - 90 Brewmaster Monk
    Youtube Account Twitch TV
    Computer: Intel I7-3770k @ 4.5GHz | 16GB 1600MHz DDR3 RAM | AMD 7970 GHz @ 1200/1600 | ASUS Z77-V PRO Mobo|

  18. #38
    Warchief chaosjones's Avatar
    Join Date
    Feb 2012
    Location
    Old Tristam
    Posts
    2,051
    Quote Originally Posted by Synthaxx View Post
    snip
    Awesome looking but sadly it can not play flv files

    Active Wow Player | Inactive D3 Player | Inactive Eve Player | Inactive Wot Player | Scrub Openraid Raid Leader| Eve Gametime | Youtube / Twitter

  19. #39
    Moderator -aiko-'s Avatar
    Join Date
    May 2010
    Location
    The House of All Worlds
    Posts
    8,161
    Quote Originally Posted by Hastings95 View Post
    Aye, we used the trial version, so it was good enough for our purposes (which was a small 1v1 pvp game with both players on the same computer. Also the first game our group made).
    Do you think you guys would keep it or any other projects open source? I'd love to see more multiplayer (local or otherwise) working in action with Unity.

  20. #40
    This pretty much explains the past 24 hours for me;
    - 1) Go through over 50 pages of resources trying to find a simple example of working with a new JSON component
    - 2) Get to the point of thinking "FUCK CROSSPLATFORM!"
    - 3) Put together a solution that works, but is 40 lines long and creates error messages about typecasting
    - 4) Realise that the actual solution is 16 lines long

    Originally, in the Windows-only version of the component, it was 2-3 lines to parse a value out of JSON, and thus it was easy to run in a loop. With the crossplatform version (which is a different component entirely), there were almost no simple examples of how to work with it available. End result was asking StackOverflow about it, and getting an answer that's straight to the point (albeit having to do some modifications to finish up the work).

    Moral of the story? I thought I'd hate crossplatform, but it actually taught me some new best practices and reduced my reliance on third-party components to almost zero.

    At the same time though, I did finally get around to learning threads. I've always used a component for it that meant I write 2 lines of code and let it handle the threading, but it was only Windows compatible. Now, I got around to writing my own threading class that's crossplatform. I dare say with a bit of work, I could make it into a reusable library, but being it's only 44 lines long and works flawlessly, I'm not sure it's worth the hassle. All it'd do is make adding custom code a little easier (rather than hard-copying it to every project and adapting the execution code).

    Quote Originally Posted by Frozenbeef View Post
    Do any programmers actually use UML to design their programs? -.- Learning it this year and it seems like it's just an extra burden to have on your mind when trying to think/ make the program work >.<
    I've tried to use UML before, but it's honestly just an extra step that's a hassle. For me, I'd rather design the UI, then focus on getting the UX right, and then go with the code, sorta build it from what I'm actually going to be working with and what the users are going to see. Having to draw up a plan layout for it as well would just kill any creativity or drive I have for a project. Might be essential if you're collaborating with other devs, but going solo I don't think I'll ever find a use for it. I did actually try to get used to it in a few projects, but it's just not something that I feel I need.

    Quote Originally Posted by chaosjones View Post
    Awesome looking but sadly it can not play flv files
    Yeah, unfortunately, it's limited to the basic audio formats such as MP3, WMA and WAV at the moment. Might be able to fix it in future, but it'd be down to gutting the core of the code that handles audio. It's possible for me to add custom codecs without killing the code, but there's absolutely no documentation on how to do so.

    Quote Originally Posted by Kujako View Post
    These days, I tend to work in god awful languages such as Lotus Script (domino) and APEX (sales force). But its what they pay me to do so...
    APEX looks very similar to C++, and Lotus is essential VB. Surely it's not that bad considering C++ is a very useful language (even if VB is relatively old)?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •