Monday, March 23, 2020

Another hardware post: Dell Laptop Model Numbers

Previous Models[edit]

xx90 Models (2018)[edit]

  • 7490: 14.0" Ultraportable (7th gen Core i38th gen Core i5/i7)
  • 7390: 13.3" Ultraportable (7th gen Core i3/i5, 8th gen Core i5/i7)
  • 7390 2-in-1: 13.3" Ultraportable 2-in-1 (8th gen Core i3, 8th gen Core i5/i7)
  • 7290: 12.5" Ultraportable (7th gen Core i3/i5, 8th gen Core i5/i7)
  • 5591: 15.6" High-Performance (8th gen Core i5/i7)
  • 5590: 15.6" Mainstream (7th gen Core i3/i5, 8th gen Core i5/i7)
  • 5491: 14.0" High-Performance (8th gen Core i5/i7)
  • 5490: 14.0" Mainstream (7th gen Core i3/i5, 8th gen Core i5/i7)
  • 5495: 14.0" Mainstream (AMD Ryzen Pro Mobile: 3 2300U, 5 2500U, 7 2700U)
  • 5290: 12.5" Mainstream (8th gen Core i5/i7)
  • 5290 2-in-1: 12.5" Mainstream 2-in-1 (7th gen Core i3/i5, 8th gen Core i5/i7)
  • 3590: 15.6" Essential (7th gen Celeron/Core i3/i5, 8th gen Core i5/i7)
  • 3490: 14.0" Essential (7th gen Celeron/Core i3/i5, 8th gen Core i5/i7)
  • 3390 2-in-1: 13.3" Essential 2-in-1 (7th gen Pentium/Core i3, 8th gen Core i5)

xx80 Models (2017)[edit]

  • 7480: 14.0" Ultraportable (7th gen Core i3/i5/i7)
  • 7389: 13.3" 2-in-1 Ultraportable (7th gen core i3/i5/i7)
  • 7380: 13.3" Ultraportable (7th gen Core i3/i5/i7)
  • 7285: 12.5" 2-in-1 Ultraportable (7th gen Core i3/i5/i7)
  • 7280: 12.5" Ultraportable (7th gen Core i3/i5/i7)
  • 5580: 15.6" Mainstream (7th gen Core i5/i7)
  • 5480: 14.0" Mainstream (7th gen Core i5/i7)
  • 5289: 12.5" Convertible Ultraportable 2-in-1, non-detachable keyboard (7th gen Core i3/i5/i7)
  • 5285: 12.5" Convertible Ultraportable 2-in-1, detachable keyboard (7th gen Core i3/i5/i7)
  • 5280: 12.5" Mainstream (7th gen Core i5/i7)
  • 3580: 15.6" Essential (7th gen Celeron/Core i3/i5/i7)
  • 3480: 14.0" Essential (7th gen Celeron/Core i3/i5/i7)
  • 3380: 13.3" Essential (7th gen Celeron/Core i3/i5/i7)
  • 3189: 11.6" Education Convertible 2-in-1 (Pentium N4200 Intel 7265, Celeron N3350)
  • 3180: 11.6" Education (Celeron N3350)

Exx70 Models (2016)[edit]

  • E7470: 14.0" Ultraportable (6th gen Core i3/i5/i7)
  • E7270: 12.5" Ultraportable (6th gen Core i3/i5/i7)
  • 7370: 13.3" Ultraportable (6th gen Core m3/m5/m7)
  • 7275: 12.5" Ultraportable 2-in-1 (6th gen Core m3/m5/m7)
  • E5570: 15.6" Mainstream (6th gen Core i5/i7)
  • E5470: 14.0" Mainstream (6th gen Core i5/i7)
  • E5270: 12.5" Mainstream (6th gen Core i5/i7)
  • 5175/9: 10.8" Ultraportable 2-in-1 (6th gen Core m5/m7)
  • 3570: 15.6" Essential (6th gen Celeron/Core i3/i5/i7)
  • 3470: 14.0" Essential (6th gen Celeron/Core i3/i5/i7)
  • 3380: 13.3" Essential (6th gen Core i3)
  • 3379: 13.3" Essential 2-in-1 (7th gen Core i3/i5)

Exx50 Models (2015)[edit]

  • E7450: 14.0" Ultraportable (5th gen Core i3/i5/i7)
  • Latitude 13 7350: 13.3" Convertible Ultraportable 2-in-1 Tablet (5th gen Core M)
  • E7250: 12.5" Ultraportable (5th gen Core i3/i5/i7)
  • E5550: 15.6" Mainstream (5th gen Core i3/i5/i7)
  • E5450: 14.0" Mainstream (5th gen Core i3/i5/i7)
  • E5250: 12.5" Mainstream (5th gen Celeron/Core i3/i5/i7)
  • E3550: 15.6" Essential (5th gen Celeron/Core i3/i5/i7)
  • E3450: 14.0" Essential (5th gen Celeron/Core i3/i5/i7)

Exx40 Models (2013/2014)[edit]

  • E7440: 14.0" Ultraportable (4th gen Core i3/i5/i7 ULV)
  • E7240: 12.5" Ultraportable (4th gen Core i3/i5/i7 ULV)
  • E6540: 15.6" Mainstream (4th gen Core i3/i5/i7 Mobile)
  • E6440: 14.0" Mainstream (4th gen Core i3/i5/i7 Mobile)
  • E5540: 15.6" Mainstream (4th gen Core i3/i5/i7 ULV)
  • E5440: 14.0" Mainstream (4th gen Core i3/i5/i7 ULV)
  • E3540: 15.6" Essential (4th gen Core i3/i5/i7 ULV)
  • E3440: 14.0" Essential (4th gen Core i3/i5/i7 ULV)

Exx30 Models (2012/2013)[edit]

  • E6530: 15.6" Mainstream (3rd gen Core i3/i5/i7)
  • E6430: 14.0" Mainstream (3rd gen Core i3/i5/i7) (Ivy bridge processor)
  • E6330: 13.3" Mainstream (3rd gen Core i3/i5/i7)
  • E6230: 12.5" Mainstream (3rd gen Core i3/i5/i7)
  • E5530: 15.6" Essential (3rd gen Core i3/i5/i7)
  • E5430: 14.0" Essential (2nd gen core i3) or (3rd gen Core i3/i5/i7 year 2014)
  • 6430u: 14.0" Ultraportable (3rd gen Core i3/i5/i7) [no standard docking, only over WiGi docking station D5000 and integrated dell wifi card ]

Exx20 Models (2011/2012)[edit]

  • E6520: 15.6" Mainstream (2nd gen Core i3/i5/i7)
  • E6420: 14.0" Mainstream (2nd gen Core i3/i5/i7)
  • E6320: 13.3" Ultraportable (2nd gen Core i3/i5/i7)
  • E6220: 12.5" Ultraportable (2nd gen Core i3/i5/i7)
  • E5520: 15.6" Essential (2nd gen Core i3/i5/i7)
  • E5420: 14.0" Essential (2nd gen Core i3/i5/i7)
  • E5520m: 15.6" Value (Celeron/Core2Duo)
  • E5420m: 14.0" Value (Celeron/Core2Duo)
  • E6420 XFR: 14.0" Fully Rugged (2nd gen Core i5/i7)
  • E6420 ATG: 14.0" Semi-Rugged (2nd gen Core i5/i7)

Exx10 Models (2010/2011)[edit]

  • E6510: 15.6" Mainstream (1st gen Core i3/i5/i7)
  • E6410: 14.1" Mainstream (1st gen Core i3/i5/i7)
  • E6410 ATG: 14.1" Semi-Rugged (1st gen Core i5/i7)
  • E5510: 15.6" Essential (1st gen Core i3/i5/i7)
  • E5410: 14.1" Essential (1st gen Core i3/i5/i7)
  • E4310: 13.3" Ultraportable (1st gen Core i3/i5/i7)

Exx00 Models (2008/2009)[edit]

  • E6500: 15.4" Mainstream (Core2Duo)
  • E6400: 14.1" Mainstream (Core2Duo)
  • E6400 ATG: 14.1" Semi-Rugged (Core2Duo)
  • E6400 XFR: 14.1" Fully Rugged (Core2Duo)
  • E5500: 15.4" Essential (Celeron/Core2Duo)
  • E5400: 14.1" Essential (Core2Duo)
  • E4300: 13.3" Ultraportable (Core2Duo)
  • E4200: 12.1" Ultraportable (Core2Duo)

Other Models[edit]

  • XT3: 13.1" Convertible Touch Tablet & Pen (Core i3/i5/i7) –Release Date: August 2011
  • XT2: 12.1" Convertible Touch Tablet & Pen (Core2Duo ULV)
  • XT2 XFR: 12.1" Convertible Touch Tablet & Pen –Fully Rugged (Core2Duo ULV)
  • 2100 10.1" Netbook
  • 2110 10.1" Netbook
  • 2120 10.1" Netbook
  • Z 16.0" Thin and Light

Improve Your Debugging Skills with Chrome DevTools

Once in a while you come across an article that you had wished you had seen years ago.

From:
https://www.telerik.com/blogs/improve-your-debugging-skills-with-chrome-devtools

Also see: https://www.telerik.com/support/kb/aspnet-ajax/details/different-appearance-in-internet-explorer-on-local-and-production-servers


Have you ever had trouble with incorrectly executed JavaScript? Have you ever struggled with fine-tuning the CSS of the elements on your web page? Are you annoyed every time you test your web page on multiple different mobile devices?
If the answer to at least one of the questions is "yes," then this blog post is meant for you. Check out our best practices and tips which will help you to deal with these struggles and boost your performance.
Using the Chrome DevTools, you can easily modify the appearance and functionality of the Telerik UI for ASP.NET AJAX components, or other UI framework components like Kendo UI widgets, on the fly. Most of the tips and tricks are applicable to other browsers developer tools too, and will be presented with the help of the RadGrid in Telerik UI for ASP.NET AJAX.

On This Page

Update: If you're looking for even more advanced tips and tricks, be sure to check out the second post in this series.

Inspect the Generated HTML of a Control

When you are using prepared controls and components, sometimes you need to know the structure of the generated HTML to get familiar with its rendering so you can fine-tune it to blend in your project. This can be done by inspecting the HTML using the Elements panel of Chrome DevTools.
There are a few possible approaches to check the rendering of a control:
  • Right-click an element and select the Inspect Element from the context menu. That will open Chrome DevTools and highlight the element that you clicked on.
  • Click the Inspect Element button (Ctrl+Shift+Cinspect-icon on the top left corner of Chrome DevTools and hover over the control.
  • Right-click on an element logged in the console and choose "Reveal in Elements panel."
Inspect Elements
Figure 1. Inspect generated DOM elements

Pro Tips

  • You can edit the HTML and the HTML attributes of an element on the fly by double-clicking an element's attribute in the Elements panel or right-clicking the element and choosing "Add attribute", "Edit attribute" or "Edit as HTML" option from the context menu.
  • You can modify the DOM hierarchy by selecting an element in the Elements panel and then dragging it to the desired location

See the Applied Styles

When styling the page, sometimes you need to tweak the rules like padding, margin or color a little to get the perfect appearance. The side bar of the Elements panel has the Styles and Computed tabs, which allow you to dynamically change the applied styles to the selected element in the Elements panel, and even find the origin of the style rule. It also allows you to filter the styles, force different states (:hov) such as hoveredactivefocused, add/remove classes easily (:cls). This is also useful in scenarios where the layout or appearance of the control is broken to find out which style is breaking the design.
Check Applied Styles
Figure 2. See the styles applied to the DOM elements

Pro Tips

  • You can use the keyboard arrows to increase/decrease numeric values.
  • You can use the color picker when setting color values to some properties.
Show Color Picker
The computed tab gives you visual representation of the size of the element along the borders, margins and paddings:
Computed Tab Size Visual Representation

Get the Client-Side Reference of a Control

Getting a reference to the client-side object of a control is a powerful technique and can save you precious time, because it can reveal all currently available properties and methods on the fly.
Let's try it out by following the steps below:
  1. Inspect the rendered HTML of a control, using the skill we acquired earlier when we inspected the generated HTML of the RadGrid.
  2. Get the value of the ID attribute of the element which has a class equal to control name (i.e.class="RadGrid").
  3. Use the obtained ID value as a parameter to the $find() method. The result of the $find() method will give us a reference to the control's client object.
Find Grid Reference
Figure 3. Get an object reference of a RadGrid client-side object
The article, Get Client-side Reference to a Control Object, demonstrates different approaches which we can use directly in the browser console.

Pro Tips

  • $telerik.$(".RadGrid")[0].control returns the client object reference of the first RadGrid on the page. The $telerik.$(".RadGrid")[0] part returns the element we were looking for in order to get its ID.

Get IntelliSense for the Client-Side Object

The result of the $find() method is a RadGrid and now when we have a reference to the control, we can see its API using the autocomplete suggestions. To see the "IntelliSense", you should simply assign the result to a variable.

Pro Tips

  •  and  in the console shows the previous/next executed line.
  • Ctrl+Space opens the suggestions menu.
  • console.table(objectReference,['index']) in the console lists all available properties and methods. In Google Chrome, you can skip the console. and simply use, table(objectReference,['index']).
Show Api And Get Intellisense
Figure 4. Show the API of the Grid client-side object and view auto-complete suggestions

Debug JavaScript

When your page, functionality or component does not behave as expected, these debugging skills can help you investigate and understand what is going wrong and fix it.
There are a few different approaches to activate a debugger in a JavaScript function:
  • Add a debugger; statement in the function's declaration. Unfortunately, it is not that easy with built-in functions of prepared components, because you don't always have access to the source code.
  • Call debug(functionReference) in the console. This is equal to adding a debugger; statement on the first line of the function declaration.
  • Line-of-code breakpoints that Chrome DevTools offer. To add them, you can go to the code in the Sources panel and click the line number. The left click will add a breakpoint and the right-click allows you to set a conditional breakpoint (hit only if the given expression evaluates to true). The conditional breakpoints are very useful for debugging loops
Add Line Of Code Breakpoint
Figure 5. Adding Line of Code breakpoints

Pro Tips

  • JavaScript errors are logged in the console. It is always a good practice to look for these errors since they can decrease the page's performance or even break the interaction and functionality of the application.
  • To see the file containing a function in the Sources panel and highlight the line where it is declared, you can log the function in the console and left-click the option. The same result is achieved by right-clicking the logged function and choosing "Show function definition" from the context menu.
  • Use the F8 (unpause), F10 (step over), F11 (step into) shortcuts when debugging.
  • Right-click on a line of code and choose "Continue to here" to create the equivalent effect of putting in a breakpoint, unpausing debugging and then removing the breakpoint after it is hit.
  • Right-click on an expression or selected text to show a context menu with the "Evaluate in console" and "Add selected text to watches" options.
  • Press the {} button to prettify the code in the source file.
Pretty Print Icon

Simulate Mobile Device Rendering

Do you know the struggle of changing various devices to check how your page will be rendered on a mobile device? The Device Mode functionality of Chrome DevTools, referred to also as "Mobile Mode" in the blog post, allows you to test your site's responsive design across multiple screen sizes and resolutions, as well as to accurately simulate mobile device input for touch events, device orientation and geolocation. As a bonus, it also changes the User agent string as if the request is from a mobile browser.
The best part of using the Device Mode is that you can use Chrome DevTools, so you can apply all your debugging skills as if it is a desktop site. And you don't even need to plug a single device to your development machine.
To activate the Mobile Mode, you can press the Toggle Device Mode button device-mode-off. Keep in mind that when toggling between the modes, you might need to refresh the page to activate it properly.
Mobile Mode
Figure 6. Browser appearance in Device Mode

Pro Tips

  • You can change the Dock side of the developer tools to the left or right side when simulating a mobile device in Portrait mode.
  • There is a predefined set of popular devices in the dropdown above the simulator which you can use to simulate various device sizes.

Inspect Network Requests

Sometimes you need to check the parameters of the request to the server, or see what the content and the format of the response is. You can do that in the Network panel:
Network Requests Figure 7. Inspect Network requests

Pro Tips

  • Enable logging of the XHR requests in the console. That will make the XHR requests more easily visible in the console, and left-clicking the result will navigate you directly to that request in the Network panel. Note: Leave "Hide network" unchecked.
  • Check the Disable the cache checkbox. This will prevent the caching of files and requests and can save you some time and troubles when a change made on the server is not applied on the client. Another option to clear the cache is refreshing the page with Ctrl+F5 instead of just F5.
enable XHR
You can imitate a slow connection, which is a very nice way to emulate a mobile connection, by changing the option in the "Online" dropdown in the network tab:
Network Throttling

Wrap Up

Chrome DevTools is a powerful addition to the developer's bag of tricks. In this article, we examined different productivity and debugging techniques, and best practices which will allow you to better understand how your web apps and components work. We've covered how to troubleshoot, inspect and debug them, and how to modify their look and appearance on the fly directly in the browser.
However, that's only a small part of our dev arsenal. What other tools and tricks do you use? It would be great to hear you share your secrets from your own repertoire in the comments section below.
For more, keep reading our next blog post in this series for additional tips and tricks from our internal development practices.


ASP.NET AJAX : Ways to access controls in client-side

See:
https://docs.telerik.com/devtools/aspnet-ajax/general-information/get-client-side-reference


Get Client-side Reference to a Control Object

This article shows how to get a client-side reference to a Telerik® UI for ASP.NET AJAX control and use its client-side API.
You can quickly navigate through the sections from here:
The UI for ASP.NET AJAX controls are created by implementing the IScriptControl interface and have the lifecycle of MS AJAX-based controls. Thus, they are initialized during the Sys.Application.init event and the instance of the control can be accessed during the Sys.Application.load event at the earliest. You can see how in the Important MS AJAX Events section.

Using the MS AJAX Approach

MS AJAX exposes the Sys.Application.findComponent method that enables you to get the client-side reference of an MS AJAX-based control in the client via JavaScript. You can also use its shortcut—$find()—as shown in Example 1.
Example 1: Using the $find method to get the control's client-side reference.
<telerik:RadPushButton runat="server" ID="RadButton1" Text="Button" OnClientClicked="showRadWindow" AutoPostBack="false" />

<telerik:RadWindow RenderMode="Lightweight" runat="server" ID="RadWindow1">
    <ContentTemplate>
        <p>Some content.</p>
    </ContentTemplate>
</telerik:RadWindow>

<script>
    function showRadWindow(sender, args) {
        var radWindow = $find("<%= RadWindow1.ClientID %>");
        radWindow.show();
    }
</script>

Using Plain JavaScript Methods

Typically, when an MS AJAX-based control (like the ones from the UI for ASP.NET AJAX suite) renders on the client, its client-side reference is assigned to the wrapper DOM element and exposed through the control property.
This means you can use the MS AJAX $get() or the native document.getElementById() methods and get the instance via the control property. See Example 2 and Example 3.
We recommend you use server-side scripting tags and get the dynamically created client ID of the control (<%= [ControlID].ClientID %>). If, however, you do not have access to the server-side instance of the control, see the options in the Using jQuery Selectors section.
Example 2: Using the getElementById method to get the control's client-side reference.
<telerik:RadPushButton runat="server" ID="RadButton1" Text="Button" OnClientClicked="showRadWindow" AutoPostBack="false" />

<telerik:RadWindow RenderMode="Lightweight" runat="server" ID="RadWindow1">
    <ContentTemplate>
        <p>Some content.</p>
    </ContentTemplate>
</telerik:RadWindow>

<script>
    function showRadWindow(sender, args) {
        var radWindow = document.getElementById("<%= RadWindow1.ClientID %>").control;
        radWindow.show();
    }
</script>
Example 3: Using the $get method to get the control's client-side reference.
<telerik:RadPushButton runat="server" ID="RadButton1" Text="Button" OnClientClicked="showRadWindow" AutoPostBack="false" />

<telerik:RadWindow RenderMode="Lightweight" runat="server" ID="RadWindow1">
    <ContentTemplate>
        <p>Some content.</p>
    </ContentTemplate>
</telerik:RadWindow>

<script>
    function showRadWindow(sender, args) {
        var radWindow = $get("<%= RadWindow1.ClientID %>").control;
        radWindow.show();
    }
</script>

Using jQuery Selectors

Often controls are added via user controls, content templates and other similar techniques, or you need to access the reference in a script file (where server-side scripting is not possible). In such scenarios, IDs are generated dynamically and getting the client-side reference from master or parent pages cannot be done by accessing the ClientID property of the control's server-side instance.
With the help of the included jQuery, you can use the attributeEndsWith selector to get the DOM element and access the client-side instance even by using the server-side ID only.
If the same server-side ID is used with multiple controls, jQuery will return all elements that match the same ending value. You should handle scenarios like this according to the exact requirements and scenario.
Example 4: Using the attributeEndsWith selector to get the client-side instance of a control.
<telerik:RadPushButton runat="server" ID="RadButton1" Text="Button" OnClientClicked="showRadWindow" AutoPostBack="false" />

<telerik:RadWindow RenderMode="Lightweight" runat="server" ID="RadWindow1">
    <ContentTemplate>
        <p>Some content.</p>
    </ContentTemplate>
</telerik:RadWindow>

<script>
    function showRadWindow(sender, args) {
        var radWindow = $telerik.$("[id$='RadWindow1']").get(0).control;
        radWindow.show();
    }
</script>
You can use other selectors for the ID (e.g., contains), or you can even use the CSS class where you can assign to a control or its parent to build the desired jQuery selector.

Using Telerik Methods

You can also use the $telerik.findControl() method that is exposed in the Telerik Static Client Library.
Example 5: Using the $telerik.findControl method to get the control's client-side reference.
<telerik:RadPushButton runat="server" ID="RadButton1" Text="Button" OnClientClicked="showRadWindow" AutoPostBack="false" />

<asp:Panel runat="server" ID="Panel1">
    <telerik:RadWindow RenderMode="Lightweight" runat="server" ID="RadWindow1">
        <ContentTemplate>
            <p>Some content.</p>
        </ContentTemplate>
    </telerik:RadWindow>
</asp:Panel>

<script>
    function showRadWindow(sender, args) {
        var parentElement = $get("<%= Panel1.ClientID%>");
        var radWindow = $telerik.findControl(parentElement, "<%= RadWindow1.ClientID %>");
        radWindow.show();
    }
</script>

Important MS AJAX Events

The client-side instances of the Telerik® UI for ASP.NET AJAX controls are initialized after their scripts are loaded (after Sys.Application.init). The earliest event that you can use to reference the client-side instance of a control is the Sys.Application.load event.
Example 6: Using the Sys.Application.load event to get the instance.
<telerik:RadWindow RenderMode="Lightweight" runat="server" ID="RadWindow1">
    <ContentTemplate>
        <p>Some content.</p>
    </ContentTemplate>
</telerik:RadWindow>

<script>
    Sys.Application.add_load(showRadWindow)

    function showRadWindow() {
        var radWindow = $find("<%= RadWindow1.ClientID %>");
        radWindow.show();
    }
</script>
Example 7: Using server-side techniques to interact with a control's client-side instances.
<telerik:RadWindow RenderMode="Lightweight" runat="server" ID="RadWindow1">
    <ContentTemplate>
        <p>Some content.</p>
    </ContentTemplate>
</telerik:RadWindow>
protected void Page_Load(object sender, EventArgs e)
{
    string script = "function f(){$find(\"" + RadWindow1.ClientID + "\").show(); Sys.Application.remove_load(f);}Sys.Application.add_load(f);";
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", script, true);
}
Using native DOM events (like window.load or jQuery's $(document).ready may not give you the expected results. Such events are usualy prior to the Sys.Application.load event and cannot guarantee that the control instances are initialized.