Best practices for collaborative web development in Mac environment? [closed] - macos

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
At my current job I've been the only web developer for almost 3 years. So for that whole time I just used MAMP on my own local machine. We have a 2nd developer that will be starting pretty soon and I need to figure out the best way to set everything up so we can both work on the same project.
All of the machines at our office are connected to a Mac OS X server. Is it possible to host our web projects on the server and have them be accessible via a short url such as exampleproject.dev?
The reason I want to have our web projects reside on our server is because it is always on. So if I'm not in the office I want our other developer to be able to access our web projects.
Also, I'd like to get some kind of version control software set up. Any recommendations? Thanks!!

This is a hazard I've seen two companies fall into, and then emerge out of. Your other developer should also work locally (optionally against a common dev database though).
I would recommend putting Subversion or Git on the server. Just from personal preference and both of which work well with local environment setups, you have to push your changes into the repository before others will see them.
You can then set up an automated build system that pushes your code from your source control to the server for common viewing (if necessary).
From personal experience I would not recommend everyone developing against the same code on the same machine. People will break things and temporarily halt development for others as well as accidental code overwrites. It can't help but get ugly occasionally.
Definitely an advocate of: Work locally, commit often, but only once you're sure it's not going to blatantly break the site.
But — If you feel you still want to do the 1 dev environment at least make sure everyone is using an editor that prompts you (or updates) when someone changes the same file. As an example I use Sublime.

oh there are many ways. You could check out the thoughtbot dotfiles on github (https://github.com/thoughtbot/dotfiles) which are meant for just that or you could investigate into different setups for tmux and session sharing. I'd recommend you get yourself used to git and homebrew because that's at the base of every common shared environment on the mac.

Related

How to begin with creating a fork of a software? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I need to start work on creating a fork of the open-source web browser Mozilla Firefox, but I have no idea where to start. I'd be glad if someone could point me out in the right direction. I'd really, really appreciate the help.
Also, if my question does not belong here, please point out and suggest where I should post such questions. I was browsing through the StackExchange websites, and couldn't find a viable site. I could have overlooked/been careless, so if that's the case, please point me out in the right direction.
Firstly, you should ask yourself very hard whether a fork is the best solution because it will pose many kinds of issues. Ask yourself at least the following:
Can your project be completed as an extension of the original software?
Can your project be contributed to the upstream project instead of creating a new software?
¿Does the upstream project license allows the type of fork intended? Not all types of forks are allowed depending on the license.
If after a good while you decide that a fork is the only solution, the general approach:
Find where the source code of the project lives and which version control system it uses.
Clone the repository to a local copy on your machine.
Follow the instructions (if any) to rebuild the software.
Make sure at this point that you can tweak the software and run your modified version.
Ask yourself again if you really want to do a full fork.
Review the instructions (if any) on how to package the software.
Find a place to host your modified version of the source code.
Find a way to synchronize your version with the modifications done by the upstream project. This is especially important to keep compatibility and merging bug fixes.
Firefox is a huge codebase. I don't want to discourage you but if you are not already experienced you should probably not start your own Firefox fork. My advice would be to at least create an extension first, to become more familiar with Firefox programming model on a smaller scale. Extensions can be very powerful and do a lot of things.
For the first point, the instructions on how to get the source code of Firefox can be found here: Getting Mozilla Source Code Using Mercurial.

Windows GUIs for git [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am aware of this question, but it is a bit old now, and some of the answers seem outdated.
Question: please write one answer per GUI you have used, including pros and cons (for example, as far as I can tell, with git gui, you can't manage the stash).
(This is not exactly a "Windows" standalone Git GUI, but still quite advanced)
Considering that since then, Eclipse is in the process of mirroring all its projects in Git repositories, EGit (based on JGit) have made some progress and are part of the Eclipse ecosystem, and is on par with its Mercurial counterpart.
You can contribute to EGit there.
This Tutorial is quite complete.
alt text http://www.vogella.de/articles/EGit/images/github60.gif
So far I've been happiest with Git Extensions.
Pros:
Fairly complete access to git commands
Doesn't hide git specifics like the index (unlike Tortoise)
Good branch visualization
Visual Studio integration in addition to standalone GUI or shell integration
Actively developed
Cons:
UI is rough around the edges in looks and usability.
As for the GitHub for Windows - I have used it for a little time and it's pretty nice. Very esthetic and quite straight forward. It's even better when working with repositories located on GitHub (however I used it with other targets as well).
Today I switched to completely new client for Windows made by Bitbucket named SourceTree. As I understand it's a port from Mac client and thanks to that it looks and feels great. It has LOADS of options and tools (I have not familiarized myself with many of them) and it's constantly developed ( http://blog.bitbucket.org/2013/03/19/introducing-sourcetree-git-client-microsoft-windows/ ). They released the Beta version on 19.03.2013 and they have some really nice plans for future (Mercurial support as well!). I do think that it's worth a look.
Have a look at Atlassian SourceTree. It's a free Git Client for Windows & Mac.
I'm using it since the beta. And it's really the best tool ive ever used for git in my opinion.
Say goodbye to the command line – use the full capability of Git and Mercurial in the SourceTree desktop app. Manage all your repositories, hosted or local, through SourceTree's simple interface.
More informations under:
http://blog.bitbucket.org/2013/03/19/introducing-sourcetree-git-client-microsoft-windows/
http://www.sourcetreeapp.com/
I've been using SmartGit for a few days now, and I have to say I'm very impressed. I'm not a git-genius, but so far I haven't had to break out the CLI for anything.
And the UI is just... pleasant, frictionless. There aren't any of the "couldn't they just have done this?" annoyances that I've found with others.
Another option now is http://windows.github.com/ Github for windows. But only really if you are syncing with GitHub. I've been using this for a few weeks, and I do find I need to fire up a shell from time to time. Its also unclear what commands its actually issuing. I keep ending up in the middle of a broken rebase - but I have no idea why its rebasing! But for frictionless use 99% of the time its great.
I've used the following
GitHub for Windows - required me to download installer which took a long time for me to install. UI was too basic for me and at that time was very slow even when using a local repository.
SourceTree - UI looks goods but under delivers on features when compared to GitEye and SmartGit.
Collabnet GitEye (site) - UI is famililar to Eclipse users just like me. Worked great and especially had a credential store (SecureStore) which inspired some confidence in how it handles storing of passwords plus SSH key management.
SmartGit (site) - offers personal and commercial versions but even the personal version is an absolute pleasure to use. Staging files, looking at logs, reverting, committing, pushing etc. The features were sufficient for me.
I'd recommend the last two especially SmartGit since the UI is user friendly and pushing to more than 1 repository is much easier.
My answer is not really that verbose but please try to download and see for yourself.
With visual studio there is http://gitscc.codeplex.com/ Git Source Control Provider which is a Visual Studio Extension. More into in this SO question Using Git with Visual Studio

Do you believe the Firefox project should be forked into a developer targeted version? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I've just got this idea that there is a need for a forked version of Firefox that would provide right out of the box tools for web development. Like FireBug, YSlow, FireCookie, LiveHTTPHeaders, etc.
Maybe the fork should only include those extensions or take a further step and implement them in existing chrome.
The reason I'm thinking about this is that right now I have two Firefox profiles. A "browsing" one which has only one extension and a "development" one which has lots and lots of extensions. The advantage is obviously that the former is faster than the latter. Maybe if aimed from the beginning at developers, a forked version would bring some speed improvements and other niceties.
What do you think? Any volunteers?
Adding functionality to FireFox via extensions is IMO the reason why it is such a popular browser. If you take that freedom 'away' from people by providing them 'pre-baked' solutions, that will not be for the best.
What advantage would that give over extensions? You don't actually believe, that someone will port code to C?
I fear that pulling mentioned extensions into an official, maybe even Mozilla-branded, distribution would cause a slowdown in the development of those extensions because their authors would have to worry about coordinating their development with the provider of the browser distribution.
You can always prepare your own Firefox installator...
I think it is unnecessary to fork for that, because you can both things already - that is, have multiple profiles, and have all the developer tools as extensions.
You could even install two different profiles and run them from two different executables (portable Firefox makes this easy) allowing you to have a completely different plugin set as well as extension set for both.
Thinking about this more, I can't see how it would help.
Say you fork Firefox into a dev version, that is then used by extension developers.
But what is the target platform? The dev-platform (okay, then) or the "standard" platform -- if the latter, they aren't using it, and so dev and testing be be doubled or worse. Just imaging targetting Gnu Emacs but doing the dev in XEmacs.
Develop and test on your target platform, or face unpleasant surprises....

How to comply with the new Federal Desktop Core Configuration (FDCC), which will remove local administrator access for all users? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
As developers, we believe that not having local administrative access is going to severely handicap our productivity. We will be restricted from running IIS (we’re a web development shop), installing applications, running Microsoft power tools, etc. If you’re going through the FDCC process now, it would be great to hear how you are coping with these changes.
Having actively worked as a contract developer at a base that uses the AF Standard Desktop, I can tell you a few things.
1: and most important. Don't fight it and don't do what the first person suggested "and let them choke on it". That is absolutely the wrong attitude. The military/government is fighting lack of funding, overstretched resources and a blossoming technology footprint that they don't understand. The steps they are taking may not be perfect, but they are under attack and we need to be helping, not hindering.
OK, that off my chest.
2: You need to look at creating (and I know this is hard with funding the way it is) a local development lab. Every base that I have worked at has an isolated network segement that you can get on that has external access, that is isolated from the main gov network. You basically have your work PC for e-mail, reports etc.. that is on the protected network. But, you develop in your small lab. I've had a lab be 2 PCs tucked under my desk that were going to be returned during a tech refresh. In other words, be creative with making yourself a development machine +servers that are NOT restricted. Those machines are just not allowed to be connected to the main lan segment.
3: Get the distributions of the desktop configurations. Part of your testing needs to be deploying/running on these configurations. Again, these configurations are not meant for development boxes. They are meant to be the machines the people use for day to day gov work.
4: If you are working on web solutions, be very aware of the restrictions on adding trusted sites, ActiveX components, certs, certain types of script execution that the configuration won't allow. Especially if you are trying to embed widgets/portlets/utils that require communications outside the deployed application domain.
5: Above all remember that very few of the people you work for understand the technology they are asking you to implement. They know they want function X but they want you to follow draconian security rule Y while achieving it. What that usually means is that the "grab some open source lib or plugin and go" is not an option. But, that is exactly what your managers think you are going to do because of the buzz around rapid development.
In summary, it's a mess out there. Try to help solve the problem.
While I've never been through the FDCC process, I once worked for a U.S. defense contractor who's policy was that no one had local administrative access to their machines. In addition, flash drives and CD-ROMs were disabled (if you wanted to listen to music on CDs, you had to have a personal CD player with headphones).
If you needed software installed you had to put in a work order. Someone would show up at your desk with the install media, login to a local admin account, and let you install the software (the reasoning being that you knew what to install better than they did). Surprisingly, the turnaround was pretty quick, usually around 1/2 an hour.
While an inconvenience, this policy didn't really cripple us. We were doing a combination of Java, C++ (MS Visual C++ and GNU/C++), VB 6.0 and some web development. For what little web development we did, we had a remote dev box we would RDP into for testing. Again, a bit of an inconvenience, but it didn't stop us from getting our jobs done.
Without ever having had the problem, today I'd probably try a virtualising solution to run these tools.
Or, as a friend of mine once opined: "Follow the process until They choke on it." In this case this'd probably mean calling the helpdesk each time you needed to have a modification to your local IIS config or you'd needed one of the powertools started.
From what I can tell FDCC is only intended to be a recommended security baseline. I'd give some push back on the privileges that you require and see what they can come up with to accommodate your request. Instead of saying I need to be a local administrator, I'd list the things that you need to be able to do and let them come up with a solution that works (which will likely to be to let you administer your machine or a VM). You need to be able to run the debugger in Visual Studio, run a local web server (Cassini), install patches/updates to your dev tools on your schedule, ...
I recently moved to a "semi-managed" environment with SCCM that gets patches installed on a regular basis from a local update repository. I was doing this myself, but this is marginally more efficient for the enterprise and it makes the security office happy. I did get them to put me, and the other developers, in a special collection so that we could block breaking changes if needed (how could IE7 be a security update?). Not much broke except that now I need to update Windows Defender manually since I updated it more frequently than they do in the managed collection! It wasn't as extreme as your case, obviously, but I think that is, in part, due to the fact that I was able to present the case for things that I needed to do for my job that required more local control.
From the NIST FAQ on Securing WinXP.
Should I make changes to the baseline settings? Given the wide
variation in operational and technical
considerations for operating any major
enterprise, it is appropriate that
some local changes will need to be
made to the baseline and the
associated settings (with hundreds of
settings, a myriad of applications,
and the variety of business functions
supported by Windows XP Systems, this
should be expected). Of course, use
caution and good judgment in making
changes to the security settings.
Always test the settings on a
carefully selected test machine first
and document the implemented settings.
This is quite common within financial institutions. I personally treat this as a game to see how much software I can run on my PC without any admin rights or sending requests to the support group.
So far I have done pretty well I have only sent one software install request which was for "Rational Software Architect" ('cos I need the plugins from the "official" release). Apart from that I have perl, php, python, apache all up and running. In addition I have jetty server, maven, winscp, putty, vim and a several other tools running quite happlily on my desktop.
So it shouldnt really bother you that much, and, even though I am one of the worst offenders when it comes to installing unofficial software I would recommend "no admin rights" to any shop remotly interested in securing their applications and networks.
One common practice is to give developers an "official" locked down PC on which they can run the official applications and do their eMail admin etc. and a bare bones development workstation to which they have admin rights.
Not having local administrative access to your workstation is a pain in the rear for sure. I had to deal with that while I was working for my university as a web developer in one of the academic departments. Every time I needed something installed such as Visual Studio or Dreamweaver I had to make a request to Computing Services.

How do you keep a personal wiki (TiddlyWiki) current and in sync in multiple locations? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
If one were to use TiddlyWiki as a personal database for notes and code snippets, how would you go about keeping it in sync between multiple machines. Would a svn/cvs etc work. How would you handle merges?
One option is the up-and-comer DropBox. A free filesharing service that gives you 2GB free, and no limit to the number of computers you share on.
Define a shared folder, put your tiddlywiki files in there, and then point the local editing to the shared drive. Any changes are automatically reflected.
Note: I have no connections to DropBox other than the fact that I've been reading lots about it, and am trialing it for my personal use.
Use TiddlySpot, its online all the time and private
Tiddlywiki is well suited for version control (since it is a single text file).
Just put it on a personal SVN or Git repository accessible from the web, and you can keep it in sync with many places (office, home, laptop, etc.).
I use this method, and it works pretty well. You can even have several versions of your notes and resolve conflicts using diff tools. And obviously with revision control, you can work "offline" and sync later.
I just created a new Tiddlywiki at TiddlySpot. It allows you to keep a local copy of the Tiddlywiki and also sync it up with the server.
These options are all good, but I would just put it on a USB key.
If you have your own web server (and don't want to use TiddlySpot), try this code to enable saving to your own server.
I have a MonkeyGTD wiki that is on http://TiddlySpot.com. I have a local copy of it on my work PC and do my work during the day on it, and periodically upload to TiddlSpot during the day and at the end of the day. If I need to access it or update it after work I will make changes to the online version and then the next morning I do an Import back into my local file.
It's true that if I forget to do an update or do them in the wrong order I will lose information, but it's "good enough".
There is probably a way to use the Sync functionality to prevent this, but I haven't researched this option yet.
If you might want to edit your wiki on several computers at the same time, you would definitely want a server-based solution that syncs at a finer level than the file. Giewiki (http://giewiki.appspot.com) is a server-based TiddlyWiki solution based on Google's App Engine, which does just that. And unlike any other hosted TiddlyWikis that I know of, you can create several pages in any hierachy and navigate them through an auto-generated sitemap. You can try it out by creating a subdomain site at giewiki.appspot.com, or you can download the source and install it into a free appspot site of your own. And you can make it as personal or public as you like.
Try FolderShare.
I store my TiddlyWiki files on a USB flash drive that I keep with me no matter what computer I might be using. No need to bother synchronizing across other computers. It gets backed up regularly when I back up the flash drive itself on my primary workstation.
Yet another option: Use a different personal wiki called Luminotes, which you can either access online from different computers or download and run on your own computer (yes, even a USB drive). Luminotes has definitely got some similarities to TiddlyWiki, but in many ways it's simpler to learn and use.
You mentioned SVN, but if you don't mind using git, Github's Gollum is a great solution. Edit locally or from the github remote repo.
Why not just setup something like DokuWiki on a webserver? You do have your own web server, right? You can get a virtual hosted solution for $19/mo these days.

Resources