Search Results

Search found 35007 results on 1401 pages for 'google font api'.

Page 71/1401 | < Previous Page | 67 68 69 70 71 72 73 74 75 76 77 78  | Next Page >

  • Google web search shows dateCreated instead of dateModified metadata

    - by LonelyPixel
    So today I discovered that the pages from my website are listed with an unexpected date value. I specify the schema.org properties dateCreated and dateModified for most of my content pages. I'd expect that search results show me when a page was last updated, to get a sense of the currency of the page. But it's showing the date of first publishing which may be years ago. That's a bit unsatisfying but I don't want to misuse the metadata because Google probably reads it wrong. Some search terms for you to try it out: "gitrevisiontool"; "easyxml"; "multiselecttreeview" (look for the results on dev.unclassified.de; the human- and machine-readable dates come at the end of the page) Does anybody know more about what's wrong here? Or does it work as designed? (What a stupid design that would be.)

    Read the article

  • how to get accepted at a big company like google [on hold]

    - by prof
    I'm 18 Years old; I started teaching myself programming when I was twelve. I've developed many projects in PHP, Javascript, Ruby, Ruby on Rails. I know a very little about C, C++, Objective C and extending PHP with extensions created in C Programming Language. Now I'm working as a freelance Web Developer with a very low salary :(, My Dream is to get a good career with very high salary so I thought of Big Companies like Google Or Microsoft. My Question is How to get Accepted on those big Companies ? What Pre-requests they want And do you need to finish collage education ?

    Read the article

  • Google Analytics: Track user usage and flow

    - by Quintin Par
    Can someone help to query Google analytics to track a specific user behavior and usage pattern? Currently I pass user id’s to GA as _setCustomVar(2, 'id', id, 1); This is session based. But I am yet to master how I can utilize this to view usage pattern & behavior for the passed id. Say, I need to understand the visualization flow for one id or the page view count for that id etc Rephrasing, can I filter all existing reports for a specific id that I can select?

    Read the article

  • Google Hangouts plugin is not working as I want in Chromium

    - by r00n
    Am I the only one experiencing problems with the Google Hangouts plugin? I did some changes so that I see the Hangouts icon in the topbar. But it happens once and a while that I cant open the window. The only thing I can do in that case is close Chromium and reopen it again. I have Hangouts with multiple people in the same chat. So Pidgin or Empathy is not something what I can count as workaround. Also when I closed the browser and want to reopen it I get the Contact List of Hangouts and not the Browser itself. I have to open it by using right-click on the Chromium shortcut.

    Read the article

  • Segment subdomains with Google Analytics?

    - by andrewpthorp
    So, when a website has multiple subdomains: www.example.com foo.example.com bar.example.com What is the best way to use Google Analytics to segment the data? I would prefer have access to 'All Data', 'Data from foo.example.com', and 'Data from bar.example.com'. I tried setting up 3 different views, and setting a filter on the foo/bar views that says: Include only traffic from the ISP domain that are equal to foo.example.com. However, I am not seeing any data collected into that View. I do, however, see all data in the 'All Data' view, but I can't figure out how to segment the data. I am including the analytics.js in the application.haml layout, which is always loaded in this app. Thanks!

    Read the article

  • How to remove a page from site without affecting google serp

    - by Savas Zorlu
    I have a travel website. Just for information purposes, I had put a weather page. Now I realize that this page is increasing my overall bounce rate; because people who are looking for the weather forecast are landing on that page and getting what they want and exiting. What is the safest method to get rid of that page? Would it hurt my google rank if I remove it completely? Or is there a better way to handle this situation? I realize that around 21 percent of my daily hits are on that page. I would have been happy if my aim was to provide weather data for the location; however, my site needs to focus on selling hotels. So I think I need to get rid of this weather page immediately. What do you think?

    Read the article

  • display Google display ads to visitors who have visited certain web sties

    - by Source
    For Google Adwords re-marketing, display ads are shown to visitors have been to your site previously. So when the go to a web site displaying adsense, it is likely that re-marketing ad will be displayed to them. Is there a way to do the same for if a visitor has visited a competitors site. i.e. if a visitor goes to one of my competitor sites, I want the display ads they see, to be mine. Is that possible?

    Read the article

  • Google Analytics Funnel problems

    - by Alex
    I have a problem with the funnels in Google Analytics. So I have a e-commerce website that I want to track the user path to a purchase. I want GA to track if a user goes trough these steps [Item page]-[Purchase]-[Checkout]. I thought this could be done by funnels and my setup currently now consist of: Step 1: [Item page] (Required) Step 2: [Purchase] Goal: [Checkout] But when I go to the "Funnel Visualization Report" the following shows. [Item page] Visits: 150 [Purchase page] Visits: 170 [Checkout] Visits: 32 How can the [Purchase page] be higher than the [Item page]? I searched the internet over, and found something called Horizontal Funnels but this doesn't show the correct numbers, again the purchase and checkout steps are higher than the item page. So somehow it doesn't need step 1, to fulfill the funnels/goals. What am I doing wrong?

    Read the article

  • As good as no bounces are registered in Google Analytics [on hold]

    - by user29931
    For a client I am having an issue for which I can't find an explanation. For some reason, bounces are no longer measured (or almost none) in GA. In GA I can see that the issue started in January 2013. I have been looking at the code inside and out, but I can't find any reason why. On the production site, there is (will be removed soon) a POST done on page load, so I thought that Google might see this as user interaction, hence never counting a bounce, but on staging i removed this POST and in the GA account for staging, still no bounces are registered. I have also checked if the tracking code appears twice on the page, and this is not the case. I tried with the GA debug plugin in Firefox and Chrome to see if that would learn me anything, but no luck... The site in question is www.kiala.be.

    Read the article

  • Multiple Google Analytics code for url under same domain

    - by will.i.am
    I have one domain, www.example.com, and www.example.com/sales. the analytic code on both urls are different. so when i login to google account, it will show two separate analytic accounts. on www.example.com/sales, i have a banner linked back to www.example.com. i clicked that banners, and i am sure there are other people have clicked the banner as well. but when i check the analytic of www.example.com, i don't see any thing come from my example.com/sales. I assume analytic on both urls are working, but why it doesn't track the visit from /sales. any idea??

    Read the article

  • Google analytics shows wrong number of page views, asp.net website

    - by f_karlsson
    Sometimes it can be for example 4500 requests, after a few hours it shows a few thousand less. What is wrong? It looks like analytics corrects itself. I changed from classic to Universal a few months ago, do not know if it has anything to do with this. In masterpage: <script> (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-xxxxxxxx-1', 'xxxxx.se'); ga('send', 'pageview'); </script>

    Read the article

  • Google Analytics data Missing for 4 days

    - by Shumaila
    I used wrong tracking id in my E-commerce tracking code for Google analytics and missed the data for few days. To add that missing data in my account I have written a short script which manually send all orders data for four days to GA account but what my concern is date : Those orders which already placed on different dates and , when if I run my script and so it will send my missing data with current date , which I do not want. ( I want to send date when that order is actually placed) do anyone help me with this ? I am really much stuck with my work here.

    Read the article

  • google chrome window resizes when click 12.04 kde

    - by user37805
    All windows work fine but maximized G. Chrome window starts moving whenever I click under title bar without moving the cursor, but I don't want to move the windows, just to focus. Under the title bar is next to the tabs, on the blue part. This is annoying. It goes from maximized to moving windows function, with the cross instead of the pointer, only with single steady click. Using KDE 4.8.4, kubuntu 12.04. Something like this http://code.google.com/p/chromium/issues/detail?id=37013. How to solve this?

    Read the article

  • how to keep same header on starting of next page in pdf

    - by Santosh Singh
    Here is My Code. private void getActionItems(Document document, Chapter chapter, Section section, Paragraph pas) { List drbRefList = null; try { _actionService = new ActionItemImpl(); _aiBean = new ActionItemData(); if (_aiBean != null) { _actionList = new ArrayList(); LOG.info("business passed here is" + _business); _actionList = _actionService.getActionItemsForPDF(_userSSOID, _business, _reviewID, _connection); } LOG.info(" after calling getActionItemsForPDF"); LOG.info("_actionList" + _actionList); Table tablesh1 = new Table(1, 1); float[] widthsh1 = new float[1]; widthsh1[0] = ReviewConstants.MAGIC_DOTTWELVE; tablesh1.setTableFitsPage(true); tablesh1.setPadding(2); tablesh1.setSpacing(0); tablesh1.setWidth(ReviewConstants.MAGIC_ONEZEROZERO); tablesh1.setWidths(widthsh1); tablesh1.setBorderColor(Color.WHITE); Cell hcell = new Cell(new Paragraph(ReviewConstants.S_ACTIONHEADING, new Font(Font.HELVETICA, fontSize, Font.BOLD, Color.BLUE))); hcell.setHeader(true); tablesh1.addCell(hcell); section.add(tablesh1); Table actionTable = null; String businessUnit = reviewData.getBusinessUnit(); float[] widthac = null; //Updated for Nuclear Energy Engineering Business Unit Requirement by Naveen if(!"Nuclear Energy Engineering".equalsIgnoreCase(businessUnit)){ actionTable = new Table(ReviewConstants.NINE,ReviewConstants.THREE); widthac = new float[ReviewConstants.NINE]; widthac[0] = ReviewConstants.MAGIC_DOTONE; widthac[1] = ReviewConstants.MAGIC_DOTONEZERO; widthac[2] = ReviewConstants.MAGIC_DOTTWOZERO; widthac[ReviewConstants.THREE] = ReviewConstants.MAGIC_DOTTWOZERO; widthac[ReviewConstants.FOUR] = ReviewConstants.MAGIC_DOTONEZERO; widthac[ReviewConstants.FIVE] = ReviewConstants.MAGIC_DOTONEZERO; widthac[ReviewConstants.SIX] = ReviewConstants.MAGIC_DOTONEZERO; widthac[ReviewConstants.SEVEN] = ReviewConstants.MAGIC_DOTONEZERO; widthac[ReviewConstants.EIGHT] = ReviewConstants.MAGIC_DOTONEZERO; }else{ actionTable = new Table(ReviewConstants.SIX,ReviewConstants.THREE); widthac = new float[ReviewConstants.SIX]; widthac[0] = ReviewConstants.MAGIC_DOTONE; widthac[1] = ReviewConstants.MAGIC_THREEZERO; widthac[2] = ReviewConstants.MAGIC_THREEZERO; widthac[ReviewConstants.THREE] = ReviewConstants.MAGIC_THREEZERO; widthac[ReviewConstants.FOUR] = ReviewConstants.MAGIC_DOTONEZERO; widthac[ReviewConstants.FIVE] = ReviewConstants.MAGIC_DOTONEZERO; } actionTable.setTableFitsPage(true); actionTable.setPadding(2); actionTable.setSpacing(0); actionTable.setWidth(ReviewConstants.MAGIC_ONEZEROZERO); actionTable.setWidths(widthac); actionTable.setBorderWidth(1); Cell accell = new Cell(new Paragraph(ReviewConstants.S_ACTIONID, new Font(Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); if(!"Nuclear Energy Engineering".equalsIgnoreCase(businessUnit)){ accell = new Cell(new Paragraph(ReviewConstants.PDF_RT, new Font(Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); } accell = new Cell(new Paragraph(ReviewConstants.S_REQA, new Font(Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); accell = new Cell(new Paragraph(ReviewConstants.S_CLOSURE, new Font(Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); accell = new Cell(new Paragraph(ReviewConstants.S_DISPOSITION, new Font(Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); //added by santosh on 18 june actionTable.endHeaders(); document.add(actionTable); if(!"Nuclear Energy Engineering".equalsIgnoreCase(businessUnit)){ accell = new Cell(new Paragraph(ReviewConstants.S_DRB_REFERENCE, new Font( Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); accell = new Cell(new Paragraph(ReviewConstants.S_DEADLINE, new Font( Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); } accell = new Cell(new Paragraph(ReviewConstants.S_OWNER, new Font( Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); accell = new Cell(new Paragraph(ReviewConstants.S_STATE, new Font( Font.HELVETICA, fontSize, Font.BOLD))); accell.setHeader(true); actionTable.addCell(accell); int acSize = 0; if (_actionList != null) { acSize = _actionList.size(); } for (int i = 0; i < acSize; i++) { _aiBean = (ActionItemData) _actionList.get(i); Cell adCell = new Cell(new Paragraph(_aiBean.getActionID(), new Font( Font.HELVETICA, ReviewConstants.MAGIC_EIGHT))); adCell.setHeader(false); actionTable.addCell(adCell); if(!"Nuclear Energy Engineering".equalsIgnoreCase(businessUnit)){ if (_aiBean.getActionItemType().equals("0")) { adCell = new Cell(new Paragraph("Normal", new Font(Font.HELVETICA, fontSize))); } else { adCell = new Cell(new Paragraph("Critical", new Font(Font.HELVETICA, fontSize))); } adCell.setHeader(false); actionTable.addCell(adCell); } adCell = new Cell(new Paragraph(_aiBean.getRequiredAction(), new Font(Font.HELVETICA, fontSize))); adCell.setHeader(false); actionTable.addCell(adCell); adCell = new Cell(new Paragraph(_aiBean.getClosureCriteria(), new Font(Font.HELVETICA, fontSize))); adCell.setHeader(false); actionTable.addCell(adCell); String drbLink = ReviewConstants.EMPTY; drbRefList = new ArrayList(); if (!DRUtils.isEmpty(_aiBean.getState()) && ((_aiBean.getState() .equalsIgnoreCase(ReviewConstants.DRAFT_BEGUN_STATE)) || (_aiBean.getState() .equalsIgnoreCase(ReviewConstants.SCOPE_PROPOSED)) || (_aiBean .getState() .equalsIgnoreCase(ReviewConstants.RES_PROPOSED)))) { drbLink = ReviewConstants.EMPTY; _aiBean.setDisposition(ReviewConstants.EMPTY); } else { drbRefList = _actionService.getDrbRefForPDF(_aiBean.getActionSeqID(), _connection); int drbRefCnt = 0; if (drbRefList != null) { drbRefCnt = drbRefList.size(); int j = 0; for (j = 0; j < drbRefCnt; j++) { LOG.info("drbRefList.get(j)" + drbRefList.get(j).toString()); if (j < (drbRefCnt - 1)) { drbLink += drbRefList.get(j).toString() + ReviewConstants.COMMA_SPACE; } else { drbLink += drbRefList.get(j).toString(); } } } } LOG.info("drbLink" + drbLink); adCell = new Cell(new Paragraph(_aiBean.getDisposition(), new Font(Font.HELVETICA, fontSize))); adCell.setHeader(false); actionTable.addCell(adCell); //Updated for Nuclear Energy Engineering Business Unit Requirement by Naveen if(!"Nuclear Energy Engineering".equalsIgnoreCase(businessUnit)){ adCell = new Cell(new Paragraph(drbLink, new Font( Font.HELVETICA, fontSize))); adCell.setHeader(false); actionTable.addCell(adCell); adCell = new Cell(new Paragraph(_aiBean.getDeadline(), new Font(Font.HELVETICA, fontSize))); adCell.setHeader(false); actionTable.addCell(adCell); } adCell = new Cell(new Paragraph(_aiBean.getActionItemOwnerName(), new Font(Font.HELVETICA, fontSize))); adCell.setHeader(false); actionTable.addCell(adCell); adCell = new Cell(new Paragraph(_aiBean.getState(), new Font(Font.HELVETICA, fontSize))); adCell.setHeader(false); actionTable.addCell(adCell); //added by santosh actionTable.endHeaders(); document.add(actionTable); // added by santosh end } /*Phrase headerPhrase = new Phrase(); Table headTab = (Table)actionTable.getElement(0, 5); headerPhrase.add(headTab); HeaderFooter printHeader = new HeaderFooter(headerPhrase,false); System.out.println("addHeader"); document.setHeader(printHeader); actionTable.setLastHeaderRow(1); actionTable.endHeaders(); document.add(actionTable);*/ // added by santosh actionTable.endHeaders(); document.add(actionTable); // added by santosh end section.add(actionTable); } catch (Exception e) { LOG.error("General Exception occured", e); } }

    Read the article

  • Caching API Proxy Server

    - by edc1591
    I need to have a server that caches API responses and then forwards them along to a desktop app. I don't really have much experience with this, so I have a few questions. First of all, what kind of server should I get? I already use Linode for my websites, so ideally I'd like to go with them. I expect to get anywhere from 30 million to 40 million requests to my proxy server each month. Will a 512 Linode be able to support that? Also, is there any software out there that does this already, or will I have to write my own? The API responses are roughly 10 KB each on average, so doing the math, that's a lot of data each month. Should I just add more transfer to whatever server I buy, or can I somehow compress the API responses before sending them off to the user? Thanks for any help.

    Read the article

  • slicehost google apps mx settings

    - by Bob
    Hello All, I am banging my head against the wall on this one. I followed the MX setup tutorials for Google Mail and it didn't work. Currently, after deleting those records and adding the ones google suggested I have domain.com. 86400 IN MX 10 ASPMX.L.GOOGLE.com. domain.com. 86400 IN MX 20 ALT2.ASPMX.L.GOOGLE.com. domain.com. 86400 IN MX 20 ALT1.ASPMX.L.GOOGLE.com. domain.com. 86400 IN MX 30 ASPMX2.GOOGLEMAIL.com. domain.com. 86400 IN MX 30 ASPMX5.GOOGLEMAIL.com. domain.com. 86400 IN MX 30 ASPMX3.GOOGLEMAIL.com. domain.com. 86400 IN MX 30 ASPMX4.GOOGLEMAIL.com. according to the output of my dig command for my particular "domain". I can send email from google apps mail but I can not recieve any email. It gives me the following error: Technical details of permanent failure: Google tried to deliver your message, but it was rejected by the recipient domain. We recommend contacting the other email provider for further information about the cause of this error. The error that the other server returned was: 550 550 #5.1.0 Address rejected [email protected] Now I already tried following the slicehost MX article instructions straight as well and they did not work out for me. The domain has already been verified by google and it says the email is activated from their end. Any help would be appreciated : )

    Read the article

  • Controlling access to my API using SSH public key (not SSL)

    - by tharrison
    I have the challenge of implementing an API to be consumed by relatively non-technical clients -- pasting some sample code into their WordPress or homegrown PHP site is probably as much as we can ask. Asking them to install SSL on their servers ain't happening. So I am seeking a simple yet secure way to authenticate API clients. OAuth is the obvious solution, but I don't think it passes the "simple" test. Adding a client id and hashed secret as a parameter to the requests is closer -- it's not hard to do md5($secret . $client_id) or whatever the php would be. It seems to me that if client requests could use the same approach as SSH public keys (client gives us a key from their server(s) there should be some existing magic to make all of the subsequent transactions transparently work just as regular HTTP API requests. I am still working this out (obviously :-), so if I am being an idiot, it would be nice to know why. Thanks!

    Read the article

  • plot markers on google maps with json and jquery

    - by mark
    I am trying to plot the markers as defined in a json file om Google Maps but they don't show on the map. Can somebody help me with this problem? This is the Json file: http://sionvalais.com/gmap/markers/ This is the Javascritp function: function loadMarkers() { var bounds = map.getBounds(); var zoomLevel = map.getZoom(); $.post("/gmaps/markers/index.php", {zoom: zoomLevel, swLat: bounds.getSouthWest().lat(), swLon: bounds.getSouthWest().lng(), neLat: bounds.getNorthEast().lat(), neLon: bounds.getNorthEast().lng()}, function(data) { processMarkers(data, _smallMarkerSize); }, "json" ); } function processMarkers(webcams, markerSize) { var marker = null; var markersInView = new Array(); var idsInView = new Array(); // Loop through the new webcams for (var i = 0; i < webcams.length; i++) { var idx = markers.indexOf(webcams[i].id); if (idx == -1) { var info_html = "<table class='infowindow'>"; info_html += "<tr><td class='img'>"; info_html += "<img src='" + webcams[i].smallimg + "' /><td>"; info_html += "<td><p><b>" + webcams[i].loc + "</b>"; info_html += "<br /><a href='/webcam/" + webcams[i].url + "' target='_blank'>Show webcam</a></p></td></tr>"; info_html += "</table>"; marker = new WebcamMarker(new GLatLng(webcams[i].latitude, webcams[i].longitude), {image: "" + webcams[i].smallimg + "", height: markerSize, width: markerSize}); marker.myhtml = info_html; map.addOverlay(marker); markersInView[webcams[i].id] = marker; } else { markersInView[webcams[i].id] = markers[webcams[i].id]; } idsInView.push(webcams[i].id); } // Now remove the markers outside of the viewport for (var i = 0; i < webcamids.length; i++) { var idx = markersInView.indexOf(webcamids[i]); if (idx == -1) { marker = markers[webcamids[i]]; map.removeOverlay(marker); } } markers = markersInView; webcamids = idsInView; }

    Read the article

  • Getting 404 when attempting to POST file to Google Cloud Storage from service account

    - by klactose
    I'm wondering if anyone can tell me the proper syntax & formatting for a service account to send a POST Object to bucket request? I'm attempting it programmatically using the HttpComponents library. I manage to get a token from my GoogleCredential, but every time I construct the POST request, I get: HTTP/1.1 403 Forbidden <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message><Detailsbucket-name</Details></Error The Google documentation that describes the request methods, mentions posting using html forms, but I'm hoping that wasn't suggesting the ONLY way to get the job done. I know that HttpComponents has a way to explicitly create form data by using UrlEncodedFormEntity, but it doesn't support multipart data. Which is why I went with using the MultipartEntity class. My code is below: MultipartEntity entity = new MultipartEntity( HttpMultipartMode.BROWSER_COMPATIBLE ); String token = credential.getAccessToken(); entity.addPart("Authorization", new StringBody("OAuth " + token)); String date = formatDate(new Date()); entity.addPart("Date", new StringBody(date)); entity.addPart("Content-Encoding", new StringBody("UTF-8")); entity.addPart("Content-Type", new StringBody("multipart/form-data")); entity.addPart("bucket", new StringBody(bucket)); entity.addPart("key", new StringBody("fileName")); entity.addPart("success_action_redirect", new StringBody("/storage")); File uploadFile = new File("pathToFile"); FileBody fileBody = new FileBody(uploadFile, "text/xml"); entity.addPart("file", fileBody); httppost.setEntity(entity); System.out.println("Posting URI = "+httppost.toString()); HttpResponse response = client.execute(httppost); HttpEntity resp_entity = response.getEntity(); As I mentioned, I am able to get an actual token, so I'm pretty sure the problem is in how I've formed the request as opposed to not being properly authenticated. Keep in mind: This is being performed by a service account. Which means that it does have Read/Write access Thanks for reading, and I appreciate any help!

    Read the article

  • Google maps sometimes does not return a geocoded value for string

    - by XGreen
    Hi Guys, I have the following code: It basically looks into a HTML list and geocodes and markets each item. it does it correctly 8 out of ten but sometimes I get an error I set for show in the console. I can't think of anything. Any thoughts is much appreciated. $(function () { var map = null; var geocoder = null; function initialize() { if (GBrowserIsCompatible()) { // Specifies that the element with the ID map is the container for the map map = new GMap2(document.getElementById("map")); // Sets an initial map positon (which mainly gets ignored after reading the adderesses list) map.setCenter(new GLatLng(37.4419, -122.1419), 13); // Instatiates the google Geocoder class geocoder = new GClientGeocoder(); map.addControl(new GSmallMapControl()); // Sets map zooming controls on the map map.enableScrollWheelZoom(); // Allows the mouse wheel to control the map while on it } } function showAddress(address, linkHTML) { if (geocoder) { geocoder.getLatLng(address, function (point) { if (!point) { console.log('Geocoder did not return a location for ' + address); } else { map.setCenter(point, 8); var marker = new GMarker(point); map.addOverlay(marker); // Assigns the click event to each marker to open its balloon GEvent.addListener(marker, "click", function () { marker.openInfoWindowHtml(linkHTML); }); } } ); } } // end of show address function initialize(); // This iterates through the text of each address and tells the map // to show its location on the map. An internal error is thrown if // the location is not found. $.each($('.addresses li a'), function () { var addressAnchor = $(this); showAddress(addressAnchor.text(), $(this).parent().html()); }); }); which looks into this HTML: <ul class="addresses"> <li><a href="#">Central London</a></li> <li><a href="#">London WC1</a></li> <li><a href="#">London Shoreditch</a></li> <li><a href="#">London EC1</a></li> <li><a href="#">London EC2</a></li> <li><a href="#">London EC3</a></li> <li><a href="#">London EC4</a></li> </ul>

    Read the article

  • Click GEvent.addListener with jquery

    - by Jason
    Created a google map with GMap2 and put pinpoints on there that open up a balloon with the address when the pinpoint is clicked. I would like users to be able to click text on the page itself and use jquery to open up the corresponding balloon. However I can't figure out the ID to use to call a jquery click event. Basically I've got a store listing down the left side and when user clicks store name I want it to open up the corresponding balloon. GEvent.addListener(marker_500, "click", function () { map.openInfoWindowHtml(point, myHtml); } Any idea what element tied to this click event is? Tried $("#marker_500").click(); And that doesn't work. Also tried alerting $(this).attr('id'); inside the click function and that is undefined. thanks jason

    Read the article

  • SIFR 3.0 - Font Size

    - by Nick
    I have been working with SIFR 3.0 for some time now and the font-size never seems to work correctly. I understand the most basic concepts behind SIFR. SIFR runs when you load the page. It does some calculations one the size of the HTML rendered font and then replaces it with a flash movie that is roughly equal to that size. Because of this, you want to style your HTML font to match the size of your SIFR font as close as possible. My problem always comes up when trying to style these two font sizes to match. Let's say I want to use a SIFR font of Helvetica Neue Lt at about 32px. The HTML equivalent is something like Arial Narrow at about 36px with some negative letter spacing. So here is what I do. In sifr.css I'll write: @media screen { .sIFR-active h1 { visibility: hidden; z-index: 0 !important; font-size: 36px; } } Great, that gets the default HTML font the size I need. Now I need to update the flash SIFR font size. So I go into sifr-config.js and write something like this: sIFR.replace(HelveticaNeueThinCond, { selector: 'h1', css: '.sIFR-root { color: #762123; font-size: 32px; line-height: 1em; }', transparent: true }); So right now everything is working great. That is until my h1 text wraps more than one line. For some reason, when the text wraps it only shows the first line. It seems calculates the height wrong. This is very weird because I ran some tests. I took "visibility: hidden" off of "sIFR-active h1" to make sure that the HTML rendered text was the right size. It is, it takes up two lines. However, when the Flash replaces this text it gives it a min-height of one line of text. Odd. The only way I could find to fix this wrapping problem was to remove "font-size: 32px;" from "sIFR.replace(HelveticaNeueThinCond" in sifr-config. The problem I run into then is that it inherits the font-size set in sifr.css. Now the problem is that my HTML text is bigger then the SIFR text. So occasional my HTML text will wrap to a new line before my SIFR text leaving a big white space. So, how do I set two different font-size (one for my HTML text and one for my SIFR) without losing the wrapping. The only time I have been able to use the successfully is when I have a SIFR font that is so similar to a web safe font that they can share the same font-size attribute. Thanks

    Read the article

  • Google App Engine - SiteMap Creation for a social network

    - by spidee
    Hi all. I am creating a social tool - I want to allow search engines to pick up "public" user profiles - like twitter and face-book. I have seen all the protocol info at http://www.sitemaps.org and i understand this and how to build such a file - along with an index if i exceed the 50K limit. Where i am struggling is the concept of how i make this run. The site map for my general site pages is simple i can use a tool to create the file - or a script - host the file - submit the file and done. What i then need is a script that will create the site-maps of user profiles. I assume this would be something like: <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.socialsite.com/profile/spidee</loc> <lastmod>2010-5-12</lastmod> <changefreq>???</changefreq> <priority>???</priority> </url> <url> <loc>http://www.socialsite.com/profile/webbsterisback</loc> <lastmod>2010-5-12</lastmod> <changefreq>???</changefreq> <priority>???</priority> </url> </urlset> Ive added some ??? as i don't know how i should set these settings for my profiles based on the following:- When a new profile is created it must be added to a site-map. If the profile is changed or if "certain" properties are changed - then i don't know if i update the entry in the map - or do something else? (updating would be a nightmare!) Some users may change their profile. In terms of relevance to the search engine the only way a google or yahoo search will find the users (for my requirement) profile would be for example by means of [user name] and [location] so once the entry for the profile has been added to the map file the only reason to have the search-bot re-index the profile would be if the user changed their user-name - which they cant. or their location - and or set their settings so that their profile would be "hidden" from search engines. I assume my map creation will need to be dynamic. From what i have said above i would imagine that creating a new profile and possible editing certain properties could mark it as needing adding/updating in the sitemap. Assuming i will have millions of profiles added/being edited how can i manage this in a sensible manner. i know i need a script that can append urls as each profile is created i know the script will prob be a TASK - running at a set freq - perhaps the profiles have a property like "indexed" and the TASK sets them to "true" when the profiles are added to the map. I dont see the best way to store the map - do i store it in the datastore i.e; model=sitemaps properties key_name=sitemap_xml_1 (and for my map sitemap_index_xml) mapxml=blobstore (the raw xml map or ror map) full=boolean (set true when url count is 50) # might need this as a shard will tell us To make this work my thoughts are m cache the current site map structure as "sitemap_xml" keep a shard of url count when my task executes 1. build the xml structure for say the first 100 urls marked "index==false" (how many could u run at a time?) 2. test if the current mcache sitemap is full (shardcounter+10050K) 3.a if the map is near full create a new map entry in models "sitemap_xml_2" - update the map_index file (also stored in my model as "sitemap_index" start a new shard - or reset.2 3.b if the map is not full grab it from mcache 4.append the 100 url xml structure 5.save / m cache the map I can now add a handler using a url map/route like /sitemaps/* Get my * as map name and serve the maps from the blobstore/mache on the fly. Now my question is does this work - is this the right way or a good way to start? Will this handle the situation of making sure the search bots update when a user changes their profile - possibly by setting the change freq correctly? - Do i need a more advance system :( ? or have i re-invented the wheel! I hope this is all clear and make some form of sense :-)

    Read the article

  • Google maps api v3: geocoding multiple addresses and infowindow

    - by user2536786
    I am trying to get infowindow for multiple addresses. Its creating markers but when I click on markers, infowindow is not popping up. Please help and see what could be wrong in this code. Rest all info is fine only issue is with infowindow not coming up. <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>Google Maps Multiple Markers</title> <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> </head> <body> <div id="map" style="height: 800px;"></div> <script type="text/javascript"> var locations = [ ['Bondi Beach', '850 Bay st 04 Toronto, Ont'], ['Coogee Beach', '932 Bay Street, Toronto, ON M5S 1B1'], ['Cronulla Beach', '61 Town Centre Court, Toronto, ON M1P'], ['Manly Beach', '832 Bay Street, Toronto, ON M5S 1B1'], ['Maroubra Beach', '606 New Toronto Street, Toronto, ON M8V 2E8'] ]; var map = new google.maps.Map(document.getElementById('map'), { zoom: 10, center: new google.maps.LatLng(43.253205,-80.480347), mapTypeId: google.maps.MapTypeId.ROADMAP }); var infowindow = new google.maps.InfoWindow(); var geocoder = new google.maps.Geocoder(); var marker, i; for (i = 0; i < locations.length; i++) { geocoder.geocode( { 'address': locations[i][1]}, function(results, status) { //alert(status); if (status == google.maps.GeocoderStatus.OK) { //alert(results[0].geometry.location); map.setCenter(results[0].geometry.location); marker = new google.maps.Marker({ position: results[0].geometry.location, map: map }); google.maps.event.addListener(marker, 'mouseover', function() { infowindow.open(marker, map);}); google.maps.event.addListener(marker, 'mouseout', function() { infowindow.close();}); } else { alert("some problem in geocode" + status); } }); } </script> </body> </html>

    Read the article

  • Translating with Google Translate without API and C# Code

    - by Rick Strahl
    Some time back I created a data base driven ASP.NET Resource Provider along with some tools that make it easy to edit ASP.NET resources interactively in a Web application. One of the small helper features of the interactive resource admin tool is the ability to do simple translations using both Google Translate and Babelfish. Here's what this looks like in the resource administration form: When a resource is displayed, the user can click a Translate button and it will show the current resource text and then lets you set the source and target languages to translate. The Go button fires the translation for both Google and Babelfish and displays them - pressing use then changes the language of the resource to the target language and sets the resource value to the newly translated value. It's a nice and quick way to get a quick translation going. Ch… Ch… Changes Originally, both implementations basically did some screen scraping of the interactive Web sites and retrieved translated text out of result HTML. Screen scraping is always kind of an iffy proposition as content can be changed easily, but surprisingly that code worked for many years without fail. Recently however, Google at least changed their input pages to use AJAX callbacks and the page updates no longer worked the same way. End result: The Google translate code was broken. Now, Google does have an official API that you can access, but the API is being deprecated and you actually need to have an API key. Since I have public samples that people can download the API key is an issue if I want people to have the samples work out of the box - the only way I could even do this is by sharing my API key (not allowed).   However, after a bit of spelunking and playing around with the public site however I found that Google's interactive translate page actually makes callbacks using plain public access without an API key. By intercepting some of those AJAX calls and calling them directly from code I was able to get translation back up and working with minimal fuss, by parsing out the JSON these AJAX calls return. I don't think this particular Warning: This is hacky code, but after a fair bit of testing I found this to work very well with all sorts of languages and accented and escaped text etc. as long as you stick to small blocks of translated text. I thought I'd share it in case anybody else had been relying on a screen scraping mechanism like I did and needed a non-API based replacement. Here's the code: /// <summary> /// Translates a string into another language using Google's translate API JSON calls. /// <seealso>Class TranslationServices</seealso> /// </summary> /// <param name="Text">Text to translate. Should be a single word or sentence.</param> /// <param name="FromCulture"> /// Two letter culture (en of en-us, fr of fr-ca, de of de-ch) /// </param> /// <param name="ToCulture"> /// Two letter culture (as for FromCulture) /// </param> public string TranslateGoogle(string text, string fromCulture, string toCulture) { fromCulture = fromCulture.ToLower(); toCulture = toCulture.ToLower(); // normalize the culture in case something like en-us was passed // retrieve only en since Google doesn't support sub-locales string[] tokens = fromCulture.Split('-'); if (tokens.Length > 1) fromCulture = tokens[0]; // normalize ToCulture tokens = toCulture.Split('-'); if (tokens.Length > 1) toCulture = tokens[0]; string url = string.Format(@"http://translate.google.com/translate_a/t?client=j&text={0}&hl=en&sl={1}&tl={2}", HttpUtility.UrlEncode(text),fromCulture,toCulture); // Retrieve Translation with HTTP GET call string html = null; try { WebClient web = new WebClient(); // MUST add a known browser user agent or else response encoding doen't return UTF-8 (WTF Google?) web.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0"); web.Headers.Add(HttpRequestHeader.AcceptCharset, "UTF-8"); // Make sure we have response encoding to UTF-8 web.Encoding = Encoding.UTF8; html = web.DownloadString(url); } catch (Exception ex) { this.ErrorMessage = Westwind.Globalization.Resources.Resources.ConnectionFailed + ": " + ex.GetBaseException().Message; return null; } // Extract out trans":"...[Extracted]...","from the JSON string string result = Regex.Match(html, "trans\":(\".*?\"),\"", RegexOptions.IgnoreCase).Groups[1].Value; if (string.IsNullOrEmpty(result)) { this.ErrorMessage = Westwind.Globalization.Resources.Resources.InvalidSearchResult; return null; } //return WebUtils.DecodeJsString(result); // Result is a JavaScript string so we need to deserialize it properly JavaScriptSerializer ser = new JavaScriptSerializer(); return ser.Deserialize(result, typeof(string)) as string; } To use the code is straightforward enough - simply provide a string to translate and a pair of two letter source and target languages: string result = service.TranslateGoogle("Life is great and one is spoiled when it goes on and on and on", "en", "de"); TestContext.WriteLine(result); How it works The code to translate is fairly straightforward. It basically uses the URL I snagged from the Google Translate Web Page slightly changed to return a JSON result (&client=j) instead of the funky nested PHP style JSON array that the default returns. The JSON result returned looks like this: {"sentences":[{"trans":"Das Leben ist großartig und man wird verwöhnt, wenn es weiter und weiter und weiter geht","orig":"Life is great and one is spoiled when it goes on and on and on","translit":"","src_translit":""}],"src":"en","server_time":24} I use WebClient to make an HTTP GET call to retrieve the JSON data and strip out part of the full JSON response that contains the actual translated text. Since this is a JSON response I need to deserialize the JSON string in case it's encoded (for upper/lower ASCII chars or quotes etc.). Couple of odd things to note in this code: First note that a valid user agent string must be passed (or at least one starting with a common browser identification - I use Mozilla/5.0). Without this Google doesn't encode the result with UTF-8, but instead uses a ISO encoding that .NET can't easily decode. Google seems to ignore the character set header and use the user agent instead which is - odd to say the least. The other is that the code returns a full JSON response. Rather than use the full response and decode it into a custom type that matches Google's result object, I just strip out the translated text. Yeah I know that's hacky but avoids an extra type and firing up the JavaScript deserializer. My internal version uses a small DecodeJsString() method to decode Javascript without the overhead of a full JSON parser. It's obviously not rocket science but as mentioned above what's nice about it is that it works without an Google API key. I can't vouch on how many translates you can do before there are cut offs but in my limited testing running a few stress tests on a Web server under load I didn't run into any problems. Limitations There are some restrictions with this: It only works on single words or single sentences - multiple sentences (delimited by .) are cut off at the ".". There is also a length limitation which appears to happen at around 220 characters or so. While that may not sound  like much for typical word or phrase translations this this is plenty of length. Use with a grain of salt - Google seems to be trying to limit their exposure to usage of the Translate APIs so this code might break in the future, but for now at least it works. FWIW, I also found that Google's translation is not as good as Babelfish, especially for contextual content like sentences. Google is faster, but Babelfish tends to give better translations. This is why in my translation tool I show both Google and Babelfish values retrieved. You can check out the code for this in the West Wind West Wind Web Toolkit's TranslationService.cs file which contains both the Google and Babelfish translation code pieces. Ironically the Babelfish code has been working forever using screen scraping and continues to work just fine today. I think it's a good idea to have multiple translation providers in case one is down or changes its format, hence the dual display in my translation form above. I hope this has been helpful to some of you - I've actually had many small uses for this code in a number of applications and it's sweet to have a simple routine that performs these operations for me easily. Resources Live Localization Sample Localization Resource Provider Administration form that includes options to translate text using Google and Babelfish interactively. TranslationService.cs The full source code in the West Wind West Wind Web Toolkit's Globalization library that contains the translation code. © Rick Strahl, West Wind Technologies, 2005-2011Posted in CSharp  HTTP   Tweet (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();

    Read the article

< Previous Page | 67 68 69 70 71 72 73 74 75 76 77 78  | Next Page >