How to structure my GUI agnostic project?

I have a project which loads from database a XML file which defines a form for some user. XML is transformed into a collection of objects whose classes derive from single parent. Something like Control -> EditControl -> TextBox Control -> ContainterControl -> Panel Those classes are responsible for creation of GUI controls for three different enviroments: WinForms, DevExpress XtraReports and WebForms. All three frameworks share mostly the same control tree and have a common single parent (Windows.Forms.Control, XrControl and WebControl). So, how to do it? Solution a) Control class has abstract methods               Control CreateWinControl();     XrControl CreateXtraControl();     WebControl CreateWebControl();      This could work but the project has to reference all three frameworks and the classes are going to be fat with methods which would support all three implementations. Solution b) Each framework implementation is done in separate projects and have the exact class tree like the Core project. All three implementations are connected using a interface to the Core class. This seems clean but I'm having a hard time wrapping my head around it. Does anyone have a simpler solution or a suggestion how should I approach this task?


Inherit one instance variable from the global scope

I'm using Curses to create a command line GUI with Ruby. Everything's going well, but I have hit a slight snag. I don't think Curses knowledge (esoteric to be fair) is required to answer this question, just Ruby concepts such as objects and inheritance. **I'm going to explain my problem now, but if I'm banging on, just look at the example below.** Basically, every Window instance needs to have .close called on it in order to close it. Some Window instances have other Windows associated with it. When closing a Window instance, I want to be able to close all of the other Window instances associated with it at the same time. Because associated Windows are generated in a logical fashion, (I append the name with a number: `instance_variable_set(self + integer, Window.new(10,10,10,10))` ), it's easy to target generated windows, because methods can anticipate what assosiated windows will be called, `(I can recreate the instance variable name from scratch, and almost query it: instance_variable_get(self + integer)`. I have a delete method that handles this. If the delete method is just a normal, global method (called like this: `delete_window(@win543)` then everything works perfectly. However, if the delete method is an instance method, which it needs to be in-order to use the `self` keyword, it doesn't work for a very clear reason; it can 'query' the correct instance variable perfectly well (`instance_variable_get(self + integer)`), however, **because it's an instance method, the global instances aren't scoped to it!** Now, one way around this would obviously be to simply make a global method like this: `delete_window(@win543)`. But I have attributes associated with my window instances, and it all works very elegantly. This is very simplified, but it literally translates the problem exactly:               class Dog             def speak                     woof             end     end          def woof             if @dog_generic == nil                     puts "@dog_generic isn't scoped when .woof is called from a class method!\n"             else                     puts "@dog_generic is scoped when .woof is called from the global scope. See:\n" + @dog_generic             end     end          @dog_generic = "Woof!"     lassie = Dog.new     lassie.speak #=> @dog_generic isn't scoped when .woof is called from an instance method!\n          woof #=> @dog_generic is scoped when .woof is called from the global scope. See:\nWoof!      **TL/DR:** I need `lassie.speak` to return this string: `"@dog_generic is scoped when .woof is called from the global scope. See:\nWoof!"` @dog_generic must remain as an insance variable. The use of Globals or Constants is not acceptable. Could woof inherit from the Global scope? Maybe some sort of keyword:               def woof < global # This 'code' is just to conceptualise what I want to do, don't take offence!     end      Is there some way the .woof method could 'pull in' @dog_generic from the global scope? Will @dog_generic have to be passed in as a parameter?


How to stay in the zone after finishing a task?

I've noticed that while I'm programming, I divide my work into tasks and until a task is complete I cannot stop, even if it takes hours. However, once that task is complete, I find it very hard to move onto the next task. I feel the urge to spend some time having a break, surfing the web, etc, and before you know it the rest of the work day has gone by. Sometimes if it only took 1-2 hours to complete a task, this still happens. Has anyone else experienced this? How do you deal with this so you stay in the zone till all your tasks for the day are done?


Git: Fixing a bug affecting two branches

I'm basing my Git repo on A successful Git branching model and was wondering what happens if you have this situation: ![enter image description here](http://i.stack.imgur.com/lLGpu.png) Say I'm developing on two feature branches A and B, and B requires code from A. The X node introduces an error in feature A which affects branch B, but this is not detected at node Y where feature A and B were merged and testing was conducted before branching out again and working on the next iteration. As a result, the bug is found at node Z by the people working on feature B. At this stage it's decided that a bugfix is needed. This fix should be applied to both features, since the people working on feature A also need the bug fixed, since its part of their feature. Should a bugfix branch be created from the latest feature A node (the one branching from node Y) and then merged with feature A? After which both features are merged into develop again and tested before branching out? The problem with this is that it requires both branches to merge to fix the issue. Since feature B doesn't touch code in feature A, is there a way to change the history at node Y by implementing the fix and still allowing the feature B branch to remain unmerged yet have the fixed code from feature A? Mildly related: Git bug branching convention


Is there a reason someone would choose GPLv2 instead of GPLv3?

Is there any reason anyone would use GPL v2 over GPL v3 when starting a new project, or is GPL v2 still around only because older projects can't or haven't updated their license yet?


Proper way to implement Android XML onClick attribute in Activity

I have used the android:onClick attribute extensively in my XML layouts for my Android application. **Example:**               <Button         android:id="@+id/exampleButton"         android:onClick="onButtonClick" />      Is it proper to create an Interface to enforce the implementation of those onClick methods in Activities that use that layout file?               public interface MyButtonInterface {         public onButtonClick(View v);     }


Should I cache the data or hit the database?

I have not worked with any caching mechanisms and was wondering what my options are in the .net world for the following scenario. We basically have a a REST Service where the user passes an ID of a Category (think folder) and this category may have lots of sub categories and each of the sub categories could have 1000 of media containers (think file reference objects) which contain information about a file that may be on a NAS or SAN server (files are videos in this case). The relationship between these categories is stored in a database together with some permission rules and meta data about the sub categories. So from a UI perspective we have a lazy loaded tree control which is driven by the user by clicking on each sub folder (think of Windows explorer). Once they come to a URL of the video file, they then can watch the video. The number of users could grow into the 1000s and the sub categories and videos could be in the 10000s as the system grows. The question is should we carry on the way it is currently working where each request hits the database or should we think about caching the data? We are on using IIS 6/7 and Asp.net.


Has test driven development (TDD) actually benefited a real world project?

I am not new to coding. I have been coding (seriously) for over 15 years now. I have always had some testing for my code. However, over the last few months I have been learning test driven design/development (TDD) using Ruby on Rails. So far, I'm not seeing the benefit. I see some benefit to writing tests for some things, but very few. And while I like the idea of writing the test first, I find I spend substantially more time trying to debug my tests to get them to say what I really mean than I do debugging actual code. This is probably because the test code is often substantially more complicated than the code it tests. I hope this is just inexperience with the available tools (RSpec in this case). I must say though, at this point, the level of frustration mixed with the disappointing lack of performance is beyond unacceptable. So far, the only value I'm seeing from TDD is a growing library of RSpec files that serve as templates for other projects/files. Which is not much more useful, maybe less useful, than the actual project code files. In reading the available literature, I notice that TDD seems to be a massive time sink up front, but pays off in the end. I'm just wondering, are there any real world examples? Does this massive frustration ever pay off in the real world? I really hope I did not miss this question somewhere else on here. I searched, but all the questions/answers are several years old at this point. It was a rare occasion when I found a developer who would say anything bad about TDD, which is why I have spent as much time on this as I have. However, I noticed that nobody seems to point to specific real-world examples. I did read one answer that said the guy debugging the code in 2011 would thank you for have a complete unit testing suite (I think that comment was made in 2008). So, I'm just wondering, after all these years, do we finally have any examples showing the payoff is real? Has anybody actually inherited or gone back to code that was designed/developed with TDD and has a complete set of unit tests and actually felt a payoff? Or did you find that you were spending so much time trying to figure out what the test was testing (and why it was important) that you just tossed out the whole mess and dug into the code?


Using GPL software with closed-source hardware

Does it violate the GPL v3 if I were to use a gpl licensed firmware with my closed-source hardware that I am selling? Or do both have to be open-source, or do I just have to make the firmware source freely available? Thanks!


Should I open up to .net, c# and visual basic?

I am a huge linux fan and have been ignoring .net, C#, and visual basic due to their relationship with Microsoft. Am I foredooming them just for their relationship? Is there any advantage to learning them, when you are mainly a linux user?


Developing a Project in a Statically Typed Language Entirely in VIM

I've recently started taking Scala to heart (sweet Python, I still love you, but your collections just can't match Scala's), and in doing so am now using IntelliJ IDEA almost entirely for development. However, IDEA's Scala plugin is far from perfect, and there are many times I wish I could just go back to my one editor love -- VIM. Unfortunately, there are a few Intellisense-like features I still don't know how to retrieve. Namely,   1. automatic imports   2. type inconsistency recognition   3. method definition lookup   4. a list of valid methods or variables for instances Can anyone recommend any tools to get these done? While Scala is the language most preferred, these concerns are equally valid for C++ and Java. I really would like to leave IDEs behind!


How to make a good portfolio for IT student (who loves programming) like me?

I am currently a college student, and going to apply for an university in probably next month. Unlike art student who easily put on their works such as models, designs and so on on their portfolio; I am hitting a dead corner trying to find a "creative" way to showcase my work as a programmer. It would be normal if programmer shows his good project with source code and everything else. Well, it should be no problem with actual "good" projects, but all of my projects are crappy (can't help it because I am still student, and don't have much work experience) and I don't even know it's worth to show. Nonetheless, I have learned a lot in only 1 year since I started programming. I am now familiar with Java, PHP, Actionscript3, C#, Objective-C and on my way to learn Ruby. I plan to build a Flash portfolio using Actionscript with Ruby as backend to show what I have learnt. The problem is idea. How to show people that I learned a lot of useful thing? Otherwise I hit the dead end and LOL just show what I have on Github (but i certainly never want that...)


What is the argument for singular nouns in RESTful API resource naming?

I understand that when naming RESTful URI's it is commonly accepted to use plurals to represent collections of resources. I am curious as to the argument for using singular nouns instead.


Checklist for starting a largeish ASP.NET MVC 3 project

Currently I'm in the very beginnings of the planning stages of a project I was hired to take part in. It's fairly large, but small enough to be handled by 1 or 2 programmers and a handful of others (for design, marketing, etc.). Mostly the designers and marketers are working on their plans right now, but I have to start thinking about how I'm going to approach it. I think I'm going to use C# and ASP.NET MVC 3 to build it. I'm familiar with C# and the MVC pattern, but haven't done a big project with this particular technology before. I'd like to build a "checklist" of things I need to look at, buy, become familiar with, etc. before starting the project:   * **Database** : I'm assuming that MS SQL server is the standard to use with .net, but: for larger projects, do I need to upgrade from whatever is free/comes with VS2010 express? What steps do I need to take in designing the database for use with MVC? Or LINQ?   * **Testing** : What testing framework is best for this type of application? What testing methodologies should I consider for a web application? How should I approach testing the models and views? Is there a difference between testing controllers from testing a class in any other application?   * **Development** : Is there a particular pattern/patterns which mesh well with MVC development? Do I write the models first, then the controllers? The views first, then the models? Controllers first? How do I write the application to allow for easy update rollouts?   * **Deployment** : What is involved in deploying a .net web application? Do I need to purchase IIS? What should I look into before deployment, wrt configuring the production server? How do I roll out updates with minimal downtime?   * **Etc.:** Is there anything else I should be aware of? Costs? Caveats? Books/websites I should read before ever launching VS?


How to decide how backward-compatible my new Mac OS X application should be?

I'm currently contemplating writing an OS X version of my Windows software. My Windows application still supports Windows XP, and I know that if I drop support for it now, our customers will cry bloody murder. I'm new to OS X development, and as I learn the technology, APIs, etc., I realized that if I'm going to provide comparable level of backward compatibility (e.g. down to OS X 10.5), I would not be able to use many things that look very useful and relevant in my case (ARC, XPC communications, many others). This is quite different from Windows, in my opinion, where there are very little changed between Windows XP and Windows 7 from desktop application developer's standpoint. So, on one hand, it seems like a complete waste to stick to 2007 or 2009-level API in 2012. On the other hand, according to NetMarketShare report and Stat Owl report Mac OS X 10.5 and 10.6 market share is still 11% and 35%-40% respectively. However, I'm not sure if these older OS users are my target audience (buyers of software utilities) if they didn't bother to upgrade their OS... **My question** : Are there any other reasons I should take into account when deciding if I target 10.5 or 10.6 or 10.7 for a new application?


Could submitting a Pull Request ever constitute accepting a Contributor Licence Agreement?

Some software projects have a Contributor Licence Agreement. The agreement could, for instance, assign copyright of 3rd-party contributions to the original project creator. Could submitting a Pull Request on github ever constitute accepting such an agreement?


Why does the Lisp community prefer to accumulate all the parentheses at the end of the function?

Why does the Lisp community prefer to accumulate all the parentheses at the end of the function:               (defn defer-expensive [cheap expensive]       (if-let [good-enough (force cheap)]         good-enough         (force expensive)))      Why not employ a convention like C or Java?   Well ok, Lisp is much more older than those languages, but I'm talking about the contemporary Lispers.               (defn defer-expensive [cheap expensive]       (if-let [good-enough (force cheap)]         good-enough         (force expensive)       )     )      Note: Code snippet is from the book "The Joy of Clojure".


Is it good practice to catch a checked exception and throw a RuntimeException?

I read some code of a colleague and found that he often catches various exceptions and then always throws a 'RuntimeException' instead. I always thought this is very bad practice. Am I wrong?


Why would one transform a checked exception to an unchecked exception?

My buddy told me today that some programmers transform a checked exception (e.g. EJBException, SQLException...) to an unchecked (RuntimeException?) My buddy explained a call stack where if you change the bottom of the stack you would have to change every method that calls it if you change the bottom (innermost) method. Can you elaborate and/or examplify with code more in detail or did I misunderstand something? I don't think that I have had that problem since I never wrote `throws`.


How do programming languages benefit from being based on English?

I think the world now programs in English-based programming languages not only because of historical/economic circumstances, but because the English morphology in particular has some properties that suit algorithmic thinking best. But anyway it would be interesting to hear your opinions on this, especially if you are multilingual yourself. I've seen some mentioning of German-based languages (see Plankalkul for example, in fact the first ever programming language we know very little about, thanks to WW2), also a Russian-based flavor of Algol which existed back in the 80's at least on paper, not sure if it ever existed in binary or not. Both looked a bit sluggish because there were more shortened words and weird abbreviations than full words like in the EN-based languages. So if you know of any other national language-based PL's, even completely archaic and irrelevant today, purely theoretical or whatever, would be interesting to take a look at them. And back to the main question: so what, if any, makes the Shakespeare's language so good for programming? (There is actually a list of Non-English-based programming languages on Wikipedia (of course, where else?), but it would be interesting to hear opinions of native speakers of those languages on how a given "national" programming languages really feels like.)


Extreme Programming practices make an application more error prone?

I am conducting academic research on the topic of Extreme Programming and whether its practices lead to creating space for more errors and bugs in applications. From the experiences I gathered from many, I have comments that fall on both sides. Many support it and consider it a daily necessity, with dynamics that can facilitate changing project requirements. Many others argue that it leads to many problems, such as:   * Over-involvement with the customer in the process leads to the expression of customer wishes rather than needs   * Many products have multiple customers which lead to conflicting needs and opinions, creating unnecessary blockades   * Many products don’t have any external customers, where the product is made for internal use or to be sold in the future. In these cases, the team itself is playing the user as well as the developer, hence killing the effectiveness of the process.   * Not many things exist in formal documentation, this informality leads to vague vision and can create problems where the customer might say that this is not what we asked etc. etc. The questions is why such conflicting opinions exist regarding XP. Is it a matter of different scenarios? Is there something else? To what extent is the claim (as written in the title) true? I would like people who are working or have worked with XP here to contribute their learning and real world experiences. It would be ideal if you have any facts or references to support you answer.


Is it legal to reflector some .NET code and use it in a commercial application?

I'm working on a commercial application that requires .NET 4.0 **Client Profile** , but I need to make a call to `HttpUtility.ParseQueryString`, which is not included in the Client Profile but it is in the normal one. So I just figured out that I can use Reflector to get the whole method and all the other required methods for it to work and add it to my app. This way I won't need to change the requirement from Client Profile to the normal one which is a lot heavier just to call a single method. Would this be illegal? Do I **have** to change the applications target framework just for a single method?


Beginning programming for real clients, what copyright should I put in the code?

So far, I've been writing projects for my friends and friends of my friends, which required no legal stuff. Now I've moved on to freelance programming on websites like vworker.com and I'm wondering what should I put in the comments on top of the code. I'm not doing big, serious serious projects, just frontends and scrapers/bots for what I gather is personal use. Would my usual `// Written by Igor Marvinsky, 2011` be enough?


Should I include HTML markup in my JSON response?

In an e-commerce site, when adding an item to a cart, I'd like to show a popup window with the options you can choose. Imagine you're ordering an iPod Shuffle and now you have to choose the color and text to engrave. I'd like the window to be modal, so I'm using a lightbox populated by an Ajax call. Now I have two options: ### Option 1: Send only the data, and generate the HTML markup using JavaScript What's nice about this is that it trims down the Ajax request to the bear minimum and doesn't mix the data with the markup. What's not so great about this is that now I need to use JavaScript to do my rendering, instead of having a template engine on the server-side do it. I might be able to clean up the approach a bit by using a client-side templating solution. ### Option 2: Send the HTML markup What's good about this is that I can have the same server-side templating engine I'm using for the rest of my rendering tasks (Django), do the rendering of the lightbox. JavaScript is only used to insert the HTML fragment into the page. So it clearly leaves the rendering to the rendering engine. Makes sense to me. But I don't feel comfortable mixing data and markup in an Ajax call for some reason. I'm not sure what makes me feel uneasy about it. I mean, it's the same way every web page is served up -- data plus markup -- right?


Web Site Development Software for VirtualBox Ubuntu 11.04

I'm doing some development of a website on a VirtualBox guest running Ubuntu 11.04 (host is running Windows, but I want to do the web development in a Linux environment). My development languages are primarily PHP and Javascript (using Apache and node.js). The question is this: is there a good IDE for work under these conditions that can handle running virtualized? I tried Eclipse, and was not particularly thrilled with the performance; I'm wondering if there's some other way to do this than to do all my text editing in emacs.


Which reporting tool you prefer for a web-based application?

For both PHP and ASP.NET, which reporting tool you prefer to create, preview and print reports? Not just printing the web-page directly, any professional third-party or an open-source tool.


C# - initialize variable inside method and use in whole class

this is a conceptual question, but if i initialize a variable in c# as public will it be able to be used in the class as I want a variable "`player1`" and a variable "`player2`" where either could be one of the two (or more)   1. Player   2. Computer  Here is what i would like to know how I would do:               public class Game       {            //equivalent of initializing it here         public bool islogging;           public string[] log;           public int draws, round;                public Game(player p1, computer p2)           {               public player player1 = p1;               public computer player2 = p2;                                                                    }         //other overloads here...         ...     }      trying this it doesn't work as the public keyword is rejected               public Game(player p1, player p2 )     {            public  player player1, player2;          player player3 = p1;          player player4 = p2;           }


Are there any downsides to replacing js confirm boxes with "mark record as deleted"?

I believe in the user experience of always having a confirm pop-up for deletions. However (though we're very used to it), a separate small pop-up window is not ideal and for users on different browsing devices, using different input devices, they can be a nightmare. So I was thinking of changing all my 'confirm delete?' pop-ups into NOT having a pop-up, deleting the record immediately BUT then offering a link to restore the record on whatever page they user is put on after the 'delete'. This absolutely requires that I update the application so that instead of deleting the record, it is either marked as deleted, or moved to a 'deleted_original-table-name' and thus in either case can be deleted. There may then be an 'admin' process available to periodically delete them permanently. I am looking for thoughts on why this might be a bad idea and any pitfalls to watch for. I'd like to know if there are any advantages/disadvantages to moving it to a separate table vs. marking it has deleted.


Automatic code generators

One of my colleagues likes to use automatic code generators, which create large amounts of code that is poorly documented and very hard to maintain. Is the cost of using a code generator worth the hassle in maintenance, for the reduced time to creation?


Managing International Programmers

My boss recently went back to our international office in his home country to interview some potential new employees, and we have decided to hire a few as programmers. They are fresh out of college and have very limited experience (similar to me when I first started working here). I am told they are able to read English, however I looked at the code they wrote as a part of the application process and all their variable names, method names, comments, etc are in Spanish. I am having doubts that they have any ability to _write_ English. I hear they are learners though, so maybe they can learn over time as we give them small training projects. I will be working with them closely, helping them learn good design principles and other things, and I will eventually get to the point where I am producing code with them. Has anyone dealt with this sort of situation and had it end well? What kind of pitfalls should I look out for? What kinds of tools do you know of that can assist in international collaboration and training?


Is it possible to get probabilities from a support vector machine?

From what I understand, SVM's take a discrete number of x and y values from which to learn from, then when given new x values map it to one y value (category). Is it possible to use SVM's or something similar to instead map x values to probabilities of y values? Let me give you an example, say your x values are arrays of two integers: x = [[1,1],[1,0],[0,1],[0,0]], and you have two categories, a and b such that y = [a,a,b,b]. i.e. [1,1] and [1,0] map to a, [0,1] and [0,0] map to b. Given an x value of [1,0.9], the SVM would probably predict the y value to be the category a, given another x value [1,0.89], the SVM would probably still predict the y value to be a part of the a category. This is what I am looking for: Given x and y values as specified above, the "predict" function I am looking for would return an array of tuples for each category in y of the form: (category, probability x was in category). For example, with the case above, the output would look something like this: [(a,.93),(b,.07)] My application of this would be somewhat like a fuzzy logic system, using pseudocode:               if x is almost certainly in category a:         do something     if x is likely to be in category a:         do something else      Does a system like this already have a name? If not, how would I go about implementing something like this? I'm currently using scikit-learn in Python, so if there's something like this I could do with that library, that would be the best.


Is there a better alternative than abusing the IDisposable pattern?

Consider the following (Microsoft-sanctioned) code:               <% using (Html.Form<HomeController>(action=>action.Index())) { %>              <input type="text" id="search" />              <input type="button" value="Submit" />          <% } %>      The `using` statement has but one purpose here: _to add a`</form>` tag to the end of the generated HTML._ This feels dirty to me, for what I hope are obvious reasons:   1. It's not `using`'s raison d'etre.   2. It deliberately causes side-effects.   3. It's not intuitive that `Html.Form` would implement `IDisposable`.   4. The `using` statement is not actually required, but `Html.Form` will break without it (unless you emit `</form>` yourself, which kinda misses the whole point). This is not the only abuse that people have heaped onto the `using` pattern. The question is, is there a viable alternative that provides the same stylistic/readability benefits as `using`, without making you feel like taking a shower afterwards?


Never had a job - Will it matter for internship?

On my 20 years on this planet I have never had a job. I am a CS student who just finished his first year at uni with a 3.8 GPA. I will be applying for internships next fall, and I will have a nice portfolio of "stuff" I can showcase (a mix of web, mobile, and desktop applications) on my resume. But... I don't have any work experience whatsoever. No job folding shirts in the mall; no flipping burgers at Wendy's; nada. Will it be difficult for me to land an internship given that I have no prior work experience? Should I try to find any kind of job in the interval between now and next fall, so I can at least put something down? On a side note, how would it look if I marked myself as "self-employed" as a freelancer selling custom-made websites and web apps (which is something I am planning on doing with a friend)? Would that make up for my lack of real world experience? Would employers eat that kind of thing up? Any and all insight is appreciated!


Is Microsoft's Entity Framework a proprietary variant of NHibernate?

I have no knowledge of Entity Framework and NHibernate but definitely want to learn. I want to know how to start. Whether to first read documentation of NHibernate or the default Visual Studio Entity Framework? Is Microsoft's Entity Framework a variant of NHibernate?


Why do some programmers prefer spaces over tabs?

> **Possible Duplicate:**   >  Why do some languages recommend using spaces rather than tabs? While reading over the style guides for PHP   1. PSR-0   2. PSR-1   3. PSR-2 I noticed the rule > Code MUST use 4 spaces for indenting, not tabs. I'm tabs person, I prefer the faster editing that comes with using tabs. But given that the language or markup doesn't require spaces instead of tabs (ala YAML), why force spaces which are more time consuming to edit?


How can a computer render a CLI/console along with a GUI?

I'm confused when looking into graphics - specifically with operating systems. I mean, how can a computer render a CLI/console along with a GUI? GUI's are completely different from text. And how can we have GUI windows that display text interfaces, ie how can we have CLI in modern Graphics Operating system - that's what I'm mainly trying to grip on to. How does graphics get rendered to display? Is there some sort of memory address that a GPU access which holds all pixel data, and there system's within OS's that gather the pixel position of windows and widgets, along with the Z Index and rasterize them to that memory address, which then the GPU loads to the screen? How about the CLI's integrated with Graphics? How does the OS tell the GPU that a certain part of the screen wants to display text while the rest wants to display pixel data?


Why do git commits not contain the name of the branch they were created on?

When working with git in a team using feature branches, I often find it difficult to understand the branch structure in history. **Example:** Let's say there was a feature branch **feature/make-coffee** , and bugfixing continued on **master** in parallel to the feature branch. History might look like this:               *     merge feature/make-coffee     |\     | *   small bugfix     | |     * |    fix bug #1234     | |     | *    add milk and sugar     | |     * |    improve comments     | |     * |    fix bug #9434     | |     | *    make coffe (without milk or sugar)     | |     * |    improve comments     |/     *      **Problem** At first glance, I find it difficult to tell which side is the feature branch. I usually need to browse several comments on both sides to get an idea of which is which. This gets more complicated if there are multiple feature branches in parallel (particularly if they are for closely related features), or if there was merging in both directions between feature branch and master. As a contrast, in Subversion, this is significantly easier because the branch name is part of the history - so I can tell right away that a commit was originally made on "feature/make-coffee". Git _could_ make this easier by including the name of the current branch in the commit metadata when creating a commit (along with author, date etc.). However, git does not do this. _Is there some fundamental reason why this is not done? Or is it just that nobody wanted the feature? If it's the latter, are there other ways of understanding the purpose of historical branches without seeing the name?_


Is Google's Friend Connect tool defunct?

Looking at the Friend Connect sites, documentation, example, I've noticed that:   * there haven't been updates in a long time   * many of the sites used as example sites are dead or abandoned   * the community (forums, message boards, etc) is relatively silent Is google's Friend Connect set of tools defunct/abandoned, or is it still actively being used, developed and marketed?


Got an idea for an application, but part of it is patented, any suggestions?

so I've been working on developing an idea for an application that I think has the potential to be successful, however after some initial research I've discovered that at least part of my ideas are covered by a patent out there, the patent in particular is held by a really large company (I don't want to give away specifics for fear I'd draw their attention for sure). I'm debating a few options: 1) Develop patents around my ideas that don't conflict and maybe approach the company in question for a license exchange 2) Just approach them for a license outright 3) Just develop around it anyways and hope for the best :-p What have other people done in these situations? Are companies generally willing to grant patent licenses? Are they willing to grant them at reasonable prices? Thoughts?


Why do .NET modules separate module file names from namespaces?

In implementations of the Scheme programming language (R6RS standard) I can import a module as follows:               (import (abc def xyz))      The system will try to look for a file `$DIR/abc/def/xyz.sls` where `$DIR` is some directory where you keep your Scheme modules. `xyz.sls` is the source code for the module and it is compiled on the fly if necessary. The Ruby, Python, and Perl module systems are similar in this respect. C# on the other hand is a little more involved. First, you have dll files that you must reference on a per project basis. You must reference each one explicitly. This is more involved than say, dropping dll files in a directory and having C# pick them up by name. Second, There isn't a one-to-one naming correspondence between the dll filename, and the namespaces offered by the dll. I can appreciate this flexibility, but it can also get out of hand (and has). To make this concrete, it would be nice if, when I say this `using abc.def.xyz;`, C# would try to find a file `abc/def/xyz.dll`, in some directory that C# knows to look in (configurable on a per project basis). I find the Ruby, Python, Perl, Scheme way of handling modules more elegant. It seems that emerging languages tend to go with the simpler design. Why does the .NET/C# world does things in this way, with an extra level of indirection?


Looking for a good approach and data structure to solve this

C# WinForms: A Combobox with some items in in.   A spread sheet with some items in it. Each row also has a check-box so users can select them. User picks an items in the combobox and clicks a Save button. It means associate that Combobox item to those selected items in the spreadsheet. **Q1:** What's a good structure I can use to keep track of which combobox item is associated with which items from the spreadsheet? NOTE: User can also Move up or Mode Down the items in the spreadsheet. So it gets a little tricky here, they might have associated some items, then they change the order or those items but we still need to know what items are selected for each combobox item **Q2:** What's a good approach to keep track of that?


Should I change the name in the WTFPL?

I'm using the WTFPL in my personal projects published on GitHub. Currently I'm using it verbatim, but I have the suspicion I shouldn't be leaving               Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>       in there, and instead should use my name. But the license is very confusing about this. Half of the WTFPL is about the WTFPL itself, so I thought that copyright might refer to a copyright on the license text itself, and not on the project this is licensing. Also, it says > Everyone is permitted to copy and distribute verbatim or modified copies of > this license document, and changing it is allowed as long as the name is > changed. So would I have to change the name, from WTFPL to, say, "WTFPL-Domenic"?


How to securely store user credentials from external website

I'm developing an application where I'd like to use credentials from external websites. This will be used to login with the website API and get information for the user. Example: I want to use the user Reddit's account to warn him if more than X people reply to one of his comment. How would I go about storing the user's Reddit credentials on my end securely so I only ask once and can automate this process. Or is that even possible?


Why make JavaScript class based?

JavaScript is a prototype language. To turn it into a class based language adds little value? I am not talking about best-practice here. I remember reading an article from way back, which claimed that the class-based worldview is perceivably more flawed than the one of prototypes. My summary can be found here: http://carnotaurus.tumblr.com/post/3248631891/class-based-javascript-or- not. I am resisting to use the class-based jQuery add-on and other attempts at faciliating class-based JavaScript. Peer pressure is strong but is there a stronger theoretical or practical reason why I should stop resisting?


Trying to understand Single Responsiblity Principle

I'm having a difficult time understanding the `Single Responsibility Principle`. What should I look for to evaluate the various sources of information on the matter?   What should I look for in examples explaining the principle?


Are a class's methods stored only once in memory?

When I create an instance of a class the system allocates memory for all instance variables of the class. Some languages may call them fields or properties. But what about the code of the class methods? Are those duplicated too or do I have the code only once in memory? I know all instances got their own values - even inside the methods - but I would like to know about the code. Do I have instance variables and separate "instance methods"?


Should desktop developers know some web development and/or vice versa?

Do you think desktop application developers should know how to do web development, and/or vice versa? In the industry, is it common for desktop developers to do web development (to some degree) and/or vice versa (again)? To what degree should one of the two parties (if at all) know the other party's job? Should you not specialize at all?


BackgroundWorker starting again in Completed event

I want a background worker to continue running and occasionally update the user interface. My first idea was to use a BackgroundWorker and in its completed event just fire it up again. **Is using a BackgroundWorker in this fashion acceptable?** Or are there potential issues from using the completed event to trigger the worker? * * * Below is some Pseudo code of what my intentions are               class Program     {         private static BackgroundWorker worker;         private static Int32 runs = 0;              static void Main(string[] args)         {             worker = new BackgroundWorker();             worker.DoWork += worker_DoWork;             worker.RunWorkerCompleted += worker_RunWorkerCompleted;             worker.RunWorkerAsync(runs);             Console.ReadLine();         }              static void worker_DoWork(object sender, DoWorkEventArgs e)         {             //Do time consuming work             Thread.Sleep(3000);         }              static void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)         {             //Update the UI and start time consuming work again             runs++;             Console.WriteLine("Completed run #" + runs);             worker.RunWorkerAsync();         }     }


Entities (DDD) when using CQRS on Akka

When using Akka, CQRS style, is still there a place for Entities? Or does everything now go to Aggregates, implemented as Actors + Value Objects. I notice that most entities are written as mutable objects with side effects - this doesn't seem to jive well with Actor based style.


Any patent issue if I want to call my classes "signal/slot" as in Qt?

I need to code a signal-like mechanism and I was thinking of using the same "slot" and "signal" terms to indicate the signal and the function that needs to be called. Since this is a commercial application I'd like to know if there might be any issue with using these names, e.g. if Qt has some sort of patent on them (I searched around but couldn't find it). I believe this is a stupid question since patenting a class name would be moronic, to say the least.. but anyway... To add some detail: my code is ENTIRELY different and has NOTHING TO DO with Qt except the above. I don't use moc or any Qt class.


Show "hobby" project during the interview?

I am developing this Android game (Technology wise 3D with OpenGLES2 and shaders, some nice AI with http://www.steeringbehaviors.de/ ) during my free time. The goal is to launched in the "Android Market" and apply for a mobile game development company.And during the interview to show my "game project". I was wondering if the company is not game company ,but a mobile development one ,is it still okay to show it even if they didn't ask about it ?


GPLv2 - Multiple AI chess engines to bypass GPL

I have gone through a number of GPL-related questions, the most recent being this one: http://stackoverflow.com/questions/3248823/legal-question-about-the-gpl- license-net-dlls/3249001#3249001 I'm trying to see how this would work, so bear with me. I have a simple GUI interface for a game of Chess. It essentially can send/receive commands to/from an external chess engine (ie: Tong, Fruit, etc). The application/GUI is similar in nature to XBoard ( http://www.gnu.org/software/xboard/ ), but was independently designed. After going through a number of threads on this topic, it seems that the FSF considers dynamically linking against a GPLv2 library as a derivative work, and that by doing so, the GPLv2 extends to my proprietary code, and I must release the source to my entire project. Other legal precedents indicate the opposite, and that dynamic linking doesn't cause the "viral" effect of the GPL to propagate to my proprietary code. Since there is no official consensus that can give a "hard-and-fast" answer to the dynamic linking question, would this be an acceptable alternative:   1. I build my chess GUI so that it sends/receives the chess engine AI logic as text commands from an external interface library that I write   2. The interface library I wrote itself is then released under the GPL   3. The interface library is only used to communicate via a generic text pipe to external command-line chess engines   4. The chess engine itself would be built as a command-line utility rather than as a library of any sort, and just sends strings in the Universal Chess Interface of Chess Engine Communication Protocol ( http://en.wikipedia.org/wiki/Chess_Engine_Communication_Protocol ) format.   5. The one "gotcha" is that the interface library should not be specific to one single GPL'ed chess engine, otherwise the entire GUI would be "entirely dependent" on it. So, I just make my interface library so that it is able to connect to any command-line chess engine that uses a specific format, rather than just one unique engine. I could then include pre-built command-line-app versions of any of the chess engines I'm using. Would that sort of approach allow me to do the following:   1. NOT release the source for my UI   2. Release the source of the interface library I built (if necessary)   3. Use one or more chess engines and bundle them as external command-line utilities that ship with a binary version of my UI Thank you. * * * Edit: For what it's worth, this is so I can keep my own code private, as I may want to re-use some of my rendering code in other independent projects. This is not a commercial attempt to just write a cheap UI to effectively "wrap" someone else's engine and profit from their hard work. In the end, I wrote my own simple chess engine (little more than a legal move validator, really) instead of using a GPL'ed component.


What IDE(s) or editor(s) do companies like Google, Apple, IBM, etc. use?

Even though I have quite some experience in using various tools, I still can't make up my mind whether I prefer using IDE or a simple editor for code editing. Most IDEs I have experienced are written in Java (like Eclipse) which makes them slow and bulky. What's good about them is that it provides lots of tools. On the other hand editors are usually VERY fast. They can also be extended to become more similar to IDEs but usually I don't do that. However, there is _Sublime Text 2_ which has some basic code completion built-in. My question would be whether most Enterprise companies like Google, Apple, IBM and etc (except Microsoft because they have AMAZING IDE which, I assume, is used by MS developers) force their workers to use IDEs and whether using plain editor with external tools is considered being not professional? P.S. Not talking about cases like Android development where working without IDE barely possible.


Is it reasonable to NOT provide technical documentation and unit tests to client?

As an independent vendor being contracted to write a product for a company, is it reasonable to ship only the source code and user documentation while leaving out design documents, architecture diagrams, unit tests etc (basically anything else not strictly needed to run the product or extend it)? The goal is to make the end product extensible for the client so they can further its development internally, but not for free. They would have dig deeply into source to make sense of some design decisions etc, and they'll be responsible for writing their own comprehensive tests to guard against regressions being introduced. The idea here is not to make the code unintelligible. I would just like to create future opportunity for being contracted to write extensions by virtue of the "inside knowledge" and expertise I have from being the original author. Would this be considered unethical? Edit: The contract is currently being negotiated, so the issue of what constitutes final deliverables hasn't been firmly decided. Additionally, I should have mentioned I will maintain ownership of the product. I will only grant to the client a usage license. Does this detail make a difference in whether this is regarded as bad form?


Data "unsort" / homogeneity algorithm

In an attempt to not reinvent a wheel, I'm asking if anyone has ideas on a data homogeneity algorithm. A brief example: My data has several elements maybe like   1. Number    2. Color   3. Fruit   4. Letter There are around a 100 of these elements in an array. The algorithm needs to _sort_ the elements so that any 2 entries with the same number are spaced out from each other as much as possible, and the same with color, fruit, etc. It'd also be nice if I could prioritize the elements. It feels like you'd never reach 100% so you'd give it a number of passes to make, check out the result, then try more passes on it. I wouldn't be surprised if there's something out here that just works that I don't have enough google-fu to find.


What information should a good (method- / class-) comment contain?

This is something that has bothering me for a while now. I guess there are a couple of obvious important things that should go into a comment, such as:   * ~~The author(s)~~   * A description of the parameters (and their types, if we are in a dynamic language)   * A short description of what the method does, e.g. "Trims leading and trailing white-spaces for unlimited length strings."   * If it throws exceptions.   * Semantics of the return value. But one could image all kinds of information that _could_ be added to such a comment, for instance:   * Usage examples   * Explanation of how the method is used in the project scope   * TODOs / Nice to haves for this method which are not yet implemented   * And probably many more Now my question is, how do you write a really good method or class comment (that is, what information do you put in it, and how do you make sure it is kept up-to-date), with just the right amount of information so that any developer who has to work with your code is up to the task, but considering the fact that as you add more and more information to your comment, the probability for it to become outdated rises (e.g. if I add pointers to where the method is / will be used in the project, it could be replaced in that location or it might very well never be used, even though it was intended to).


Lock-free IPC in Linux for multi-core processors

I'm trying to find a way to write an application with lock-free IPC on Linux, in C, with multi-core processors. Let's assume I have process 1 and process 2 that write to a FIFO or shared memory. Then process 3 and process 4 will read from that shared memory or FIFO. Is this possible with a lock-free algorithm? Your guidance is highly appreciated.


General Architecture with Code Tables?

I've only worked at once place since graduating my CS degree. This is a pretty basic architecture question but i don't know any better since i've only worked at one place. Where i work we maintain a large number of code tables. For example say you have a Sales/Order system and you have an Order Status. We would maintain an order status table that would look like the following: OrderStatus:               OrderStatusId(PK TinyInt)  OrderStatusDesc(VarChar(50))       1                         Created       2                         Submitted      3                         Processing     4                         Canceled     5                         Verified     6                         Complete      We then create an enumeration off each code table. For example:               Public Enum TblSalesOrderStatus           eosCreated = 1           eosSubmitted = 2           eosProcess = 3           eosCanceled = 4           eosVerified = 5           eosComplete = 6     End Enum      Then in our code we have code like the following:               If OrderStatus = eosCreated OrElse OrderStatus = eosSubmitted Then         ...do some work     End if      On every screen we create we have the id's stored in the controls (like comboboxes). I don't know something about this has always made me think its bad design. Maybe i'm wrong though. Especially when i started getting into REST design. i wanted to pass the Ids rather than descriptions. Of course this doesn't seem right since i'd be the only one i've ever seen pass those type of Ids in a REST service. So is this bad design? Edit:   Trying to make thing a little clearer. Are Code Tables are only stored in two places: The Enum + The Database. When we need a new Id when email our database staff which creates a new code table value for us and emails us back the Id. When then put the new value into our enumerations. We never had problems with it getting out of sync but if we have needed either delete values or change them in the past (adding is easy) which has been pain because everything in the system had to be recompiled. We have went down the route of trying to make things semi-dynamic (which doesn't work out in every case but helps in some). There are tons of examples but a simple example is we have a IsVisible flag in some of the code tables. If we ever want to obsolete or make one of the values not selectable then we set the IsVisible flag = 0. They prefer this compared to having to change code/compile/deploy. Thinking about it i think it would be preferable to have it in buisness logic and have test around it (which we don't :-( ) depending on your prospective.


How to handle security of temporary data on web server?

I'm primarily an ASP.NET developer but this question really applies regardless of language. So obviously it is a good idea to prevent external attacks that arise from session hijacking and csrf attacks as well. But what about internal attacks when the data involved is temporary, needed for the entire session but also sensitive and worth stealing? There is the naturally just only hire trustworthy people route, but lets say that doesn't apply. Say it is a given you already have code reviews and strict production data access permissions to prevent theft by developers. The application encrypts sensitive data before storing to prevent theft by dbas. How do you protect your temporary sensitive data against web server admins? It seems that they could retrieve information by inspecting web server logs, traffic sniffing and inspection of process memory contents. Naturally I would say production web server admins do not have access to the raw source code.


What does the term "Payload" mean in programming

I was going through the source code of an open source framework, where I saw a variable "payload" mentioned many times. Any ideas what "payload" stands for?


Best way to relate code smells to a non technical audience?

I have been asked to present examples of code issues that were found during a code review. My audience is mostly non-technical and I want to try to express the issues in such a way that I convey the importance of "good code" versus "bad code". But as I review my presentation it seems to me I've glossed over the reasons why it is important to write good code. I've mentioned a number of reasons including ease of maintenance, increased likelihood of bugs, but with my "non tech" hat on they seem unconvincing. What is your advice for helping a non-technical audience relate to the importance of good code?


Why does JSF automatically generate names for html components and can this be overridden?

I'm reading up on JSF. One thing that I noticed that tags such as h:inputText and h:inputTextarea auto-generate a random name. Is there any way to over-ride this?


Non-language-specific interview questions for a senior web developer

I came across a job posting for a senior web developer position. The posting said that the development will be done using **Ruby on Rails** , but no prior knowledge is required. I confirmed with a contact in that company that a PHP web developer can apply for it or even an ASP.Net developer. I also confirmed that the interview won't contain any questions specific to PHP or Ruby on Rails. Can anyone please provide a good list of questions for a senior web developer that isn't specific to a certain language? **Note** This question isn't a duplicate for similar posts asking for questions relating to PHP, .Net or Ruby. Also, I'm not looking for topics to learn as a web developer, but rather interesting questions for a technical interview given the former conditions.


How much should I rely on Visual Studio's Auto Generated Code?

I'm reading about ASP.NET (VB.NET) and I want to built my professionally website. I'm wondering though; I'm still using the basics so I'm really just a novice, but how much should I rely on Visual Studio to create my elements? Should I make my own text boxes and have my own login routine, or should I just use ASP.NET's login features? I know eventually you have to use your own classes and such which is where the real coding comes in, but I'm not sure how relaible, flexible and secure the pre-wrote elements are? Any help would be greatly appreciated.


How to handle "animated" game where the visual should "animate" instead of abruptly change?

I've been playing around and learning javascript/KineticJS by making some simple games (think like board games). I have the game model that is relatively logically simple. When a "move" is given to my game model, it updates the properties of all the pieces. However, I would like to make the view have some nice-looking animation. For example, when six pieces are taken I don't want them to disappear all at once, I'd rather have them animate out 1 by 1. To solve this problem, I basically have the game model tell my view "I updated the following pieces: [list]" And my view adds them to a "visual update queue" that a timer thread is always checking and handling one by one each time it triggers. I'm interested in any opinions on this approach, and since this has obviously been considered before, if any of you handle this problem differently. Thanks!


Does a code inherit GNU GPL if it just link to GPL library?

Sorry for bad English. Suppose there is a library `xxx` under GNU GPL, that provide a function `yyy`. Suppose my code links to the library and use this function. Does my code inherit GPL license? IANAL, but my thoughts are conflicting:   * On one hand, my code is derivative from the library, so it should inherit GPL.   * On other hand, my code just use link to the `xxx`. Maybe there are other libraries, that has the same interface (particularly, they provide `yyy` function with same functionality, but different implementation). My code may link to any. My code really doesn't _directly_ derived from `xxx`, it just use its interface. So, my code shouldn't inherit GPL. I'm confused. **ADDED.** The question is absolutely abstract. I don't mean any concrete GPL library.


How should I select continuous integration tool?

I found this cool comparison table for integration servers on Wikipedia, but I am a little uncertain how to rank the tools vs. my needs and interests. The chart itself seems to have a lot of boxes marked unknown, so if you are comfortable updating it on Wikipedia, that could be great too. Are there a few top performing products so I can quickly narrow down to four or five options? Which products seems to have the largest user communities and most ongoing enhancements and integration with new tools? Are the open source offerings best, or are there high quality tools that can be a great deal for a single user at home? Will use of multiple systems (primary desktop, local only home network server, personal and work notebooks, multiple virtual machines spread across all) create problems and how can they be managed?


Productivity strategies for one developer using many PCs

In a talk about time management, a famous computer scientist said: > "One machine in your life is the right number." He recommended a laptop with a docking station. After trying this approach for about a month, I miss my more powerful desktop (i7 quad core hyperthread), but it is not in my technology road map (or budget) to upgrade from my old Intel Core 2 Duo (2006) notebook this year. What strategies can help me use the desktop while at my desk and without much manual effort the notebook when I am on the go?


What are algorithmic paradigms?

We generally talk about paradigms of programming as functional, procedural, object oriented, imperative etc but what should I reply when I am asked the paradigms of algorithms? For example are Travelling Salesman Problem, Dijkstra Shortest Path Algorithm, Euclid GCD Algorithm, Binary search, Kruskal's Minimum Spanning Tree, Tower of Hanoi algorithmic paradigms? Or perhaps the paradigms are the data structures I would use to design these algorithms?


Automatically turning text into hyperlinks - good or bad UI?

I use Trac, a personal wiki tool. I use SVN Tortoise , the subversion tool I use Outlook, Word etc In all these pieces of software, each time I want to type an url or an email address the software turns it into a hyperlink, suddenly altering the behaviour of the text, often treating as a single entity. (i.e a single back- space deletes the whole url, text-select leaps to select the whole url instead of single letters etc ) Its as helpful to me as the Microsoft Office paper-clip. Am I the only one that gets annoyed by these things? If it is generally considered bad UI to do unexpected things. Surely its bad UI. **Update** : As Sii says below : > "Most of the time people prefer hyperlinks ... by default" I suppose that is the truism that I am doubting. Is there any research or evidence to back this up?


How would you explain multi threading to a seven year old kid?

If you have to explain the concept of multi-threading to a seven year old kid how would you do it? I recently got this question in an interview. I came up with a story using jobs (the task to be done) and workers (the threads) but it was not entirely convincing (considering the kid is too young). If you were asked to describe this, how would you do it?


What tool sets and applications have affinity with multiprocessor programming?

In grad school I took a class in multiprocessor and distributed operating systems. I think multiprocessor software development will become increasingly important and will be driven by the need to maintain the gains we are accustomed to having from Moore's law as described in an article from Herb Sutter. The Free Lunch Is Over : A Fundamental Turn Toward Concurrency in Software http://www.gotw.ca/publications/concurrency-ddj.htm From the class we learned a little about threads, processes, mutual exclusions, spin locks, p-threads, semaphores, UMA and CCNUMA architectures, and OpenMP. But I think this is just a start.   * What should I learn to better prepare for this kind of work?   * Who is doing projects in this area?   * Is this going to a a common skill soon, and if so, how can I best leverage what I know today?


Static functions question

Something came to my mind today. I have been doing a lot of the following               new Object().doSomething();      I create an object and call on of its functions, then forget about the object. I don't need it past this one instance. Does this signal a bad coding style. Is it best to convert these methods to a static function so a new object does not need to be created every time?


Serializing Data Structures in C

I've recently read three separate books on algorithms and data structures, tcp/ip socket programming, and programming with memory. The book about memory briefly discussed the topic of serializing data structures for the purposes of storing it to disk, or sending it across a network. I can't help but wonder why the the other two books didn't discuss serialization at all. After an unsuccessful web/book search I'm left wondering where I can find a good book/paper/tutorial on serializing data structures in C? Where or how did you learn it?


What is the general accepted way to name variables that end and start with the same letter?

Is something like this acceptable or is it frowned upon? String newsSymbol It just looks strange to me, but it's the best way to describe what the variable is and the data it will hold. I could rename it to something like String articleSymbol but then I'd have to rename a whole other bunch of variables. What are your thoughts? Yay or nay?


Tabs versus spaces—what is the proper indentation character for everything, in every situation, ever?

The coding standards for the code hosted in drupal.org suggest to use two spaces to indent the code; other sites suggest to use tabs to indent the code. What is the proper indentation character for everything, and in every situation? Please explain the answer you give.


C++: Spaces vs Tabs

> **Possible Duplicate:**   >  Tabs versus spaces—what is the proper indentation character for everything, > in every situation, ever? I have always used tabs in all my code (C, C++, python etc.) but I was just going through the Google C++ coding guidelines(1) and I found they they say that you _must_ use spaces and not tabs in your code. I couldn't think of a reason why they ask that. Is it because tabs show inconsistent results across different editors or something similar? Does anyone know what the reason is or might be?


Facebook Payments & Credits vs. Real-World & Charities

I am having a difficult time understanding Facebook's internal "e-commerce microcosm" and what it allows Facebook App developers to do (and what it restricts them from doing). Two use cases:   * I'm an e-com retailer selling clothes and coffee mugs (real-world goods) on my website; I want to write a Facebook App that allows Facebook users to buy my real-world goods from inside of Facebook using real money ($ USD)   * I'm highschool student trying to raise money for my senior class trip and want to build a Facebook App that allows Facebook users to donate to our class using real money ($ USD) Are these two scenarios possible? If not, why (what Facebook policies prohibit me from doing so)? If so, what APIs do I use: Payments or Credits? And how (specifically) would it work? Do Facebook Users have to first buy "credits" (which are mapped to $ USD values under the hood) and pay/donate with credits, or can they whip out their credit card and pay/donate right through my Facebook App? I think that last question really summarizes my confusion: **can Facebook users enter their credit card info directly into Facebook Apps, or do you have to go through Payments/Credits APIs as a "middleman"**?


Sharing ideas without risk of leaking

As freelancers, we meet somewhere and chat about a new idea for a project, brainstorm etc. Up to this point, we have taken notes of the ideas, but we would like to be able to share more efficiently the ideas with each other. However, I fear that if I use some online product (such as Google Docs) these ideas could be seen by people outside the team (employees of the company of the online product, other users...). I am not sure if I am being a little _Paranoid parrot_... One solution that we have considered is to install a Subversion with just one _ideas.txt_. But that would require a server in one of our houses, which is a little unconfortable. So how do you share your ideas for a new project with your team without risking the ideas to be _stolen_?


Cucumber Web Interface for business

I am trying to find a way to make the projects I work on more transparent to the business size, even though backend programming is not quite visible all the time. So in order to this I want to try ATDD and building acceptance tests with `Cucumber`. Is there a friendly way to show these tests to the business - I still think that running them from the command line is as cryptic as things were until now ? I am thinking of a web interface or something like that.


Is it good style to check explicitly for null in unit tests?

Whether or not a value is `null` could be checked implicitly like this:               assertThat(value).isEqualTo("something");      Or it could be checked explicitly:               assertThat(value).isNotNull();     assertThat(value).isEqualTo("something");      The latter makes the expectations a bit more clear, but it blows up the test code. Is there a good reason to prefer the second approach over the first?


Hungarian Notations/Systems Hungarian Should I?

I was wondering would it be worth using a form of standard such as Hungarian Notation/Systems Hungarian? Why would I bother if everything I'm doing now is working fine?


Is it worth making Visual Assembly?

We already have:   * Visual Basic   * Visual C++   * Visual C# Why there is no Visual Assembly? Is it worth making it?


Is it sane to use Document based NoSQL for store big data tables

In Document based NoSQL to create tables (AFAIK) I need: Create such many as many rows in table documents with same ID field (that will be table id) and each time need to set the columns (for each document). Then you first search documents by id (table) and next search what you need in the selection. Please correct if I understand it wrong... And is it sane? How could that be fast?


Model Driven Architecture Approach in programming / modelling

I know the basics of the model driven architecture: it is all about model the system which I want to create and create the core code afterwards. I used CORBA a while ago. First thing that I needed to do was to create an abstract interface (some kind of model of the system I want to build) and generate core code later. But I have a different question: is model driven architecture a broad approach or not? I mean, let's say, that I have the language (modelling language) in which I want to model EXISTING system (opposite to the system I want to CREATE), and then analyze the model of the created system and different facts about that modeled abstraction. In this case, can the process I described above be considered the model driven architecture approach? I mean, I have the model, but this is the model of the existing system, not the system to be created.


How important is knowing functionality before coding?

I work for a software development company where the development work have been off shored to us. The on shore team handle the support and talk directly to the clients. We never talk to the clients directly we just talk people from the on shore team who talk directly to the clients. When requirements come, on shore team talk to the clients and make requirement documents and informs us. We make design documents after studying the requirements (we follow traditional waterfall model ). But there is one problem in the whole process: nobody in the either off-shore or on-shore understand the functionality of the application completely. We just know its a big complex web app handling complex order processing, catalog management, campaign management and other activities. We struggle with the design document as the requirements would not be clear. It then goes into a series of questions/answers back and forth between the on shore team,off shore team and clients. We would often be told to understand functionality from the code. But that's usually not feasible as the code base is huge and even understanding a simple menu item take days if not weeks. We tried telling the clients to give us _knowledge transfer_ about the application but to no avail. Our manager would often tell us to start coding even if the design document is not complete or requirements not clear. We would start by coding part of the requirement that seems clear and wait for the rest. This usually would delay the deployment by a month. In extreme cases we would have very low errors in the development and production but the clients would say that's not what they asked. That would start a blame game and a series of change requests and we would end up developing something very different. My question is how would you do development work if you don't know the functionality of the app fully? UPDATE About development methodology it isn't really my choice and I am not my team's lead It is the way it began. I tried to tell people about the advantages of agile but to no avail. Besides I don't think my team has the necessary mindset to work in AGILE environment.


Is a Hackathon a good place to present serious projects?

I'm participating in my first hackathon soon. I have a great idea that has been rolling around in my head for a while, and if it takes off I'd obviously like to have my name on it/make some money on it. Is a hackathon a good place to present a project I'm serious about? How will the ownership work? I think I could get the project functional over the weekend of the event, but I'd definitely want to develop it further after. I'd like to be cited with the concept, but people who work with me on it would obviously be partial owners (or whatever would be considered fair). My main goal is for this project to get off the ground, but I also don't want to be left out if it ends up making money.


RFC syntax definition

I would like to bring our specifications to a better level of fine-grained definition of syntaxes, semantics and the like. I read my fair share of RFCs and just love the way they define things like "how an email adress looks like" or "what a correct URL is". But, I haven't yet found a definition of the syntax of those definitions. Like, e.g. how do you define optional parts? How do you define repetition? How to correctly define alternatives (`/` vs `|`) Is there an RFC that defines the syntax all those other RFCs use to define their actual domain-specific definitions that I could adapt to our specifications?


When profiling a function for time use, what information is desirable?

I'm writing a program similar to Python's `timeit` module. The idea is to time a function by executing it anywhere from 10 to 100,000 times depending on how long it takes and then report results. I've read that the most important number is the minimum execution time because this is the number that best reflects how fast the machine can run the code in question in the absence of other programs competing for processor time and memory. This argument makes sense to me. Would you be happy with this? Would you want to know the average time or the standard deviation? Is there some other measure that you consider more important?


As a junior programmer, how do I quickly make changes to large unfamiliar software?

> **Possible Duplicate:**   >  Tips or techniques to use when you don’t know how to code something? I recently graduated on a Computing course, and luckily got a job as a junior programmer. Now, I have been given a series of tasks, from a bigger project. My company has (supposedly) bought a revenue/sales software written in PHP. Basically this whole big piece of software needs to be modified to meet my country standards. I have been given a large number of tasks to do in a relatively small time span. Now, this might be my very own understanding of the whole timing problem, but this seems a very big thing to do because I need to fully understand:   1. the whole system structure   2. the "style" in which it has been written, classes, functions, etc.   3. the database structure Considering the above, I need to add some functionality, some of which can be considered "core" ones which, in my opinion, is a too long of a job to be done in 6 days. I understand that I have given too little information for anyone to understand the level of difficulty of said tasks, since for some people might be impossible while for others might be a breeze, so I want to ask the following: To the people who went past a similar situation, what was your outcome? Can I start considering myself unprepared or maybe they are asking too much? What was your experience on a similar situation?


Tree vs Graphs in search

Could anyone give a clear and concise explanation for when you use graphs vs when to use trees for data structures?


Speech introduction

I'm currently working on a speech introducing an introduction to C++ programming manual. The speech itself is going to be about the topics within the manual (which are very basic concepts, such as data types, ect..) I'll be giving this speech to students who are **not familiar to C++ or even programming in general** , and I'm looking for an attention grabber to begin my speech with such as a fun fact or quote about C++, or an interesting statistic regarding C++. I am wanting something the students will understand, and that sparks their interest. Does anyone have any good ideas that I can use? Thanks!


Best approach to including JBoss's standalone.xml in SVN structure?

Our application server is JBoss 7 as. We use SVN as our code repository. I need to ship our custom security domain in standalone.xml which is a jboss file (not packaged in my application's war file). However, I don't want to commit all of JBoss to the SVN. The approach I'm thinking of using is to commit standalone.xml in a separate folder in my SVN repository and move it to the correct location under JBoss when the application is deployed at production site. Is this the best mechanism?


New Customer Project - Use Legacy Application or Design Something New

We are starting a new project with a new customer. We have a legacy application circa 1997 that we are planning on using to satisfy the customer's business requirements. I have been on the fence as to whether this is really the right course both for our company, and for the customer. I don't want to rewrite the app for no reason, but I feel that this older technology MFC, VC6 - has outlived its usefulness. If I am honest with myself - I don't want to spend any more of my career on the legacy app either. To that end, I have justified to myself that I should present to management a plan to develop a new, fresh solution based on current methodologies. 1) Am I wrong for doing thinking this is a good idea. 2) If not - how can I sell it to the business. There are definite advantages from the ongoing support perspective for the customer (more people with skill-sets in newer technologies - which in this case would probably be .NET with an XML or Lua based configuration) I'll be happy to answer any follow-on questions to clarify my intent.


OOP - Separate Manager class

I have started using OOP in PHP recently. For every model, I create two classes. One class for read operations and another Manager class for all the create / update / delete operations. For example,               <?php     // This is a sample class, just to convey the idea     class Image {         public static function loadById() {}         public static function loadByName() {}         public static function search() {}              public function __construct () {}         public function __get () {}         public function getData() {}         public function getRating() {}         public function getSimilar() {}         public function getRelatedNews() {}     }          class ImageManager extends Image {         public function __construct() {}         public function __set() {}         public function remove() {}         public function update() {}         public function save() {}         private function updateSomethingElse() {}     }     ?>      The reason I separated this into two classes was that I thought it was a bit more secure, since it did not expose the C/U/D methods to a normal user. Also, I thought this might be faster / memory efficient since I am loading only the smaller class for 95% of the requests. But now I think these reasons are too insignificant for maintaining two files. Is this a bad practice? Normally, the Manager classes are loaded only during admin operations. User actions rarely update the database (except maybe during a rating operation, or a cron job for updating view count). Should I combine both the classes into the `Image` class?


Adding a new method to a class library for its new version and exposing a version option the users can select

Is it a bad idea to add a new method (that implements a new algorithm) to a class library for its new version and expose a version option the consumers can select? It is just for backward compatibility where an old application might need a constant sequence of random numbers for a certain seed number. The following code might speak my idea much better. Hopefully you get the essence.               //Class Library:     namespace MyGenerator     {         public sealed class MyRandom         {             public enum Version { One, Two }// add more options in the future              private int current;             private Version version;                  public MyRandom(int seed, Version version = Version.One)             {                 current = seed;                 this.version = version;             }                  public int Next()             {                 switch (version)                 {                     case Version.One:                         AlgorithmOne();                         break;                     case Version.Two:                         AlgorithmTwo();                         break;                     // add more options in the future                 }                 return current;             }                  private int AlgorithmOne()             {                 current = (current * 1234567890 + 987654321) & 0x7FFFFFFF;                 return current;             }                  private int AlgorithmTwo()             {                 current = (current * current + current) & 0x7FFFFFFF;                 return current;             }             // add more algorithm in the future         }     }      and               //Console Application (for testing purposes):          using MyGenerator;     using System;          namespace ConsoleApplication1     {         class Program         {             static void Main(string[] args)             {                 const int seed = 12345;                 MyRandom rnd = new MyRandom(seed, MyRandom.Version.Two);                 Console.WriteLine(rnd.Next());                 Console.ReadLine();             }         }     }


What's a similar functionality in JavaScript that insures the object has X data before any actions are taken?

If java/C#/etc one might do something like create a constructor with a parameter, the parameter being the thing the rest of the object may act upon. How is this done in JavaScript? I'm trying to figure out what the best practice is with JavaScript to do something similar to this C#/Java Object.               public class Blagh{              public var ThingToActOn;  // Appropriate get & set methods here.               public new Blagh(variable ThingForObjectToActOn) {             this.ThingToActOn = ThingForObjectToActOn;         }     }      I was thinking something like this in JavaScript, but it seems maybe I'm missing something. I'm also aware that New in JavaScript is frowned upon for a number of reasons, but am not sure what the best solution is otherwise.               var Symphonize = function(generation_specification){         this.gen_spec = generation_specification;     }          Symphonize.prototype.act_on_object = function () {              // Do actions here on the generation_specification value.              return this.gen_spec;     }          blu = new Symphonize({"gen":"stuff"});


Drawback of mixing C++ code with C for performance purposes

Often you can see answers like “Avoid using C libraries in your C++ code“ or “This can be rewritten using STD/Boost in pure C++“. I understand C++ produces more maintainable code and has many advantages, but is it actually bad using C libraries when performance is a priority? I mean writing in what is sometimes called C-with-classes. I‘ve been developing a text file parser with both C and C++ versions and the C one was considerably faster. What i would like to know is if using C libraries in C++ has hidden drawbacks apart from the obvious ones like making the code less maintainable.


How do you show the exception handler in a class diagram?

I have one exception handler class. I want to show this class in the uml -- class diagram. But, I do not know how to represent relationship between class `<X>` and exception handler class. How can I represent relationship between class in class diagram?


Handling permissions in a MVP application

In a windows forms payroll application employing `MVP` pattern (for a small scale client) I'm planing user permission handling as follows (permission based) as basically its implementation should be less complicated and straight forward. **NOTE** : System could be simultaneously used by few users (maximum 3) and the database is at the server side. This is my `UserModel`. Each user has a list of permissions given for them.               class User     {         string UserID { get; set; }         string Name { get; set; }         string NIC {get;set;}         string Designation { get; set; }         string PassWord { get; set; }         List <string> PermissionList = new List<string>();         bool status { get; set; }         DateTime EnteredDate { get; set; }     }      When user login to the system it will keep the current user in memory. For example in `BankAccountDetailEntering` view I control the controller permission as follows.                public partial class BankAccountDetailEntering : Form         {             bool AccountEditable {get; set;}                  private void BankAccountDetailEntering_Load(object sender, EventArgs e)             {                 cmdEditAccount.enabled = false;                      OnLoadForm (sender, e); // Event fires...                      If (AccountEditable )                 {                     cmdEditAccount.enabled=true;                 }              }         }      In this purpose my all relevant presenters (like BankAccountDetailPresenter) should aware of `UserModel` as well in addition to the corresponding business `Model` it is presenting to the `View`.               class BankAccountDetailPresenter     {             BankAccountDetailEntering _View;         BankAccount _Model;         User _UserModel;         DataService _DataService;              BankAccountDetailPresenter( BankAccountDetailEntering view, BankAccount model, User userModel, DataService dataService )         {             _View=view;             _Model = model;             _UserModel = userModel;             _DataService = dataService;             WireUpEvents();         }              private void WireUpEvents()         {             _View.OnLoadForm += new EventHandler(_View_OnLoadForm);         }              private void _View_OnLoadForm(Object sender, EventArgs e)         {                  foreach(string s in _UserModel.PermissionList)              {                  If( s =="CanEditAccount")                 {                     _View.AccountEditable =true;                     return;                 }             }         }              public Show()         {             _View.ShowDialog();         }     }      So I'm handling the user permissions in the presenter iterating through the list. Should this be performed in the `Presenter` or `View`? Any other more promising ways to do this?


Is there an easy way to type in common math symbols?

_Disclaimer: I'm sure someone is going to moan about easy-of-use, for the purpose of this question consider readability to be the only factor that matters_ So I found this site that converts to easting northing, **it's not really important what that even means** but here's how the piece of javascript looks.               /**      * Convert Ordnance Survey grid reference easting/northing coordinate to (OSGB36) latitude/longitude      *      * @param   {OsGridRef} gridref - easting/northing to be converted to latitude/longitude      * @returns {LatLonE} latitude/longitude (in OSGB36) of supplied grid reference      */     OsGridRef.osGridToLatLong = function(gridref) {         var E = gridref.easting;         var N = gridref.northing;              var a = 6377563.396, b = 6356256.909;         // Airy 1830 major & minor semi-axes         var F0 = 0.9996012717;                        // NatGrid scale factor on central meridian         var φ0 = 49*Math.PI/180, λ0 = -2*Math.PI/180; // NatGrid true origin         var N0 = -100000, E0 = 400000;                // northing & easting of true origin, metres         var e2 = 1 - (b*b)/(a*a);                     // eccentricity squared         var n = (a-b)/(a+b), n2 = n*n, n3 = n*n*n;    // n, n², n³              var φ=φ0, M=0;         do {             φ = (N-N0-M)/(a*F0) + φ;                  var Ma = (1 + n + (5/4)*n2 + (5/4)*n3) * (φ-φ0);             var Mb = (3*n + 3*n*n + (21/8)*n3) * Math.sin(φ-φ0) * Math.cos(φ+φ0);             var Mc = ((15/8)*n2 + (15/8)*n3) * Math.sin(2*(φ-φ0)) * Math.cos(2*(φ+φ0));             var Md = (35/24)*n3 * Math.sin(3*(φ-φ0)) * Math.cos(3*(φ+φ0));             M = b * F0 * (Ma - Mb + Mc - Md);              // meridional arc              } while (N-N0-M >= 0.00001);  // ie until < 0.01mm              var cosφ = Math.cos(φ), sinφ = Math.sin(φ);         var ν = a*F0/Math.sqrt(1-e2*sinφ*sinφ);            // nu = transverse radius of curvature         var ρ = a*F0*(1-e2)/Math.pow(1-e2*sinφ*sinφ, 1.5); // rho = meridional radius of curvature         var η2 = ν/ρ-1;                                    // eta = ?              var tanφ = Math.tan(φ);         var tan2φ = tanφ*tanφ, tan4φ = tan2φ*tan2φ, tan6φ = tan4φ*tan2φ;         var secφ = 1/cosφ;         var ν3 = ν*ν*ν, ν5 = ν3*ν*ν, ν7 = ν5*ν*ν;         var VII = tanφ/(2*ρ*ν);         var VIII = tanφ/(24*ρ*ν3)*(5+3*tan2φ+η2-9*tan2φ*η2);         var IX = tanφ/(720*ρ*ν5)*(61+90*tan2φ+45*tan4φ);         var X = secφ/ν;         var XI = secφ/(6*ν3)*(ν/ρ+2*tan2φ);         var XII = secφ/(120*ν5)*(5+28*tan2φ+24*tan4φ);         var XIIA = secφ/(5040*ν7)*(61+662*tan2φ+1320*tan4φ+720*tan6φ);              var dE = (E-E0), dE2 = dE*dE, dE3 = dE2*dE, dE4 = dE2*dE2, dE5 = dE3*dE2, dE6 = dE4*dE2, dE7 = dE5*dE2;         φ = φ - VII*dE2 + VIII*dE4 - IX*dE6;         var λ = λ0 + X*dE - XI*dE3 + XII*dE5 - XIIA*dE7;              return new LatLonE(φ.toDegrees(), λ.toDegrees(), GeoParams.datum.OSGB36);     }      I found that to be a really nice way of writing an algorythm, at least as far as redability is concerned. Is there any way to easily write the special symbols. And by easily write I mean NOT copy/paste them.


Best Practices and Tips for Reading Source Code

Code reading is an important part of a programmer's life because we usually work in groups and have to maintain, complete or contribute to the other developer's codes. From that point of view, code reading is inevitable. Our performance criteria is not only fast reading or interpreting. But also understanding and interpreting the code correctly is very important in our daily work-life. We usually have to deal with several different types of codes such as well documented ones, badly written, undocumented ones, buggy ones and even spaghetti ones. We usually have to deal with each one of them using different techniques and shortly my questions is how do you deal reading those codes, for instance consider dealing with undocumented and badly written codes. For example I apply some small methods for C/C++ code:   * Find the dependencies of the code and try to figure out the general overview of inter-class or inter-function relationships. Visualise on paper or board if necessary.   * Try to understand the coding conventions they have used and get used to it.   * Understand the general purpose of the functions in a file (figure out why are they populated in that file).   * Start from the main and find the places that you may have to change if necessary.   * Do some small modifications and put print statements in strategic locations to understand what a function or class is doing.   * Use cscope _My question is do you have any these kind of tips, tricks or best practices that you'd like to share?_ EDIT: Forgot to ask the question :)


MVC 3 - Any new features to explore for an existing MVC 2 application?

I have an existing ASP.NET MVC 2 application that is working well and is usually easy to maintain. I had a lull in development yesterday so I upgraded the solution to ASP.NET MVC 3 and everything appears to be working. I've been researching ASP.NET MVC 3 and there are a number of improvements including the Razor view engine, integrated support for unobtrusive JavaScript, etc.. These all seem interesting but not necessarily for an existing application that already has dumb views, unobtrusive JavaScript with jQuery, dependency injection, unit testing, etc.. What ASP.NET MVC 3 features, if any, could have the greatest impact on an existing MVC 2 application?


Should QA be part of the development department?

I work for a small company that has had a product development department for quite a while. What we haven't had, however, is a QA/testing group. We are looking to add a testing group, but are struggling to determine where best to put them in the organizational structure of the company. Specifically, we are going to hire a "lead tester" position. Should they be put in as part of the product development department, or should they be a new department? Should they be somewhere else? Our company is roughly structured as follows:   * CEO      * CTO        * Director Product Development       * Director Customer Care          * Developers       * VP Operations          * Network engineers     * Sales/sales engineers     * President        * Controller


Standards for reading code out loud?

Has anyone defined a standard for reading code out loud, for any language? I imagine this is important to software like screen readers for the vision- impaired. This sort of thing also comes up when you are discussing code with someone, reviewing it in a group, or teaching a class. In the C family of languages, there are a lot of words with "obvious" pronunciations. Some are simply English words: `for`, `break`, `case`, `default`, etc. Some abbreviations, like `int`, are unambiguous. And then there's `char`. I always tend to say it (and hear it in my head) like the first syllable of "charcoal". It was jarring to me the first time I was talking about code with someone who pronounced it like "car", which actually makes more sense because `char` is really an abbreviation of the word "character", so clearly it should be pronounced the same. But even knowing that, char-as-in-coal feels more right to me. And then there are statements like `foo = bar ? *(++baz) : zardoz`. Has anyone anyone produced a document dictating the correct way (in their opinion) how to read code aloud? Either for a specific language or maybe code in general?


Why do many languages not support named parameters?

I was just thinking how much easier it would be to read code if, when calling a function, you could write:               doFunction(param1=something, param2=somethingElse);      I can't think of any drawbacks and it would make code a lot more readable. I know you could pass an array as the only argument and have the array keys as the parameter names, however that would still not be as readable. Is there a disadvantage of this that I'm missing? If not, why do many languages not allow this?


Android learning curve (Hello, Android 3rd ed. Book)

I am currently reading the book Hello, Android, and am about 100 pages in. The problem is that even though I understand the instructions and what the code should do, I can't really put things together as to how things are connected(methods, views, things passed around different files(!!)). The sudoku example the book is following is too complicated to follow; maybe they should of instead gradually show and _explained_ each step to building such an app (let the reader build up with simple examples to more complicated ones). Maybe later in the author starts to explain things more clearly. Should I just keep reading/coding the book or should I focus more on my Java book and finish that first? If someone has experience with the book, I would love to hear some thoughts.


How do I determine the runtime of a double recursive function?

**Given any arbitrarily double-recursive function, how would one calculate its run time?** _For Example (in pseudocode):_               int a(int x){       if (x < = 0)         return 1010;       else         return b(x-1) + a(x-1);     }     int b(int y){       if (y <= -5)         return -2;       else         return b(a(y-1));     }      Or something along those lines. **What methods could or should one use to determine something like this?**


What kind of knowledge is needed to be a Financial Software Developer?

I have 4+ years of experience in software engineering. I am well competent in system design, analysis and development. I have worked heavily in Java and C++ and I am confident about my technical skills. Now I am thinking of finding a job in the financial sector. What kind of resources should I be looking for? What are the keywords I should look for? E.g. "algorithmic trading" Are there any books targeting software engineers?


Suggestions for CSS frameworks?

So I've started developing web sites and have learned HTML and CSS fundamentals. However, I often run in to WTF-moments concerning layout; what looks good in one browser may look strange in another and I can't figure out why. Do I need to learn CSS beyond the fundamentals or are there any frameworks that can make life simpler for me?