Slashdot Mirror


User: msclrhd

msclrhd's activity in the archive.

Stories
0
Comments
392
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 392

  1. Re:The difference between US and UK on British CS Majors Doing Badly In the Jobs Market · · Score: 3, Insightful

    After graduating, it took me a year to get a job. This wasn't due to a lack of technical expertise, or interest in programming as a hobby.

    One part of the problem was where 95% of the jobs were wanting 1+ years experience. What they didn't say is that they wanted commercial experience. With the remaining jobs, specialist fields were out (games, finance, etc.) as a result of lack of skills in that area.

    With the remaining jobs, it was a matter of sending the CV out to those jobs. I found early on that I needed to chase them, as they wouldn't respond if the application was rejected. It was then getting feedback, and honing and improving the CV.

    During that time, I participated in boost.org, learning about source control and implemented a simple application in my placement.

    Universities should have source code control and bug/defect trackers as part of their requirement. This will help students when they get a job.

    Also, Universities should help the students either get job placements during the summer holidays or to get them involved in Open Source projects. This would go a long way to showing experience and expertise. Also, the students should look at helping out answering questions on stackoverflow and the like. Then companies should be more receptive of this experience when considering applicants (especially since they can see the student's contributions).

  2. Case in point on US Patent Regime Is Absurd · · Score: 4, Insightful

    Let's look at two areas of technology: video quality and JavaScript performance.

    With video quality, the relevant technologies for modern techniques are patented. This means that competing products are of a poorer quality or are artificially restricted. The companies that hold the patents are less likely to innovate and build on their existing work (except to create more patents), so the state of the art gets held back and is slow to advance.

    Now with JavaScript performance, take a look at the competition between Chrome, Firefox, Safari, Opera and Internet Explorer. All these products are competing against each other without resorting to patents. The net result is that you end up with faster JavaScript on all products, allowing for more advanced and interactive websites to be used. It also makes the competitors (Firefox and Internet Explorer) to improve and advance as the other products compete for user share. The net result is that the users of all web browsers benefit and the technology advances rapidly.

    So which one is better for innovation?

  3. Re:What else is new. on HTC Infringed Apple Patents, Says ITC's Initial Determination · · Score: 2

    Copyright and patents are different things.

    You can copyright a particular work (be it a story, poem, song, film, function, class, application or something else) even if the underlying concepts have been around for ages -- for stories, film, tv and manga, just look at things like tv tropes. So you can copyright a particular implementation of an algorithm.

    Patents are for unique inventions (something that has not been done before, either in a different form (over the internet! on a mobile phone!) or in a research/math paper prior to filing for the patent) that are not obvious to a practitioner that are meant to give the patent holder a limited period of exclusivity for the invention in exchange for revealing the information about the invention.

  4. Re:The legal and patent system are broken. on Microsoft's Hottest New Profit Center: Android · · Score: 1

    It's racketeering plain and simple. See the Barns & Nobel case details.

    Microsoft (well, their lawyers) is going up to a company and:

    MS: Hey, I see you are using Android. Do you know you are infringing in our patents. You wouldn't want to get sued, would you?
    COMPANY: What patents?
    MS: We won't tell you unless you sign a non-disclosure agreement that will prevent you from revealing publicly available information.
    COMPANY: What if we say no?
    MS: We sue you to the ground.

    COMPANY signs patent agreement.

  5. Re:C/C++ faster but produces more bugs on C++ the Clear Winner In Google's Language Performance Tests · · Score: 1

    You need to understand when resources are being cleaned up. Consider:

    public class Settings
    {
          public void Save()
          {
                File f = new File("settings.txt"); // ...
          }

          public void SetFoo(int foo)
          {
                m_foo = foo;
                Save();
          }

          public void SetBar(int bar)
          {
                m_bar = bar;
                Save();
          }
    }

    Settings s = new Settings();
    s.SetFoo(1);
    s.SetBar(2);

    The SetBar call will fail as the garbage collector is still holding the file. Another case is a File->Save handler saving to the same file. The operation may fail the second time the user saves the file depending on whether the garbage collector has run.

    Or how about sockets in a web server application. Your program will fail very quickly if you don't release the sockets.

    Or how about database locks? Do you want random database failures?

  6. Re:C/C++ faster but produces more bugs on C++ the Clear Winner In Google's Language Performance Tests · · Score: 0

    Use shared_ptr (Boost, C++TR1 or C++0x) for single objects to manage their lifetimes. Use std::vector, std::list or another suitable container for arrays/lists of objects. Use RAII classes for other resources.

    Automatic memory management/garbage collection does not cover resource management. Consider the following in Java/C#:

    public void foo()
    {
          File f = new File('somefile.txt');
    }

    The garbage collector will correctly clean up the memory, but not the resource, so you need to do something like:

    public void foo()
    {
          using (File f = new File('somefile.txt'))
          { // ...
          }
    }

    In C++, the file object will be correctly scoped. If you wanted to create a file object for use elsewhere in a place where a generic device could be used, you can write:

    std::tr1::shared_ptr create_file(const char *filename)
    {
          return std::tr1::shared_ptr(new file(filename));
    }

    void foo()
    {
          std::tr1::shared_ptr f = create_file("somefile.txt"); // ...
    }

    no need to worry about freeing up the memory or the resource as the code will do that for you (shared_ptr and file respectively).

  7. Re:C/C++ faster but produces more bugs on C++ the Clear Winner In Google's Language Performance Tests · · Score: 1

    And in C#/Java it is easy to not cleanup a resource by not closing/destroying the resource -- not placing it in a try...finally or using block.

    Or, to use your examples, in C#/Java it is easy to create bugs by not properly trapping a NullPointerException or ArrayOutOfBounds exception causing the program to close unexpectedly!

    I'm not saying that C/C++ are simple, or that they are not error prone, just that you need to be careful in all languages you program in. Any program has bugs in it.

  8. Re:Dammit on Schema.org — Google, Microsoft and Yahoo! Agree On Markup Vocabulary · · Score: 1

    I'm ignoring everything except RDFa on my site. I took the decision of dropping the HTML5 markup for HTML+RDFa and getting the pages validating properly (still using CSS3, though).

    It would be great if Google had support for DOAP (Definition of a Project) for open source projects and read that through RDFa.

  9. Re:So What? on Cheap GPUs Rendering Strong Passwords Useless · · Score: 1

    That's neat. Using Upper & lower cases with a few punctuation characters, about 15 characters are enough to give a big computation time.

    One thing I have started to do is to use pass phrases. For example, "Green peppers allow access." gives a massive cracking array time of 39.98 thousand trillion trillion centuries. Even just "Green peppers" gives 38.90 centuries.

    Another thing I tend to do is splice 3-4 mini phrases around a concept, e.g. the "Red Hot Chilli Peppers" group:
          RHCP (the bands initials)
          b4nd ('band' with the A transformed to a 4)
          Californication (name of an album/single)
    so you have: "RHCPb4nd Californication" which gives 9.38 hundred billion trillion centuries and covers at least one uppercase, lowercase, digit and punctuation character.

  10. Re:Why so expensive? on Lack of Technology Puts Star Wars Series On Hold · · Score: 1

    Blender is free. It has been used to create various animated shorts showcasing what it can do (Elephant's Dream, Big Buck Bunny and Sintel).

  11. Re:Lack of Technology! on Lack of Technology Puts Star Wars Series On Hold · · Score: 1

    Exactly. Babylon 5 didn't have the technology to do the FX cheaply (models used by Star Trek, etc. were expensive), so they created their own as they went along.

    Sometimes the Babylon 5 SFX team completed the rendering of a scene hours before it was to be uploaded to the studio for broadcasting (rendering scenes on Amigas originally, taking days to complete a simple scene). They even recycled some of the footage (e.g. launching ships) between episodes.

    Groundbreaking stuff that showed you could do quality effects (for the time) on a budget.

  12. Re:Where is ... on The Great Linux World Map · · Score: 2

    Don't you mean a C monster :)
    And the blue area could have the label "The C".

  13. Re:Ribbons? on Another Windows 8 Pre-Beta Surfaces · · Score: 1

    Word ... sure, ribbons can be seen as an improvement
    Excel ... very likely
    Publisher ... I don't think so
    Write ... what's the point other than bringing it closer to Word 2007/2010
    Paint ... more confusing and harder to use

    It all depends on the application.

  14. Re:Mod TFS "-42 Flamebait" on GNOME vs. KDE: the Latest Round · · Score: 3, Funny

    Green!
    Purple!

  15. Re:It's a framework, not a language on Expensify CEO On 'Why We Won't Hire .NET Developers' · · Score: 1

    Start with a scripting language like Python or Ruby. These allow you to pick up the concepts individually without other concepts getting in the way.

    For example, start by running 'python' in a shell/terminal/command prompt. This gives you something you can start experimenting with:
    >>> print 'hello'
    hello
    >>> x = 5
    >>> print 'the number is: %s' % x
    the number is: 5
    >>> exit()

    Follow tutorials to build up your knowledge of the concepts (variables, expressions, conditionals, loops, functions/methods, classes and objects). The key thing is the different concepts (the semantics) of what you are doing -- the syntax varies from language to language, but the underlying concept is the same. This will help you transfer those skills and understanding to other languages like C/C++/Java.

    It is also useful to learn languages that cover different paradigms. These are ways of expressing programs. Functional languages (Haskell, Erlang) will teach you about how to apply algorithms and data structures. They also provide insight into lambda methods in C# and C++2011, as well as the C++ Standard Template Library (STL).

    HTML and JavaScript are also good, because they provide interactivity and allow you to do interesting things with them, such as vector graphics.

    I found when starting out in programming that just reading did not help. You need to try out the examples you read about. Make the mistakes and learn from them. Experiment with the programs. Read other code (e.g. the open source projects you are interested in). If you find something you don't understand, look it up -- use resources like google and stackoverflow. Keep at it -- even if it is just 30 minutes every day.

  16. Re:Just FOAD on Expensify CEO On 'Why We Won't Hire .NET Developers' · · Score: 1

    The CEO is not complaining about the *language* (C#, F#, MSIL, whatever), he's complaining about the *framework*. Because he is part of a startup, he wants to create something that is different to what is out there and so does not want to be constrained by the framework choices. He wants someone who can think for themselves and create solutions to problems instead of following predefined patterns without understanding what they do. Take the phone market, if you are releasing yet another Windows Mobile Phone 7 it is going to be hard to compete -- the platform constrains you. As a startup, you want differentiators to stand out from the rest.

  17. Re:Just highlights to absurdity of these cases on Limewire Being Sued For 75 Trillion · · Score: 1

    Several/most of the CDs I own I first heard tracks from music sharing sites when I was younger or borrowed from friends. Artists I would not have heard otherwise and thus not have bought.

  18. Re:maybe they'll settle on Limewire Being Sued For 75 Trillion · · Score: 1

    Yay. Everyone in the US becomes bankrupt. The dollar becomes super-inflated. The US debt rises to 87 trillion, rising at 15 thousand every second. The world economy collapses. Congratulations RIAA.

  19. Re:Why oh why are tech patents given for so long n on 37 Android Patent Lawsuits · · Score: 1

    Exactly. 12-15 years is too long in the software world (think Windows 95 vs. Windows 7).

    Patents are supposed to help benefit society by having inventors document their invention and getting a limited time exclusivity right for it. There is no reason why this cannot be true for software, but limited to 2-3 years (e.g. multi-touch).

  20. Re:Disabled people on Advocacy Group For the Blind Slams Google Apps · · Score: 3, Informative

    Why is it bloat to support disabled users in your application?

    1. Red/green colour blindness is very common and is about choosing the right colour palette for your icons, etc. No bloat.

    2. Adding keyboard accelerators to your menus and dialogs means that power users and people who predominantly use the keyboard over the mouse can be faster and more productive. Adding this is an extra '&' character per menu / dialog label string. Minimal bloat. There is also finger memory -- if you support something other than Ctrl+P for printing your users are going to make mistakes (Lotus notes is bad at this, using F5 (usually refresh or presentation on Windows) for log out!). Same goes for radio button group cycling, tab stops, etc.

    3. Showing all text as text controls/elements helps when diagnosing problems (can be copied & pasted) and allows for better localisation support.

    4. Adhering to colour schemes for background and text elements is useful for people who do not use white background/black text (e.g. having a black background to reduce screen glare). This is a matter of using the correct APIs when drawing special/custom elements. Minimal bloat.

    5. Adhering to font sizes has benefits for people using high-DPI/HD displays or are projecting the display. This is a matter of using the correct APIs when drawing special UI.

    6. Following the defined metrics on a system will mean that it should work at different DPI settings (e.g. 96DPI vs 120DPI on Windows), different themes (e.g. on GNOME and KDE desktops) and on touch-based devices such as tablets and phones where the hit-test area is important.

    7. Adding a fallback alt="..." for images on web pages is not difficult and does not add that much bloat. It also means that if a user has a slow internet connection, they can disable images to reduce bandwidth and still understand the pages they are viewing.

    8. By making your program/website accessibility aware means that it is also easier to automate the testing (i.e. through the acessibility APIs like MSAA/IAutomation2/UIAutomation on Windows and Gail on GNOME).

    If you follow the Windows/GNOME/Qt/KDE/Web guidelines and use the standard provided controls you will get most of the accessibility for free. Also, more often than not accessibility support improves the application for other users as well.

  21. Re:More then one? Automated testing? on Investigating the Performance of Firefox 4 and IE9 · · Score: 2

    You mean like http://arewefastyet.com/?

  22. Re:More FUD on Miguel de Icaza On Usability and Openness · · Score: 1

    Which you could apply to reading ePub documents, Comic Book ZIP (cbz) files or PDFs. Stock Windows does not support any of those whereas Linux has evince on Gnome and okular on KDE to name a few of the readers that are available on different distributions of Linux.

    Also, flash support does not come with the stock Windows install. Or office tools to read/write documents and spreadsheets; you need to pay more for those.

    Then there are the standard text editing (notepad) and drawing (paint) applications that have limited functionality compared to the stock Linux offerings -- Kate/gedit/emacs/vi/vim/gvim for text; gimp for raster graphics; inkscape for vector graphics (which Windows does not offer by default) and blender for 3D graphics (which Windows does not offer by default).

    So it all depends on what you are looking for to work out of the box.

  23. Re:Not as long as it's done in a crippled way. on Can the Atrix 4G Really Become Your Next PC? · · Score: 1

    That's because now laptops are as powerful as desktops, but are smaller, lighter and more portable. You may still need a desktop to run your high-end gaming system for example. But now there is a choice. When tablets and other devices become as powerful as the laptops then they might supplant them, but at the moment they complement.

    Portable Media Players, e-book readers, cameras (e.g. digital SLRs), games consoles, PVRs, mobile phones, tablets, desktops, laptops, and other devices have different markets as they are specialised to a specific set of needs and capabilities.

  24. Re:Is it just me... on Can Android Without Dalvik Avoid Oracle's Wrath? · · Score: 1

    StarTrek 12 : The Wrath of Oracle where Data goes in search of his lost friend Dalvik.

  25. Re:Why Support Java At All? on Can Android Without Dalvik Avoid Oracle's Wrath? · · Score: 1

    Some options in C/C++:

    1. Using Qt, you have a QSettings class with QSettings::IniFormat
    2. Using Boost, you have the configuration file parser of the Boost program options library.
    3. The SimpleIni library can parse configuration files