teleren/devto huggingface dataset:
How to Export HTML Table to Excel in ASP.NET Core using the XlsIO Library
Tags: webdev, csharp, dotnet
Published: 2023-08-09 10:32:30

See how to export HTML table to excel document in ASP.NET Core using the Syncfusion .NET Excel Library. In this video, I will demonstrate how to import the HTML table export that table into an excel worksheet and download the Excel document. 

Syncfusion Essential XlsIO is a high-performance and feature-rich .NET Excel framework to work with Microsoft Excel documents. This framework has an Excel creation and editing library that allows you to create, read, and edit Microsoft Excel files in any .NET application. It offers an Excel-inspired Spreadsheet UI control to create, edit, view, and format Excel documents. 

Its powerful conversion APIs make it easy to convert Excel files to PDF, images, and more. It's supported to create Excel documents from scratch and modify existing excel documents. Its support to import and export data and excel formulas. Supports creation and manipulation of Tables, Pivot Tables and Pivot Charts. Its ability to create and manipulate Conditional Formats and Data Validations. 

Create and manipulate Charts and Sparkline. Supports creation and manipulation of Tables, Pivot Tables and Pivot Charts. Fill data using Template Markers. Clone and merge Excel worksheets. Encrypt and decrypt excel document and convert excel worksheets t image. Its supports data filtering and data sorting and convert chart in a worksheet to image. 

Excel support to insert image and auto shapes and add comments and form controls. Ability to convert the excel workbook to PDF and convert Excel worksheet to HTML. Support to open and create CSV files. Its access the custom document properties of excel file and built-in document properties. 

**Product overview**: https://www.syncfusion.com/document-processing/excel-framework/net-core

**Documentation**: https://help.syncfusion.com/file-formats/xlsio/create-excel-file-csharp-vbnet

**Download example from GitHub**: https://github.com/SyncfusionExamples/XlsIO-Examples

{% youtube 8n9WdzA6rEQ %}
Python 100 Days Challange: Day 6 Project Reeborg Maze Game
Tags: journalentries, python, reeborg, beginners
Published: 2023-08-09 10:21:48

Expanding upon the concepts we covered on Day 6 of the 100-day Python course, where we delved into fundamental concepts like if/else conditions, loops (both for and while), and function declarations, we now have the opportunity to apply this knowledge to create an interactive game using Reeborg's World and Python. On Day 6, we honed our skills by crafting code for challenges such as Hurdle 1-4 and a complex Maze, culminating in a comprehensive final project.

To embark on this game-building journey with Reeborg's World, we must first establish a foundation by defining essential functions that will enable Reeborg the Robot to navigate through its environment effectively:

Turning 90 Degrees: We can command Reeborg to turn 90 degrees using the turn_left() function.

Turning Right: Achieving a right turn can be accomplished by executing the turn_left() command three times.

Moving Forward: To make forward progress, we employ the move() function.

Conditional Checks: Utilizing if/else conditions, we can determine whether the path ahead is clear or obstructed by a wall. We can also identify if there's a wall to the right.

While Loop: Incorporating a while loop allows us to execute instructions repeatedly until a specific goal is attained, ensuring that Reeborg reaches its destination as required by the game's mechanics.

**Here is the code for the Maze Project:**


```
`def turn_around():
    turn_left()
    

def turn_right():
    turn_left()
    turn_left()
    turn_left()
    
def maze():
    if right_is_clear():
        turn_right()
        move()
    elif front_is_clear():
        move()
    else:
        turn_left()

def jump_until():    # for hurdle 4 game --to handle dyanmic wall size ...change loop to try give it a try
    turn_left()
    while wall_on_right():
        move()
    turn_right()
    move()
    turn_right()
    while front_is_clear():
        move()
    turn_left()

while not at_goal():  #maze game
   maze()

`

```
How to define custom alias in zsh
Tags: zsh, linux, kubernetes, laravel
Published: 2023-08-09 10:16:05

If you're looking to enhance your command usage in a more streamlined manner, incorporating custom aliases can be a highly effective approach. These aliases provide a convenient way to simplify and expedite your workflow.

To begin, navigate to the `~/.zshrc` file. This file serves as the configuration file for the Zsh shell, allowing you to customize its behavior and add personalizations. You can access it by using the following command in your terminal:

```
vim ~/.zshrc
```
Once you have the `~/.zshrc` file open, you can proceed to define your custom aliases. Aliases allow you to create shortcuts for longer or frequently used commands. By assigning a shorter, more memorable name to a command, you can save time and effort in your day-to-day tasks.

Here's an example of how you can add aliases to your `~/.zshrc` file:

```
alias ka="kubectl get all -o wide"
alias ks="kubectl get services -o wide"
alias kap="kubectl apply -f "
```
In the above example, we've created three aliases: `ka`, `ks`, and `kap`. The `ka` alias invokes the command `kubectl get all -o wide`, while `ks` executes `kubectl get services -o wide`. Lastly, `kap` allows you to apply Kubernetes configuration files using the `kubectl apply -f` command.

Once you've defined your desired aliases, it's essential to inform Zsh to re-initialize itself with the updated `~/.zshrc` file. This ensures that your new aliases come into effect. To achieve this, execute the following command in your terminal:

```
source ~/.zshrc
```

By running the source command, Zsh reloads the configuration file, making your custom aliases immediately available for use.

Incorporating custom aliases into your workflow can significantly enhance your productivity and make your command-line experience more efficient. With these simplified shortcuts, you'll be able to execute complex commands with ease and speed, ultimately streamlining your development or administrative tasks.
Embracing Imperfection: Why You Should Start Applying Even When You Think You're Not Good Enough
Tags: python, java, javascript, career
Published: 2023-08-09 10:08:08

Hey there, fellow developers! 👋

Let's talk about a common phenomenon in our journey – the feeling of not being "good enough" to apply for certain opportunities. We've all been there, right? We often hold back from applying to that dream job or exciting project just because we think we lack some skills or experience. But here's the thing – that feeling is more common than you might think, and it shouldn't hold you back!

### The Perfection Paradox 🎯

Imagine this: You're scrolling through job listings or project opportunities, and you come across something that aligns with your interests. You start reading the requirements, and suddenly that little voice in your head says, "You're not ready for this. You need to learn more. You're not good enough." 🙅‍♂️

But here's the reality: **No one is ever 100% "ready" for anything.** The tech world is dynamic and constantly evolving. Even the most seasoned developers feel like they have more to learn. The catch is that waiting until you're "perfect" might mean missing out on incredible opportunities.

### The Learning Curve 📚

Think of your career as a journey, not a destination. Every new job, project, or challenge is a chance to learn and grow. By applying even when you feel you're not fully prepared, you're giving yourself the opportunity to dive into the learning curve head-on.

Remember that **skills and knowledge are acquired on the job** as well. You might not know everything right away, but you have the foundation to learn and adapt. It's okay to face challenges and uncertainties – they are stepping stones to progress.

### The Confidence Boost 💪

Applying for opportunities outside your comfort zone is a powerful way to build your confidence. Even if you don't get the position, going through the application process exposes you to different requirements and expectations. This knowledge is invaluable in shaping your future goals.

### Embrace Your Unfinished Journey 🛤️

Perfectionism can be paralyzing. Instead of aiming for perfection, aim to be adaptable. Embrace the fact that you're on a journey of continuous improvement. When you apply even when you feel like you're not "good enough," you're making a conscious decision to embrace the growth mindset that's essential for success in the tech industry.

So, my fellow developers, don't let that feeling of "not being good enough" hold you back. **Start applying, start learning, and start growing.** You'll be amazed at what you can achieve when you step out of your comfort zone.

Remember, the only way to bridge the gap between where you are and where you want to be is by taking action. And the journey towards "good enough" begins with a single step.

Keep coding, keep learning, and keep reaching for those stars! 🌟

P.S. If you've ever felt this way, drop a comment below and share your experience. Let's support each other on this journey!

Kaushit
[LinkedIn](https://www.linkedin.com/in/kaushit/)
[More Posts](https://dev.to/kaushit)
闭包
Published: 2023-08-04 03:19:54


## 什么是闭包

作用：能够在函数定义的作用域外，使用函数定义作用域内的局部变量，并且不会污染全局。

原理：基于词法作用域链和垃圾回收机制，通过维持函数作用域的引用，让函数作用域可以在当前作用域外被访问到

```js
function foo() {
  var a = 'hzfe'
  function bar() {
    console.log(a)
  }
  return bar
}

var baz = foo()
baz() // hzfe
```

在这个例子中，函数 bar 作为返回值返回后，在自己定义的词法作用域以外的地方执行。一般来说，在函数 foo 执行后，通常会期待函数 foo 的整个内部作用域被引擎回收机制销毁。而闭包可以阻止这件事情的发生。事实上内部作用域依然存在，因为函数 bar 本身在使用，所以并不会被回收。

在 JavaScript 中，每当创建一个函数，闭包就会在函数创建的同时被创建出来。

## 闭包的应用

无论何时何地，如果将函数作为返回值，就会看到闭包在这些函数中的应用。在定时器，事件监听器，ajax 请求，跨窗口通信，web workers 或者任何其他的异步/同步任务中，只要使用了回调函数，实际上就是使用闭包。使用闭包的例子可以参考实现节流防抖函数。

```js
var a = 'hzfe'
;(function IIFE() {
  console.log(a)
})()
```

通常认为立即执行函数（IIFE）是典型的观察闭包的典型例子，但严格来说并不是。虽然创建了闭包，但没有体现出闭包的作用。因为函数并不是在它本身的词法作用域以外执行的。 它在定义时所在的作用域中执行，而非外部作用域。

## 扩展

- [闭包 MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures)
- [垃圾回收机制](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Errors/Closed_Overlay_Requires_Arguments)
- [你不知道的 JavaScript](https://www.imooc.com/article/2907)
Would you rather choose Rust or Golang?
Tags: discuss, programming
Published: 2023-08-09 09:41:11

When it comes to programming languages, I am proficient in Python and JavaScript. However, I wanted to learn a language that deals with low-level stuff and thought of learning Rust. So far, I have enjoyed a lot about Rust including the concept of ownership, borrowing, structs and impls etc. I am learning Rust since I wanted to use it for a side project.

What are your opinions? Rust or Golang? I heard Golang is pretty good option when it comes to usage and the number of jobs that ask for Golang.
Welcome Thread - v237
Tags: welcome
Published: 2023-08-09 09:30:00

---
title: Welcome Thread - v237
published: true
description: Welcome to DEV! A thread of hellos and intros.
tags: welcome
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9gl6twd8r59cvwqlllw7.jpg
published_at: 2023-08-09 09:30
---

![Animated Welcome in blue and white on a black background](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/amuol42qc2l73739r690.gif)

---

1. Leave a comment below to introduce yourself! You can talk about what brought you here, what you're learning, or just a fun fact about yourself.

2. Reply to someone's comment, either with a question or just a hello. 👋 

3. If you are new to coding, want to help beginners in their programming journey, or just want another awesome place to connect with fellow developers, check out the [CodeNewbie Org](https://dev.to/codenewbieteam)!
How to install and test using appuploader
Published: 2023-08-09 09:18:58


1、 Installation testing
Firstly, let's take a look at installing and testing this module, and follow the instructions above.
Click on Test Equipment Management on the homepage
2、 Select IPA
Enter the "Installation Testing" page and select an IPA file (which must be a development type description file compiled and contain the device's UDID) to upload. 
3、 Installation testing
We have two ways to add
1. For those who have not paid for Apple 688 through USB installation, you can choose to download iTunes with the red circle below, and the method of automatically obtaining it by connecting the phone USB to the computer. 
2. For those who have already paid for Apple 688, you can choose the second method and simply scan the code to add it. 
SB
PS: Installation testing, the phone needs to open developer mode
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ap6djqjr6pgxuzwcceg2.png)
Managing Docker and Streaming Analytics Rules on Edge gateways
Tags: video, docker, iot, streaminganalytics
Published: 2023-08-11 07:00:11

---
title: Managing Docker and Streaming Analytics Rules on Edge gateways
published: true
date: 2023-08-09 09:17:00 UTC
tags: Video, docker, iot, streaminganalytics
canonical_url: https://tech.forums.softwareag.com/t/managing-docker-and-streaming-analytics-rules-on-edge-gateways/281948
---

{% embed https://www.youtube.com/watch?v=91oHFCybczE %}

## About

Numerous manufacturing procedures operate at high speeds, requiring minimal intervals between data generation and processing. Yet, to effectively monitor scattered devices and facilitate efficient administration, an Internet of Things (IoT) platform serves as a significant facilitator, providing rapid insights, responsive adjustments to evolving production conditions, and distribution across diverse processing strategies. The concept of sourcing this processing logic close to the origin of the data generation while also allowing the management of these entities is what we call the thin edge. In this video, we are going to show you a little demo, how Cumulocity can be used with a thin edge.


[Read full topic](https://tech.forums.softwareag.com/t/managing-docker-and-streaming-analytics-rules-on-edge-gateways/281948)
How to use Appuploader to submit and upload iOS applications:
Published: 2023-08-09 09:15:32

How to use Appuploader to submit and upload iOS applications:
Select IPA and Channel: On the submit upload page, select the IPA file. There are four available channels in the upper right corner: 1, 2, 3, and 'Old Channels'.
Set a dedicated password: Set a dedicated password for submission.
Upload IPA: Start the upload process by selecting the IPA file.
After successful upload, you will receive a feedback email from Apple containing further instructions.
Submit upload interface: This interface is mainly aimed at users who have already paid $99 to Apple. The free account cannot access this feature and will see a red circle prompt: "Your account has not yet paid Apple $99. You can only create a development certificate and cannot submit or upload for distribution. You cannot use Apple to log in, pay, or push notifications." Simply put, this means that the free account can only use the software for internal testing and cannot publish applications.
Note: If the submission fails due to firewall issues with your internet service provider, you can try using the 'old channel' or switch to a mobile hotspot or VPN.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sgjvztlpicj5wn1svdiv.png)
SET UP VIRTUAL ENVIRONMENT IN UBUNTU
Published: 2023-08-09 09:10:28

cd /etc/apache2/sites-available/


sudo cp 000-default.conf salespro.conf

sudo vim salespro.conf 

ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/Salespro
        ServerName servername_example
        <Directory "/var/www/html/Salespro">
                AllowOverride All
        </Directory>

--Add the new servername_example to list of hosts
sudo vim /etc/hosts
	For example, 127.0.0.1 servername_example

--Enable a new virtual host file
sudo a2ensite salespro.conf
	
--Restart the server
sudo systemctl restart apache2
OZEKI NG SMS Gateway
Published: 2023-08-09 09:07:35

Install Ozeki from the url https://ozekisms.com/p_2661-how-to-setup-ozeki-ng-sms-gateway-on-ubuntu-linux.html for Ubuntu
Other OS installation are also found on the same url.

--sudo apt-get install mono-*
--sudo apt-get install libmono-winforms2*
--cd /var/lib/
--sudo wget http://ozekisms.com/attachments/2661/OzekiNG_SMS_Gateway-3.15.6.tgz
--sudo tar -xzvf OzekiNG_SMS_Gateway-3.15.6.tgz
--sudo ln -s OzekiNG_SMS_Gateway-3.15.6 /var/lib/ozeking
--sudo iptables -I INPUT -p tcp --dport 9501 -j ACCEPT
--sudo iptables -I INPUT -p tcp --dport 9010 -j ACCEPT
--cd OzekiNG_SMS_Gateway-3.15.6/
--sudo mono OzekiNG.exe /run

sudo apt install guake -y

admin
abc123

Sample SMPP Connection Details

host = 30.170.254.90
port = 9010
username = should_created_username
password = should_created_password
system-type = SMPP
smpp-version=34
New level of control for error notifications in Inspector
Tags: webdev, productivity, devops, api
Published: 2023-08-09 09:00:29

The latest product update includes some changes in the configuration of error notifications. Now you can configure error occurrences notification separately for each error group and not only at global level.

Let me show you how this change ensures much more flexibility for error notifications.

## Error occurrences notifications (before)

Inspector works with two concepts dealing with errors: Error groups, and error occurrences.

When an exception is fired in your application Inspector generates a fingerprint of the error. Thanks to this hash Inspector can distinguish between brand new error groups or occurences of an error already detected.

You can receive "New Error" notification every time a new error group is detected. But there may be some scenarios where you want to be notified of every occurrence of a particular error.

Before this release you can configure error occurrences notification only at the notification channel level, enabling or disabling it globally for all error groups or none.

This is the section that you can find in any notification channel to configure what notification you want to propagate through the channel.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1q24g3dwsxxjsylm2vbk.png)

Until now you couldn't activate the error occurrence notification for each error group individually. I knew this was a limitation, so today we released the solution.

## Error occurrences notifications (now)

The flag on the notification channel configuration screen is always available. So you can choose in what channel this type of notification should be sent.

In addition to this you can now use the "bell" on each error in your list to turn on/off the notification for each occurrence.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w7pdu1zr4gy2qaebgk68.png)

Occurrences notifications will be sent through the channel where they were enabled.

This system also helps configuring different channels for different purposes. You can attach the Mail channel to receive notifications only for new errors, and a Webhook channel to send occurrences notification to an external reporting system.

Remember that notifications for error occurrences can flood your channel with messages. So take care of this aspect enabling this type of notifications.

## New to Inspector? Try it for free now

Are you responsible for application development in your company? Consider trying my product [Inspector](https://inspector.dev/) to find out bugs and bottlenecks in your code automatically. Before your customers stumble onto the problem.

Inspector is usable by any IT leader who doesn’t need anything complicated. If you want effective automation, deep insights, and the ability to forward alerts and notifications into your preferred messaging environment try Inspector for free. [Register your account](https://app.inspector.dev/register).

Or learn more on the website: [https://inspector.dev](https://inspector.dev)
Ask the Experts: Understanding the API Context Maturity Model - Level 2 - Authorized API Calls
Published: 2023-08-09 09:00:00

**By: Mayur Upadhyaya & Jamie Beckland**

Welcome back to our 'Ask the Experts: Understanding the API Context Maturity Model' series. We've made our way up from open public API calls to authenticated API calls, and now we're ready to unpack Level 2 - Authorized API Calls. As a reminder, we have distilled key comments from the hundreds of technology leaders we consulted to develop the [Context Maturity Model](https://bycontxt.com/blog/introducing-the-api-context-maturity-model?utm_source=DevTo), and we are sharing their thoughts anonymously to give you the most unfiltered view of the current state of APIs.

After establishing an authentication system at Level 1, the next challenge for organizations is to establish an authorization system. With authorization in place, API calls can be made by authenticated users with specific permissions. This reduces the risk of users accessing data or functions that they aren't supposed to, adding another layer of security and control to the API environment.

A CTO of a fintech start-up shared their experience moving to Level 2. "After incorporating authentication measures, we soon realized the need for further granularity in API access. We needed to ensure that authenticated users could only access data and functions relevant to their roles. Transitioning to authorized API calls helped us achieve that."

This level of authorization is crucial in environments where data sensitivity varies or where roles differ significantly in their access requirements. For instance, an executive at a multinational banking corporation highlighted how implementing authorization measures was a game-changer in their highly regulated industry.

They said, "In our industry, data sensitivity varies enormously, and so does role-based access requirements. With authorized API calls, we were able to ensure that our employees could access only the data and functions that were pertinent to their work. This move dramatically improved our data security posture."

However, like every step in the maturity model, Level 2 comes with its own set of challenges. The more granular the access control, the more complex the system can become. Organizations often struggle with managing a large number of roles and permissions, which can lead to misconfigurations.

In our next post, we'll delve into Level 3 - Purpose and Use Defined API Calls, where we will discuss how organizations can deal with complex role and permission challenges by defining the purpose and use of each API call.

Till then, stay tuned, and as always, feel free to reach out for more insights on API security and best practices.