Structural

Members
  • Content count

    767
  • Joined

  • Last visited

Community Reputation

328 Neutral

About Structural

  • Rank
    Advanced Member
  1. Hi all,   my colleagues and I are having a recurring discussion about separation of functionality/logic. Personally my view (and perhaps I am stuck in this way of thinking) is to separate data/domain and algorithm/functionality. And I notice I'm quite a purist in that. My colleagues on the other hand tend to put the functionality over multiple classes that I would consider "data"-classes, or domain classes.   More concretely, we are now implementing a user story that aligns images, grouped by date and image series.  My natural tendency, first reflex, is to start making an ImageAligner class in which I'd implement that feature, using the domain/data. This would have all the "algorithmic" stuff needed for the feature, like grouping by date etc etc, including the alignment logic. The application would then instantiate that ImageAligner and it would listen to the data/context and do its stuff. My colleagues argue on the other hand that the ImageAligner class is not needed. They claim it would be fine to put parts of the feature into the domain objects. The feature would be implemented through the collaboration of these domain classes. One of their other arguments is that, because my solution looks like a strategy pattern, it adds just more complexity. They would even say it's over-engineered. Whereas I find it simpler because it isolates the feature in one place, making it easier to find and modify.    I'm having a hard time convincing them (and they me). Mainly because what I see as domain/data objects, they consider to be functionality/feature classes. Also I have had some very good experiences in the past separating logic and domain in this way, making it hard for me to let go of this pattern of thinking. Do you strictly separate algorithms/features/logic from domain/data in separate classes? What would be arguments for choosing the one or the other design?  Or am I just stuck in an odd way of thinking? Penny for your thoughts.
  2. I was more thinking about a wire frame like [url="http://browse.deviantart.com/?qh=&section=&q=heart#/demwcy"]this[/url]. But instead of bending and twisting, weld or solder it (I do have the tools and experience to do that). And because I intend to make a slightly bigger one than in that picture, make the wireframe more fine (more wires). Kind of like the picture/wireframe you posted. I hadn't yet considered the wire mesh/net though. I'll think about it. It seems like a material that is easy enough to work with. Thanks a lot by the way for the pictures of the heart. The wireframe is nice and I think it may serve as a good basis for the design.
  3. Thank you both for your feedback. I downloaded papercraft (nice tool, may use it more often), and found out that it could not make much sense of it. At least, it came up with something very unexpected. Using papercraft I took a closer look at the shape (having a 3D representation helps, I couldn't for the life imagine it in my head) and I understand your point sunandshadow. You can't make it without either seriously contracting/stretching the material, or having creases in the final result. I'm sure there are ways to do it (blacksmithing style) but I don't have any experience with that, let alone the tools. So I'll have to think of something else. I saw some hearts made of wire. Perhaps I can come up with something nice incorporating that. Thanks again
  4. Hi all, My parents will have their 25th wedding anniversary later this year and I want to make them a present. I plan on making a 3D heart out of sheet metal and decorate it with roses (also out of sheet metal), and have it nicely coated (silvery hopefully). However, I am unable to figure out the shape of sheet metal that I need to get the heart in the right shape in 3D. I am not too familiar with 3D modeling, but what I think I need is an UV-unwrap of a 3D heart shape. If I'm not mistaken the UV-unwrap lays out the polygons on a 2D surface, right? Once I know how the 3D shape is laid out in a 2D surface I can better figure out how to work the metal to get it into shape. If anyone can provide me with a picture of a UV-unwrap of a 3D heart, and a shaded front/side/top view of it, I'd be forever grateful. To give you an idea of what kind of shape I'm looking for: http://www.turbosquid.com/3d-models/iconic-heart-3ds-free/389728 I hope you can help me with this.
  5. Why can't my PC handle 4 ram slots...

    Perhaps, by coincidence, one of your RAM sticks is corrupt/broken, and you took out the corrupted one?
  6. This forum problem

    I haven't had any issues with this forum so far. Have you tried another browser? I've seen sites that load very slowly in IE, but are blazingly fast in Opera. [img]http://www.speedtest.net/result/1129015808.png[/img] ~50 euros, in a tripple play contract (TV, phone and internet), in the Netherlands.
  7. Quote:Original post by Bow_vernon I mostly copied the coding style of ben bishop, although mine's more crappy looking. ben used to put: //zz> ur comment here //================== I somehow wonder why his code looks tidier than mine even if I copied his commenting style....although I can understand it, it just somehow looks messy... Perhaps it's because it's not the comments that make code look tidy and understandable? I also used to insert a lot of whitespace between methods and control blocks. I also wrote long methods and huge classes, so I needed a trigger while scrolling through a file where the next method started. Nowadays I write much smaller methods and got better as separating concerns into classes. There are much fewer walls of text now. Also when I just started out I used to comment about every line of code I wrote: // set counter to zero int i = 0; Nowadays when I read code like that I feel kind of offended by the author. As if I'm too stupid to read code and need everything written out in English. Oh, and I also find these kind of comment kind of silly: /////////////////////////// // End of post ///////////////////////////
  8. Hi all, I have a little problem with filling a ttk.treeview widget from another thread. I have a rather large treeview, and in order to keep the UI responsive while filling the treeview, I decided to fill it from a separate thread. Because direct access to the treeview from a separate thread results in exceptions (parent node not existing (yet)) I dispatch everything on the main thread with Tk.after(delay, func). However, when I expand a node while the treeview is being filled, or wiggle the scrollbar that scrolls the treeview, the python iterpreter crashes. I'm running Python 2.6 with pyttk 0.3.2. My question is if anyone has tried to fill a ttk.treeview from a separate thread before and if someone has encountered this problem before? I haven't isolated the problem in a small sample application yet. If the need arises I will do so.
  9. I'm stupid, are u too?

    I just spent the better part of the afternoon trying to find out why this code was unable to delete a file: def GetOutput(self): guid = uuid.uuid1() fileName = str(guid) self.__DownloadOutputFile(fileName) f = open(fileName, "r") s = f.read() f.close os.remove(fileName) return s I was suspecting the file download and looking for the mistake there, while instead I forgot two braces after the f.close. Damn you python! Damn you for not slapping me around the face for this error! :-(
  10. To hell with the spammers!

    I disabled registrations on our forum because spam accounts could get past the captcha and I got tired of deleting the accounts all the time. A new spam account would pop up every few days. Luckily the forum I run is for a group of friends so no new people registered the past few years. But these spammers seem to be awfully persistent.
  11. Currently: CM synergy - a repository A crapload of scripts (python, batch, perl, bash) for testing and building A load of in-house developed build tools Visual studio 2008 It's terrible. Nothing ever works, everyone hacks their own scripts together to get something to work. Setting up your development environment takes ages, and when you made a typo somewhere while executing the development setup document, you're doomed to do part of it over because weird stuff happens and no one knows what the hell is going on. I decided to put my repository checkout in a different location than described... what a mistake that was. In a previous project: Subversion Trac Hudson (continuous integration server, I haven't set it up, but it was a pleasure working with it) NUnit + RhinoMocks Visual studio 2008 TestDriven (Nunit integration in your VS)
  12. How much paper is in your life?

    Quote:Original post by ChurchSkiz Quote:Original post by Khaiy If someone sends me a paper record of anything, I keep it in a folder. This includes utility bills, leases, medical records, anything that I might need later for some legal reason or another. Aside from that, I don't bother keeping them. While paper records have some slight advantages over digital in some few cases, approaching digital storage thoughtfully generally fills the same needs better and more efficiently. I used to do that, because my parents did and instilled it in me. Then a few years ago I was cleaning out my filing cabinet and noticed I had years and years of bills and stuff that I would never in my lifetime use. I had an "A-ha" moment and now just throw out that junk. I had this same "A-ha" moment, but I still find it hard to throw out invoices, bills, receipts or notifications. I'm still afraid that I might need one of those documents for... I don't know... My mother taught me this. She's always like "You MUST hold on to this for x years for <insert taxes/warranty/proof for whatever>". The realization that keeping on to that paper trail is mostly nonsense came to me when I found a receipt, of which the paper had turned yellow, of something that I hadn't even paid 100 euros for. I have NEVER in my life needed a receipt that was older than a week to return something. Plus, I hate sorting out papers... eurgh! But how wise is it really to throw out all papers except legal document? I see no harm in it really. Or am I missing something?
  13. talking smart

    Quote:Original post by Rycross Quote:Original post by kseh I've been at this for 10 years and I still don't understand how an abundant use of jargon serves anything other than to confuse the majority of people other than the few people that need very detailed and technical information. I had the same complaint. Then someone pointed out to me that its far faster to say, for example, "Dependency Injection" than "Passing in dependencies through constructors or setters." Even "dependency" is sort-of jargon for "an object or service that this code needs," so using the word "Dependency Injection" saves you from saying "We need to pass in the objects that this code needs in some way." In other words, the jargon streamlines communication by assuming a base shared vocabulary specific to the problem domain. Furthermore, if you think about it, its inevitable that some skilled field will accumulate short-hand terms for broader concepts in the interest of communication. Lawyers do it, accountants do it, economists do it... hell in most of the companies I've worked at there is even company-specific jargon. Its irritating, but important for good succinct communication. The programming specific jargon: ok, I accept that because it is shared amongst developers across the globe. But I really hate company specific jargon, especially if they use three/four-letter abbreviations for everything. CEP, ISR, FAT (no, not the file system, it stands for F-something Automatic Test), ADTF, SVO... and the list goes on and on. It's so pointlessly confusing. I'm trying to not use the abbreviations on purpose, and just say/write the whole thing, or use a synonym that is just as clear.
  14. Would you still?

    Quote:Original post by denebo Would you still program and actually write down large piece of code if you were already the owner of your own successful software company and/or a multi-millionaire? Yes, but I would be working on projects that would actually interest me, rather than working on the uninteresting stuff that my boss tells me to do. I would also invest time in learning how to work with hardware, such as electronics and mechanics.