Jump to content

yyrkoon

Members
  • Content Count

    1,408
  • Joined

  • Last visited

  • Days Won

    34

Reputation Activity

  1. Like
    yyrkoon reacted to NurseBob in What is your Backup Process?   
    Well, there's magical thinking...
    And then there's magic!
    While looking for a file I noticed my server had booted and was back online.  Checked the logs and discovered the driver for my 8-drive 24TB JOBD external SATA enclosure had failed to load.  This is a Highpoint Rocket Raid system.  It's junk. Has been from the outset, but I purchased everything while relatively ignorant.  And, as @yyrkoon has noted, enterprise hardware is mind-bendingly pricey.  So, I use the system as not a backup, but as a secondary copy location for video, images and audio. Maybe after I win the lottery I can put a proper system in place.
  2. Like
    yyrkoon reacted to NurseBob in What is your Backup Process?   
    @yyrkoon
    I've thought about restoring my centos server - I took it out of service when I stopped writing my own websites; easier to use wordpress to manage blogs.  Though, as you've noted, nothing is immune from some type of corruption, including my own thought processes...
  3. Like
    yyrkoon reacted to zeke in What is your Backup Process?   
    I am not a fan of RAID arrays either. I see them as pointless since the new drives are so big and fast compared to 15 years ago when RAID actually made a difference. It was all about transfer speeds and creating large amounts of disk space.
    If I really really really cared about backing up stuff then I would go and find an LTO tape drive and figure out how to use it.
     
    I have had both Western Digital and Seagate drives fail on me. The latest failure (this week) was a Seagate ST3000NC000 3GB. I believe the magnetic media is peeling off of the platters inside. I have tried to rescue it numerous times over this past week but nothing is helping it. I tried getting it to map out all of the bad sectors but there is just too many of them. I cannot get gparted (on linux) to make a new GPT but the disk refuses to co-operate. 
    I tried getting warranty on it but it's over a year out of warranty so I'm screwed that way. I may go and harvest the magnets out of it.
    So, I checked out the BackBlaze hard disk failure data because they beat the snot out of commercial type hard drives. I wanted to see which drive had the lowest failure rates for them. The Western Digital 8TB drives had zero failures for them. So that's what I went and purchased yesterday. 
    I am still not certain which backup/syncing process I am going to employ but I am leaning towards setting up a separate Linux box with the 8TB drive inside and install NextCloud on it and then sync against it with all of my clients.
    I am trying to go towards the least amount of effort with the greatest amount of success that works for Windows, Mac, and Linux clients.
    The Lazy Way can be The Most Efficient Way
    ;-)
  4. Like
    yyrkoon got a reaction from NurseBob in What is your Backup Process?   
    heh switch to a Linux server Although they're prone to this kind of problem too. If you don't pay attention. but honestly who has time to keep up with updates, other than installing them ? Most of us have lives . . .
     
    I can't run Windows in a server capacity any more though, not sure how, or why "you guys" do this. It's not a hate thing or anything like that( this post is being posted from my Windows 7 pro laptop ), it's IDK, hard to explain.
  5. Like
    yyrkoon reacted to zeke in What is your Backup Process?   
    @NurseBob
    I had been playing around with github but not every program that I use can use github i.e.: Altium.
    I may have to setup a subversion server as well.
     
    But, I am trying to not depend on an external cloud storage option so I went to a local supplier today and purchased a WD 8TB Red NAS drive today. This will allow me to setup my own cloud storage and sync files against it.
    Since I want to set something up locally, I looked for the following options:
    Self-hosted Linux client Windows client Mac client Open source These are the possible programs I found today:
    Nextcloud Owncloud Seafile Pydio Syncthing I've installed Nextcloud but I haven't tried it out yet because I've run out of time today.
    The important thing will be the automated process of syncing/backing up all the files on the different sources.
     
  6. Like
    yyrkoon got a reaction from bluehash in What is your Backup Process?   
    Which platform ? Windows ? Linux ? OSX ?
     
    But rsync is a pretty good way if you use the correct strategy. This can be done on Windows too using the rsync application Deltacopy. Which runs services, and will automatically sync your watched directory, to the backup location.
  7. Like
    yyrkoon got a reaction from zeke in What is your Backup Process?   
    It'll be a steep learning curve figuring it out. But once learned it's really awesome. Actually, I've known of it for years, and have used it a few times, and still do not know everything about it There's guides online though.
    As for Linux, use a systemd timer to fire off once a day or whatever, that calls a script to run your rsync's. If not using systemd, then use a cronjob once or so a day to fire off that same previously mentioned script.
  8. Like
    yyrkoon got a reaction from zeke in What is your Backup Process?   
    Which platform ? Windows ? Linux ? OSX ?
     
    But rsync is a pretty good way if you use the correct strategy. This can be done on Windows too using the rsync application Deltacopy. Which runs services, and will automatically sync your watched directory, to the backup location.
  9. Like
    yyrkoon reacted to zeke in Implementing an I2C slave device.   
    I'm talking about both, actually.
    The DS28EA00 has two GPIO lines.
    Using 1Wire protocol, I turned them on and off in a way that looked like very slow I2C to the pressure transducer that was attached to those two GPIO lines.
    Essentially, using the 1Wire protocol, I spoke I2C to a slave device.
    Does that make sense?
  10. Like
    yyrkoon got a reaction from bluehash in Setting up a workspace - setup suggestions?   
    Yeah, first off. Avoid anything from Harbor freight if you hate spending good money after bad. Their parts boxes with clear plastic drawers where you have say 4-5 across, and 8 high( or whatever ) are garbage. My buddy bought like ten of these, and less than a year later the drawers, and boxes started disintegrating. All of their other stuff is garbage too. Search youtube for "harbor freight", and get the gist.
    As for the one thing I personally find "most desirable". That would be more work space. Our place has lots of work space, but not where I spend most of my time. In my own area, I'm constantly struggling to keep space clear for development boards, prototypes, etc as I develop software and test the hardware. I even built a 4'x8'( full sheet plywood ) workbench, that is a bit higher than waist high to make it easy to work on things while standing. Off of one corner, I have a one of the 4x4 legs built up with stacked 2x6's( screwed together ) to accommodate a custom built, by me, swing arm for my laptop Pretty much, I was given  the base for this, and I welded together galvanized pipe, and angle iron as the post mount, and then 3 other pieces of pipe for the laptop base to swivel on.
    Anyway, I did not really plan all of this from the start, so it does not work out the way I had hoped. So I think the best possible thing you could probably do is draw up several plans, until you're happy with something for making the best possible use of your space. Then gives you what you want.
    Also, at first thought, it may make sense to keep your electronic design space separate from your software development space. Which make total sense to me too. However, if we're talking about constantly moving between the garage and an in house room. That could present its self as a problem. So it may make better sense to *somehow* do all this inside your room, and keep the garage for other things like . . . I don't know project box fabrication, etc, if you're into that sort of thing.
    As for a good place to find related tools ? I find amazon a good place to start looking sometimes, but may not necessarily purchase form amazon. Or sometimes I'll just google, find something, then check to see if amazon has comparable prices. But I also am an Amazom Prime member, So I usually get free shipping on everything.
    So maybe, consider buying some cabinets to hang on the wall above your work benches, so all you have to do is stand up to grab something that may not always need to be on the bench. Then have your benches shallow enough to be  able to do that. Maybe 2-3 feet from the wall out. This way, you could potentially span a whole wall with one long bench, then have storage above in easily accessible cabinets. Or you could do a whole room like this is you wish, Which we've done here. Several rooms actually. As for monitors, do you really need more than one ? I know, I prefer at least dual monitors too for documentation, and editor type situations, but you may only need one. But if you need a single, double or even triple stand, Amazon has a wide variety of stands. Also keep in mind that some 4K monitors can be partitioned into 4 separate 1080p screen areas. So basically giving the possibility to have 4 screens displayed on 1. If something like that would work for you.
    With all that said, I think the most important thing you could do is start thinking about what you need, and want. Then start drawing up plans until you're happy with what you've come up with.
     
     
  11. Like
    yyrkoon got a reaction from cubeberg in Setting up a workspace - setup suggestions?   
    Yeah, first off. Avoid anything from Harbor freight if you hate spending good money after bad. Their parts boxes with clear plastic drawers where you have say 4-5 across, and 8 high( or whatever ) are garbage. My buddy bought like ten of these, and less than a year later the drawers, and boxes started disintegrating. All of their other stuff is garbage too. Search youtube for "harbor freight", and get the gist.
    As for the one thing I personally find "most desirable". That would be more work space. Our place has lots of work space, but not where I spend most of my time. In my own area, I'm constantly struggling to keep space clear for development boards, prototypes, etc as I develop software and test the hardware. I even built a 4'x8'( full sheet plywood ) workbench, that is a bit higher than waist high to make it easy to work on things while standing. Off of one corner, I have a one of the 4x4 legs built up with stacked 2x6's( screwed together ) to accommodate a custom built, by me, swing arm for my laptop Pretty much, I was given  the base for this, and I welded together galvanized pipe, and angle iron as the post mount, and then 3 other pieces of pipe for the laptop base to swivel on.
    Anyway, I did not really plan all of this from the start, so it does not work out the way I had hoped. So I think the best possible thing you could probably do is draw up several plans, until you're happy with something for making the best possible use of your space. Then gives you what you want.
    Also, at first thought, it may make sense to keep your electronic design space separate from your software development space. Which make total sense to me too. However, if we're talking about constantly moving between the garage and an in house room. That could present its self as a problem. So it may make better sense to *somehow* do all this inside your room, and keep the garage for other things like . . . I don't know project box fabrication, etc, if you're into that sort of thing.
    As for a good place to find related tools ? I find amazon a good place to start looking sometimes, but may not necessarily purchase form amazon. Or sometimes I'll just google, find something, then check to see if amazon has comparable prices. But I also am an Amazom Prime member, So I usually get free shipping on everything.
    So maybe, consider buying some cabinets to hang on the wall above your work benches, so all you have to do is stand up to grab something that may not always need to be on the bench. Then have your benches shallow enough to be  able to do that. Maybe 2-3 feet from the wall out. This way, you could potentially span a whole wall with one long bench, then have storage above in easily accessible cabinets. Or you could do a whole room like this is you wish, Which we've done here. Several rooms actually. As for monitors, do you really need more than one ? I know, I prefer at least dual monitors too for documentation, and editor type situations, but you may only need one. But if you need a single, double or even triple stand, Amazon has a wide variety of stands. Also keep in mind that some 4K monitors can be partitioned into 4 separate 1080p screen areas. So basically giving the possibility to have 4 screens displayed on 1. If something like that would work for you.
    With all that said, I think the most important thing you could do is start thinking about what you need, and want. Then start drawing up plans until you're happy with what you've come up with.
     
     
  12. Like
    yyrkoon got a reaction from NurseBob in More C versus C++   
    I meant to respond to your post here in more detail concerning "Event driven". So, I'll usually mix up OO with event driven when talking about event driven. Which I do not think that event driven is necessarily a part of what makes a language Object Oriented. But I can not remember using an Object Oriented language that did not have some form of events. VB.NET, C#, and Javascript are all languages I've personally had hands on with using events. In the context of C++, using events is very similar to you'd do the same thing in C. Which is to say, for me, this does not feel very much like an event at all. Just a function that is occasionally called when some condition is met. With other languages higher level than C++, such as those I've already mentioned, The message pump loop is all abstracted away, and for me this totally feels like an event. Weird huh ? Using interrupts though, again feels very naturally event driven to me. But on some very low level, I'm sure there is something similar to a "hardware message pump", or at minimum some sort of conditional checks that fire the interrupts off. I won't pretend to know the hardware on that level however. Knowing just enough to know how to use an interrupt is good enough for me.
    I also do not really know the low level gory details of how these events work, but I'm fairly confident that there is some form "wrapper" or interface code, that's really running a message pump loop. Similar to how you'd see in C, or C++. Now days with C++, there may even be something in the STL, but I do not know for sure. I try to keep myself busy programming, instead of spending all my days keeping up with the C++ STL. Which is one reason why I'll try to avoid C++ most of the time. I do not feel like I have enough time to keep up with the language 100%, and still do what I need to get done programmatically. The other part of that equation, is that unless I really know something in full detail, I'm not exactly happy about using that thing. This does not mean I think I know everything about C. This means, I think I'm proficient enough with C, that if I am unfamiliar with a concept, or language feature. It will not take me long to brush up on the subject - Usually.
    So here is my take on the whole C++ class ISR thing. It's too complex. Complex code is more likely to be buggy, or have mistakes in it. If in contrast you feel more comfortable using C, for ISR handlers. Then by all means just write the code in C, and use C++ elsewhere where it makes more sense for you. Do keep in mind, I understand the *need* to do things differently in order to learn something, or possibly start thinking about that given thing differently. Complex code is also more likely to be slower. Unless your compiler is very good at optimizing things out. Which C++ compilers seem to be working "magic" in this area in the last several years. But this is yet more information you need to overfill that full glass of a brain we have already . . .
  13. Like
    yyrkoon got a reaction from NurseBob in More C versus C++   
    @NurseBob Thanks for you input. We should move the I2C talk to the other thread if more conversation presents it's self. So we can try to keep this post on topic. Just sayin' and not blaming anyone, which if anyone is to blame it's me who shifted the conversation towards I2C.
  14. Like
    yyrkoon got a reaction from NurseBob in More C versus C++   
    @NurseBob
    Uh, yeah, no offense, I think I'll look for a different source. To understand I2C better. From what I've seen in that book, the guy is setting up datatypes( enums, etc ) and additional code inside an interrupt handler ? Yeah, that's not usually a good sign . . hehehe
    Yeah, never mind, it seems I was mistaken.
  15. Like
    yyrkoon got a reaction from NurseBob in More C versus C++   
    So the idea with our hardware is that we're going to have X amount of jumpers to represent X amount of addresses. So without knowing much about I2C in general, I figure I take the binary form of these jumpers combined, and use that to represent a device address. Which seems obvious to me, an I2C slave implementer newb. So ok, great I'll check out that read, and see if it starts to make sense to me then.
    From what you're saying though, it sounds like I just pull the first X amount of bits ( excluding start bits, etc )  from a transmission, and see if the comm traffic is meant for the device or not?
  16. Like
    yyrkoon reacted to NurseBob in More C versus C++   
    If the device is a commercial part, it's published. If it's your own design, the '430 peripheral code examples will be your guide. Basically, you set up the I2C handler for the slave to respond to its transmitted address. FWIW, the hand-coded examples in Davies' MSP430 Microcontroller Basics(there's a pdf version - google "msp430 microcontroller basics") book on the '430 give a reasonable explanation.  If you're designing something to be incorporated with other I2C devices, then you need to pick an address or addresses that aren't in conflict with other devices.  I don't know if there's a "registry" for I2C device addresses.... The example code for TI and Davies all use 0x48 and 0x90; for the addresses.
  17. Like
    yyrkoon reacted to NurseBob in More C versus C++   
    Sound very cool, and I assume, a fair amount of time spent deciphering Logic Analyzer and Oscilloscope traces. Were it not for those two pieces of equipment my aging brain would be on fire (oh, and the 60's rock on pandora helps keep me sane, too)... I have an email-friend in Australia who designs and develops for the '430 and only writes in assembler. Per his comments, it's theoretically possible to use only a blinking LED to figure this all out, but that's far beyond my ken...
  18. Like
    yyrkoon got a reaction from NurseBob in More C versus C++   
    I've actually used javascript to write test code, which was later ported to C for a beaglebone, and once for a Launchpad. You have to write your own hardware simulators to test, but those do not usually have to be very complex. Since for me, I do not design the hardware, I just have to understand how it's to be used.
    For my I2C slave project, it's a bit different since the slave device will initially be connected to a Beaglebone for testing. But in this respect, the Beaglebone uses file descriptors ioctl(), and Linux API calls such as SMBus_*, but all of the hardware abstraction is already taken care of by Linux. On the MSP430 I2C salve side though . . . I'll need to understand it all. I had a few capes made for the beaglebone, which I have attached to a beaglebone as we speak, I am just waiting for the other half to be finished, In short though, we're experimenting with differential I2C. Which I do not want to get into too much detail at this time, but it'll allow us to do all kinds of cool things. Eventually, we'll be open sourcing the hardware, and selling capes + addons. I'll be providing software for the devices, in binary form, but may not open source the software. Or may only open source the beaglebone / Linux side, I do have my reasons, which are in no way related to greed, and everything to do with responsibility of modified code that could potentially be dangerous,
  19. Like
    yyrkoon reacted to NurseBob in More C versus C++   
    I couldn't agree more with the points you make regarding C, C++, complexity and remembering which planet you're standing on...
    While I've been designing, reflow soldering and developing on custom PCBs, I've been using the inexpensive launchpads to develop much of my initial code; so similar to your approach with TDD, I'm building separate test modules for each of my I2C sensors (often evm boards as well) where I can run code and devices without risk of unexpected or unintended electronic interactions between different elements. Once I have a functioning and tested module, that gets added to the custom board, populated with all the devices, to confirm everbody gets along, which doesn't always happen - in particular the I2C pullups are definitely different on my custom board - pull harder - than my test rigs. I assume this is due to the bus capacitance for a multi-device system and circuitry. (I've spent time reading, digesting and struggling with TI's SLVA689 to sort this out, but ultimately it's been experimentation...)
  20. Like
    yyrkoon got a reaction from NurseBob in More C versus C++   
    Sometimes, coding is all about experimentation, and figuring out what will work for your own given situation. I find this a really good way to learn too. This is actually what keep me interested in programming - "Learning". However, one of the turn off's for me concerning C++, is classes. This is one reason for me Golang is interesting. C++ does have Lambda's though. Which I'm not proficient enough with this aspect of C++ to say, or know if using Lambda's throughout your code in place of classes, is a good idea or not.
    So the whole point of me avoiding C++ in embedded projects is that the language is far more complex when compared to C. For me, with C, you have less to worry about. Also, since now days I realize that C++ is really another language in it's own right. I do not want to spend the time to learn another similar( to C ) language, when I can just use C, and be done with it. Then all the subtleties between the two like with const, you need to be careful you know what you're actually doing. For me, this is too much to keep track of, when doing anything serious.
    With all that said, I do still keep up a bit with C++. As I mentioned before, I like learning, and I'll probably never stop trying to learn until the day I die. It does seem this day and age, at least the GNU C++ compiler has been under heavy development, and the standards are incorporating new, and interesting features. But again, that can sometimes be a problem, when "the rug gets pulled out from under you . .".
     
    Another thing I like about C, is that because it's so simple by comparison. I do not really need to do much debugging afterwards, Which is to say, I've adopted my own TDD( Test driven development ) style that works really well for me. But I also modularize my projects as much as possible. Which means, I do not really have one executable that is very large.*shrug*
  21. Like
    yyrkoon reacted to NurseBob in More C versus C++   
    Well, I don't find any real conflict between OO and event-driven systems; the events just need to be incorporated into the design.  I guess I think of hardware events as a variant of messaging. My '430 code tends to have a setup in main that ends in a "forever" while loop structured around an LPM3 statement. Hardware events set state flags and the loop figures out how to handle the event, then goes back to sleep. I know from a '430 standpoint that's pretty much a standard design, but the "fun" has been in figuring out how to code for the ISRs, which live in a C subroutine and then chain back to a C++ class handler. The main concern and complexity for my limited brain is the design of a "generic" I2C ISR to handle the I2C communication for each of my I2C device classes. In essence the design for each I2C device is class-based, but dependent on the one I2C ISR, which uses a state variable and switch/case construct contain the handling of each I2C device's needs.  I'll be soon finding out if the overall design is sound as I incorporate the remaining I2C sensors and devices.
  22. Like
    yyrkoon got a reaction from NurseBob in More C versus C++   
    I'm actually quite the opposite when it comes to object oriented versus procedural. I prefer the procedural model more often then not. However, I do like the Object Oriented "event driven" model of Javascript very much. I suppose I just like event driven models in general. However, on some level, you have an event loop( message pump if you prefer ) that is really procedural at the core.
    With embedded Linux, I tend to stick as much as possible to a procedural model, but on a bare metal platform, such as the MSP430's, I do like using hardware interrupts as much as possible, Which is pretty much event driven, at least when thinking from a high level.
  23. Like
    yyrkoon reacted to NurseBob in More C versus C++   
    C vs C++ ?
    As @yyrkoon noted, favorites and comfort tend to be strong influences.  Personally, I'm challenged not to fall into the "I have a Hammer, everything is a nail" trap. It's been so long since I programmed in either C or C++ as a "professonal" that either choice has the risk of hidden pitfalls. And, there's always the challenge of developing code that can be maintained if the goal is some product with any lifespan. I still remember my shock/surprise to run into someone from EDS who was maintaining code I'd written in Clipper - some ten years product had disappeared from the market... Says something about EDS? (I remember a manager proudly stating we sold solid, tested, trailing-edge technology - though he may have used "tried and true" in place of "trailing-edge")
    Right now, I have a project where two different msp devices, one with significant memory constraints, the other without, where I'm writing in C for one and C++ for the other. Not as confusing as when my older daughter was studying both French and Spanish simultaneously, but still with moments of "Can I do this? Should I do that?"
    Personally, I like the object paradigm, which fits the way my brain works better.  But C (hopefully well designed and structured) is the better choice for my one limited device.  The master device has significantly more complexity to the design, and C++ is likely to allow for a more easily maintained system - again assuming a good design.
    Bad designs can be implemented poorly in any language, and become rapildy, if not immediately, unmaintainable.
  24. Like
    yyrkoon got a reaction from NurseBob in More C versus C++   
    @nickds1
    Yes, one language is procedural,  while the other is object oriented in nature. You'll possibly hear a lot from the crowd that thinks procedural versus object oriented is not something you classify a language with. But is instead a style of coding. I can see good points from both sides of that "argument". But I do think that some languages are better suited for one thing or another - Of course
    I do not think anyone here was arguing that C or C++ is better for embedded systems. Any programmer with any amount of experience knows there are many languages to choose from, and that every programmer may potentially know, or be familiar with several.  We ( experienced programmers ) also probably have a language that we're most proficient with. In my own case, that would be C. So when people start talking about C versus C++ strings, like I did here. I may not know every_single_detail, but I am familiar enough with both languages to know which conceptually is better suited for strings. By "conceptually" I mean if you're aware of a potential issue, and how to solve that same issue. Is that issue really an issue at all ? Subjective I say, but in my own opinion. No it's not a problem. For me.
    Does that mean that I think one language or another has no place in the programmers world ? No, not necessarily. I think even "BF" has a use, if for nothing else. To help people think differently.
    I've always said, at least for the last 15 or so years( I've been "coding" since the mid 90's ) that every language has it's use. Also that every programmer is going to have a favorite language, that they'll try to use first. Whenever possible. So in this context, when I say I do not like something, about any language other than C. That's because I have far more experience in C, than most language. Do I think C++ is garbage. No, not by a long shot. I do think it is odd that a more "RAD" style language would actually take more lines of code when compared to C. To do a given thing. I also think C++ is far more complex as a language. Which in turn could present its self as a problem to a programmer who knows exactly what to expect from another language. In my case, C.
    Usually, when I'm thinking Object Oriented, C++ is not a the top of my own list. Golang actually is looking far more suitable now days. But it too has it's own pluses, and minuses.
    EDIT:
    By the way, I do think Kate Gregory has many good points on the subject of "Stop teaching C" as well. From my own perspective, learning C first, then attempting to learn C++ after. Early on, I did not even know the difference between the two language. To me, C++ was "just another" C, with newer features. I even had a few mentors from IRC trying to explain to me the differences. Here, for me, I think the biggest difference from then, until now is - Experience.
    But I do agree with Kate, and I suppose you too, That we do not need to know C, to use C++. In fact, it may even be beneficial to teach C++ first, or even only.
     
  25. Like
    yyrkoon reacted to zeke in Implementing an I2C slave device.   
    @yyrkoon,
    This is a schematic of a typical programming setup.

    It doesn't matter what MSP430 that you use because they all can be wired up like this.
    To program this unit, I connect another G2 LaunchPad to this circuit using a four wire cable between P1 of this circuit and either J3 or J4 of the G2 LaunchPad board.
    Then program the circuit as if you were programming the G2 LaunchPad.
     
     
     
×
×
  • Create New...