Adobe DTM sequential JavaScript (onload) runs in debug but not live - adobe-analytics

I have a custom JavaScript tracking tag in Adobe DTM that is set to fire Onload with a path include rule. I am testing in Chrome and the tag code runs in the Chrome console without an error. I am meeting all the conditions for it to fire.
When the Adobe DTM switch plugin staging setting is set to ON I get a network request to the tracking domain, which is the end goal of the script. The the rule has been approved but if I set staging to OFF and reload the page nothing happens.
I have used empty cache and hard reload multiple times and checked that _satellite.buildDate and _satellite.publishDate are both up to date. I don't have control over the approval.
The script itself is creating an iframe. I have paraphrased the core parts here
$("body").append("<div style='display: none;' id='theDiv'></div>")
var targetURL = window.location.protocol + "//anydomain.co.uk";
var frame = document.createElement('iframe');
frame.name = 'the_frame';
frame.src = targetURL;
$("#theDiv").append(frame);
Has anyone seen or heard of anything like this before? Are there any differences between how iframes are dealt with in staging and live?
I know there is a dependency on jQuery, but I am not seeing a "$ is not defined" error from satellite.

"Approving" something is not the same thing as "Publishing" something. DTM has an extra step between "save" and "publish" to offer a more flexible/robust permission system for making and publishing changes. For smaller companies or individuals where there are only 1 or 2 people who have access to DTM (and usually everybody is an admin), it's kind of overkill.
But this is usually a huge deal for larger companies with a lot of people with dtm access doing their own thing with little or no awareness of each other.
It's all about controlling how many people or who all can push stuff onto your site. For example it is not uncommon for larger companies to have a first level dev team to do the initial work (tool setup, add a new tag, whatever). Or even many people or teams, each with access to DTM. Then there may be another (usually single) team in charge of approving the changes (make sure everything looks legit, doesn't break other things on the site, etc.), then maybe have even less people (again, usually a single team or individual) with access to actually pull the trigger and publish it.
How the publishing flow works
When you first create a rule or tool, or when you modify or remove an existing rule/tool and save it, it goes into the Approval queue. At this point, the change is unpublished. You can view the change on your site if the site has the DTM staging script tag on it, or by putting the production script tag into stage mode (e.g. with the DTM Switch plugin you are using).
Once you are happy with the change(s), you can go to the Approval queue (the Approvals tab and approve the change(s). This will push the change(s) to the Publish queue. At this point, the change(s) are still not published. So, if you are using the production dtm tag and it is not in stage mode (e.g. you turned off Switch), you will not see the change(s).
To see the changes on your live site using the production dtm tag (not in stage mode), you must go to the Publish queue, select the item(s) you want to publish, and push the publish button there.
But it sounds like your user account (or group) does not have Publish privileges, so you will need to ask someone who does have Publish privileges to do it for you.

Related

Bitbucket daily personal log

I've been using Bitbucket for a week now. It seems like a capable platform. Personally in my development activities, I keep a daily "journal" of whatever I need to keep track of separately from any commits to the Git repo. It gives me a place to keep all my "thoughts and ideas" in one place.
Before I end a day's work, or I jot down what I last worked on and any thoughts I think I'll need on the following day. And before I begin each day's work, I just flip to the last page of my journal and it quickly brings me back up to speed of where I was at yesterday, no matter how little sleep I got. :-)
I see Bitbucket has "Comments", "Work Log", "History" and "Activity", but they seem to be tied only to user stories, todos and the like.
Does anyone know of a way where I can have something like a "Work Log" tied directly to my user account? I'm thinking I could use it for my personal "Journal".
Note: I'm using a locally installed Bitbucket server.
If you're using the online https://bitbucket.org (not specified in the question) rather than a hosted instance then you can do a couple of things.
1 Wiki
Create a repository which will act as your work log
Obviously if you want to keep notes with the same code base just enable the wiki for that repository. The question seemed to suggest you may want to be repository/project agnostic
Update the settings of the repository to enable a private or public wiki
This is probably the simplest and richest replacement to your note pad
2 Use a repository
Create a repository which will act as your work log
commit Markdown (i.e readme.md or index.md) files
Note: in the case of a hosted instance this could even be a repository associated to your user rather than a project.
This is very manual, though it does mean you can have an offline version of your "pad" that you can edit/search in your IDE with some IDE autocomplete. Just like the wiki you can use the code backtick escapes with syntax highlighting. Last I checked the these were rendered pretty well in the browser through bitbucket.org as well as any editor/IDE you might use.
Regarding todo's
I've found the best cheap todo solution for me is using a gist as described on life hacker. They are low ceremony and versioned which checks all my boxes (excuse the pun). If you couple that with the above you may actually be able to embed it into your bitbucket wiki, though I've not tried.
If you are using JIRA and Bitbucket already, maybe consider Confluence? Confluence has some convenient and easy to manage TODO functionality and it lets you expand on those thoughts with all the power of a wiki when you are done.
I keep a "TODO" page and additionally put the checkbox on any tasks in other pages. They are all aggregated together in a tasks view.
See:
https://confluence.atlassian.com/conf54/confluence-user-s-guide/managing-changes-and-notifications-and-tasks/managing-tasks-in-confluence

How do can I create web pages on the fly from an iOS app?

Context/Background: I have an iOS app with a Firebase backend. Each user on the app has a couple of public stories or journals. I am working on the v2 of the app and one of the main features of v2 is to give users the ability to publish their stories as static webpages by a click of a button. The goal is to have a journal for a user with a username "johnhouse", for example, be available at www.the-app-domain.com/johnhouse.
Question: How do can I create web pages on the fly from an iOS app? Im not sure where to start. Which online services should I look at?
I thought of spinning up a server and hosting www.the-app-domain.com on it, getting the app to ssh into the server and creating a directory called "johnhouse" (from the example above) inside the website's root directory and then pasting an index.html file inside it, But this doesn't only sound like a bad idea, it also sounds complicated as hell If I were to generate the html files on the app, how would I get them to the server? how would I get them into the right location?
There are a great many ways you might implement this behavior but I'll suggest one.
Consider what this product might look like if the app had no knowledge of how these static pages were published. All the app needs to be able to do is allow users to set which of their stories are published or not and to inform those users of the url at which their published stories will be available.
There may be real advantages to removing the app from your page-creation process.
If you find that you need to make change to the formatting of your pages you can do so without requiring an app update and you can choose if you want to rebuild every page or just have changes apply to new pages. This might be important if you discover that your pages don't render well on some devices or are not indexed the way you would like by search engines.
If you need to change where your pages are hosted you can do so (and provide redirects from the old location) without needing everyone to update to a new app version.
If you need to add moderation or curation of the content you publish you can do so more easily than if clients (your app) have direct control of your site content. This may be important when someone starts publishing SEO spam links to your site, or registers the username admin or login, or publishes a story containing malicious javascript, or publishes content which gets you a copyright infringement notice.
You don't need to give clients direct access to your web server which could allow them to edit each other's content or overwrite your site with their own malicious content.
Since you're already using Firebase take a look at how you might run your own web server as another client of this backend. One which looks for "published" stories (however you identify those in your data model) and generates appropriate pages for them. Depending on the tools you elect to use these could be dynamically generated pages (client side js or a web app) or static pages build by some backend process periodically or whenever stories change and added to a web server. Without any idea what server side tools would be most appropriate for you it's hard to know what specifically to suggest here.

Discussions and email notifications on TFS tasks

We're new to TFS and have some tasks set up in Team Explorer. It seems the History pane is the right/best place to add notes/discussions (although it's very different from other tools I'm used to like bugzilla, jira, redmine)?
But how can we set it up so interested parties get notified of new comments on a task, preferably by email? We're all making it up as we go along with no prior TFS experience but I'd hope my experience with other tools (the project hasn't used a proper issue tracker before) would help me figure things out but it all seems rather confusing.
If you install the TFS 2010 Power Tools (this is removed for 2012 as it's setup in the web interface according to this link although I've not played with this in 2012), under Team > Alerts Explorer you can add alerts for email notifications.
It's pretty simple, you can get alerts for when work items are modified, created under a certain path, assigned to you etc, they are basically configured in a similar way to the work item queries so it's quite easy to setup what you want.
They can be setup by any users, so you might want to let your users setup their own custom rules as they like, then you logon as a generic user (such as your admin user) to setup team specific queries, or else you might end up with users complaining about getting emails no longer relevent to them or need changing, when the user that set them up leaves/moves etc... Else you'll be hunting round to find who setup the original rules.

Create a "playable demo" version of a Rails site?

It's quite common in sites- you have a "demo" version with a guest account full of data/posts/comments that you can play with, and all the data is reset every few hours so users wont spam the demo site.
I thought to have another rails environment, "mysite_demo" and use a cron job to call rake to reset it's database every X hours, and populate the seed data.
Then it hit me that all over my app I'll have to check if I'm running in "demo-mode":
For example, if the demo site has a login/register page too, a user might register, insert some data and wonder why his account is deleted after he logged in again.. so demosite shouldn't have a register option at all.
So I thought I'll make a "demo" branch of the code.. with the difference and just merge changes as I go... sounds like an overkill.
ideas?
In my application I started with a fixed demo user with an account that resets every hour. Something about that model didn't quite sit right - if there were multiple users hitting the demo at the same time you could get into some weird concurrency issues. And what if a user is in the middle of a demo and your reset the demo account? What happens?
I don't know if this model works for you but I ended up creating a brand new user account with a demo flag set in the database - I also automatically log the user in. This way the user gets to play around for as long as they like and I don't have to worry about data getting deleted/changed while a user demos my app. I run a cron job every night that deletes users with the demo flag set that are older than 24 hours.
If the demo version is running from its own database, how is it any different from the real thing? The demo site is just an instance of your product.
Just clean up the DB and redeploy the demo as needed. Is it just this simple or am I missing something?
Then it hit me that all over my app I'll have to check if I'm running in "demo-mode" (e.g, you cant register a new user in the demo) and make the site behave accordingly.
If the site is in demo, why does it matter what the users do? Anything they do will be wiped in a few hours, so they won't be able to actually do work with it.
It sounds like you are trying to handicap the site so they will pay. I don't know what your site does, but if its a host based service(web page that stores & display information) then the limited life span of the data should deter squatters.
If you website does something that can be used elsewhere, then I can see limiting it. An example might be a service that transforms media formats, or writes resumes. If the user can do something useful in the 2 hour window and walk away with it, then you might consider branching.
Why not allow the user to make an account even if it is deleted in an hour?
That allows them to see how the registration process of the script works for at least an hour, maybe give a message on the signup page that the account is only valid for an hour.
Just my thoughts
Is there any other functionality that is different in the demo version than the production environment? If it is just an issue of making the user register, you could just create a registered demo account in production, and give out the user name/password for people. Although this may not be an option depending on other business requirements.
If you are willing to use Authlogic you can take a look at this, then every X hours you can look through the database for users that start with anonymous_ and delete records that are associated with them.
Just make a separate demo site that works exactly like the production one, but the DB gets reset once an hour to clean example data. The only change you need to make is a banner across the top of every page that says its a demo. There are several ways to do it, (modify your site theme, or maybe use frames) but basically you should only have to change the code in one place, instead of throughout the site.
You could setup a new environment demo on your database.yml, with read-only privileges for the User table, and an additional demo_database. Then place some checks on your code to see if your RAILS_ENV is on DEMO.
That way, you only need to work with the same codebase and just show whatever you feel like it.
You can deploy it as a separate app with its own database to a separate domain or subdomain and then check the domain to decide what options should be available. For instance if you put it on demo.example.com you would use:
if request.domain =~ /demo/
If you use Capistrano you can set it up to update both apps when you deploy so they are in sync.

MS Project Server 2007 : Programmatically toggle Task Alerts for Project Resources

I'm getting into SDK documentation, but this site has so many eyes and great answers I figure I'd throw this one out there to get some leads.
In project Server 2007, you can manage whether or not you get "task Alert" emails whenever a new task is assigned to you or existing tasks are modified. You can change this manually and individually via the web application under your personal settings.
As the project manager, say, I cannot toggle that for the entire team or manage it from my side. So if a resource or stakeholder who is assigned to a task(s) does not want email every time the plan is updated, I cannot handle that for them. I would have to walk them through the Project Web Access application to set it themselves manually.
So, has anyone crossed this bridge, and if so how did you toggle that flag for Task Alerts either through the SDK classes or via the PSI webservices? Before I slog through the docs, if I could get some "take a look ats..." that'd be great...Thanks!
You can change it in the SQL Tables. Here's a posting on it at the project server experts page.
www.projectserverexperts.com/ProjectServerFAQKnowledgeBase/SetDefaultEmailSubscriptions.aspx

Resources