Telerik Forums
UI for ASP.NET AJAX Forum
3 answers
123 views
Hi.

Our timeline view currently renders as shown in render.png. The appointments shown as "A" and "N" in the picture are supposed to be the same schedule, but due to differences the way our scheduling system works and the RadScheduler works, I have to create them as several separate appointments. The "A"s all share the same ScheduleID, same for the "N"s, if that helps. The way it renders is pretty useless, though. The "A"s don't all show up on the same line; same for the "N"s.

In desired-render.png I've created a mock-up of how I would like it to look. So my question is, given the parameters above (separate appointments that actually are supposed to be the same), can I get the RadScheduler to render it as in desired-render.png?
Peter
Telerik team
 answered on 07 Jan 2011
3 answers
137 views
Hi

I am trying to set the following scenario:
Set RadTabStrip with TabTemplate defined, tabs are generated by supplying DataSource. the property NavigateUrlField is set either on RadTabStrip tag or on RadDataBinding node.
At run time on Page_Init, or Page_Load - I supply DataSource and call DataBind(). After this call, on CodeBehind side (in debug mode), I can see tabs generated with NavigateUrl property correctly filled. However, when control is rendered on the page and I click on Tab, nothing happens. Also - nothing in NavigateUrl found, when setting OnClientSelecting method and checking value of NavigateUrl by calling 

var tab = eventArgs.get_tab();
var url = tab.get_navigateUrl();

here variable url gets value "null"

I also tried setting NavigateUrl on TabDataBind event, same story....


Interestingly - if I remove TabTemplate block and set DataTextField, I get tabs created and NavigateUrl is not lost and works right. However, Tab consists of multiple items and it is needed to have TabTemplate there.

Also it is strange that setting explicitly NavigateUrl on client side, on event OnClientSelecting,  from passed Attributes, does not help:
var tab = eventArgs.get_tab();
var
attr = tab.get_attributes();
var url = attr.getAttribute("url");
tab.set_navigateUrl(url);

I managed to get required behaviour only as following, on event OnClientSelecting
var tab = args.get_tab();
var attr = tab.get_attributes();
var url = tab.get_navigateUrl();
if (url == null)
{
    url = attr.getAttribute("url");
    document.URL = url;
}


I found on this forum a thread as of 2008
http://www.telerik.com/community/forums/aspnet-ajax/tabstrip/radtabstrip-templates-and-loading-in-iframe.aspx 
where person tried to do something similar and Tech Support person also had to use some similar hack by calling
window.open(url, target)

So I am curios, if over 2 years there was any fix for this behaiviour, or if am I doing something wrong?

Dmitry
Yana
Telerik team
 answered on 07 Jan 2011
2 answers
287 views
Hi Team,

Please let me know a way to Reorder RadGrid Rows on client side, just like column reorder functionality?
Saranya
Top achievements
Rank 1
 answered on 07 Jan 2011
4 answers
142 views
Hi,
Is it possible to apply group by at start up using code behind.?
I also would like to hide the column from the mastertableview if it is used for grouping.
Can anyone help me out with this...?
I am not creating RadGrid dynamically(AutoGenerateColumns=false) . I want to group by the columns that are in my mastertable. Basically i want
to bring the desired group by view on startup , without client requiring to drag the columns at runtime.
Thanks and Regards,
Niraj Khose
Niraj
Top achievements
Rank 1
 answered on 07 Jan 2011
1 answer
317 views
Hello,

Having established an Radlistbox, with buttons for adding, deleting, I would like to know how to avoid the page refresh for every action on these buttons. As show in the demos Radlistbox.
To finally be able to encode dynamic additions of buttons in JavaScript.

Thank you.
Yana
Telerik team
 answered on 07 Jan 2011
7 answers
220 views
I have a list that contains images, links, repeaters, and regular labels.

When I export to excel in HTML-mode (with OnlyData=true), everything except the labels gets stripped.

Is there someway I can tell the export to export everything, without getting broken images, links and such, everything converted to text, plain text?
Anne
Top achievements
Rank 1
 answered on 07 Jan 2011
4 answers
161 views

<EditFormSettings EditColumn-UpdateText="Update" EditColumn-ButtonType="ImageButton" PopUpSettings-Modal="true" InsertCaption="Add new item" CaptionFormatString="ITAdmin: {0} " CaptionDataField="EmployeeName" EditFormType="Template">
<FormTemplate>
<table id="tblUs" cellspacing="1" cellpadding="1" width="250" border="0">
<tr><td></td><td></td></tr><tr><td></td><td>
 <table width="245px" id="TBLUSERS" border="0" cellspacing="0" cellpadding="0">
<tr><td>
 <asp:TextBox ID="GridtxtSearch" runat="server" Width="175px"></asp:TextBox>
 <asp:Button ID="GrdbtnGo" runat="server" OnClick="Populate" Text="Go" />
 <asp:Label Visible="false" runat="server" ID="hdnId" Text='<%#Eval("id") %>' />
 <asp:Label Visible="false" runat="server" ID="hdnSiteName" Text='<%#Eval("Name") %>' />
 <asp:Label Visible="false" runat="server" ID="hdnITAdminName" Text='<%#Eval("EmployeeName") %>' />
 <asp:Label Visible="false" runat="server" ID="hdnITAdminId" Text='<%#Eval("ITAdminId") %>' />
 
</td> <td>
&nbsp;

</td>
</tr>
<tr>
<td>
Entity : <asp:DropDownList ID="drpSiteCode_" AppendDataBoundItems="true" runat="server" AutoPostBack="false">
<asp:ListItem Value="-">Select --</asp:ListItem>
</asp:DropDownList>
<span style="color: Red">
<asp:RequiredFieldValidator ID="rfvSite" runat="server" ControlToValidate="drpSiteCode_"
ErrorMessage="Please select an Entity" ValidationGroup="rfGrdSiteCode" InitialValue="-" Font-Size="Smaller"></asp:RequiredFieldValidator>
</span>
</td>
<td>
&nbsp;
</td>

</tr>
<tr>
 
<td>
 

<table>
 

<tr>
 

 

<td>

<asp:ListBox Width="233px" ID="GrdlstallNetIds" runat="server" SelectionMode="Single"
 
Height="270px"></asp:ListBox>
 

</td>

</tr>

</table>

</td>

</tr>
 
<tr>
 
<td>

 

<asp:Label ID="lbNoRecordsExistMyRequestsf" runat="server" Font-Size="Smaller"></asp:Label>
 

</td>
 

</tr>
 

</table>
 

</td>
 

 

</tr>
 

</table>
 

<table style="width: 100%">
 

<tr>
 

<td align="right" colspan="2">
 

<asp:Button ValidationGroup="rfGrdSiteCode" ID="Button2" Text='<%# Iif (TypeOf Container is GridEditFormInsertItem, "Insert", "Update") %>'
 

runat="server" CommandName='<%# Iif (TypeOf Container is GridEditFormInsertItem, "PerformInsert", "Update") %>'>
 

</asp:Button>&nbsp;
 

<asp:Button ID="Button3" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel">

</asp:Button>
 

</td>
 

</tr>
 

</table>

</FormTemplate>
 

<FormTableItemStyle Width="100%" Height="29px"></FormTableItemStyle>
 

<FormTableStyle GridLines="None" CellSpacing="0" CellPadding="2"></FormTableStyle>
 

<FormStyle Width="100%" BackColor="#eef2ea"></FormStyle>
 

<EditColumn ButtonType="ImageButton" />
 

<PopUpSettings Modal="true" />
 

</EditFormSettings>

 

When btnGo is Clicked ,

I want to get the GridtxtSearch value to repopulate the GrdlstallNetIds everytime.But always when the First row in the Grid is selected , I can able to get the GridtxtSearch value , Can u help me to check how to get the selected griditem
GridtxtSearch  value?

Protected Sub Populate()
 

Dim grditem As GridItem
 
 

grditem = rdGridSite.MasterTableView.GetItems(

GridItemType.EditFormItem)(0)
 

Dim txtSearch As TextBox = CType(grditem.FindControl("GridtxtSearch"), TextBox)

Dim hdnId As Label = CType(grditem.FindControl("hdnId"), Label)
 

Dim GrdlstallNetIds As ListBox = CType(grditem.FindControl("GrdlstallNetIds"), ListBox)
 

 

Try
 

Dim empDao1 As New EmployeeDAL()
 

Dim ds1 As New DataSet()
 

If txtSearch.Text = String.Empty Then
 

 

ds1 = empDao1.GetAllNetworkids()

Else
 

 

ds1 = empDao1.GetAllNetworkids(txtSearch.Text)

 
End If
 

Dim dt As New DataTable()
 

dt = ds1.Tables(0)

GrdlstallNetIds.DataSource = dt

GrdlstallNetIds.DataTextField = "DisplayName"
 
 

GrdlstallNetIds.DataValueField = "SamaccountName"
 

 
 

GrdlstallNetIds.DataBind()
 Catch ex As Exception

Exit Sub

End Try

 End Sub 

 

 

Thanks

 

 

Rama
Top achievements
Rank 1
 answered on 07 Jan 2011
1 answer
150 views

I'm using VS2010 .Net 4.0 and VB.  I downloaded a small project I found on here that is supposed to demonstrate how to launch a radWindow so that it doesn't get stuck in the opening frame.  It was called Frameset.zip.  It was in C# but since there wasn't any server code converting it to VB was no big deal.  Bottom line is it doesn't work.  Every time I push the button to launch the radWindow I get the error:
    Microsoft JScript runtime error: Object doesn't support this property or method
on the line:
    top.radopen("http://www.google.com", "RadWindow1")

If I move:
    <telerik:RadScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release" /> 
    <telerik:RadWindowManager Modal="true" ID="Singleton" runat="server"> 
    </telerik:RadWindowManager>
to frame1.aspx and change it to use window.radopen, the radWindow launches fine but it's stuck in the frame. 

Here are my pages:
Default.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
  
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<frameset border="0" cols="200,*" frameborder="0">
    <body>
        <telerik:RadScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release" />
        <telerik:RadWindowManager Modal="true" ID="Singleton" runat="server">
        </telerik:RadWindowManager>
        <frame name="contents" src="Frame1.aspx">
        <frame name="main" src="Frame2.aspx">
    </body>
</frameset>
</body>
</html>

Frame1.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Frame1.aspx.vb" Inherits="Frame1" %>
  
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <script type="text/javascript">
        function OpenWin() {
            top.radopen("http://www.google.com", "RadWindow1");
        }
      
    </script>
    <input type="button" onclick="OpenWin()" value="Open RadWindow" />
    </div>
  
    </form>
</body>
</html>

frame2.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Frame2.aspx.vb" Inherits="Frame2" %>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    Frame 2
    </div>
    </form>
</body>
</html>
Georgi Tunev
Telerik team
 answered on 07 Jan 2011
1 answer
142 views
On my web page, i have one radgrid1 which is pre-populating.
On same page, i have a search functionality on a button, which popup a window and populates a radgrid2 on some search criteria.
radgrid2 have link button in item template column,  now when i click on link button i want to populate my radgrid1 with the selected row data from radgrid2.

Any help is appreciated.

It is very urgent. Pls Help.
Shinu
Top achievements
Rank 2
 answered on 07 Jan 2011
4 answers
168 views
i have a hierarchical radgrid on a master/content page which uses load on demand to load detail tables...

this functionality WAS WORKING and then i made quite a few ajax-related changes (added controls with ajax functionality, various troubleshooting changes, etc) which somewhere along the line took away this functionality.

the detailtabledatabind event is called, and executes properly, however it looks like the page is just never updated with the detail table data.

any help is appreciated!

I have my code below


master page markup:
<head runat="server">
     
    <title></title>
    <style type="text/css">
 
        html
        {
            overflow:hidden;
        }
 
        html,
        body,
        form
        {
            margin:0;
            height:100%;
            background-color:#f8f8f8;
        }
        #gridAreaContent
        {   
            position: absolute;
            width: 100%;
        }       
    </style>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
 
</head>
<body>   
     
    <telerik:RadSkinManager ID="_radSkinMan" Runat="server" Skin="WebBlue">
    </telerik:RadSkinManager>
    <form id="form1" runat="server">
     
        <telerik:RadScriptManager ID="_radScriptMan" runat="server">
            <Scripts>
                <%--Needed for JavaScript IntelliSense in VS2010--%>
                <%--For VS2008 replace RadScriptManager with ScriptManager--%>
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
                <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
            </Scripts>
        </telerik:RadScriptManager>
        <telerik:RadAjaxManager ID="_radAjaxMan" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1" EnablePageHeadUpdate="false" />
         
         
        <telerik:RadAjaxLoadingPanel
            ID="RadAjaxLoadingPanel1"
            runat="server"
            BackColor="White"
            Transparency="50"
            ScrollBars="None"
            Height="100%" />
 
         
 
    <telerik:RadSplitter ID="mainSplitter" runat="server" Height="100%" Width="100%" Orientation="Horizontal" >
        <telerik:RadPane ID="RadPane1" runat="server" CssClass="ApplyOverflow" Width="100%" Height="100px" Scrolling="None">
            <div style="width:100%;">
                <telerik:RadMenu ID="_mainMenu" runat="server" Width="100%" style="position:absolute; border-width: 0px;">
                </telerik:RadMenu>
            </div>
             
            <div style="width:100%;">
                <div style="width:300px; margin-top:20px; float:right;">
                    <asp:ContentPlaceHolder ID="loginArea" runat="server" />
                </div>
                <asp:ContentPlaceHolder ID="SearchArea" runat="server" />
            </div>
             
        </telerik:RadPane >
        <telerik:RadPane ID="RadPane2" runat="server" Width="100%" Height="100%" Scrolling="None" >
            <telerik:RadSplitter ID="RadSplitter2" runat="server" Height="100%" Width="100%" Orientation="Vertical" >
                <telerik:RadPane ID="RadPane3" runat="server" Height="100%" Scrolling="None">
                    <asp:ContentPlaceHolder ID="gridAreaContent" runat="server" />
                </telerik:RadPane>
                <telerik:RadSplitBar ID="Radsplitbar1" runat="server" CollapseMode="Backward" EnableResize="false"/>
                <telerik:RadPane ID="RadPane4" runat="server" Height="100%"  Width="320px" Scrolling="None">
                    <asp:ContentPlaceHolder ID="navPanel" runat="server" />
                </telerik:RadPane>
            </telerik:RadSplitter>
        </telerik:RadPane>
 
    </telerik:RadSplitter>
     
    </form>
</body>
</html>

relevant content markup:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <style type="text/css">
        #<%= _GridPanelClientID %>
        {
            margin:0;
            height:800px;
        }
 
        #_Grid_GridData 
        
           overflow-x:hidden !important; 
        }
         
        /*.bigModuleBottom td{padding:0}
        div.RadToolBar_Vista { float: none !important; }
        div.RadToolBar_Vista .rtbOuter { border: 0; } */
 
        div.RadToolBar .rtbUL {
            width: 100%;
        }
        div.SeparatedButtons .rtbItem {
            float: left;
        }          
  
        div.SeparatedButtons .rightAlignedWrapper {
            text-align:center;
            float: right !important;
        }
    </style>
    <telerik:RadCodeBlock id="RadCodeBlock1" runat="server">   
        <script type="text/javascript">
 
            function onToolBarClientButtonClicking(sender, args) {
 
            function GetSelectedCSCPIDs()
            {
                var selectedRows = $find("<%=_Grid.MasterTableView.ClientID %>").get_selectedItems();
                var retVal = "";
                for (var i = 0; i < selectedRows.length; i++)
                {
                    var val = selectedRows[i].getDataKeyValue("id");
                    retVal += val + ",";
                }
                retVal = retVal.slice(0, retVal.length - 1);
                return retVal;
            }
            function RecordSelected(index, e) {
                $find("<%= RadAjaxManager.GetCurrent(Page).ClientID %>").ajaxRequest("declineChartRefresh;" + GetSelectedCSCPIDs());
            }
            function PopulateGridContextMenu()
            function RowContextMenu(sender, eventArgs) {
            function PopulateMenu(menu, row)
            function ClientGridMenuHidden(menu) {
        </script>
    </telerik:RadCodeBlock>
 
</asp:Content>
 
 
 
 
<asp:Content ID="Content2" ContentPlaceHolderID="gridAreaContent" runat="server">
    <telerik:RadAjaxManagerProxy ID="_radAjaxProxy" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="_GridContextMenu">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="_Grid" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="_GridContextMenu" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="_searchButton" >
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadAjaxPanel5" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="_navMarketListingsPanel" >
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="_navMarketListingsPanel" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="_navNewsPanel" >
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="_navNewsPanel" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="_navMAPanel" >
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="_navMAPanel" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="_Grid" >
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="_navDeclineCurvePanel" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="_radAjaxMan" >
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="_navDeclineCurvePanel" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManagerProxy>
 
    <input type="hidden" id="_GridSelected" name="_GridSelected" />
    <input type="hidden" id="_GridLastSelected" name="_GridLastSelected" />
    <input type="hidden" id="_GridCSCPIDsSelected" name="_GridCSCPIDsSelected" />
    <input type="hidden" id="currentQueryString" name="currentQueryString" />
 
    <telerik:RadContextMenu ID="_GridContextMenu"
                            runat="server"
                            OnItemClick="_GridContextMenu_ItemClick"
                            EnableRoundedCorners="true"
                            EnableShadows="true"
                            OnClientShowing="PopulateGridContextMenu"
                            OnClientHidden="ClientGridMenuHidden" >
        <Targets>
            <telerik:ContextMenuControlTarget ControlID="_Grid" />
        </Targets>
    </telerik:RadContextMenu>
 
 
    <telerik:RadAjaxPanel ID="RadAjaxPanel5" runat="server">
        <telerik:RadGrid ID="_Grid"
                         runat="server"
                         Width="100%"
                         Height="100%"
                         style="border:0;"
                         AutoGenerateColumns="False"
                         GridLines="None" >
            <MasterTableView CommandItemDisplay="Top">
                <CommandItemTemplate>
                </CommandItemTemplate>
            </MasterTableView>
            <ClientSettings>
                <ClientEvents OnRowSelected="RecordSelected"
                              OnRowDeselected="RecordSelected"
                              OnRowContextMenu="RowContextMenu"></ClientEvents>
            </ClientSettings>
        </telerik:RadGrid>
    </telerik:RadAjaxPanel>
</asp:Content>

relevant code-behind:
protected void Page_Load(object sender, EventArgs e)
{
    _Grid.DetailTableDataBind += new GridDetailTableDataBindEventHandler(_Grid_DetailTableDataBind);
    _Grid.NeedDataSource +=new GridNeedDataSourceEventHandler(_Grid_NeedDataSource);
    _Grid.SortCommand +=new GridSortCommandEventHandler(_Grid_SortCommand);
    _Grid.ItemDataBound +=new GridItemEventHandler(_Grid_ItemDataBound);
    _Grid.SelectedIndexChanged += new EventHandler(_Grid_SelectedIndexChanged);
 
    RadAjaxManager _radAjaxMan = RadAjaxManager.GetCurrent(Page);
 
    _radAjaxMan.AjaxRequest += new RadAjaxControl.AjaxRequestDelegate(_radAjaxMan_AjaxRequest);
    _radAjaxMan.AjaxSettings.AddAjaxSetting(_Grid, _navDeclineCurvePanel, (RadAjaxLoadingPanel)this.Master.FindControl("RadAjaxLoadingPanel1"));
    RadAjaxManager.GetCurrent(Page).AjaxSettingCreated += new RadAjaxControl.AjaxSettingCreatedDelegate(contentpagecs_aspx_AjaxSettingCreated);
    _radAjaxProxy.AjaxSettings.AddAjaxSetting(_Grid, _Grid);
    //_radAjaxProxy.AjaxSettings.AddAjaxSetting(RadMenu1, RadMenu1);
}
 
    void _Grid_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e)
{
    e.Canceled = true;
    GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
    switch (e.DetailTableView.Name)
    {
        case "WP":
            {
                string cscpID = dataItem.GetDataKeyValue("id").ToString();
                e.DetailTableView.DataSource = GetDataTable(GetWellProductionFromCSCPID(cscpID));
                break;
            }
        case "MWP":
            {
                string WellID = dataItem.GetDataKeyValue("WellID").ToString();
                e.DetailTableView.DataSource = GetDataTable(GetMonthlyProduction(WellID));
                break;
            }
    }
}


Felipe
Top achievements
Rank 1
 answered on 07 Jan 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Chester
Top achievements
Rank 1
Iron
Simon
Top achievements
Rank 1
Iron
Douglas
Top achievements
Rank 2
Iron
Iron
SUNIL
Top achievements
Rank 3
Iron
Iron
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Chester
Top achievements
Rank 1
Iron
Simon
Top achievements
Rank 1
Iron
Douglas
Top achievements
Rank 2
Iron
Iron
SUNIL
Top achievements
Rank 3
Iron
Iron
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?