MVVM in WPF - How to alert ViewModel of changes in Model... or should I?

Question: I am going through some MVVM articles, primarily this and this.
My specific question is: How do I communicate Model changes from the Model to the ViewModel?
In Josh's article, I don't see that he does this. The ViewModel always asks the Model for properties. In Rachel's example, she does have the model implement INotifyPropertyChanged, and raises events from the model, but they are for consumption by the view itself (see her article/code for more detail on why she does this).
Nowhere do I see examples where the model alerts the ViewModel of changes to model properties.  This has me worried that perhaps it's not done for some reason.   Is there a pattern for alerting the ViewModel of changes in the Model?  It would seem to be necessary as (1) conceivably there are more than 1 ViewModel for each model, and (2) even if there is just one ViewModel, some action on the model might result in other properties being changed.
I suspect that there might be answers/comments of the form "Why would you want to do that?" comments, so here's a description of my program.  I'm new to MVVM so perhaps my whole design is faulty.  I'll briefly describe it.
I am programming up something that is more interesting (at least, to me!) than "Customer" or "Product" classes.  I am programming BlackJack.
I have a View that doesn't have any code behind and just relies on binding to properties and commands in the ViewModel (see Josh Smith's article).
For better or worse, I took the attitude that the Model should contain not just classes such as PlayingCard, Deck, but also the BlackJackGame class that keeps state of the whole game, and knows when the player has gone bust, the dealer has to draw cards, and what the player and dealer current score is (less than 21, 21, bust, etc.).
From BlackJackGame I expose methods like "DrawCard" and it occurred to me that when a card is drawn, properties such as CardScore, and IsBust should be updated and these new values communicated to the ViewModel. Perhaps that's faulty thinking?
One could take the attitude that the ViewModel called the DrawCard() method so he should know to ask for an updated score and find out if he is bust or not.  Opinions?
In my ViewModel, I have the logic to grab an actual image of a playing card (based on suit,rank) and make it available for the view. The model should not be concerned with this (perhaps other ViewModel would just use numbers instead of playing card images).  Of course, perhaps some will tell me that the Model should not even have the concept of a BlackJack game and that should be handled in the ViewModel?
Comment: The interaction that you're describing sounds like a standard event mechanism is all that you need. The model can expose an event called `OnBust`, and the VM can subscribe to it. I guess you could also use an IEA approach as well.
Comment: FWIW: After struggling for several years with the complexities of maintaining both VM and M per domain concept, I now believe that having both fails DRY; the needed separation of concerns can be done more easily by having two INTERFACES on a single object - a "Domain Interface" and a "ViewModel Interface". This object can be passed to both business logic and View logic, without confusion or lack of synchronization. That object is an "identity object" - it uniquely represents the entity. Maintaining separation of domain code vs view code then needs better tools for doing so inside a class.
Comment: Thanks to everyone! Unfortunately, I can pick only one answer.  I'm picking Rachel's due to the extra architecture advice and cleaning up the original question. But there were lots of great answers and I appreciate them. -Dave
Comment: I'll be honest, if I where to make a real blackjack 'app' my data would hidden behind a few layers of services/proxies and a pedantic level of unit-tests akin to A+B = C. It would be the proxy/service that informs of changes.
Comment: See also [Josh G's answer with link to Robert McCarter's Design Patterns - Problems and Solutions with Model-View-ViewModel](https://stackoverflow.com/a/4605403/199364)
Answer: If you want your Models to alert the ViewModels of changes, they should implement INotifyPropertyChanged, and the ViewModels should subscribe to receive PropertyChange notifications.
Your code might look something like this:
// Attach EventHandler
PlayerModel.PropertyChanged += PlayerModel_PropertyChanged;

...

// When property gets changed in the Model, raise the PropertyChanged
// event of the ViewModel copy of the property
PlayerModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "SomeProperty")
        RaisePropertyChanged("ViewModelCopyOfSomeProperty");
}

But typically this is only needed if more than one object will be making changes to the Model's data, which is not usually the case.
If you ever have a case where you don't actually have a reference to your Model property to attach the PropertyChanged event to it, then you can use a Messaging system such as Prism's EventAggregator or MVVM Light's Messenger.
I have a brief overview of messaging systems on my blog, however to summarize it, any object can broadcast a message, and any object can subscribe to listen for specific messages. So you might broadcast a PlayerScoreHasChangedMessage from one object, and another object can subscribe to listen for those types of messages and update it's PlayerScore property when it hears one.
But I don't think this is needed for the system you have described.
In an ideal MVVM world, your application is comprised of your ViewModels, and your Models are the just the blocks used to build your application. They typically only contain data, so would not have methods such as DrawCard() (that would be in a ViewModel)
So you would probably have plain Model data objects like these:
class CardModel
{
    int Score;
    SuitEnum Suit;
    CardEnum CardValue;
}

class PlayerModel
{
    ObservableCollection<Card> FaceUpCards;
    ObservableCollection<Card> FaceDownCards;
    int CurrentScore;

    bool IsBust
    {
        get
        {
            return Score > 21;
        }
    }
}

and you'd have a ViewModel object like
public class GameViewModel
{
    ObservableCollection<CardModel> Deck;
    PlayerModel Dealer;
    PlayerModel Player;

    ICommand DrawCardCommand;

    void DrawCard(Player currentPlayer)
    {
        var nextCard = Deck.First();
        currentPlayer.FaceUpCards.Add(nextCard);

        if (currentPlayer.IsBust)
            // Process next player turn

        Deck.Remove(nextCard);
    }
}

(Above objects should all implement INotifyPropertyChanged, but I left it out for simplicity)
Comment: How is this the highest voted and accepted answer!? No, no, no! Business logic stays in the model, view model deals with application logic. The view model should have no idea about the actual rules of the game!
Comment: Thanks Rachel for all the help.  I'll have to research this some more or write another question; I'm still confused over the location of game logic.  You (and others) advocate for putting it in the ViewModel, others say "business logic" which in my case I assume is game rules and state of game belong in the model (see for example: http://msdn.microsoft.com/en-us/library/gg405484%28v=pandp.40%29.aspx) and http://stackoverflow.com/questions/10964003/where-does-business-logic-sit-in-mvvm). I recognize that in this simple game, it probably does not matter much.  But would be nice to know. Thxs!
Comment: Avoid memory leaks. Use a WeakEvent pattern. https://joshsmithonwpf.wordpress.com/2009/07/11/one-way-to-avoid-messy-propertychanged-event-handling/
Comment: More generally, do all the business logic/rules go in the model?  Where does all the logic go that says you can take a card up to 21 (but dealer stays put at 17),  that you can split cards, etc.  I assumed it all belonged in the model class and for that reason I felt I needed a BlacJackGame controller class in the model.  I'm still trying to understand this and would appreciate examples/references.  The idea of blackjack for an example was lifted from an iTunes class on iOS programming where the business logic/rules is most definitely in the model class of a MVC pattern.
Comment: @Dave Yes, the `DrawCard()` method would be in the ViewModel, along with your other game logic. In an ideal MVVM application, you should be able to run your application without the UI entirely, simply by creating ViewModels and running their methods, such as through a test script or a command prompt window. The Models are typically only data models containing raw data and basic data validation.
Comment: @Dave I may be using the term "business logic" incorrectly and mixing it up with application logic. To quote the MSDN article you linked *"To maximize re-use opportunities, models should not contain any use case–specific or user task–specific behavior or application logic"* and *"Typically, the view model will define commands or actions that can be represented in the UI and that the user can invoke"*. So things like a `DrawCardCommand()` would be in the ViewModel, but I guess you could have a `BlackjackGameModel` object that contained a `DrawCard()` method that the command called if you wanted
Comment: Rachel, Thanks for the answer.  You (inadvertently) make another good point - I need to pay more attention to my choice of method names.  By "DrawCard", I meant "take a card from deck", not "draw a picture of a card" or anything like that.  Would it still be in the ViewModel?
Answer: Short answer: it depends on the specifics.
In your example the models are being updated "on their own" and these changes of course need to somehow propagate to the views. Since the views can only directly access the viewmodels, it means the model must communicate these changes to the corresponding viewmodel. The established mechanism for doing so is of course INotifyPropertyChanged, which means that you 'll get a workflow like this:

Viewmodel is created and wraps model
Viewmodel subscribes to model's PropertyChanged event
Viewmodel is set as view's DataContext, properties are bound etc
View triggers action on viewmodel
Viewmodel calls method on model
Model updates itself
Viewmodel handles model's PropertyChanged and raises its own PropertyChanged in response
View reflects the changes in its bindings, closing the feedback loop

On the other hand if your models contained little (or no) business logic, or if for some other reason (such as gaining transactional capability) you decided to let each viewmodel "own" its wrapped model then all modifications to the model would pass through the viewmodel so such an arrangement would not be necessary.
I describe such a design in another MVVM question here.
Comment: Hello, the list you have made, is brilliant. I have however a problem with 7. and 8. In particular: I have a ViewModel, that does not implement INotifyPropertyChanged. It contains a list of children, which contains a list of children itself (it is used as a ViewModel for a WPF Treeview control). How do I make the UserControl DataContext ViewModel "listen" to property-changes in any of the children (TreeviewItems)? How exactly do I subscribe to all the child-elements, who do implement INotifyPropertyChanged? Or should I make a separate question?
Answer: Your choices:

Implement INotifyPropertyChanged
Events
POCO with Proxy manipulator

As I see it, INotifyPropertyChanged is a fundamental part of .Net. i.e. its in System.dll. Implementing it in your "Model" is akin to implementing an event structure.
If you want pure POCO, then you effectively have to manipulate your objects via proxies/services and then your ViewModel is notified of changes by listening to the proxy.
Personally I just loosely implement INotifyPropertyChanged and then use FODY to do the dirty work for me. It looks and feels POCO.
An example (using FODY to IL Weave the PropertyChanged raisers):
public class NearlyPOCO: INotifyPropertyChanged
{
     public string ValueA {get;set;}
     public string ValueB {get;set;}

     public event PropertyChangedEventHandler PropertyChanged;
}

then you can have your ViewModel listen to PropertyChanged for any changes; or property specific changes.
The beauty of the INotifyPropertyChanged route, is you chain it up with an Extended ObservableCollection. So you dump your near poco objects into a collection, and listen to the collection... if anything changes, anywhere, you learn about it.
I'll be honest, this could join the "Why wasn't INotifyPropertyChanged autmatically handled by the compiler" discussion, which devolves to: Every object in c# should have the facility to notify if any part of it was changed; i.e. implement INotifyPropertyChanged by default. But it doesn't and the best route, that requires the least amount of effort, is to use IL Weaving (specifically FODY).
Answer: I found this article helpful:
http://social.msdn.microsoft.com/Forums/vstudio/en-US/3eb70678-c216-414f-a4a5-e1e3e557bb95/mvvm-businesslogic-is-part-of-the-?forum=wpf
My summary:
The idea behind MVVM organization is to allow easier reuse of views and models and also to allow decoupled testing.  Your view-model is a model that represent the view entities, your model represents the business entities.
What if you wanted to make a poker game later?  Much of the UI should be reusable.  If your game logic is bound up in your view-model, it would be very hard to reuse those elements without having to reprogram the view-model.  What if you want to change your user interface?  If your game logic is coupled to your view-model logic, you would need to recheck that your game still works.  What if you want to create a desktop and a web app?  If your view-model contains the game logic, it would become complicated trying to maintain these two applications side-by-side as the application logic would inevitably be bound up with the business logic in the view-model.
Data change notifications and data validation happen in every layer (the view, the view-model, and the model).
The model contains your data representations (entities) and business logic specific to those entities.  A deck of cards is a logical 'thing' with inherent properties.  A good deck can't have duplicate cards put into it.  It needs to expose a way to get the top card(s).  It needs to know not to give out more cards than it has left. Such deck behaviors are part of the model because they inherent to a deck of cards.  There will also be dealer models, player models, hand models, etc.  These models can and will interact.
The view-model would consist of the presentation and application logic.  All the work associated with displaying the game is separate from the logic of the game.  This could include displaying hands as images, requests for cards to the dealer model, user display settings, etc.
The guts of the article:

Basically, the way that I like to explain this is that your business
  logic and entities comprise the model.  This is what your specific
  application is using, but could be shared across many applications.
The View is the presentation layer - anything relating to actually
  directly interfacing with the user.
The ViewModel is basically the "glue" that's specific to your
  application that links the two together.
I have a nice diagram here that shows how they interface:
http://reedcopsey.com/2010/01/06/better-user-and-developer-experiences-from-windows-forms-to-wpf-with-mvvm-part-7-mvvm/
In your case - lets tackle some of the specifics...
Validation: This typically comes in 2 forms.  The validation related
  to user input would happen in the ViewModel (primarily) and the View
  (ie: "Numeric" TextBox preventing text from being entered is handled
  for you in the view, etc).  As such, the validation of the input from
  the user is typically a VM concern.  That being said, there's often a
  second "layer" of validation - this is the validation that the data
  being used matches the business rules.  This often is part of the
  model itself - when you push data to your Model, it may cause
  validation errors.  The VM will then have to remap this information
  back to the View.
Operations "behind the scenes with no view, like writing to DB,
  sending email, etc": This is really part of the "Domain Specific
  Operations" in my diagram, and is really purely part of the Model.
  This is what you're trying to expose via the application.  The
  ViewModel acts as a bridge to expose this information, but the
  operations are pure-Model.
Operations for the ViewModel:  The ViewModel needs more than just INPC
  - it also needs any operation that are specific to your application (not your business logic), such as saving preferences and user state,
  etc.  This is going to vary app. by app., even when interfacing the
  same "model".
A good way to think about it - Say you want to make 2 versions of your
  ordering system.  The first is in WPF, and the second is a web
  interface.
The shared logic that deals with the orders themselves (sending
  emails, entering into DB, etc) is the Model.  Your application is
  exposing these operations and data to the user, but doing it in 2
  ways.
In the WPF application, the user interface (what the viewer interacts
  with) is the "view" - in the web application, this is basically the
  code that (at least eventually) is turned into javascript + html + css
  on the client.
The ViewModel is the rest of the "glue" that is required to adapt your
  model (these operations related to ordering) in order to make it work
  with the specific view technology/layer you're using.
Comment: Another good example is a web page.  The server-side logic is generally equivalent to a model.  The client-side logic is generally equivalent to a view-model.  I would easily imagine the game logic would belong on the server and not be entrusted to the client.
Comment: Maybe a simple example is a music player.  Your models would contain the libraries and active sound file and codecs and player logic and digital signal processing code. The view-models would contain your controls and visualizations and library browser.  there's a lot of UI logic needed to display all of that information and it would be nice to allow one programmer to focus on making the music play while allowing another programmer to focus on making the UI intuitive and fun.  View-model and model should allow those two programmers to agree on a set of interfaces and work separately.
Answer: Fairly old thread but after a lot of searching I came up with my own solution: A PropertyChangedProxy
With this class, you can easily register to someone else's NotifyPropertyChanged and take appropriate actions if it is fired for the registered property.
Here's a sample of how this could look like when you have a model property "Status" which can change on it's own and then should automatically notify the ViewModel to fire it's own PropertyChanged on it's "Status" property so that the view is also notified :)

public class MyModel : INotifyPropertyChanged
{
    private string _status;
    public string Status
    {
        get { return _status; }
        set { _status = value; OnPropertyChanged(); }
    }

    // Default INotifyPropertyChanged
    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        var handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

public class MyViewModel : INotifyPropertyChanged
{
    public string Status
    {
        get { return _model.Status; }
    }

    private PropertyChangedProxy<MyModel, string> _statusPropertyChangedProxy;
    private MyModel _model;
    public MyViewModel(MyModel model)
    {
        _model = model;
        _statusPropertyChangedProxy = new PropertyChangedProxy<MyModel, string>(
            _model, myModel => myModel.Status, s => OnPropertyChanged("Status")
        );
    }

    // Default INotifyPropertyChanged
    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        var handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

and here's the class itself:

///
/// Proxy class to easily take actions when a specific property in the "source" changed
///
/// Last updated: 20.01.2015
/// <typeparam name="TSource">Type of the source</typeparam>
/// <typeparam name="TPropType">Type of the property</typeparam>
public class PropertyChangedProxy<TSource, TPropType> where TSource : INotifyPropertyChanged
{
    private readonly Func<TSource, TPropType> _getValueFunc;
    private readonly TSource _source;
    private readonly Action<TPropType> _onPropertyChanged;
    private readonly string _modelPropertyname;

    ///
    /// Constructor for a property changed proxy
    ///
    /// <param name="source">The source object to listen for property changes</param>
    /// <param name="selectorExpression">Expression to the property of the source</param>
    /// <param name="onPropertyChanged">Action to take when a property changed was fired</param>
    public PropertyChangedProxy(TSource source, Expression<Func<TSource, TPropType>> selectorExpression, Action<TPropType> onPropertyChanged)
    {
        _source = source;
        _onPropertyChanged = onPropertyChanged;
        // Property "getter" to get the value
        _getValueFunc = selectorExpression.Compile();
        // Name of the property
        var body = (MemberExpression)selectorExpression.Body;
        _modelPropertyname = body.Member.Name;
        // Changed event
        _source.PropertyChanged += SourcePropertyChanged;
    }

    private void SourcePropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == _modelPropertyname)
        {
            _onPropertyChanged(_getValueFunc(_source));
        }
    }
}

Comment: Avoid memory leaks. Use a WeakEvent pattern. https://joshsmithonwpf.wordpress.com/2009/07/11/one-way-to-avoid-messy-propertychanged-event-handling/
Comment: @JJS - OTOH, consider [The Weak Event Pattern Is Dangerous](https://ladimolnar.com/2015/09/14/the-weak-event-pattern-is-dangerous/). Personally I'd rather risk memory leak if I forget to unregister (`-= my_event_handler`), because that is easier to track down than a rare+unpredictable zombie problem that may-or-may-not ever happen.
Comment: @ToolmakerSteve thanks for adding a balanced argument. I suggest that developers do whats best for them, in their own situation. Don't blindly adopt source code from the internet. There are other patterns like the EventAggregator/EventBus commonly used cross-component messaging (which are also wrought with their own perils)
Answer: You can raise events from the model, which the viewmodel would need to subscribe to.
For example, I recently worked on a project for which I had to generate a treeview (naturally, the model had a hierarchical nature to it). In the model I had an observablecollection called ChildElements.
In the viewmodel, I had stored a reference to the object in the model, and subscribed to the CollectionChanged event of the observablecollection, like so: ModelObject.ChildElements.CollectionChanged += new CollectionChangedEventHandler(insert function reference here)...
Then your viewmodel gets automatically notified once a change happens in the model. You can follow the same concept using PropertyChanged, but you will need to explicitly raise property change events from your model for that to work.
Comment: If dealing with hierarchical data, you'll want to look at *Demo 2* of [my MVVM article](http://www.codeproject.com/Articles/28802/Item-Level-Presentation-Models-for-WPF).
Answer: I have been advocating the directional Model -> View Model -> View flow of changes for a long time now, as you can see in the Flow of Changes section of my MVVM article from 2008.  This requires implementing INotifyPropertyChanged on the model.  As far as I can tell, it's since become common practice.
Because you mentioned Josh Smith, take a look at his PropertyChanged class.  It's a helper class for subscribing to the model's INotifyPropertyChanged.PropertyChanged event.
You can actually take this approach much further, as I have recenty by creating my PropertiesUpdater class.  Properties on the view-model are computed as complex expressions that include one or more properties on the model.
Answer: Notification based on INotifyPropertyChanged and INotifyCollectionChanged is exactly what you need. To simplify your life with subscription to property changes, compile-time validation of property name, avoiding memory leaks, I would advice you to use PropertyObserver from Josh Smith's MVVM Foundation. As this project is open source, you can add just that class to your project from sources.
To understand, how to use PropertyObserver read this article.
Also, have a look deeper at Reactive Extensions (Rx). You can expose IObserver<T> from your model and subscribe to it in view model.
Comment: Thank you so much for referencing Josh Smiths excellent article and covering Weak Events!
Answer: The guys did an amazing job answering this but in situations like this i really feel that the MVVM pattern is a pain so i would go and use a Supervising Controller or a Passive View approach and let go of the binding system at least for model objects that are generate changes on their own.
Answer: There's nothing wrong to implement INotifyPropertyChanged inside Model and listen to it inside ViewModel.
In fact you can even dot into model's property right in XAML : {Binding Model.ModelProperty}
As for dependent / calculated read-only properties, by far I haven't seen anything better and simpler than this:
https://github.com/StephenCleary/CalculatedProperties. It's very simple but incredibly useful, it's really "Excel formulas for MVVM" - just works same way as Excel propagating changes to formula cells without extra effort from your side.
Answer: This seems to me like a really important question - even when there is no pressure to do it.  I am working on a test project, which involves a TreeView.  There are menu items and such that are mapped to commands, for example Delete.  Presently, I am updating both the model and the view model from within the view model.
For example,
public void DeleteItemExecute ()
{
    DesignObjectViewModel node = this.SelectedNode;    // Action is on selected item
    DocStructureManagement.DeleteNode(node.DesignObject); // Remove from application
    node.Remove();                                // Remove from view model
    Controller.UpdateDocument();                  // Signal document has changed
}

This is simple, but seems to have a very basic flaw. A typical unit test would execute the command, then check the result in the view model.  But this does not test that the model update was correct, since the two are updated simultaneously.
So perhaps it is better to use techniques like PropertyObserver to let the model update trigger a view model update.  The same unit test would now only work if both actions were successful.
This is not a potential answer, I realize, but it seems worth putting out there.


Videos/Movies filling up my HDD

Question: Am a bit of an adrenaline junkie and have 2 GoPros that I use to create movies with in iMovie.
At the moment I can't seem to make any as my startup disk is full of 575 gb of Movie data, despite transferring all of the videos out of iPhoto and movies out of iTunes and iMovie and from various other locations. I have also deleted previous iMovie events to free up some data but only 10Gb.
Anyone have any idea what I can do without having to restore my mac?
Its almost like theres a fault and its storing data that isn't actually there.
Cheers!
Answer: When you delete something in iPhoto it goes to iPhoto's trash. Then from there it goes to the OS X trash. So you need to empty both of those trashes to reclaim the drive space.
Also, I use DaisyDisk to see where I have the most space being taken up. They have a free trial, but you will find it invaluable for freeing up drive space.
Something I use to move videos from iPhoto to external storage is the iPhoto Manager. It will copy the actual event from iPhoto do a different iPhoto library. In my case I have different libraries on different external drives. So I sync everything to the library on my internal drive. From there I can edit, share, etc. Then later I hook up the external drives and copy the events to the correct drives, then delete them from the internal library.

Videos/Movies filling up my HDD


Texts are not showing while playing Among Us using Wine

Question: Using Ubuntu 18.04. While running Among Us.exe using wine it isn't not showing any text.
Can anyone help me? What can be the issue?
Answer: I have the same issue. With mine, terminal shows an error with ping that goes like this:
00a3:err:winediag:IcmpCreateFile Failed to use ICMP (network ping), this requires special permissions.
It seems to be the only thing that justifies the whole issue, but I couldn't find a way of working around it yet. Apparently this is a problem that shows up when you're using an 'older' version of wine (from what I remember, it's any number lower than 3.5? Can't remember) So I have been trying (unsuccessfully) to update it. I also haven't seen anyone with ubuntu 20.04 with this problem, but I am ALSO having problems upgrading ubuntu sooooo... it ends up being a cyclical issue for me.
I thought maybe this could also be something the developers changed on the server so ppl can't just play the game on their pcs for free...
Maybe you'll find your answer in one of those things I mentioned, though: version of wine (which will allow you to config it as to fix the ping issue), ping configuration (which you can switch if you have a recent version of wine) or version of ubuntu (which maybe also has to do with the wine thing, or compatibility). I really hope this helped at least find some direction.


Camera set up for mountain bike photography

Question: I am a average all-around travel photographer, but I will be getting some work focussing on Mountain biking. I am actually on the verge of buying a new camera set up entirely, so what would be a good set up; lighting needs to be portable and durable as does the camera.
What are settings required for this kind of action photography? I would guess: high shutter speeds, ability to take fast bursts of images?
Comment: Just to clarify, are you taking photos of mountain biking or taking photos while mountain biking?  If you are just taking photos of mountain biking, why do you need the durability?  Do you need durability in transit or in use as well?  Also, what is a rough budget of how much you can spend?  That will relate a lot to what kind of gear can accomplish your needs in your price range.
Comment: High flash sync speed is going to be the biggest thing I would look for, along with a solid wireless receiver/transmitter combo. See: [What exactly is flash sync speed, and should it be a factor in a buying decision?](http://photo.stackexchange.com/questions/836/what-exactly-is-flash-sync-speed-and-should-it-be-a-factor-in-a-buying-decision) and consider investing in some Pocketwizards.
Comment: I will be riding with the bikers and then stopping to take shots at sections, hence it will live in my rucksack. Budget is no object, but if I can get value option vs no holds barred would be good.
Answer: Well there are two ways you can go.  On the cheaper, but (relatively speaking) lower (but still good) quality you can look at things like GoPro which is designed for being highly portable and durable.  It has limited functionality, but can be easily mounted to a bike for example and shoot decent video or basic photography.  You can also look at ruggadized point and shoots if you want to keep it light.
If you really want to maximize quality and don't mind some extra weight to carry (and a lot of cost, but with high value for that cost).  Something like a Canon 1Dx or a 5D Mark iii is designed with professional durability in mind and has excellent (in the case of the 1Dx) and pretty good (in the case of the 5D mark iii) weather sealing to support use in hostile environments.  You at that point would also want L series optics for the increased build quality which will help with dealing with the transportation and probably invest in a camera backpack for carrying it.  It is looking at around 5 to 10 pounds of camera gear then though.
If you really want to get professional quality action shots, then the value of paying the extra for them and carrying the extra weight for the shots is definitely there.  They are going to be much sharper and the AF will be much faster.  If you ever end up doing anything in lower light they will also have a serious advantage.  They also work with the full range of Speedlites and the 600EX-RT is a great high power flash for outdoor work, even in sunlight and supports built in radio sync so that it's reliable communication and can be used at a longer distance than the optical systems (particularly outside).  The 600EX-RT units are also weatherproofed where as most of the third party flashes are not, so the 600EX-RT will hold up better in the wilderness.
You can go a little on the cheaper side if you want and use PocketWizards and third party flashes, but I personally like the level of control that you get in camera for the Canon RT system and think it is worth it if you are looking at the professional level.
Nikon also has a similar range of products available, but I shoot with Canon stuff, so I don't know the Nikon gear in as much detail.
Ultimately, the name of the game in photography generally seems to be that for the most part, value (per dollar) tends to increase as you spend more, even going up into at least the $3000+ range.  For example,  I had a 70-300 f/4-5.6 lens that was $600.  I upgraded to the 70-200 f/2.8 IS II which is a $2200 or so lens, but the sharpness of the lens gives it about 4 times the quality without even taking in to consideration the richer color or the extra stops of aperture or better construction, so the value of the lens was much higher, but without a professional use for it (or being independently wealthy) I wouldn't really recommend buying it as a consumer unless you really REALLY love photography, even if it is a better value by far than the $600 lens I started with.
Oh, one other thought.  I don't personally have experience with them, but Pentax is well known for the durability and weatherproofing of their lower end and mid-end DSLRs if you want an in-between option between rugadized point and shoot and high end professional DSLR, but I'd stay away from entry or mid level DSLRs from Nikon or Canon as they are not particularly ruggedized unless you want to take particular caution in their storage for transportation and use them only in fair weather conditions or with external weather protection (all of which adds weight).
Comment: Overall good answer so I gave a +1. I am a huge fan of the Pocketwizards over the Canon equiv. though. For this use I would still stick to PW.
Comment: @dpollitt - even over the RT system?  I would totally agree when compared to the optical system, but the capabilities and ease of use of the RT system seem pretty sweet to me, if only they didn't require using all 600 flash units.  I do have to admit I have not had a chance to use the RT system personally though, but a second and maybe third 600EX-RT is on my wish list.


Can't restore disabled iPhone because not enough disk space

Question: I am trying to restore a disabled iPhone 4s so my daughter can use it but iTunes gives the error not enough disk space. Obviously I can't delete anything from the phone because it's disabled. Is there any way to clear up storage space while disabled?
Comment: "Not enough disk space"... Are you sure iTunes is not complaining about the computer its running on?  I don't see how iOS will ever warn about "disk" space.
Answer: When connecting it to iTunes, I would choose to set it up as a new device, rather than restoring from a backup.
Once you've done that then do the restore on your iPhone from the backup you wanted to use.
NOTE: Ensure that you do not do a new backup of your iPhone 4s before doing the restore. You may want to make a backup of your iPhone 4s backup before you begin, just in case. If you're not sure of where the backups are located, refer to this article.
Answer: If you are certain that you do not want to use any of the content already on the iPhone, you can place it into Recovery Mode and have iTunes restore it. Make sure that you have the Apple ID and password of the account that was on the phone before following the steps below otherwise you will still be unable to use the device.

Plug your iPhone in to your computer and ensure iTunes is open and can recognise the device.
Press and hold both power and home buttons at the same time until the screen goes black.
Continue holding both buttons for 4 seconds after the screen goes black.
Release the power button and continue holding the home button until iTunes recognises it.

The device will be recognised as "in recovery mode" and iTunes will give you the option to restore it. iTunes will then download the most recent software for that device and restore it, wiping the device and displaying the first-time setup for iOS.


Is it considered a wash sale if stock is bought twice within 30 days of sale?

Question: Let's say I bought one unit of ABC stock on March 1, 2024 for $100 and another unit on March 2, 2024 for $100. I sold both units of ABC stock for $80 each on March 14, 2024. Assuming I don't buy ABC again before April 14, 2024 (within 30 days of March 14, 2024), is this considered a wash sale?
Answer: Wash sale is a sale 30 days before or after purchasing replacement stocks. If your purchase replacement stocks 31 days after, then it's not 30 days before or after, and as such - not a wash sale.


Publishing in the lower quartile journals: better than nothing?

Question: Having a realistic option of publishing a minor study in a 4th quartile journal, is this better than nothing? The articles of many, but not all, authors are kind of pretentious and unremarkable (not being cited nowhere), but not plagiarized, or computer generated.
Comment: Are you concerned about how this might look on your CV, or simply if it is worth bothering to publish? (or both)
Comment: how this might look on your CV is the 1st concern.
Comment: You could publish (to prove when did the work if needed) but not list it on your CV.
Answer: In the UK the value of a publication is often based on the REF and the QR model. For the REF, only your top 4 publications in the 5 or so year return window matter. If you have less than 4 publications, low quality publications are definitely better than nothing. For the QR model, only research which is considered

Quality that is recognised internationally in terms of originality, significance and rigour.

is worth any weight to the university. No one really is willing to define what "internationally recognized" means. This means that for hiring and promotion purposes, assuming you have 4 high quality publications, multiple low quality publications are not worth anything.
While the REF and QR model influences hiring and promotion decisions, as well as funding body decisions, I believe there is still a place for low quality publications. They can be helpful in allowing you, and other, to refer to them in later higher quality publications. It is also a way of archiving and sharing your research.
Comment: The quality of the publication is not determined by the quality of the journal in which it is published. At issue here are not "low quality publications" rather publications in journals of low quality (as judged according to some index).
Comment: @DanFox I interpreted the OP's description of a "minor study" coupled with his desire to publish in a lower quartile journal as indicating the study in question was low quality, or in the OP's words "unremarkable ..., but not plagiarized, or computer generated." While I agree with you the quality of the journal and the quality of the paper are not necessarily equal, I am not sure either the REF panels or hiring/promotion committees always put in the effort they should.
Answer: You're going to have to give us a little more information to get a useful answer I think. What stage of your career are you in, where are you located, what are your career ambitions? Do you have a lot of prior publications in better places, etc.?
Here's a general hint: try to think of what you want to communicate with your CV.
I'm going to answer as if you are a grad student in the US who wants to get a tenure track job who has no prior publications. Here what you're trying to communicate with your publications is scholarly quality. You're trying to show that you deserve a seat at the grown up table. A low prestige publication doesn't do that.
I'd say don't publish rather than publish somewhere bad. The reason for this is psychological: search committees viewing your cv are going to fixate on the data points they have and extrapolate from there. If the only data point they see is a low-profile publication, they are going to judge that this is likely the best work you are capable of doing and extrapolate that you will be unlikely to earn tenure, and therefore don't deserve further consideration. (For lots of junior researchers their first couple papers are assumed to be the strongest work they are going to do pre-tenure b/c these are papers arising from the dissertation, that have presumably been written under the guidance of a distinguished mentor. That assumption is actually true in a lot of cases.)
If this is your situation, then don't waste your work publishing somewhere mediocre. Take the paper, make it as good as you possibly can and then start sending it to conferences. With some conference feedback, the paper might get good enough to make it into a more prestigious journal that actually helps you build your reputation as a scholar.
Now, if you already have a couple of strong publications, things are slightly different. People are going to fixate on the good publications and interpret the rest of the CV in light of them. That frees you up a bit. If this paper is good enough to get published somewhere, and you're not really interested in it as a research project, and you don't need the reputational capital, then maybe you can just let this go at a lower-tier journal. What you'd be trying to communicate in this case is that you're active.
If you are in a country with governmental rules about what publications "count" towards tenure or promotion, like the UK's REF system, then what you need to communicate is that you're capable of jumping through that system's hoops effectively.
Answer: Academics obsess about publishing in recognized journals and while this is "proper" form, the arena is far from its ideal landscape, which few, if any, academics have actually analyzed or questioned.
Consider, for example, Hesse's idea in Magister Ludi: a uniform platform for all human knowledge, interlinked together, stewarded in perpetuity by those with highest credibility for their respective domains -- not by publishers with profit motivations or university presses with their own interests in mind.
If your work has merit, publish it to the web, on a blog, for example, where it can get many eyes, receive comment, and your work can progress.  Ultimately, it is the ability to defend the work's value, not receive a blessing from some higher authority, which is important.
Comment: Actually, academics think about this kind of thing all the time. There's recently been a huge amount of discussion in theoretical computer science about what to do about the profit motivations of publishers. This has led, among other things, to the founding of a serious [open access journal](http://www.lmcs-online.org/index.php) and various conferences moving to open access proceedings outside the control of university presses and the big publishers.
Comment: Your desire to reform academia is not particularly relevant to this question about what to do in the academia that we have today.
Comment: Also, the blessing of higher authority known as a "hiring committee" is absolutely crucial to any academic's career. However idealistic one might wish to be, most academics are reliant on their salary for putting food on the table, a roof over their head and sundry other mundanities.
Comment: @DavidRicherby:  Thanks, I am aware of the re-examination which started in the late 90's of the publishing medium (Psychology domain as I remember), but I have yet to see the power of the internet exploited to its fullest in that regard.  The reason for my comment was to suggest that the OP is simply fretting too much amount standard publishing.  Academic work should stand on its own.
Comment: Yes, but what I'm suggesting as you can read over at another question, is that the arena needs reform, particularly in how a PhD should be defined and what requirements it should have.
Comment: You're right, it was only relevant to the issue you raised of a "hiring committee", and such.


How to update an asp.net website (just changed files)

Question: I am developing an asp.net website that will need regular updates for source codes and HTML sides. After i have completed the necessary updates, i use the 'publish website tool'  and publish the site to my local directory. Then i upload all files to Remote File.  Is there any way to fix my site with just changed files. For example if i have updated just 2 files of 84 (HTML or source side), is it possible to update just this 2 files without any problem?
Answer: While Visual Studio does offer a few different compiling/build options, I think that you are probably doing everything just fine for a Visual Studio Website project.  When I'm working with a website rather than a web application, I will only FTP the files that have changed.  For example, if I were to change some HTML tags around within an .aspx page, then only that page would need to be uploaded to the web server.  If I change the Page_Load function in the .aspx.cs page, then I will definitely need to get the updated DLL on the web server as well.
I use FileZilla for my FTP tool and there is an option to only upload the changed files.  So after you use visual studio to publish your website, you can grab the entire contents of that directory and drag it over to the FTP server location and only update what has changed.
Answer: The ASP.NET website project offers an option in the Project properties -> "MSBuild Options" tabpage where you can set "Allow this precompiled site to be updatable".
Setting this option

"Specifies that the content of .aspx
  pages are not compiled into an
  assembly; instead, the markup is left
  as-is, allowing you to change HTML and
  client-side functionality after
  precompiling the Web site. Selecting
  this check box is equivalent to adding
  the -u option to the
  aspnet_compiler.exe command."

according to the docs.
Answer: I've been entirely underwhelmed by the available tools to VStudio. And am instead using Gulp.
Even in 2017 the problem remains.
With gulp you can "watch" directories for changed files, so I have it configured to watch the [bin] folder, along with assets separate from aspx/cshtml files.
That way whenever I change anything, it is instantly copied to my publish folder where I can later zip it up and deploy ONLY the changeset. The script even has a delay so I can delay the copy/upload in situations like bundles where they are generated dynamically and take some time to be fully modified.
The only thing I have to do is clean it up before I start my next milestone, so that the "publish" folder which gulp "auto deploys" to is empty and ready for the next run. Emptying a folder and running "gulp watch" in background seems like a small price to pay for such a needed feature.
I feel like this should be a good item to develop as a vstudio plugin.
Comment: Wow this is actually a great solution. It's so straightforward
Answer: Recently I have been forced to move to a windows/C#/.NET/MVC environment from linux/node/angular. Sigh. I found the following solution (next paragraph) elminates the pain caused when using visual studio to "publish" the code.  The VS2017 publish process copies every file in the entire application to the web server, even if just one character is changed in one file. This can take over an hour for our moderately sized app.
So here's what I do. I first publish the solution locally (typically to bin/release/Publish/). That takes about 1 minute as opposed to 1 hour to publish to the server. Then, I compare the files between my local Publish directory and the server directory using FreeFileSync. FreeFileSync is amazing -- and free. I have access to the server directory via a windows file share. The compare takes about 15 minutes.  I can then see exactly what files are different and need to be pushed. Note, the option I use compares the actual CONTENT of the files, not just the create time. I then use the FreeFileSync sync feature (mirror option) to copy the few files needed to the server. This takes maybe two minutes.  So the total operation takes about 20% the time Visual Studio "Publish" takes. But best of all, the actual hit on the prod server is only the two minutes it takes to copy the diff files, rather than the 1 hour outage inflicted by Visual Studio Publish as it slogs along copying each and every file.
Comment: What I would do is , - In publish settings, keep `False` in `Delete Existing Files` and then publish to a local folder. Then easily find all files by modified date (I am using batch file - you can use powershell also) and I can grab only those files which I need to upload and then do manual upload via FTP.
Answer: It depends on the type of project.
If is a project created with File > New Web Site then is ok to just copy the changed .aspx files (make sure that the corresponding code - .cs - files are also copied).
If the project was created with File > New Project > ASP.NET Web Application then you will need to copy the .aspx files and the compiled project dll (by default the dll has the same name as the project like TestProject.dll) from the bin folder inside the project.
Answer: i think you need something http://winmerge.org/
where it will compare files that are changed and upload them.
hope this helps
Comment: This is even more cumbersome than just uploading everything via ftp


MySQL AES Encryption - Is it good idea to store 3rd Party Auth Tokens using AES Encryption?

Question: I need some advice on MySQL AES Encryption. I'm developing an application which connects to various 3rd-Party APIs and retrieves the Access Tokens for the application users. These Access Tokens are long-lived and will be used in offline mode for performing a bunch of tasks. My Question is that since Access Tokens have much privileges on a user's account, is it a good idea to store them using AES or some similar Encryption ? Is there any other better approach to secure these tokens?
Answer: Yes, it's a wise idea, but I'd recommend doing encryption in the application code and not in MySQL, because AES functions in MySQL are using ECB block mode, which is discouraged from being used in cryptographic systems.
Read more at:
https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_codebook_.28ECB.29
To increase security, you could perform encryption/decryption in a HSM (hardware security module) or create a poor man's version of it with software. That way, the cryptographic material (e.g., master key) is more difficult to access.
Comment: Thanks Matrix for your response.
One more thing, can you suggest where to store the encryption key? What is the best way to secure it?
Comment: You can derive the encryption key for each token using HMAC(masterKey, somethingUnique), where somethingUnique is something that is unique (and unchangable) to each token row in your database, like tokenId. This way, every token will be encrypted with a unique key. Master key can be stored inside HSM or a software version of it (more flexible).
Comment: Maybe I'm missing something but why not use a mode of operation that accepts an IV; then you only need to manage the master key and not a unique key for every row.
Comment: You cannot choose a different mode of operation, ECB is the only option.


The right verb after "ensure"

Question: Which forms of verb can I use here?

The client must ensure that accurate records be/are/will be kept.

I don't know why Google translate example uses "be" here.
Comment: "I don't know why Google translate example uses "be" here." - Please can you provide a link to where "here" is? You can [edit](https://ell.stackexchange.com/posts/218623/edit)  your question to add this in.
Answer: In "that" clauses, the subjunctive is used to express a demand, a recommendation,

something that you wish for, or a hypothetical rather than actual
situation. It is used with verbs such as demand, insist, pray, recommend, suggest, and semantically related nouns/adjectives, e.g. essential, important, insistence, proposal, etc.

Ensure does not fit in this list. Indicative mood should normally follow ensure, which becomes obvious by simply googling it. The first hit is usually from Oxford Languages, and this is where I found your sentence. The definition goes as follows:

ensure: make certain that (something) will occur or be the case.

e.g. The client must ensure that accurate records are kept.

Therefore, the grammatically correct variant is with the present of the indicative, not the subjunctive.
Note that ensure carries a future connotation already, so using the future tense after it would be redundant.
Now, that doesn't mean that some people will not use be instead of are in a sentence like this. Even Gngram found few instances of it, though present indicative is definitely preferred.

Some do overuse subjunctive in formal texts so as to sound official. There are differences of subjunctive use between countries (for example, BrE uses it less than Am E) and even regions. However, strictly speaking, the subjunctive (be) is grammatically inaccurate in this particular context.
If you read the sentence examples with "ensure that" given by WordHippo, you will find that most of them are in the present tense of the indicative mood (except for the cases when the main sentence is in the past; then a past tense is used).

e.g. The organisers of the protest now face a desperate rush over the next month to ensure that they are ready in time for the summit.

The right verb after "ensure"


In the gospels, why does Jesus sometimes tell the people not to tell anyone after he has performed a miracle?

Question: In the gospels, why does Jesus sometimes tell the people not to tell anyone after he has performed a miracle?
Matthew 9:30
There are multiple examples of this throughout the gospels.
Comment: Welcome to Stack Exchange.  If you haven't done so already, check out the [site tour](http://hermeneutics.stackexchange.com/tour) to learn what we are about.   Unfortunately, I don't think this question is a good fit for the site as is because it is too broad/opinion-based.  It would probably be OK is you ask "why in this specific passage does Jesus ..." or it would probably be OK on the [Christianity Stack Exchange](http://christianity.stackexchange.com/) in the form "according to X school of thought, why does Jesus sometimes..."   Could you either move it to C.SE or revise it to one passage?
Comment: Jesus seems to have controlled the political fallout of everything he did to orchestrate the timing when the religious leaders would finally erupt in enough jealousy so as to put him to death. It is similar to the reason why he spoke in parables, to confuse and keep in the dark his enemies while drawing those open to him closer. Jesus was covert in accomplishing the mission of his death.
Comment: This answer adds a bit more backing to Mike's comment: ([Click here](http://christianity.stackexchange.com/a/7798/1548))
Answer: There are a variety of reasons why each gospel author may have chosen to implement what has come to be called the "messianic secret" (Messiasgeheimnis) theme (based on Wrede's watershed work).1 Most scholarly discussion of this theme is related to the gospel of Mark, which the author of the gospel ascribed to Matthew likely used as a source. Even so, the author of Matthew did not use the theme in the same way as that of Mark, having different emphases and likely a different target audience for his gospel.
According to Wrede, the author of Mark did not intend to give a historical account but rather a (post-resurrection) theological interpretation (this was a controversial idea in 1901 when Wrede first wrote his book in German). Wrede concludes this argument by stating:

[D]uring his earthly life Jesus' messiahship is absolutely a secret and is supposed to be such; no one apart from the confidants of Jesus is supposed to learn about it; with the resurrection, however, its disclosure ensues. This is in fact the crucial idea, the underlying point of Mark's entire approach.2

While many scholars today don't agree with all of Wrede's propositions,3 the idea that the synoptic gospels are primarily theological rather than historical accounts (at least by modern historical standards) is still widely held. For the author of Mark, the unveiling of Jesus as the Messiah is a central theological motif of the gospel.4
For the gospel of Matthew, the emphasis has to do with the fulfillment of prophecy, which the author explicitly links to this theme in 12:16-21 (NRSV):

[A]nd he ordered them not to make him known. This was to fulfill what had been spoken through the prophet Isaiah:
"Here is my servant, whom I have chosen, my beloved, with whom my soul is well pleased. I will put my Spirit upon him, and he will proclaim justice to the Gentiles. He will not wrangle or cry aloud, nor will anyone hear his voice in the streets. He will not break a bruised reed or quench a smoldering wick until he brings justice to victory. And in his name the Gentiles will hope".

In summary, the answer to this question will differ depending on which gospel is being asked about, as each author has a unique theme and intent when writing their respective works. For the author of Matthew, the use of the "messianic secret" theme is linked to its fulfillment of prophecy (Isaiah 42:1-4).

Footnotes
1 William Wrede, The Messianic Secret: Das Messiasgeheimnis in den Evangelien, trans. J.C.G. Grieg (Cambridge, UK: James Clarke & Co., 1971).
2 Ibid., 68.
3 Cf. Schweitzer, The Quest for the Historical Jesus, 339; Aune, "The Problem of the Messianic Secret," 5; Stein, Mark, 24.
4 The gospel of Luke doesn't give a clear reason for using this theme so I won't elaborate on all of the theories since this question is specifically about a text in Matthew.
Comment: You should consider cross-posting a version of this answer at the C.SE [question](http://christianity.stackexchange.com/questions/42897/what-explanations-have-been-offered-for-the-messianic-secret-passages). :)
Answer: Intro
As noted by the OP, there are a number of these passage in the Gospel accounts.   Collectively, this phenomenon is know as the "Messianic Secret" in academic literature.  A number of explanations have been offered for the secrecy passages ranging from Jesus actually said such things for some reason (to teach the 12, to delay his death, to avoid Jewish misconceptions of the Messiah, etc.) to it's a literary device of some sort (let readers know salvation is a secret reserved for the elect) to it's an artifact of early church history (the passages were added to explain why few recognized Jesus as Messiah during his life.)  For a thorough list of the options, see my post What explanations have been offered for the "messianic secret" passages? on C.SE.
Analysis
Summarizing the validity of the various options, it seems clear that historical-critical options such as that the passage arose to explain people not recognizing Jesus as Messiah during his lifetime are pretty unlikely.  The reason is that in many cases the command is immediately followed by an indication that it was not followed.  For example, Mark 1:43-44:

And Jesus sternly charged him and sent him away at once, and said to him, "See that you say nothing to anyone, but go, show yourself to the priest and offer for your cleansing what Moses commanded, for a proof to them." (ESV)

is immediately followed by:

But he went out and began to talk freely about it, and to spread the news

which completely defeats the alleged purpose of explaining people's failure to recognize Jesus for who He was.
Distinguishing between literary devices and actual history is harder.  In principle, most any aim detected could originate from an "acted parable" technique of Jesus or be a literary creation of the Gospel writers.  However, if Mark (under a Markan priority assumption; otherwise whomever it was that wrote first) is employing a literary device, he certainly didn't make it obvious.  Hence my the meaning of the passages has been so heavily debated in scholarship.  That tends to suggest actual history is the more likely explanation.
Possible explanation in the text
In any case, Mark seems to give a partial explanation for the secrecy passages in 8:27-33.  In this passage Jesus first asks the 12 what people are saying about him, to which they offer various ideas - John the Baptist, a prophet, etc.  He then asks who they say He is and Peter replies "You are the Christ."  Jesus tells them tell no one about this, and then starts teaching that he must suffer and die.  Peter rebukes Jesus, to which Jesus replies:

Get behind me, Satan! For you are not setting your mind on the things of God, but on the things of man. (Mark 8:33)

This could play into several theories - the expectation of man (earthly leader) is not a "thing of God"; the disciples learned his destiny so they could later comprehend what had happened (i.e. part of a teaching scheme); when the time was right, Jesus would reveal his Messiahship and die, but that time hadn't yet arrived.  For example, the Tyndale Commentary on this passage remarks:3

His destiny to die was revealed to them that they might understand the significance.  The unveiling of the secret of Jesus' identity as the Messiah paved the way for the unveiling of the mystery of his destiny to die on the cross.  The death of Jesus, which Peter so adamantly rejected, the church was called on the embrace.

Conclusion
It seems that the "creation" of secrecy passages by the Gospel writers would be more likely to cause problems for the church than to help it - a guy who is always telling people not to reveal his Messianic identity allows critics to say "even Jesus didn't claim to be the Messiah."  Thus, by the criterion of embarrassment, I think the words most likely originate with Jesus himself.  As to why Jesus said such things, "to delay His death", "to teach to disciples", and "to redefine the Messiah" all make sense, but none provide a completely satisfactory explanation.  Perhaps the best explanation is all three reasons played a role.
Answer: The answer to your question can be found in other passages Scripture:
Jesus Christ was not above Scripture, thus he could not cross the bounds of what was preordained to occur, set forth, by His Father (God).  More specifically, He came to fulfill certain prophecy.  Everything that occured had a set time to happen and could not happen an instance before that set time.
Verses to consider to build context upon
» [Mark 9: 9]: 9 - As they were coming down the mountain, Jesus gave them orders not to tell anyone what they had seen until the Son of Man had risen from the dead.
» [John 8: 59]: 59 - Therefore they picked up stones to throw at Him, but Jesus hid Himself and went out of the temple.
» [John 12: 36]: 36 - Believe in the light while you have the light, so that you may become children of light." When he had finished speaking, Jesus left and hid himself from them.
Answer:
☼[Matthew 26: 51-56]
51 - And behold, one of those who were with Jesus reached and drew out his sword, and struck the slave of the high priest and cut off his ear.
52 - Then Jesus said to him, "Put your sword back into its place; for all those who take up the sword shall perish by the sword.
53 - "Or do you think that I cannot appeal to My Father, and He will at once put at My disposal more than twelve legions of angels?
54 - "How then will the Scriptures be fulfilled, which say that it must happen this way?"
55 - At that time Jesus said to the crowds, "Have you come out with swords and clubs to arrest Me as you would against a robber? Every day I used to sit in the temple teaching and you did not seize Me.
56 - "But all this has taken place to fulfill the Scriptures of the prophets." Then all the disciples left Him and fled.
There are plenty of passages of Scripture that would seem peculiar at the very least that Jesus Christ our Lord would have to go through, when we know he commanded all the power and glory of God in bodily form.  Yet, and however, we learn that He (Jesus) did not come to condemn the world but rather, to fulfill Scripture that was prophecied much earlier in the history of the world.  Matthew 26 51-56 gives us red letters (Jesus speaking) of what He could do, that is the authority he commanded, but that He cannot make null His prophecy.  If what was prophecied did not take place, or did not happen as it happened then there would be room for falicy and we could not take God at His very word.
In summary, it was because it needed to happen that way to fullfill Scripture.
Thank you for reading,
Alex


What is the definition of WILL? (not free will)

Question: I find everywhere people talking about "free will" and defining what "free will" means, but could not find anyone that defines "will" as such. What is (free, or not free) "will"? Is there any definition on which philosophers agree? If not, what is the most accepted one?
Comment: See [Will (philosophy)](https://en.wikipedia.org/wiki/Will_(philosophy))
Comment: There are similar questions about specific philosophers:
 https://philosophy.stackexchange.com/questions/52900
 https://philosophy.stackexchange.com/questions/65868. Else see https://www.dictionary.com/browse/will
Comment: Per Kant, if we don't have the opportunity to decide between the right and the wrong option in regard to the universal law as categorical imperative, in the course of which our will is free, then natural causes lead us to one decision without any alternative options as a form of compatibilism. Per Socrates and Spinoza it's similar, (virtue) will is not free but passive, one truly will just as soon as one really knows what is right or good...
Comment: Arthur Schopenhaeur has used "Will" to indicate something like a "desire/force" that is blind and is motivating force behind everything in existence. It manifests itself in many forms. This sense of "Will" is definitely different from the "will" used in "Where there is a will, there is a way"
Comment: Wikipedia has an article [Will (philosophy)](https://en.wikipedia.org/wiki/Will_(philosophy)), which quotes definitions of various philosophers disjoint from the freedom aspect, e.g. "rational appetite" of scholastics.
Answer: No, the noun "will" that is largely synonymous with wish, desire, intention, inclination, plan, decision, and similar words does not have a single definition in philosophy. There are many dictionary definitions that could be applied, several mentioned here: https://www.yourdictionary.com/will

To have as the object of one's will; desire; want
Will is your ability to make decisions or restraining yourself from doing something or something that a person desires or wants
To wish; desire.
The power of making a reasoned choice or decision or of controlling one's own actions.
Will is the act of strongly desiring something to happen, trying to make something happen by hoping, or describing something you intend to happen in the future.
... and many more

In general, open compound words like "free will" can have definitions and meanings that are not strictly derived from the word parts. As such, one does not even need to define each word part to create a definition for the compound term. As an example consider the word "hot dog".
Answer: In philosophy, the term 'will' is usually used in Nietzsche's sense of determined, self-directed action/intent. It is opposed to the state of being entangled in the rules, mores, and strictures of society and culture, so that one is dragged along and limited by forces outside oneself. People who express 'will' make their own fates, in the "I will it to be so" sense; people without will become what others determine them to be. This helps distinguish 'will' from 'free will'. The question of 'free will' is whether and how much our determined, self-directed action/intent is constrained or influenced by social, biological, or material conditions. We may act in ways that seem to be self-determined, but which may be determined by unknown, unseen forces.
Answer: The will is that which chooses.
It is not synonymous with our desires or our inclinations: our emotional affections and our thoughts might lead us to have desires and inclinations, but we all have many competing desires and inclinations. The faculty of the will is the part of us that makes decisions, prioritising some desires and countering other inclinations.


Will Drupal or PHP use APC if its installed on the server?

Question: So I have AuthCache installed with XCache but I am not getting any noticeable speed. Im on D6 so its not possible to use APC?  I mean if APC is installed on the server , will Drupal use it even if I don't install the APC module?
Thanks!
Comment: Can you expand on what your problem and expectations are?  Are you seeing overhead from sessions that you would like to fix, or are you hoping that xcache and/or apc will give a general improvement through opcode caching?
Comment: I was hoping XCache and/or APC can somehow speed things up on my Drupal 6 website although I am still in the process of optimizing the site.
Answer: Drupal, like any other PHP app will an APC opcode cache if it's available.  Though there are a few settings that may prevent Drupal from using APC as it should.
First and foremost make sure APC has enough memory to work with.  Drupal can eat up a ton of memory and if your APC cache is too small it may actually hurt your performance.
The first memory relevant setting I would look at is the apc.shm_size.  APC's defaults setting have never worked out of the box for any of my Drupal installs. On some servers I have this is as high as 512M.
apc.shm_size = <MB Allocated>

APC may not be caching .module and .inc files by default!
Depending on your setup, APC may not be caching .MODULE and .INC files at all. This means that the majority of Drupal's slowest code may never make it to the APC cache in the first place.
The fix?  apc.filters
On many of my Ubuntu servers adding the following line to my apc.ini has an enormous performance impact on my Drupal installs.
apc.filters = "+module$,+php$,+inc$,-admin"

You may also want to monitor your APC cache using the apc.php script that's generally bundled with APC.
You can also use apc.php to verify that .module and .inc files are making it into your APC system cache.
Answer: APC is an opcode cache for PHP. When your webserver serve a PHP page, it'll first compile it and then execute it. APC cache the compiled code in order to avoid this extra steps and thus make PHP execution faster.
You can install APC on your server without the need of the related module and it will optimized Drupal speed. Don't forget to tweak the apc.ini configuration file by mainly increasing default memory especially if you have a lot of modules.
You can have some interesting statistics using the apc.php file provided with APC.
Some (old) benchmark for APC: Benchmarking Drupal with PHP op-code caches: APC, eAccelerator and XCache compared
Comment: APC also provides a user cache for storing whatever you want.  The performance module, and possible some others, use it.
Answer: Drupal is not aware of APC. If APC is running for your PHP code it should improove PHP execution times. Whether this makes a noticable difference for the performane of your Drupal installation is a different question.


Why these conditions make this map open?

Question: If $A \subset \mathbb{R}^n$ is an open set and $g: A \to \mathbb{R}^n$ is an injective continuously differentiable function such that $\forall x \in A, \, \det g'(x) \neq 0$, does $g(U)$ is open for each $U \subset A$ open? Why? This is about p. 67 of Spivak's Calculus on Manifolds (down of the page), where he says: "the collection of all $g(U)$ is an open cover of $g(A)$".
Answer: For any $u \in U$, $g'(u)$ is invertible so the inverse function theorem says $g$ is a homeomorphism from a neighbourhood of $u$ to a neighbourhood of $g(u)$.  In particular
$g(V)$ is open for some open set $V \subseteq U$ containing $u$.  Then $g(U)$ is the union of these open sets, so it is open.
Comment: Thank you, Robert Israel!!
Comment: Every diffeomorphism is a homeomorphism. Since $g$ is a local diffeomorphism, it is a local homeomorphism and, therefore, sends sufficiently small open subsets of $U$ to open sets.


keeping track of words in android text to speech module

Question: I am trying to build an app where the device reads a story using the tts module and when it arrives at a particular word, I want to show an image. My TTS module is working fine, is there anyway I can know what word is the text to speech module speaking so that I can fetch the appropriate image ?
Answer: Maybe, chunk your reading into small several words each. Each time your apps starts speaking, set a particular KEY_PARAM_UTTERANCE_ID. Then when then use the onStart callback to know when the app is speaking the particular KEY_PARAM_UTTERANCE_ID.


How do you use the phrase 'Are you through?'

Question: Can the phrase 'Are you through?' be used in various situations such as meals, studying, and working?
And how different is this phrase from 'Did you finish ...?'
Comment: Note that  'Are you through?' is very much an Americanism. We don't use it in Britain although we understand it from Hollywood movies.  In Britain we would probably say, "Have you finished?"
Answer:
Are you through?

The phrase could be used to ask if the person has finished the task that is being done at the time of or just before(not long ago) asking. For example I'm stuck with a bug in my program and trying to debug it. My friend knows about it and wants to acknowledge my current status. He may come to me and ask if I'm through.

Did you finish?

This phrase represent the past tense and the task could have taken place long ago. For example, I'm telling my friend that I was working on a script that does something. But my friend stops me and says "Skip to the end. Did you finish it?". In this case, my friend knows that I'm no longer working on the script. If I were, he would have asked "Have you finished the script?"
A more closer phrase to "Are you through?" is "Are you done?". It can be used in all the cases that you've mentioned. For example:

Are you done with your meal/studies/work/etc?
Answer: Are you through?
The word "through" is an adjective in the above sentence. The sentence presented can be used in different situations to ask somebody if they  have finished doing or using something, as follows:
Are you through with your homework? = Have you finished your homework?
Are you through with reading the newspaper?
Are you through with your meal?
It can also be used when you have ended a relationship with somebody.
Are you through with your wife?
You can also use it to ask somebody if they have achieved success in an examination or completition, for example:
Are you through to your exams?


How does C limit a static function's use to only its file?

Question: I understand that a static function in C allows that particular function to only be call within the confines of that file. What I am interested in is how this occurs. Is it being placed into a specific part of memory or is the compiler applying a specific operation to that function. Can this same process be applied to a function call in assembly?
Answer: Declaring a function static doesn't really prevent it from being called from other translation units.
What static does is it prevents the function from being referred (linked) from other translation units by name. That will eliminate the possibility of direct calls to that function, i.e calls "by name". To achieve that, the compiler simply excludes the function name from the table of external names exported from the translation unit. Other than that, there's absolutely nothing special about static functions.
You still can call that function from other translation units by other means. For example, if you somehow obtained a pointer to static function in other translation unit, you can call it through that pointer.
Answer: It doesn't make it into the object's name table which prevents it from being linked into other stuff.
Answer: Functions and other names are exported as symbols in the object file. The linker uses these symbols to resolve all sorts of dangling references at link time (e.g. a call to a function defined in another file).  When you declare it static, simply it won't be exported as a symbol. Therefore it won't be picked up by any other file. You could still call it from another file if you had a function pointer to it.
Answer: It's in fact the opposite. When a function is not static, its name is written somewhere in the object file, which the linker can then use to link other object files using this function, to the address of that function.
When the function is declared static, the compiler simply doesn't put the name there.


Is initiating a project part of the project management?

Question: As far as I understood from PM certification course from Google, initiating projects is a job usually done by someone else, other than the PM. The PM receives a ready business case which he pours into the project charter template... This notion doesnn't really help because I am working on my own project where I don't have any business case, and the charter template doesn't help me to fill itself.
So who is this if not PM who initiates projects?
Answer: TL;DR

I am working on my own project where I don't have any business case, and the charter template doesn't help me to fill itself.

If you think project managers generally get well-defined specifications and business cases that spring full-formed from the head of Zeus, you're in for some seismic shocks in the working world. Drop that notion before you set yourself up for failure.
In your specific case, you are the project sponsor since you're the person who wants something done. You are also the project manager, since it's then up to you to plan the thing.
Getting Down to Brass Tacks
Traditional project management certainly includes project initiation as part of the project lifecycle. Specifics may depend on your chosen framework.
Most likely, you are being confused by the difference between "project initiation" as a stage or artifact in the project management process, and the need for a stakeholder, sponsor, or champion to authorize and/or finance the project in the first place.
Pragmatically, someone has to delegate authority and budget for a project. While those elements are often captured in project initiation artifacts, there's usually a person, committee, or role that effectively sponsors the project. The sponsor says:

The company needs to do this thing. Project manager, go capture a list of all the people who need to be involved in steering, funding, and delivering this thing.
Next, go estimate the costs to deliver it by some arbitrary target date. Then we'll all argue about who's responsible for what, whose budget(s) it will come out of, what it should look like when it's finished, and when we all expect it to be completed regardless of practical considerations.

That's pretty much what real project initiation looks like. There will be much hand-waving, guesswork, and wishful thinking during project initiation, but you will likely still be held accountable for the outcome anyway.
The PMBOK, Prince2, and other frameworks will have much more to say, and take themselves much more seriously about it. Some frameworks also prescribe specific approaches to doing each of the things I mentioned (slightly) tongue-in-cheek. In the end, though, project initiation from a PM perspective is really all about step two below:

Someone with budget or authority decides to sponsor a project.
The project manager helps coordinate the planning of the plan.
The project manager oversees the execution of the plan.
The sponsor takes credit if the project succeeds.
The project manager takes the blame if the project fails, which it statistically will 68% of the time.

Don't get hung up on who the sponsor is, although in your scenario that's you. You need to capture the sponsor's identity during project initiation since they're the person who is (theoretically) accountable for the project's existence, but the project manager—that's you again in this case—are still the one who is accountable for ensuring the existence of a project charter or other initiation documents that you'll need to manage the remainder of the project.
If you want dictionary definitions or theoretical answers that don't apply in real life, I'm sure you can find a source to support your current notion of how project initiation is supposed to work. However, now you know how it actually works, and that the project initiation phase is part of the project management lifecycle and most definitely involves the project manager.
Comment: @troyan Yes, spinning up the project is part of the job. You're still conflating sponsorship with project management. Please stop doing that!
Comment: Then I should probably refrase  the Q: Is starting up a project part of the project management? According to PMBOK it may not be, yet in PRINCE2 it is apparently a separate phase (or is it more like "evaluation phase" when you look at someone else's concept/brief and decide that you really don't  like it at all, which was my impression of PRINCE2 methodology)
Comment: We used to have a separate project team that spent its time initiating projects then handing them over if approved to a delivery team - but these initiation stages were still projects! So @ToddA.Jacobs has nailed it in this answer. Apart from having the initial fuzzy idea, a PM is almost certain to be involved throughout the initiation of a project, as well as in the project delivery which may or may not happen depending on what comes out of the initiation phase.
Answer: I used to work for Google and took their internal PM courses. It depends on the project. Generally, the larger the project, the less likely any one person has the responsibility of starting it. If you are hired onto a large project that has hundreds of stakeholders, a huge budget, multiple teams involved, and a long start and finish, then no, you are probably not the only person starting and ending things.
However, within that project, the project manager is responsible for finding problems and solutions, which will probably involve starting smaller, focused, short-term projects. For example, I found that to solve part of the large project I was hired onto, we needed more data, so I launched a six month data gathering project; when that was complete, I launched a follow-up data analysis project, after which I started a re-training and communictions project.
Comment: As it's currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer).


"This item is temporarily unavailable" When Installing Yosemite

Question: I have erased my HD and tried to install OS Yosemite on MacBook Pro mid 2009. But keep getting this message "This item is temporarily unavailable." I've tried many proposed solutions but none seem to work. Any one experienced a similar problem?
Comment: Well.. We don't have Apple Store here in Kuwait :), I hope I will find some solution
Comment: use command+option+r
Comment: Install the original OS from DVD, then you'll be able to access the store to download Yosemite, assuming it's in your purchase list.  Unless it is in your purchase history, it will always be unavailable.
Comment: I don't have DVD of the original OS and my DVD driver didn't work ..
Comment: Then it's a trip to the Apple Store, I think. I doubt you'll get an 09 Mac to boot from USB
Comment: Perhaps there is a apple premium reseller instead of an apple store?
Comment: @Timmerz It's working.
Answer: Let me preface this: it's possible that this solution doesn't work entirely, and that you'll need a version of the installer that has a full copy of OS X (instead of downloading it from the internet on the fly.)
With that said, here's the issue. Your Apple ID (and therefore purchases) are not associated with the computer you're trying to install to since it's a clean install. Therefore, it doesn't know you've "purchased" Yosemite previously, and since it's no longer on the app store, isn't giving you access. What you need to do is reassociate your Apple ID with that computer. The recommended solution is to log into icloud.com.
Alternatively (or if that doesn't work), you can download it from another computer with a working version of OS X and then execute the installer from there (or create a bootable installer from there.)
Small side question: why not install El Cap?
Comment: I've tried the iCloud login first, didn't work...I've created a bootable disk on external drive which is available for OS lion only .. Didn't wok. Why not El Cap? Because when trying to install from the recovery screen, it goes to installing Yosemite by default and cannot change that
Comment: @Yousef You can create bootable volumes/installers for any version of OSX. Are you using Internet Recovery? That would explain why it's defaulting to Yosemite, as Internet Recovery uses the version of OS X that came with your Mac.
Answer: Finally the problem solved... I have noticed there is no Yosemite update purchased in my App Store account! So looked in the accounts of my family members and found one in my son's account. I used his account in the installation screen and it worked.
Thanks all who tried to help :)
Comment: how were you able to login to your app store?
Answer: Checked that you're Apple Id is connected to the correct App Store region.
The easiest way is, in App Store, select go Store > View My Account ...
A check will be made if the App Store region will be checked, and, if they're out of sync, at this point, the correct region for your Apple Id will be selected.
After this point, you should be able to install apps and updates from the App Store.


When should ideas be shared on stackexchange?

Question: I get exciting ideas about math a lot, and I was wondering if it is a bad idea to share them in question form to vet them, expand them, or show their lack of novelty. I know free exchange of ideas is good, but is it wise to exchange so broadly so early? If someone uses my idea from SE I know they are supposed to cite me, but could they take the career credit despite my having "The Idea"? Would I be a coauthor to the first paper from the idea?
Comment: Another issue is the psychology of doing a project and finding out someone else finished it before you.
Answer: There are several points that you should consider in this respect:

Most of the time our novel ideas are not as great as we think and there might be simple answers or counterexamples for what we have in mind. So it is better to think about a question in mathematics for a while and study some of the related literature, before sharing it with others. This has happened to me a lot, just see some of my questions in mathoverflow!
If you have an idea but you do not know how to tackle it, it is a sign that your idea is so raw and you don't own it yet. I experienced several times that a great idea is the one that comes with a clue for solution and extension. Otherwise, it is at most a spark in a well functioning brain of a hard working mathematician. I am being kind to mathematicians:-))
If your idea looks so great that can solve some big problems or answer some famous conjecture and you know how to pursue it, why do you want to share it? Just do it! And I believe such an idea deserves several years of works.
I suggest you ask related questions around your idea without giving a whole picture and what is your ultimate purpose. In this way not only you did not reveal it with every body, but you can also gather lots of valuable insights and knowledge to think about your main idea.
Read related questions and answers on mathoverflow or mathstackexchange. A great deal of wisdom are contained in these questions and answers and sometimes you get a clue about your idea.
Most mathematicians have bigger fish to fry. So, I do not worry to share some of my ideas with them, However, I do not think mathoverflow or mathstackexchange are good places for such interactions. Talking with mathematicians in conferences and/or even sending them emails look better procedures.


How to get rid of Windows

Question: I think the answer must be very simple, but I still don't know it.
I have installed Ubuntu 12.10 in my Windows 7 laptop.
After installing Ubuntu and started using it I decided to restart my laptop. But when I turned it on again,it still asks me if I want to use Windows 7 or Ubuntu.
How can I get rid of Windows 7 so as to start directly from Ubuntu the next time I turn my computer on?
Thanks!
Comment: Please update your question with more information, like how have you installed Ubuntu(native install or Wubi install?).
Comment: If you installed Ubuntu natively, then you can boot to a Live CD and change the GRUB configuration. If you installed Ubuntu through Wubi, you cannot uninstall Windows but can set Ubuntu to boot using the "Boot" section of `msconfig`.
Comment: the wuestion surely needs more information. Are the system on the same harddrive? How did you do the install?
Comment: I am sorry. I think I installed it trough Wubi. In that case, can't I erase Windows from my laptop?
Comment: If that is the case, what can I do to install Ubuntu again, but this time without Windows?
Answer: How to Install Ubuntu Only

Back up everything you want to keep from Windows and Ubuntu on an external drive.
Insert the Ubuntu Live CD into your computer.
Boot your computer from the Ubuntu Live CD. You may need to look up details on how to change your computer's boot order; this will depend on the exact model of computer you have. Ensure that it's set to boot from CD first.
Follow the steps of the Ubuntu installation process. The Live CD should make this easy.
Copy everything you want to use from your external drive back onto your Ubuntu installation.

I recommend that you keep both systems available instead of removing Windows altogether. If you want to do that instead, here are the steps involved:
How to Install Ubuntu And Keep Windows out of the Way

Back up everything you want to keep from Windows and Ubuntu on an external drive.
Shrink your Windows partition using the Disk Management utility in the Control Panel. Just right click on your drive and find "Shrink Volume...".
Insert the Ubuntu Live CD into your computer.
Boot your computer from the Ubuntu Live CD. You may need to look up details on how to change your computer's boot order; this will depend on the exact model of computer you have. Ensure that it's set to boot from CD first.
Follow the steps of the Ubuntu installation process, except tell Ubuntu to use the unallocated partition rather than the whole disk.
Copy everything you want to use from your external drive back onto your Ubuntu installation.
Edit the file /etc/default/grub as the root user, and change #GRUB_HIDDEN_TIMEOUT=0 to GRUB_HIDDEN_TIMEOUT=0. (see How to make grub stop appearing every time I boot?)
Change the GRUB boot order, setting Ubuntu as the first option; see How do I change the GRUB boot order? but remember you want Ubuntu first, not Windows like the asker requested.
Open a terminal and run the command sudo update-grub.

Additional Notes
I previously had difficulty installing Ubuntu in the above manner on drives set up with RAID 0. It may be possible to do so, but I had to remove Windows and disable RAID. If you have similar trouble, look at the following links for assistance.

https://help.ubuntu.com/community/FakeRaidHowto
https://help.ubuntu.com/community/Installation/SoftwareRAID
https://wiki.ubuntu.com/Raid
Answer: If you have decided to stick with use Ubuntu only and remove windows from the laptop then the best thing to do is to use backup to backup your home directory (default) somewhere or to ubuntuone (default) and reinstall this time selecting the option to use all disk space.
That is what I would do.  Now, there maybe a way to use gparted to remove and expand partitions and modify the grub entry but I don't know how to do that.  Someone else maybe able to help with this.
Comment: Sorry, but how can I do that?
Comment: I must say I don't know very much how to use Ubuntu
Comment: You would just need to boot from your Ubuntu DVD.  You need to download the DVD from http://www.ubuntu.com/download/desktop
Answer: Since you have done a wubi install, you need first convert your Ubuntu to a regular install and then delete Windows.
Please refer to this artice to convert your Wubi install to a regular install.
Now, that you have a regular Ubuntu Install, just log into Ubuntu and format the Windows Partition and modify your GRUB.
Answer: Yeah, it's easy. Format your Windows partition with a freeware called partition wizard then delete the Windows and modify your Grub. Hope this can help you.
Answer: You can format the windows partition and edit your grub to delete the windows startup lines. Try to find a grub editing tool on the Ubuntu Software Center :) See it's easy :)
Comment: This answer would leave Tomy's computer in a mess - Tomy just admitted to using Wubi, and Wubi installs Ubuntu directly on Windows. Ubuntu is managed as a Windows application.
Comment: ah yes. i didn't notice he installed it using wubi

How to get rid of Windows


Camera battery door

Question: Were you ever able to fix the door to your camera battery? I am having the same issue. I unfortunately dropped my camera and the door popped right off and flew off into the unknown abyss known as my kitchen. Please help!
Comment: Hi Anna! I'm guessing that you posted this because you previously posted it as an answer or comment on an existing question, and were told to submit it as a new question instead. That's great, but now we have no idea who "you" is or even what "the same issue" is. Could you link to that, please?
Comment: Also, what camera model is this?
Answer: This part is removable in case you want to use a Battery Grip.
What you can do is:

if you feel lucky - search the kitchen well,
find a new door on the internet (aliexpress?),
mount a battery grip instead - bonus: extra space for a 2nd battery,
use a duct tape to close the hole (* if you think about this seriously, read also the --EDIT-- section below),
or get used to the new look&feel of your camera... ;-)

--EDIT--
That suppose to be kind of a funny answer, but it got serious.
As @flolilolilo pointed out in the comment, the "duct tape" option itself wouldn't work, as there is a small hole (next to the battery compartment) where is located a micro switch detecting if the door were closed. There must be something put into the hole pushing the micro switch. That may be a small stripe of paper or similar thing attached to the body or tape closing the compartment. Just try not to drop anything inside the camera's body...
Because of the same reason, I am crossing out the point about getting used to the new look&feel, as it won't solve the problem.
Comment: If you `use a duct tape to close the hole`, depending on the camera, you will also need to create a solution for the pin that usually tells the camera that the battery door is shut - without that, e.g. most Canon cameras I know of won't turn on.

Camera battery door


Blender rendered videos not able to import to other editing software

Question: I have rendered an multiple kinds of animations with Blender and cant import the file in other programs how Sony Vegas, Adobe Premiere or DaVinci Resolve.
What ever i tried it was impossible. Tried render in in diffirent video and audio codecs, other extentions and turn on transperent mode off.
It isnt possible to import and edit far the animations in other editors in my computer.
What i did wrogg, have anybody similar experience ?
Answer: Blender is not particularly good at ensuring that the video settings you select will produce a video in a format that is widely readable by other applications. Probably the most widely used format, although not the best is rendered in recent versions of Blender by selecting FFmpeg Video as the file format.  Under encoding select MPEG-4 as the container. Under video select MPEG-4 (divx) and under audio MP3.  Do not change any of the other settings.
If this doesn't work you might have a bug.
There are other formats that Blender can output that should generate valid video but they will be playable by fewer players.
I am surprised you are having problems with Resolve.  It supports a very wide range of formats.
Comment: It concern videos with transperention, only. These are not recognised from other editors, if I deselect the transperency in renrering settings than it works. But I need the transperency. I tried all possible codecs now. Maybe it gives more participants whoes have the same problem...
Answer: I always render as CODEC = MP4 and CONTAINER = MP4 but I also have to write the extension .mp4 after the file name eg. "MyMovie.mp4" so that other apps recognise the file type at a system level.