Telerik Forums
UI for WPF Forum
3 answers
170 views
After updating RadControls for WPF Q1 2011, bugs occurred.
I want to know how can i fix this problem


Startup URI: C:\Users\Justin\Documents\Visual Studio 2010\Projects\WebClient\WebClient\bin\Debug\WebClient.xbap
Application Identity: file:///C:/Users/Justin/Documents/Visual%20Studio%202010/Projects/WebClient/WebClient/bin/Debug/WebClient.xbap#WebClient.xbap, Version=1.0.0.136, Culture=neutral, PublicKeyToken=f179182db26508cc, processorArchitecture=msil/WebClient.exe, Version=1.0.0.136, Culture=neutral, PublicKeyToken=f179182db26508cc, processorArchitecture=msil, type=win32
  
System.InvalidOperationException: 'System.Windows.Documents.Hyperlink' is not a Visual or Visual3D.
   at MS.Internal.Media.VisualTreeUtils.AsVisual(DependencyObject element, Visual& visual, Visual3D& visual3D)
   at MS.Internal.Media.VisualTreeUtils.AsNonNullVisual(DependencyObject element, Visual& visual, Visual3D& visual3D)
   at System.Windows.Media.Visual.IsAncestorOf(DependencyObject descendant)
   at Telerik.Windows.Controls.TabControl.RadTabControlBase`1.UpdateFocusOnSelectionChange() in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Controls\Navigation\TabControl\RadTabControlBase.cs:line 193
   at Telerik.Windows.Controls.TabControl.RadTabControlBase`1.HandleSelectionChanged(IList removedItems, IList addedItems) in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Controls\Navigation\TabControl\RadTabControlBase.cs:line 1025
   at Telerik.Windows.Controls.TabControl.RadTabControlBase`1.Selector_SelectionChanged(Object sender, SelectionChangedEventArgs e) in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Controls\Navigation\TabControl\RadTabControlBase.cs:line 364
   at Telerik.Windows.Controls.RadOutlookBar.Selector_SelectionChanged(Object sender, SelectionChangedEventArgs e) in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Controls\Navigation\OutlookBar\RadOutlookBar.cs:line 1092
   at System.Windows.Controls.SelectionChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.Primitives.Selector.OnSelectionChanged(SelectionChangedEventArgs e)
   at System.Windows.Controls.Primitives.Selector.InvokeSelectionChanged(List`1 unselectedItems, List`1 selectedItems)
   at System.Windows.Controls.Primitives.Selector.SelectionChanger.End()
   at System.Windows.Controls.Primitives.Selector.SelectionChanger.SelectJustThisItem(Object item, Boolean assumeInItemsCollection)
   at System.Windows.Controls.Primitives.Selector.OnSelectedIndexChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
   at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
   at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
   at Telerik.Windows.Controls.TabControl.RadTabControlBase`1.<SetSelectedindexOnStartUp>b__e() in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Controls\Navigation\TabControl\RadTabControlBase.cs:line 964
   at Telerik.Windows.Controls.TabControl.RadTabControlBase`1.SetSelectedindexOnStartUp() in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Controls\Navigation\TabControl\RadTabControlBase.cs:line 974
   at Telerik.Windows.Controls.TabControl.RadTabControlBase`1.RadTabControl_Loaded(Object sender, RoutedEventArgs e) in c:\Builds\WPF_Scrum\Release_WPF\Sources\Development\Controls\Navigation\TabControl\RadTabControlBase.cs:line 951
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
   at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
   at MS.Internal.LoadedOrUnloadedOperation.DoWork()
   at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
   at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
   at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
   at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.StartDispatcherInBrowser(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
  
Petar Mladenov
Telerik team
 answered on 11 Jul 2011
3 answers
359 views
hello.
Can i use radcalendar for generate persian calendar?
Yasin
Top achievements
Rank 1
 answered on 10 Jul 2011
4 answers
91 views
Guys, I notice that the navigation menu for the pane is not working as intended if there are 2 panes with the same name. They will appear in the menu as separate item but clicking on all of them will just focus/activate the first pane. For example, you have panes with header "A", "B","C", "A". They appear correctly in the menu but the A's focus are linked only to the first pane. How do I go about this?
Twistur
Top achievements
Rank 1
 answered on 08 Jul 2011
1 answer
97 views
Hi,
my ItemSource contains an ObservableCollection of Players, (taken from the GridViewComboBoxColumn-ChangeDataContext.zip)
where Player has an extra property, a class named CombinedID. It is defined as
public partial class CombinedID
          : INotifyPropertyChanged
          , IEquatable<CombinedId>
          , IComparable<CombinedId>
          , IEqualityComparer<CombinedId>
{
    private int DbIdField;
    private Guid GuidField;
 
    public CombinedID(int i, Guid guid){
        DbId = i;
        Guid = guid;
    }
 
    public int DbId {
        get {   return this.DbIdField; }
        set {
            if ((this.DbIdField.Equals(value) != true)) {
                this.DbIdField = value;
                this.RaisePropertyChanged("DbId");
            }
        }
    }
 
    public System.Guid Guid {
        get { return this.GuidField; }
        set {
            if ((this.GuidField.Equals(value) != true)) {
                this.GuidField = value;
                this.RaisePropertyChanged("Guid");
            }
        }
    }
 
    public event PropertyChangedEventHandler PropertyChanged;
    protected void RaisePropertyChanged(string propertyName) {
        PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
        if ((propertyChanged != null)) {
            propertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
 
    public override string ToString() {
        return DbId.ToString();
    }
 
    public bool Equals(CombinedID other) { // for IEquitable<T>
        if (other == null) return false;
        return this.DbId == other.DbId;
    }
    public bool Equals(CombinedID a, CombinedID b) { // for IEqualityComparer<T>
        if(a != null && b != null)
            return a.DbId == b.DbId;
        if (a == null && b == null) return true;
        return false;
    }
     
    public int CompareTo(CombinedID other) { // for IComparable<T>
        if (other == null) return 1;
        return this.DbId.CompareTo(other.DbId);
    }
 
    public override int GetHashCode()   { // for IEquitable<T>
        return DbId.GetHashCode() ^ Guid.GetHashCode();
    }
 
    public int GetHashCode(CombinedID a)     { // for IEqualityComparer<T>
        return a.GetHashCode();
    }
}

So, Player has the following properties (excerpt):
  • public int SortID
  • public string Name
  • public CombinedID ID

Unfortunately, despite all the implemented interfaces, the DataGrid column containing this CombinedId refuses sorting. It just does nothing.
The XAML code for the extra column is
<telerik:GridViewDataColumn DataMemberBinding="{Binding ID}"/>
and I have tried SortMemberPath="DbId" and SortMemberPath="ID.DbId"
but nothing seems to work.
Can you please give me a hint why this column cannot be sorted?
hermann
Top achievements
Rank 1
 answered on 08 Jul 2011
2 answers
149 views
I'm trying to bind RadGridView SelectedItems property to a property on my ViewModel using the custom Behavior approach mentioned in the Vladimir Enchev's blog post and it works fine.
However, when gridview contains several thousands items and I try to select them all, the time necessary to select all items is tens of seconds, sometimes even minutes. This is not unacceptable by ours customers.
Can you help me solve this problem?

Thanks

David Renza

PS: I've prepared sample project to show this behavior but there is no way to post it.
David Renza
Top achievements
Rank 1
 answered on 08 Jul 2011
2 answers
113 views
Hi Telerik,

I have implemented something similar to the Tree to Grid Drag that you have posted as an example on the RadControls for WPF page in my own project.  I need to be able to resize the Column Widths on the RadGridView, but I can no longer do that once I begin to write my own Drag And Drop handlers for the RadGridView.  Your example does the same thing that mine does.  It doesn't allow you to change the Column Widths or re-order the columns in the middle portion labeled "Order".

Please let me know if you have found a solution to this problem.

Thanks,
Scott
Scott
Top achievements
Rank 1
 answered on 08 Jul 2011
1 answer
220 views
Hi,
i have a - maybe - stupid question. My Application uses Entity Framework 4.1 with DBContext. In the MainWindow is a RadGridView bound to a QueryableCollectionView (Customers) to display Data.

<telerik:RadGridView x:Name="uxCustomerGrid" ItemsSource="{Binding Customers,BindsDirectlyToSource=True}" IsReadOnly="True" EnableColumnVirtualization="True" EnableRowVirtualization="true" SelectionMode="Extended" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False" CanUserDeleteRows="False" CanUserInsertRows="False" GridLinesVisibility="None" IsFilteringAllowed="False" ShowGroupPanel="False" RowStyle="{DynamicResource CustomerRowStyle}">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Kundennummer}" Header="Nummer"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Kundenname}" Header="Name" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding Ort.Bezeichnung}" Header="Ort" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding Ort.PLZ}" Header="PLZ" IsVisible="False" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding Einwohneranzahl}" Header="Einwohner" IsVisible="False" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>

        private QueryableCollectionView _customers;
 
        public QueryableCollectionView Customers
        {
            get { return _customers; }
            set
            {
                if (value != _customers)
                {
                    _customers = value;
                    OnPropertyChanged("Customers");
                }
            }
        }
 
....
 
this._context = new MiexUnitOfWork();
_context.Kunde.ToList();
this.Customers = new QueryableCollectionView(_context.Kunde.Local);

The user changes a single row of the grid via a ModalWindow. The Window has it's own dbcontext. After the user has closed the ModalWindow (and the changes are saved to the database) i wan't to refresh the grid in the parent's window.
I tried the following:
_context.Entry(_context.Kunde.Find(Key)).Reload()

This code forces the dbcontext to update the changed entry. But the changes are not reflected in the grid. I tried to call the Refresh() method of the QueryableCollectionView, but the grid still show's the old values.

How can i force the grid to show the changes made in the dbcontext?
Mike
Top achievements
Rank 2
 answered on 08 Jul 2011
4 answers
380 views
Hello,

I have in ribbon a RadRibbonDropDownButton which contains a usercontrol with tabcontrol and RadColorSelector. (to program predefined and personnalized color control).
Some where else i use a RadDropdownButton which contains the same color control.

I see some difference between the both :
   - in RadRibbonDropDownButton, when i choose a color on the colorselector, it close the dropdowncontent, not for RadDropdownButton.
   - in RadRibbonDropDownButton, when i click on tabitem, it will close the dropdowncontent until i add this code . For RadDropdownButton, even with the same code it always close the dropdowncontent.
<TabControl x:Name="tabcontrol" MouseDown="MousedownHandled" SelectionChanged="test">
private void MousedownHandled(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
      if (tabcontrol.SelectedIndex == 1) e.Handled = true;
}
 
private void test(object sender, SelectionChangedEventArgs e)
{
       if (e.OriginalSource == tabcontrol)   e.Handled = true;
}

the function "test" is called elsewhere i click on the control (if i click on a color in ColorSelector also ?!?)


Well, could you explain me
  • the difference of the both components
  • and also when should close the dropdowncontent, and how prevent from closing ?

Thanks
Aurore
I use 2011.1.419.35 dll
Petar Mladenov
Telerik team
 answered on 08 Jul 2011
6 answers
189 views
I think it’s very courageous of you to start with a “msWord-alike” RichTextBox.
You came with a very fine “word” example in the Demo with a lot of functionality. Great!
But of course, starting with this you can expect more questions and more wishes. We are never satisfied!  8-)
Questions like this:
- What about merging? 
- What about Header and Footer?
Iva Toteva
Telerik team
 answered on 08 Jul 2011
3 answers
181 views
My data items look like this:
Public Class ExportData
    Public Property MyDate As Date
    Public Property ItemType As String
 End Class
Now I'd like to get a stacked bar chart that groups the items by month and stacks the count of the different item types. For each month I would have a stacked bar that says for example  "Jan 11 = 3 items of type A, 4 items of type B, 5 items of type C".
Is this possible?

I tried to with the following XAML code to configure the chart:
<telerik:RadChart.SeriesMappings>
    <telerik:SeriesMapping x:Name="DataMapping" LegendLabel="Sales">
 
        <telerik:SeriesMapping.SeriesDefinition>
            <telerik:StackedBarSeriesDefinition ShowItemLabels="True" ShowItemToolTips="True" ItemToolTipFormat="#Y">
                <telerik:StackedBarSeriesDefinition.InteractivitySettings>
                    <telerik:InteractivitySettings HoverScope="Series" SelectionScope="None" />
                </telerik:StackedBarSeriesDefinition.InteractivitySettings>
            </telerik:StackedBarSeriesDefinition>
        </telerik:SeriesMapping.SeriesDefinition>
 
        <telerik:SeriesMapping.ItemMappings>
            <telerik:ItemMapping FieldName="ItemType" DataPointMember="YValue" AggregateFunction="Count" />
            <telerik:ItemMapping FieldName="MyDate" DataPointMember="XCategory" />
        </telerik:SeriesMapping.ItemMappings>
 
        <telerik:SeriesMapping.GroupingSettings>
            <telerik:GroupingSettings StackGroupFieldName="ItemType" ShouldFlattenSeries="True">
                <telerik:GroupingSettings.GroupDescriptors>
                    <telerik:ChartYearGroupDescriptor />
                    <telerik:ChartMonthGroupDescriptor />
                    <telerik:ChartGroupDescriptor Member="ItemType" />
                </telerik:GroupingSettings.GroupDescriptors>
            </telerik:GroupingSettings>
        </telerik:SeriesMapping.GroupingSettings>
 
    </telerik:SeriesMapping>
</telerik:RadChart.SeriesMappings>
Thanks for any ideas...
Nikolay
Telerik team
 answered on 08 Jul 2011
Narrow your results
Selected tags
Tags
GridView
General Discussions
Chart
RichTextBox
Docking
ScheduleView
ChartView
TreeView
Diagram
Map
ComboBox
TreeListView
Window
RibbonView and RibbonWindow
PropertyGrid
DragAndDrop
TabControl
TileView
Carousel
DataForm
PDFViewer
MaskedInput (Numeric, DateTime, Text, Currency)
AutoCompleteBox
DatePicker
Buttons
ListBox
GanttView
PivotGrid
Spreadsheet
Gauges
NumericUpDown
PanelBar
DateTimePicker
DataFilter
Menu
ContextMenu
TimeLine
Calendar
Installer and Visual Studio Extensions
ImageEditor
BusyIndicator
Expander
Slider
TileList
DataPager
PersistenceFramework
Styling
TimeBar
OutlookBar
TransitionControl
FileDialogs
Book
ToolBar
ColorPicker
TimePicker
MultiColumnComboBox
SyntaxEditor
VirtualGrid
NavigationView (Hamburger Menu)
Wizard
ExpressionEditor
WatermarkTextBox
DesktopAlert
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
LayoutControl
ProgressBar
Sparkline
TabbedWindow
ToolTip
CloudUpload
ColorEditor
TreeMap and PivotMap
EntityFrameworkCoreDataSource (.Net Core)
HeatMap
Chat (Conversational UI)
VirtualizingWrapPanel
Calculator
NotifyIcon
TaskBoard
TimeSpanPicker
BulletGraph
Licensing
WebCam
CardView
DataBar
FilePathPicker
Callout
PasswordBox
SplashScreen
Localization
Rating
Accessibility
CollectionNavigator
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Hiba
Top achievements
Rank 1
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Max
Top achievements
Rank 1
Veteran
Iron
Alina
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?