Wikipedia:Reference desk/Archives/Computing/2012 April 14

= April 14 =

Calendar for a Facebook Group?
Is there a calendar app in Facebook for members of a group to share, so they can all see upcoming events relevant to the group all in one place? HiLo48 (talk) 05:34, 14 April 2012 (UTC)
 * Group members can create events... Would that suit your purposes?  Dismas |(talk) 05:48, 14 April 2012 (UTC)
 * I'm thinking more of something that actually looks like a calendar or diary, where a group member could look to see what's scheduled on a particular date. HiLo48 (talk) 06:06, 14 April 2012 (UTC)
 * What about Google Calendar instead? CambridgeBayWeather (talk) 15:51, 14 April 2012 (UTC)
 * Yes, thanks for that suggestion. I use Google Calendar personally, and find it very good, but I don't know how I'd go getting the group to use it. It's a group of teenagers, and it's hard enough getting them to communicate effectively on Facebook, the tool one would think would be their favourite. HiLo48 (talk) 20:58, 14 April 2012 (UTC)

Free software for adding accompaniment to music
Are there free software applications for adding accompaniment to (written) music? What I'm looking for is a program that, when given a simple (monophonic) melody, would "dress it up" with accompaniment and output printed scores. The added accompaniment doesn't need to be great artistically—I'd be happy with something that an average non-music-enthusiast would consider "decent". Are such programs available? --173.49.16.167 (talk) 15:58, 14 April 2012 (UTC)
 * Here's some C code that may do the job. []--78.148.136.55 (talk) 19:51, 15 April 2012 (UTC)

Keeping track of changes
New to web programming, so probably a silly question. I've got this site of 100 files written (not by me) in PHP/HTML/MySQL/javascript/css (so fairly standard I guess). I am doing some changes to it, adding/removing features and such. It would be good if there was a tool or program that would keep track of my edits and would allow me to associate several edits (potentially in different files and different "languages") with a "purpose", e.g. "feature A added" corresponds to the following modifications; "feature B removed" corresponds to the following modifications, etc. Presently I am trying to keep track of changes using diff and adding comments in the code. Does such a tool/program exist and if yes, what is it called? It should run on linux and be ideally free. bamse (talk) 17:04, 14 April 2012 (UTC)


 * You want a text editor with a built-in version control system or simply the capacity to otherwise utilize a separate version control system. They tend to be called integrated development environments the more features they include.  Solutions abound. ¦ Reisio (talk) 17:08, 14 April 2012 (UTC)


 * Yes, what you want is version control. Subversion is a popular open-source standard.  You make changes in your 39 files, and then "check them in" to the server with a comment letting yourself and the other coders on your product (if any) know the purpose of the changes.  Another large benefit is that it's easy to rewind to the previous checkin if necessary.  Comet Tuttle (talk) 19:06, 14 April 2012 (UTC)


 * Thanks. I will look into it. (That link should go to Apache Subversion, I guess!?) bamse (talk) 21:22, 14 April 2012 (UTC)


 * Note that you can also do this without special software. Just copy all the source code into a new folder, and make your modifications in that folder, and name the folder accordingly.  This will take up more space, but these day disk drive space is so cheap that it's not much of an issue.


 * As far as modifications within each folder, where you change each source file multiple times, you can copy each file, within the folder, and give a version number to each. So, FUBAR.cpp.3.2.1, for example.  (You need to strip the version number off the current one, though, so the compiler will find it.)  You should also put comments in each source code file describing each modification. StuRat (talk) 22:08, 14 April 2012 (UTC)


 * Thanks for the reply, but that seems like what I had been doing so far, i.e. a lot of manual work to keep track of changes. I have looked into subversion and it seems to do what I want. bamse (talk) 06:30, 15 April 2012 (UTC)


 * OK, but beware of any version control system which takes control away from you. That is, if the company goes out of business and/or you can't get an upgrade to work with a new version of the O/S, compiler, etc., will you be able to access all the old versions still ? StuRat (talk) 17:22, 15 April 2012 (UTC)


 * The vast majority of version control systems are free software: CSSC, RCS, CVS, arch, svn, hg, bzr, git, etc. There are a few proprietary ones &mdash; SCCS (except Sun's is free), VSS, and BK, at least &mdash; but it makes sense that they are typically free because they are the standard means of implementing the sharing of source code!  --Tardis (talk) 13:00, 18 April 2012 (UTC)


 * Even if currently free, it's still possible it may not be available, at least for free, in the future, or may not support your future configuration. StuRat (talk) 18:28, 18 April 2012 (UTC)
 * Part of the point of Free software (freedom, not price, aka FLOSS) is that the source is available to everyone, so that it may be made to run on any future system (typically with little effort). This is what one of our references in open-source software calls "perpetuity" (in regard to both open source software and open standards).  All the VCSes I called "free" are Free.  --Tardis (talk) 02:38, 19 April 2012 (UTC)


 * You might also consider Git. --Phil Holmes (talk) 10:56, 15 April 2012 (UTC)

Above are listed several version control systems. In addition, you may also want a bug tracker - a related software tool to help manage the entire cycle of software engineering changes, from diagnosing a problem, tracking its root-cause, and associating it with code or configuration changes. Some bug-trackers are tightly integrated with version-control systems, while others are totally separate software; it's somewhat of a stylistic preference regarding your workflow. Nimur (talk) 16:09, 15 April 2012 (UTC)

Thanks a lot for all those replies. One more question, can any of those tools also track changes in a MySQL database, say if I add/drop columns or tables as part of the development process? bamse (talk) 21:17, 15 April 2012 (UTC)
 * When I program databases, I always create a script that can autogenerate all the tables for a brand-new fresh copy of the database. I check that script into my source code repository.  The hope is that if I had to start from scratch, I could quickly create the database structure from a clean install; and then import the rows (data) from backup; and then start running my server logic, and nobody would know I just purged the database, aside from the downtime.  Changes to the database structure can be tracked using this "initialization" script, using SVN, just like any other source file.  MySQL supports scripting, as does PostGRE, IBM DB2, and so on.
 * If for some reason this is not an option, you can track changes manually in a bug tracker. Or, if you really want to be an Enterprise Class Computing Consultant, consider the IBM Tivoli Configuration Manager and Tivoli Change and Configuration Management Database.  Nothing says "massive infrastructure" like putting your database configuration into another database, except using a commercial database to manage changes to your configuration database.  You can't get any more massively redundant, unless you also shell out for a Tivoli Composite Application Manager to manage changes to the Change And Configuration Management Database.  Unfortunately, these tools are not free, and I am not aware of free software equivalents. But let's face reality: if your database is running on a water-cooled z196 with three thousand gigabytes of RAM, you ain't gonna be running "free software." Nimur (talk) 14:57, 16 April 2012 (UTC)
 * Thanks for the reply. I think I will go with the free solution... In fact there already seems to be scripts among the code for generating the database. I was just too lazy to update them. But perhaps I can export the database and start from there. bamse (talk) 19:32, 16 April 2012 (UTC)

Patterns
What are those square 'digital' patterns found on magazines and some posters saying 'scan me for more info'. How do they work and how do i reads them--78.150.233.18 (talk) 18:14, 14 April 2012 (UTC)


 * Probably QR codes, or one of the similar 2d barcodes linked from that article. Ones used in print or billboard advertising usually encode URLs. -- Finlay McWalterჷTalk 18:27, 14 April 2012 (UTC)


 * Just to save having to look, they are designed to be read by pointing the camera of a smartphone at them. Looie496 (talk) 00:33, 15 April 2012 (UTC)

iPhone call forwarding question
If I set iPhone A to forward calls to the number of iPhone B, and set iPhone B to forward calls to the number of iPhone A, and then call A from a third phone, will either ring? Will either's messaging service pick up, or will they go back and forth in a sort of infinite loop? 69.243.220.115 (talk) 23:47, 14 April 2012 (UTC)