Jump to content

Val Brown

Members
  • Posts

    754
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Val Brown

  1. QUOTE (Gavin Burnell @ Jul 30 2008, 01:52 PM)

    Yes, but the original poster wanted (and I have no idea why other than to show that LabVIEW can't create 'proper' console apps) was to open a console window and type something like "cat input.txt | foo.exe > bar.dat" where foo.exe was a compiled LabVIEW program. So it's easy to see how to hide foo.exe's GUI and there are lots of ways to get that GUI to open a window that is a console window or looks like a console window and spit out text, or even to open a console window and read in text that the user types in. In your examples, if you don't create the console window, what happens when you call GetStdHandle ? If it works as above then that's very nice for answering mavericks who want to use LabVIEW to create a text-mode application :rolleyes:

    Maybe I'm missing something here but it seems to me that wanting to do that in LV is kind of like wanting to use the Concorde to take the garbage down your driveway to the street. :wacko:

  2. QUOTE (Yair @ Jul 21 2008, 10:33 AM)

    As someone who preaches about the importance of UI, do you *really* think it's a good idea for users to be able to change the appearance of the application to anything they want? :!: :blink:

    In engineering applications probably not but in direct "end user" applications (aka delivered to the general public) almost undoubtedly yes.

  3. QUOTE (crelf @ Jul 20 2008, 02:36 PM)

    Whilst wandering through some old posts in Christina's Eyes on VIs blog (I really should read it more often - I'm subscribed to the RSS feed, but don't read it anywhere as regularly as I should) I stumbled across this old post. Christina was demonstrating how to apply a skin or "wallpaper" as she calls it to your front panel. Achieving this was as simple as (Christina admits unintuitively) right clicking on a scroll bar. Now, it'd never occurred to me to right-click on a scroll bar, but I'm pretty damn glad that I did. Doing so exposes a number of sweet UI properties that I didn't even know existed - so go ahead: check it out for yourself!

    PS: oh, and subscribe to Christina's blog too - then remind us all about the good stuff there so it doesn't take me a year and a half to find cool stuff like this :)

    PSS: ...and here's a bunch of other awesome blogs that you might want to check out too.

    Yes, it's a nice little tip. Anyone know if this is settable programmatically?

  4. QUOTE (Daklu @ Jul 17 2008, 11:17 AM)

    As mentioned above, patents typically aren't suitable for software. But here's a bit more information on patents...

    I worked for a patent/trademark laywer about 15 years ago. At that time the patent process started at ~$5000; more if any difficulties were encountered during the filing process. If I recall correctly to maintain your patent you have to defend it, meaning you need to keep up to date with competing products and take them to court if need be. If you don't do it you lose the rights to your patent. Essentially you open your wallet to your lawyer for as long as you want to maintain your patent.

    "You should research copyright, trade secret, and trademark to decide if one of those is a better way to protect your software."

    I believe trademarks are only for logos, product names, brands, company names, etc. i.e General Mills can put "Cheerios" under trademark, but not the cereal itself.

    This is all correct, except the price has increased a bit in 15 years.

  5. QUOTE (Norm Kirchner @ Jul 16 2008, 10:42 AM)

    Well most of us being pretty darn good LV programmers, we don't call the NI tech support unless something is really screwed up. Which in most cases turns into a CAR.

    Just happens to be I called a few times in a short period that turned into some CARs

    And I consider being the root of a CAR akin to putting the proverbial notch in the headboard.

    That gives a whole new perspective on being CARful when coding.

  6. QUOTE (Michael_Aivaliotis @ Jul 14 2008, 11:06 AM)

    The part where I actually laughed was at the end where he brought up a slide of complex formulas in response to an audience question. That was the punchline for me.

    Yes, and the references in the "Technical Paper" version that could be downloaded as well.

  7. QUOTE (Tom Bress @ Jul 14 2008, 09:29 AM)

    I think it's more the "eek" and rather well cultured perspective that "the tedium is the message" when it comes to overuse of PowerPoint, cf: http://www.edwardtufte.com/bboard/q-and-a-...&topic_id=1

    But I also think we're seeing some tribal identities emerging here in this thread. Just about everyone I've sent this to fell off their chair laughing and that includes a very large population of definitively non-geek recipients.

  8. QUOTE (BobHamburger @ Jul 13 2008, 04:23 PM)

    Val's latest comments and explanation put things into a clearer light.

    I write from the perspective of having been an integrator for a number of years, and in my current position I use contractors. I can see that Val's position and concerns are somewhat different from mine (and perhaps a large fraction of the LAVA community), and I hope that my statements weren't taken as overly judgemental. I tend to write with passion, as I have grown to despise the weak and ambiguous language that has come to dominate business communications over the last few decades. It's never my intention to incite a flame war, but I will admit that with my opinions you might occasionally smell smoke. I love a good, hearty debate. :yes:

    I appreciate what you're saying Bob and I know that many smell smoke when I voice my opinions. Having gone to Georgetown undergraduate I, too, love a good hearty debate.

    FWI, and just to tweak this a bit, I think it could be said that the more potentially "judgmental" comments thrown at me by some came because of a failure to clarify the Requirements of my situation. It seems that, perhaps, some jumped in and started Developing before really understanding the project... ;-)

  9. QUOTE (PJM_labview @ Jul 12 2008, 11:29 PM)

    Val,

    Would it not be easier for you to develop and maintain your code in an unobfuscated way and to consider doing the obfuscation in your release process when you build your executable? I understand that there could be level of obfuscation, but doing it in the build process could simplify your life quite a bit and still return code quite difficult to reverse engineer.

    PJM

    I do both to increase the overall security for me, my IP and my small company.

  10. QUOTE (BobHamburger @ Jul 12 2008, 07:37 PM)

    Maybe I'm completely misunderstanding your intent in these statements, but it sounds like you want your code incomprehensible as a means to prevent your customers from using other resources, so they are compelled to keep coming back to you. Personally, I think that the quality of a contractor's work should stand on its own. Customers should be so delighted that further engagements happen as the natural course of the business relationship. If I found out that one of my contractors was deliberately engineering complexity into their products, to try to ensure repeat business, I'd see to it that they never worked for me again.

    Intentionally making your code obscure, as a means to protect what you believe to be unique, is legally unjustifiable and morally indefensible.

    Yes I think you are completely misunderstanding. It's not my customers compelling my behavior in this regard, it's my competition. Patent protection is not relevant because, in my field of application, all patents have been used as blueprints to steal original ideas. To say it another way, filing a patent for software or ideas, has not been sufficient to protect IP. One small change defeats the patent.

    Intentionally making MY code -- that I alone see and should see at this point -- is my privilege and right. It isn't my BELIEF that what I've developed is unique -- it is unique.

    Delivering reliable, state of the art software to my customers is my obligation and commitment.

    Intentionally trying to crack my code (and yours and everyone else's) "is legally unjustifiable and morally indefensible" to borrow a phrase of yours. And to be clear I know that there have been several attempts to do so by those who SHOULD know that those actions were "legally unjustifiable and morally indefensible". It is because others might try -- and in fact HAVE done so -- that I have built in as many protections as I have for my IP.

    Added note:

    Perhaps I should clarify something that others may not know. I run my own small company. Except for some sub-projects that I "farm out", I have done all of the code myself. I build the EXE and I (my small company) distributes and supports it. My comments about obscuring code and such are related specifically to THAT context. They are NOT meant as general comments and I thought I had made that clear in my prior posts but perhaps it wasn't as clear as I thought. Since most LAVA members appear to work FOR someone else or WITH someone else, the general comments about clear style and appropriate structure would apply and, again, I thought I had made it clear in a prior post that I did NOT support my extreme means of obscuring code EXCEPT for the exceptional case.

    Now, since I not only appear to be in the minority here but also to be on the verge of inciting flames, I will refrain from posting any further on this. Apologies for disturbing the peace.

  11. QUOTE (crelf @ Jul 12 2008, 03:25 PM)

    Unless something untoward happens to you and someone else needs to take over (either with your direction, or in your absence). There are more efficient and secure ways to protect your IP - especially if you want your ideas to continue to benefit the world in your absence.

    <and>

    That would be an interesting design review.

    "No, no, no. This code makes too much sense! I understand everything you are doing and your architecture is well laid out !! What am I paying you for? Now get back there and obfuscate."

    There is documentation and various backups of all of my code -- all in separate China locations -- but all of the pieces needed to understand the code are functionally separated into "objects" -- like good OO architecture... ;-)

    If you have them ALL in the "same room" then it becomes far more "doable" for someone else to maintain/extend the current code base.

    In re: to your second point above, YES, of course, IF I were programming for someone else, on their nickel, or as part of a team, as I said above, most of what is being said here about style and architecture makes sense and I would agree with it.

    My point is solely that there may really be some occasions -- exceptional though they are -- that actually benefit from as much obfuscation being applied, in as many ways as possible, so as to protect IP or trade secrets REGARDLESS of whatever protections are in place. Practices that make the code clearly understandable and easily maintained by ANYONE actually make it that much easier for someone else to hack. And this is esp true if you keep in mind the cautions JKI raised re: placing too much trust in NI's password protection, etc.

  12. QUOTE (Omar Mussa @ Jul 12 2008, 10:06 AM)

    Precisely.

    Moreover, the point I'm making here is that saying code is BAD implies a perspective from which BAD emerges. The implied perspective of most on this forum -- and reasonably so! -- is for ease of maintenance, ESP for someone else coming along and/or following up. And, in general, that's a very good and useful perspective. However, it seems to me that there are exceptions to this rule just as there are to virtually every other rule.

    Having BAD code that is "poorly" documented, intricate, obscure style, etc, etc is actually a very effective strategy TO hide its functionality and this, in turn, makes it much more difficult to hack.

    Mike your comment about "if it takes a long time to understand it then I'll start over" is directly germane here. I actually WANT it to take a long time (perhaps an infinite amount of time) for someone who comes along to understand my code, in the specific case of my particular application. Were I writing code FOR OTHERS then it would be a totally different issue and, in that case, I would agree with most of the other comments here concerning style and architecture.

  13. QUOTE (Omar Mussa @ Jul 11 2008, 05:15 PM)

    Personally, I am not sure I am in your camp on this one. I'd rather inherit code that I can understand quickly and easily that doesn't quite work right, then code that works well that I can't comprehend. Maybe its because I assume that I have the technical abilities to sort out the issues of code that is well written but not functional. I find that code that is not well written tends to become un-maintainable really quickly, and IMO un-maintainable code is basically dead code that will end up getting re-written in the long run or just dropped altogether because nobody can figure out how to use it. I've had countless projects where I've been forced to 'figure out' the intent of the original developer that used bad style and then refactor the code into a maintainable form. I don't know that I've ever had a project that followed all of the coding style guidelines that I had to get 'working'. In my reality, there are few times when you find really clean code that isn't also really well designed code.

    I would like to quote Jim Kring on this:

    Also, many of the style guides -- good documentation, etc. are essentially there for (at least) two reasons: 1) to make it easy for others to understand your code 2) to force you into a workflow that compels you to write higher quality code.

    I think one of the key issues that is implied here is that style and architecture are somehow seperable. I don't find that this is the case very often. I think that if you are going to follow best practices and have good style, etc. you will generally be compelled to choose an architecture that is scalable and maintainable and write better code as a result.

    But don't forget, there can be situations in which BAD code (re: style) is actually GOOD. This can be esp the case given a one person shop, with a proprietary algorithm that needs to be obscured precisely so that others can reverse engineer it.

    Bad style in other situation can be precisely what is needed in other situations.

  14. QUOTE (Jim Kring @ Jul 3 2008, 01:28 PM)

    Microsoft does get paid, but they don't win. Switching to Mac is one more step towards completely breaking away from Windows and the tradition of corporate desktop software that's released every 4 years (if you're lucky) and adds only more system instability issues.

    MS doesn't necessarily get paid -- that depends on what programs you need to run and whether something like Wine or Crossover can support your app. But, in general, yes MS gets its "nickel" with every copy of XP/Vista that is installed and that's certainly the way most MBPs are set up these days to support Windows operations.

    I don't see the MBP as expensive and FWIW you couldn't GIVE me an HP to use. I've had to contend with every "low ball" price pointing strategy in the field for the last 15 years in supporting neurofeedback software. Finally -- FINALLY! -- with the release of XP Pro (not even Home) we had MS enforce the AC97 standard and that was supposed to take effect in, guess what?, 1997. And THAT was supposed to mean the every copy of Windows 98 would run on hardware that would support the AudioComponents standard known as AC97. It took Vista -- ten years later -- for that standard to actually become THE standard for ALL Windows systems. And the reason for those delays were the complaints of Dell, HP, Compaq and all of the denizens of the deep discount "cheap" computer.

    OK, end of rant and FWIW I really DO feel better.

  15. Yes, the MBP is not "just an expensive IBM clone". First of all, it's not a clone -- literally it's not. Secondly, it comes with Mac OSX and all of its features. Third, because of the Mac side of things, when using VMWare Fusion, Parallels or similar virtualization software you can literally switch transparently because the two OSs, simultaneously deriving benefits from each. For instance, I do all of my LV programming in XP via Fusion while I use the Mac OS under NAT to access the web, using Safari and Entourage (MS Office for Mac Outlook replacement) giving me the extra security/safety of the Mac OS on the web. Whenever I want, I can reboot into "native" XP using Boot Camp, if any specific hardware-related limitations occur during my programming work.

    It really is an elegant solution, esp if you like the Mac interface and how the Mac (currently at least) works on the web.

    But, then again, back in the "old days" I used a Mac Power Book and VPC to run both Mac and Windows LV to develop parallel interchangeable code. That was before LV really committed to the Windows platform -- for instance developing the SPT to run ONLY in Windows. It seemed a real shame to me to NOT maintain such cross-platform programming potential but, then again, NI isn't my company, and that's probably a very good thing!

    I do hope that NI decides to fully implement the various toolkits within the Mac OS. I'd love to deploy a native Mac version of what I've developed but can't until the SPT (and some others) are implemented in Mac OS.

  16. QUOTE (Jim Kring @ Jun 26 2008, 02:01 PM)

    Here's my list:

    • The Hilton is great because it is across the street and is pretty nice (pool, etc.) -- This is where a lot of the LAVA'ers (including me) are staying.
    • The Omni has the best service for the price -- the rooms aren't as big, since it's an older hotel. I saw Quentin Tarantino staying there, last year, when he was filming 66th Grand Prix of Monaco
    • The Driskill is more expensive (although not ridiculous) and has the best service and a cool vibe (piano bar, hide-covered couches, etc).
    • The Courtyard Austin Downtown-Convention Center is also very close.

    I stayed at the Courtyard last year (my first NI Week) and will be staying there again this year as I enjoyed it. It was very comfortable, spacious room with a good internet connection and other amenities. I also stay at Courtyards a lot so I have award points to use, which helps with the expense. If I'd KNOWN that everyone who is everyone is staying at the Hilton I might have chosen to be there instead....<sigh>. Actually all of the properties Jim mentioned are close, convenient and IMO good, even though the Driskill is more expensive.

    BTW does anyone know if reservations/payments are being taken yet for the BarBQ???

  17. QUOTE (crelf @ Jun 24 2008, 07:23 PM)

    ...Both Nancy and Crystal are contractully obligated to attend the LAVA/OpenG 2008 BBQ, as they are going to model their LAVA g-strings... ;)

    OK but will they wear the NewBalance (because they're Sheilas) or the Redback because they've come there to 'kick arse'

    Hmmm, maybe I'd better bring some chewing gum just in case....

  18. QUOTE (Justin Goeres @ Jun 23 2008, 02:46 PM)

    I've heard (and I stress that I have no direct evidence for this) that Fusion's USB bridging system is better (i.e. it's more stable and works with a wider variety of hardware).

    In an informal test a year ago, I played with a friend's MacBook Pro and a beta of Parallels for about a month (back before either Parallels or Fusion had their rootless ("Unity") modes). At the time, the virtualization in Parallels was fine but the USB side of things was really unstable. It would be unfair, however, to judge Parallels based on that now.

    Precisely right about the USB support. I originally used Parallels on my 15" MBP and all was well EXCEPT for USB. It was, quite simply, impossible. I ended up returning to the Windows world reluctantly, with a Vista Premium system and I only did that because Fusion (at that time) did not support multimonitor mode under virtualization. Now with the current Beta, multimonitor mode works rather well and the USB support is useable. I have submitted several CARs (well their equivalent) re: the remaining USB issues and I understand that the next release will include their fixes. The remaining issues that I've found re: USB concern how it interacts with Unity View (Fusion's form of what Parallels calls Coherence) when dynamically plugging and unplugging a USB device. This is what I understand the next release will fix. Keep the settings so as to not Automatically Connect the device and there is no problem.

    So far so good with Fusion but I too am considering an update to the 17" MBP.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.