Embedded tools can be hard to set up, but are usually very reliable once they are. Is there any support for the RTOS or some example bootstrapping code or standard development boards? They might help you get to the point where there is only one thing being fixed rather than the hardware and software at the same time. As an alternative I wondered whether it would be possible to move over slowly, beginning with creating a board that runs a 40 pin display by being sent commands over whatever common bus will work, but keeping the main code where it is. The display board could then be fairly dumb and possibly just hardware rather than any software. The idea effectively being applying the strangler pattern to the current hardware. That might be easier than moving everything in one step in order to enable what is a small fraction of the current functionality, as there will only be a single thing to get working. This idea probably doesn't work for 100 reasons I haven't thought of but hopefully it is harmless to suggest it :).
M Towler
Posts
-
I did this to myself. *headdesk* -
Switch to a 4-day week?I switched to a 30 hour, 4 day week a few years back. It's a 20% pay cut but a 50% rise in days off, and has felt like a good trade off.
-
The dinosaur strikes backMailChimp works well for me, though you do need to send from a domain name and not just a google account, to avoid all your messages being marked as spam.
-
Career advice of the day: Advocate for yourselfThere is some evidence that this behaviour may contribute to the gender pay gap. As a generalisation there is a greater proportion of men than women prepared to say they are awesome, regardless of whether they are or not. In general I would also say that the likelihood of stating that one is awesome is also not directly linked to ability...
-
So, if you're manager asked you to use a nickname...Rather than go straight for the lawyers, I would ask for a private meeting with the boss. Politely explain that what has been suggested could be viewed as discriminatory and not unacceptable in this day and age. Say that you are proud of your name and heritage and will not use a nickname, and leave it with him. See what happens - he will likely either quietly back down or will double down on the insult, in which case at that point consider bringing out the lawyers. I would consider having HR (or some other person) present at the meeting, though that would raise the temperature a bit. I appreciate this may be a quintessentially more English way of dealing with such issues...
-
Education Reform Now (Part Deux)DrABELL wrote:
what is that special they are doing in the classrooms that cannot be done online?
Childcare. Classrooms are a really good way to look after a large number of children with a small number of staff. Otherwise someone has to stay home all day every day to look after the child whilst they do their online learning. They might even clog up your internet connection thereby stopping you spending all day posting comments in forums such as this one :)
-
Poetry Requirement on a Job Application??Kornfeld Eliyahu Peter wrote:
Like the game we had when you whisper a sentence the next to you in a circle and wait it to come back on the other side. As you can only once to whisper the final sentence rarely resembles the original, which cause much fun...
Which in English is named "Chinese whispers" :)
-
What have you made with your own two hands?I will suggest a ukulele or mandolin. Both have only four strings so much easier than a guitar. The ukulele is brilliant for getting going with chords and singing. A mandolin has the same tuning as a violin, so you can get reasonably good before attempting the other.
-
Problematic Stakeholder: How can I make this work?A possibility is to try and have responsibility for the detailed design delegated down to one of the staff who actually use the system. This might be possible by agreeing with the owner that you understand fundamentally what he wants, but it would help to discuss the details with the users. This could be pitched as freeing up his time. It sounds as if he is a bit of a control freak, so there may always be an element of needing to do things under the radar. I have worked occasionally where a project succeeds in this way despite the management! I suspect the graphic designer will be too junior or worried about future employment to do anything that is even slightly different to what the owner says, so may be tricky to handle. They could end up feeling like piggy-in-the-middle of yourself and the owner. The ideal here may be to try to make them part of the dev team or for you to become their boss.
-
This Makes Me AngryI don't see what the problem is. Google are releasing a plugin into the market and whether it becomes adopted will depend entirely on user take up, there is little they can do to force users to use it. Microsoft has added lots of extensions to IE over the years in the hope the world would all migrate to using them, this seems no different. MS mostly failed because their browser was, IMO and continues to be, very poor compared to the competition. If users move to chrome in droves, this interface will become standardised and all browsers will either support it or die. Silverlight was introduced as a reaction by Microsoft to Flash taking over the web, with the fairly widely understood aim of killing off Flash. This fragmented the market which hurt Flash, then Apple's refusal to allow Flash on mobile devices killed it off. The job done, Microsoft IMO fairly cynically pulled Silverlight. The point I am making is that in the sphere of web browsers, Darwinism is what decides what flourishes, with success being defined by user take up, in turn driving web developer support.
-
After so many hacks, why won't Java just go away?Marco Bertschi wrote:
Qt was first developed as a framework for Nokias' old Symbian system and just became in the past few releases a good framework for other (Desktop) environments.
As a long term Qt user, I believe this to be untrue. Qt started over ten years ago as a cross platform tookit for windows, linux, solaris, irix etc (I have used it to release on all these platforms). It was more recently (say five years ago) ported to Symbian (after Nokia bought the company) windows CE and Mac X. Then a year or two ago Nokia sold the company to Digia, who are more like the original development company Trolltech.
-
Git rant, Part II - the word is the thingMy feeling is that there is a lack of understanding of the concept of a hierachy of repositories. When the file is added to your local repo it is being committed in the classic VCS sense, as it is being added/updated in a versioned controlled repository. The difference is that the respository is (typically) personal rather than (unusually) shared. When you copy your versions to the remote location you are combining together repositories, which is quite a different act to the commit of a number of files.
-
Programming QuestionI feel that level of commenting or descriptive naming would be breaking encapsulation, by exposing the implementation of GetTaxRate. I will go further and say that it would be repeating some of the documentation of GetTaxRate, so fails DRY. This piece of code is simply doing a calculation, so it calls a function to get the rate. It does not really need to have knowledge of where the rate came from to do its task, so it is best not to give it this knowledge. Having minimal information in this function means it will not become out of date when the implementation of GetTaxRate changes, such as to add a local cache of the value obtained from the service, using a database of rates or some other alteration. In summary, what I am really saying is that comments of this type raise the cost of maintenance, as each later change will have to find and change multiple comments in addition to the code itself, or else risk misleading future maintainers.
-
Programming QuestionI am more of an adherent to the "comments are bad" brigade, so will offer a counter view. To be more precise I agree more with the statement that "all comments are apologies [for not making the code self documenting]". I do like statements of intent, not implementation. In the example given, I like the function comment, it states the intent and required preconditions.
///
/// Calculate the tax, taking into account the fine passed.
/// Requires that the tax rate is retrievable from the TaxService
///Whereas the following two appear to me to be worthless and merely clutter up the code. I can tell the first line is getting the tax rate, by the call to the self documenting function, and I know the rest is calculating the value because it is obviously a calculation and it corresponds with what the statement of intent in the function documentation was.
// Get the tax rate using the appropriate service
double taxRate = GetTaxRate();
// calculate the fineComments like the above make code harder to read IMO just due to volume of text. More importantly they are often not updated perfectly when code is maintained, especially when scripted edits are performed; I have been misled in the past by reading the comments and the two not corresponding and this has cost me time, so I would prefer to just read the code and not be distracted. Also where they are a repeat of the code they fail the DRY principle. Like yourself I do write comments during the process of implementation, if I want to sketch out some pseudo code in a comment then slowly turn it into code (just in case I win the lottery and someone else has to finish it off). The difference for me is that once I have finished the code, the comments will have been almost entirely replaced by the code.
-
"You know you're a Version Control Avoider if..."Not that I need to sell my co-workers a VCS, but this post is utterly brilliant and I can see it coming in useful for me many times in future when I do need to sell an idea to those I expect to resist. Thanks Mike.
-
Choosing VCS for Single Developer, Small Projects, Two PC's, Two LocationsI suggest a mercurial repository on bitbucket.org. I am just in the process of migrating from CVS to mercurial and having now used it a little I believe it is much better than many of the alternatives. Having your code in the cloud allows you to access it anywhere, and you have a complete history on each machine you use so it does not matter if you do not always have access to the remote server, unlike CVS or Subversion.
-
As a desktop app developer, would you target Mac OS and Linux?The company I work for does, because many of our customers are academics. Academics don't like paying for software, but do like spending money on Macs - and not spending money on linux machines :). Linux is more of a server system, but often where there are only one or two users the server is also the machine for viewing the results on. Asking the customers what they use only works up to a point, on the basis that if you only support windows they won't be your customers if they cannot use the software. What you are interested in is how many new customers you would get if you supported a new platform, or how many would leave if you dropped one. My experience is that when one is dropped usually users complain, but as long as there is a viable option they will move. That said there were one or two who got very upset when we dropped support for their decade old irix machine!
-
Office Dress CodesMine is jeans and T-shirt all year round. I might put on a smarter pair of trousers and a neater t-shirt if I have visitors. A shirt and tie and some slacks I might wear if it was someone really important was coming.
-
while (true) and for (; ; ) [modified]I use these when the structure of the code dictates it would be helpful to have the loop termination condition in the *middle* of the loop. Something like the following for(;;) { // do some stuff if( stuff is now done ) break; // more stuff } Otherwise the alternative is to replicate the "// do some stuff" code before the first loop iteration, which is avoidable duplication. The other way to achieve this is to put "// do some stuff" into a function, then use the comma operator in the loop condition to execute some code first. I tend to regard the comma operator as a very last resort though, most programmers don't even realise it exists let alone how to use it.
-
[Updated] Which security solution do you swear by?I have a similar dilemma, I have a paid for license for AVG but have been getting annoyed with how the newer versions are resource hogs, that said my machine is geriatric (XP, single 2.5GHz core, 1GB RAM) so I may simply be being unrealistic. McAfee is in my experience the worse resource hog of all, I had it at work for years because we got it free via a site licence. We now pay for the excellent Sophos, but that is not available for personal use. PCs are about twice the speed as a result. People I work with are recommending Norton, which is interesting given other comments here. I had it in 2002 or so, but abandoned it for AVG when the one time I had a virus it was not detected, and I felt the support people were spinning me a story rather than taking my report seriously.