20 de febrero, comienzan las nuevas politicas de youtube – La opinión de un desarrollador de software

Esta es mi opinión sobre las nuevas políticas de youtube, que comienzan el 20 de febrero del 2018.

Como saben yo tengo algunos videos en youtube, por lo cual no me considero un youtuber (aun), y por lo mismo no lo considero un negocio (aun).

Con los pocos videos que yo tengo en youtube, gano la súper modesta cantidad de 20 a 70 pesos mexicanos mensuales (1 – 3.5 usd), dependiendo las visitas que tenga en el mes claro está. Algo distinto con adsense en este blog donde si saco más de 10 veces esa cantidad (Ya hablare de esto en otra entrada).

Hace un mes me llego un correo de que mis videos ya no serían monetizados ya que no cuento con los nuevos límites mínimos que debe tener un canal que son 4000 horas y al menos 1000 suscriptores (en este momento tengo 260 suscriptores (vengo del futuro y en noviembre 2019 llegas a los 10k (vengo de un futuro más lejano y el 7 de junio del 2020 llegaste a los 20k (vengo de un futuro mucho más lejano y el 7 de septiembre llegaste a los 62k (VENGO DE UN FUTURO AUN MÁS LEJANO Y LLEGASTE A 110K, recibiste una placa, siendo 7 de septiembre del 2022))))), puedes suscribirte a mi canal para ser el número 261 dando clic aquí), una cantidad absurda para personas que comiencen a crear contenido este año, es decir, los canales nuevos deberán esforzarse mucho más para poder sacar provecho.

Primero hablare de las cosas negativas y finalizare con los aspectos positivos.

Últimamente las tendencias en youtube es todo por lo cual yo deje de ver televisión hace años: sexismo, chismes, futbol (no me gusta, lo siento), novelas etc; lo que es ridículo es que contenido como ese sean canales con millones de suscriptores, canales que muchas veces solo copian y pegan la basura que ya se encuentra en televisión.

Youtube se ha convertido en una guerra de youtubers, donde se viven de envidia y palabrería entre youtubers, criticando trabajo mutuo, y lo peor, hasta hacen video de esto para obtener visitas, nuevamente, utilizan la misma fórmula por la cual huí de la televisión, crear controversia. Ustedes saben que youtubers son, ya que este tipo de guerras infantiles las hay en todas las áreas de entretenimiento rondando por esta red social.

Si tú quieres comenzar con tu canal y esperar ganar mucho dinero inmediatamente, si lo quieres hacer solo por dinero, haz videos estúpidos, haz videos sexistas, y haz videos controversiales, y veras como te llenas de suscriptores. Ya que estas nuevas políticas tienden a que los nuevos canales sean de contenido basura, ya que la mayoría hace videos para ganar un poco de dinero, y quieren  ganar dinero rápido y sin esfuerzo. Ya tienes la clave, adelante.

De las cosas buenas que comenzaran a surgir con estas políticas, es contenido más apropiado para todas las edades (espero), ya que hay mucha basura que si yo tuviera hijos no me gustaría que lo vieran. Haciendo la restricción de un video que sea monetizado y ser revisado por un ser humano (es lo que dicen), se podrá filtrar el contenido no apropiado para toda las edades (todo comenzó por el tipo que grabo un cadáver).

Existe otro punto positivo en esto, que no todas las personas que hacemos videos, deseamos ser millonarios con esto, sino solo compartir el conocimiento o promover algún producto que tenemos ya sea gratuito o de compra (yo promuevo los dos), y el punto positivo, es que, como no ganamos ni vivimos de esto, seguiremos haciendo material de calidad, ya que las políticas a algunas personas que hacemos videos, realmente nos valen madre (como decimos en México), pero como espectador, estaré al tanto de como el material de entretenimiento en youtube decae o mejora, algo que solo el tiempo dirá.

¿Cómo eliminar las sesiones o conexiones sobre una Base de datos en SQL Server?

Cuando deseamos eliminar una base de datos algunas veces Sql Server no nos lo permite ya que la base de datos está siendo utilizada. Esto puede ser por sistemas que no cierran la conexión o procesos que están conectándose las 24 horas del día.

Para eliminar las conexiones, primero debemos saber cuáles son, y para ello puedes ejecutar la siguiente consulta, remplazando el nombre de tu base de datos en la instrucción Where.


SELECT   *
FROM     sys.dm_exec_sessions
WHERE    DB_NAME(database_id) = 'Nombre_De_Tu_BaseDeDatos'

Una vez que hemos obtenido algo parecido a la siguiente lista:

Debemos ejecutar la función Kill seguida del número de la sesión (el primer campo de la imagen) a eliminar:


KILL 97

Y listo, de esa manera se elimina un proceso que nunca fue cerrado.

¿Cómo aplicar un update a varias filas por medio de EntityFramework.Extended? C# .Net

Existen varias formas de modificar varios elementos en conjunto por medio de Entity Framework.

Aquí te muestro como hacerlo sin utilizar una librería externa, es decir, modificar varios objetos sin EntityFramework.Extended.

Igual te recuerdo que utilizar EntityFramework.Extended como Entity Framework nativo no las recomiendo cuando vas a modificar más de mil datos, mejor utiliza un procedimiento almacenado.

La ventaja que veo al utilizar EntityFramework.Extended es un aspecto de sintaxis ya que de esta manera evitamos hacer el recorrido de los elementos e ir modificando objeto por objeto, con esta librería es de una forma más sencilla para el programador.

Para el siguiente ejemplo,  supongamos que tenemos una tabla llamada Persona, que debemos modificar la edad a 10 años de todas las personas de Nombre “Juan”. Seria de la siguiente manera:


using(MiEntity db= new MiEntity()){

  //realizamos la modificación sin foreach, ni SaveChanges()
  db.Persona.Where(d => d.Nombre=="Juan")
 .Update(x => new Persona() { Edad = 10 });

}

De esta manera no necesitamos el método SaveChanges(), ya que Update lo hace internamente.

¿Cómo aplicar un update a varias filas por medio de Entity Framework? C# .Net

Existen varias formas de modificar varios elementos en conjunto por medio de Entity Framework.

Te mostrare como realizar una forma de cómo hacerlo a continuación. Teniendo una tabla llamada Persona, supongamos que debemos modificar la edad a 10 años de todas las personas de Nombre “Juan”. Seria de la siguiente manera:


using(MiEntity db= new MiEntity()){

  //Obtenemos todos los Juanes
  IQuearyable<Persona> lst = db.Persona.Where(d=>d.Nombre=='Juan');

  //recorremos la lista
  foreach(Persona oPersona in lst){
      //asignamos la edad
      oPersona.Edad=10;

  }

 //modificamos los datos en la base de datos
  db.SaveChanges();

}

Cuando tengas la necesidad de editar más de mil filas en un proceso, mejor hazlo con un procedimiento almacenado (Stored procedure).

Aquí te muestro otra forma de hacer la modificación de varios objetos utilizando EntityFramework.Extended.

¿Cómo sumar 1 día, 1 mes o 1 año a una fecha en mysql?

Cuando manejamos fechas con mysql tenemos a la disposición muchas funciones ya establecidas en el motor las cuales son útiles al realizar consultas.

Te muestro como puedes agregar 1 día, 1 mes o un año a una fecha en específico.

Utilizando la función Now() de mysql aplicare la suma como muestro a continuación:


-- 1 día
select  DATE(DATE_ADD(now(), INTERVAL 1 DAY))

-- 1 mes
select  DATE(DATE_ADD(now(), INTERVAL 1 MONTH))

-- 1 año
select  DATE(DATE_ADD(now(), INTERVAL 1 YEAR))

¿Cómo obtener el primer día y el último día del mes actual con C#?

Para obtener el primer día y ultima día del mes actual con C#, utilizaremos la funcionalidad de la clase DateTime.

Es muy útil conocer funcionalidad de este tipo, sobre todo cuando se hacen reportes y queremos que al entrar el usuario al módulo por defecto muestre solo lo del mes actual.

A continuación te muestro como hacerlo fácilmente:


//Primero obtenemos el día actual
 DateTime date = DateTime.Now;

//Asi obtenemos el primer dia del mes actual
DateTime oPrimerDiaDelMes = new DateTime(date.Year, date.Month, 1);

//Y de la siguiente forma obtenemos el ultimo dia del mes
//agregamos 1 mes al objeto anterior y restamos 1 día.
DateTime oUltimoDiaDelMes = oPrimerDiaDelMes.Value.AddMonths(1).AddDays(-1);

Ya teniendo el primer dia del mes y el ultimo dia del mes actual en los dos objetos DateTime, ahora puedes hacer uso de ellos en algun componente, por ejemplo un DateTimePicker.

¿Cómo detectar si un formulario ya ha sido abierto en Windows Form? C# .Net

Te mostrare como saber si un formulario de nuestra aplicación ya ha sido abierto.

Algunas veces tenemos la necesidad de que un formulario no sea abierto más de una vez, ya sea por requerimiento o por ser una modulo que deseamos que no se abra miles de veces.

La siguiente función recibe una cadena con el nombre de tu formulario como tal, si tu formulario se llama FrmUsuario entonces recibirá “FrmUsuario”:


public class FormUtils{

//función
        public static bool detectarFormularioAbierto(string formulario)
        {
            bool abierto = false;

            if (Application.OpenForms[formulario] != null)
            {
                abierto = true;
            }
            return abierto;
        }
}

Y seria utilizada de la siguiente manera:


bool estaAbierto=FormUtils.detectarFormularioAbierto("FrmUsuario");

¿Cómo obtener el valor de una celda de una fila seleccionada en un DataGridView de Windows Form? C# .Net

Para obtener el valor de una celda de una fila seleccionada a continuación te muestro una función que te regresara el valor como cadena, ese valor tu puedes parsearlo a el tipo de dato que necesites ya sea un entero, decimal etc.

La función recibe tu DataGridView como parámetro y el número de la posición de la celda deseada.

Recuerda que las celdas del DatGridView comienzan con el número 0, ya que se manejan igual que un arreglo.


public class DataGridViewUtils
{
 public static string GetValorCelda(DataGridView dgv, int num)
        {
            string valor = "";

            valor = dgv.Rows[dgv.CurrentRow.Index].Cells[num].Value.ToString();

            return valor;
        }
}

Para utilizar la función sería de la siguiente manera:


//Mandamos nuestro DataGridView y la posición deseada
string valor= DataGridViewUtils.GetValorCelda(dgv,0);

¿Cómo quitar la función de ordenamiento en un DataGridView de Windows Form? C# .Net

Para eliminar la funcionalidad de ordenamiento en un DataGridView, a continuación te muestro cómo es posible lograrlo:


 //creamos un datagridview para el ejemplo, pero en tu caso es el DataGridView que ya creaste en tu formulario, el cual ya tiene columnas.
 DataGridView dgv= new DataGridView();

 //recorremos todas sus columnas
 foreach (DataGridViewColumn Col in dgv.Columns)
 {
     Col.SortMode = DataGridViewColumnSortMode.NotSortable;
 }