25 marzo 2009

otra vez critico a mi "educacion"

Hola,
segundaparte de:
http://ni0.blogspot.com/2008/03/alfanumerico-valor-numericocritica-la.html

esta vez fueron un poco mas aya... hablaron del open source, de la propiedad intelectual, de C (o C++, quien sabe), y de Linux... (y aun de mas cosas)
esta vez en la materia Sistemas de Procesamiento de Datos (aka SPD)... como pueden ver, no estamos en la materia "Visual Basic", tampoco en "programacion" sino que supuestamente en SPD se aprende cosas mas profundas de la PC...

aver.. por donde empezamos? la profesora empezo a hablar de los archivos... :o que es un archivo? hay distintos tipos de archivos
.dat
.pas
.obj
.exe
.bat
.sys
1º error, aunque se lo perdono, el tipo del archivo no esta definido por su extencion, sino por su contenido, pero bueno, la extencion es una forma rapida de saber su contenido, eso no me calento..
2º para definir que es un archivo no hace falta hablar del tipo de archivo... que sera un archivo entonces? yo lo veo como bytes grabados en el HD (o "soporte de informacion") con un comienzo y un final, y que se puede agregar o quitar bytes..., para la profesora no hay bytes, sino que hay registros (obiamente NO se refiere a AX o EAX.. se refiere a lo que seria un "record"), y a su vez hay distintos tipos de archivos (los mencionados arriba)...
eso tampoco me calento mucho, pero si uno ve al archivo como registros entonces termina diciendo que hay archivos de texto y binarios. (pura basura, son los 2 la misma cosa, de echo UNIX no hace diferencia entre ellos en C o ASM) o si dice que el archivo tiene registros iguales durante todo el archivo... de donde salieron los BMP? no son ni de texto ni con registros iguales.. en que tipo quedaria? y como se hara para leer un BMP?
por todo eso es mejor trabajar al archivo como secuencias de bytes... yo lo entiendo mejor asi, dsp agrupas o no los bytes en un registro si queres..
4º el tipo .pas (refiriendose a todos los archivo fuente, palabras de la profesora) es IDENTICO a los .bat, no le veo la diferencia, supongamos que hacer una sutil diferencia entre .txt y un codigo fuente ""esta bien"" pero entre 2 codigos fuentes?? mmm nose que se fumo

siguiente tema? batch, explico que eran los .bat y dijo que es la abrebiatura de batch (hasta ahi bien) y que contenia ordenes que se ejecutaban como cascada una abajo de la otra...
pero que pasa si abrimos nuestro cmd.exe y escribmos if? o goto? o for? o abrimos un .bat y le metemos todo eso? deja de ser una cascada ejecutandose uno abajo del otro...

el proximo fue C (este es largo..), dijo que los archivos .cpp eran los de C (y lo escribio en el pizarron).. veamos.. C++ y C son 2 cosas distintas, si programas en C, la extencion del archivo es .C, y si programas en C++ la extencion del archivo es .cpp, asi el compilador no se confunde... (gcc detecta segun la extencion el lenguaje a compilar, y el Dev-Cpp tmb) aparte de que esta dando a entender que C++ y C son lo mismo.... :o en C hay POO!!! ella invento un nuevo estandar ANSI para C! xDD.
tambien dijo que C y Pascal son de la misma empresa... WTF?! Dennis Ritche, Ken Thompson y Brian Kernighan eran hackers de los hackers y no programaban en pascal, y menos inventaron un lenguaje como pascal! ellos eran los machos de los machos, programando e inventando UNIX y C, no tenian relacion con Pascal! se tendria que haber referido a la misma empresa del compilador,aunque tampoco es cierto porque, aunque Borland hizo compiladores para esos 2 lenguajes, existen otros compiladores de pascal y de C que no tienen relacion...
despues dio un semi ejemplo de C (C++? BrainFuck? Ada?) ella dice que es programadora de C... que ejemplo dio?
#include "conio.h"
clrscr();
nono, yo no puse las comillas porque el blog no me deja usar el signo de mayor y de menor, ella escribio las comillas.. o es muy desordenada y guarda todo el codigo fuente en .../include (perdon ....\include, ella trabaja en Windows, ah no, perdon, en ....\lib (ya van a ver)) o no tiene idea de que es y de como usar las comillas, aparte de que conio en C no es estandar, y creo que tampoco en C++, tendria que haber usado alguna funcion estandar..
y aun hay mas de C, explico que eran las librerias, segun ella las librerias en C estan con la extencion .h y se alojan en la carpeta lib... que yo sepa borland como todos los demas compiladores ponen los archivos de cabecera en ....\include, y que yo sepa los .h no son librerias solo son DECLARACIONES de las funciones, la libreria contiene a la funcion en si, en el archivo de cabecera (.h) solo esta la declaracion (int printf(const char*, ...);) nada mas que eso...
creo que de C nada mas, espero que el año que viene (donde vemos C, o C++ ya no tengo idea) no sea peor...

el siguiente tema nose de donde salio, dijo que cuando un programador le vende un programa a su cliente, el programador cobra $X, pero si el cliente quiere el codigo fuente, el programador debe cobrarle 5X o 3X (osea 5 o 3 veces mas de lo qe sale el programa normal.... ) "por la propiedad privaday el derecho intelectual". A esta profesora le pagaron los de microsoft...
osea, si el tipo quiere dejar su codigo cerrado esta bien, pero ella lo dijo bien como una orden... eso no me gusto para nada, es mas, este año hago el proyecto como software libre, y que se cagen todos.

dsp empezo a putear a windows, dijo que era una mierda y que se yo, que era lo menos seguro y lo menos estable... que lo mejor seria usar Linux (pero claro,ella no usa Linux, es obio, y como si no fuera obio, dijo varias cosas sobre Linux ERRONEAS). dice que en Linux es muy raro ver ventanitas, todo es en modo texto... ni que seamos los hackers de portalhacker que se creen hackers porque habren el cmd.exe de windows... quien en esta epoca no tiene instalado el gestor X de ventanas y un escritorio?
dsp dijo lo que mas me calento, que los comandos del Linux eran una copia del DOS... WTF!?? nombro, por ejemplo, al comando DIR... primero que todo, Linux no ejecuta los comandos, sino que lo hace bash, o cualquier otra consola
LINUX ES UN KERNEL, y el sistema operativo se llama GNU/Linux!
ensima DIR en bash no es un comando, es un programa, y nisiquiera es DIR el programa "original", sino que es el programa "ls" ... aparte de que la primera version del DOS salio en 1981 y UNIX se creo en el '70, nose como hicieron los de UNIX para copiar los comandos del DOS si aun no habia salido...
ah y dijo que Linux es open source.. como yo se que se referia al sistema operativo (GNU/Linux) no es open source, es software libre... 2 conceptos parecidos pero muy diferentes...

salu2! y chicos,no vallan a la escuela, aprendan solos, |_ocutus, gracias por el consejo,ahora entiendo bien porque me lo decias..

P.D: espero no haberme confundido yo en algo xD

11 comentarios:

Anibal dijo...

Jajajajajaja, bueno tampoco hay que ser tan malo, yo recuerdo que en mis épocas de escuela tube un sólo año computación (bah, ni se si se puede llamar así, las máquinas eran re viejas, había algunas que corrían hasta windos 3.1 y nos hacían abrir word y escribir cartitas, en cima de todo, las máquinas se rompieron y tubimos que escribir las cartitas a mano, fin de la historia).
Un par de cosas, no seas tan malo, eso lo dices porque conoces del tema (hay veces que uno no sabe si reir o llorar, cuando escucha éstas cosas). El error de los archivos, en un sistema windows (en el DOS debe ser igual) el tipo de archivo lo define la extensión, si si, tan triste como eso y es por eso que un archivo .exe define un ejecutable, un .bat es un archivo de ejecución por lotes y es por eso que se transmiten tan fácilmente los viruses.

Al que nombras como 4º error no entiendo nada. Yo calculo que debe ser que se habrá referido a que son archivos de texto plano.

Los batch (acá no tengo idea, nunca lo usé y cada vez que veo código no entiendo y me marean los gotos y todo eso, no obstante), es cierto, las instrucciones se ejecutan una seguida de la otra, ahora tu pones goto y salta la línea (cambia el flujo normal), los archivos shell de Unix (en GNU/Linux es lo mismo) también son archivos batch (en sí, son mucho más poderosos que los batch de windos), con batch me refiero a que ejecutan un conjunto de intrucciones una seguida de la otra, ahora tu puedes crear funciones y todo eso, pero no deja de ser más que eso.

Lo de C, lo de C es algo que... ya ni se, seguramente a que eran de la misma empresa, se debe haber referido a que el compilador que van a usar es de la misma empres (a eso sumale la cantidad de ignorancia del profesor, C es un lenguaje estandarizado, no pertenece a ninguna empresa). Lo del include, "" también es correcto, el compilador cuando encuentra las comillas, prioriza la búsqueda en el directorio actual, de no encontrarse ahí el archivo lo busca en el directorio estándar definido (por lo general es include), es decir que el #include "conio.h" funciona igual a #include < conio.h >, obviando claro está la no estandarización de conio.h (Quiero imaginar que por lo menos al clrscr() lo puso dentro de una función main). Ésto da más para post que para respuesta, pero a post largo (lleno de cosas distintas, respuestas largas).
El pago por la entrega de código, mmmm, no es una regla, ésto me parece que es más para que el tipo al final diga, no está bien, no me des nada. Propiedad intelectual, "las pelotas", tu haces un contrato y le cobras por el software, ahora en el contrato puede figurar la "no entrega de código" y cobrarle igual los 3X o 5X, o bien no puede figurar nada de eso y el cliente es más vivo y en cima que te pagó $X se queda con tu código, todo es relativo, muchas veces no eres propietario de lo que escribes (por ejemplo si eres empleado, no es tuyo, y más si perteneces a un banco).

Lo de Linux, yo tengo un amigo que cuando escuché por primera vez sobre Linux (seis años después instalaría la primer distribución) decía que era un sistema tipo DOS, se dejaban llevar por bash digo yo.
> Linux no ejecuta los comandos, sino que lo hace bash, o cualquier otra consola
jajajajaja, no no no, si te vas a ese extremo, el usuario es el que ejecuta los comandos, en realidad el responsable de ejecutar los programas es el kernel es más es el kernel el que te dice "No querido, eso no lo podés hacer, volvete root y después probamos" o "Qué querés hacer qué?, no tengo más memoria, dejá de joder" (leer con tono de chiste, pero son lo errores comunes, no tener permisos suficientes, o falta de recurso).
Y para terminar, Linux es open source (o no es tan libre como lo sería el sistema GNU), es licencia GPL pero no es del todo libre ya que contiene dentro de su código "código" (valga la redundancia) de firmware que no son libre.

Ni0 dijo...

estoy re caliente, por muchas cosas q estan pasando... seguramente me desquite con esa profesora...
lo del error 4º es que no encuentro mucha diferencia entre 2 codigos... batch y pascal... es lo mismo, cambia la sintaxis y esas cosas, pero es lo mismo... x q los va a dividir? ella dijo que el batch va de arriba hacia abajo como una cascada uno abajo de otro... el goto hace el salto para cualquier lado xD
yo supongo que se referia a la misma empresa de compilador, porque explico lo de los codigo fuente .pas y dijo que tmb estan las librerias, ella programa en C, pero como C y pascal son de la misma empresa, las librerias de pascal seguramente tmb esta en ....\lib :S

lo de las comillas no lo sabia, yo estaba seguro que con eso te referias solo a la carpeta actual, lo probe y funciono.. de todas formas no me parece correcto usar "" si la cabecera esta en ..../include
aparte significa que aprendi C de cualquier lugar, porque en los.. 2 libros q tengo de C (uno de ellos es la biblia de C) siempre utiliza <> para include y "" para la carpeta actual... de todas maneras un ejemplo con clrscr(); ... teniendo C tantas pero tantas funciones estandars para todas las plataformas, justo clrscr() ....
el codigo no lo puso dentro de main, pero no se lo critico porque no era un ejemplo de codigo, sino de las librerias (llamemosle libreria a la cabecera .h ¬¬ ¬¬) puso la funcion clrscr() en la pantalla, y dijo que para que funcione habia que agregar la libreria conio.h, y escribio el include diciendo "en C se hace asi"
cada uno tendra una vicion de la propiedad intelectual, pero ella nos ordeno (sisi, lo dijo como orden) de cobrar 3X si querian el codigo

xD el usuario solo escribe el comando, sh, o csh o la consola que te guste va a interpretar el comando y va a ejecutar lo que corresponda, obio que al final esta el kernel, pero si vos escribiste un if en el sh, el kernel mucha interpretacion no tubo, dsp si vos se te ocurrio escribir ./a.out, bash interpreta eso como buscar en el directorio actual a a.out y ejecutarlo, ahi si interviene el kernel, pero ya se fue de la funcion de la consola, interpretar lo que el usuario escribio... es como decir que un codigo en python es ejecutado por windows...
es ejecutado (interpretado) por el interprete de python...
ella dice Linux pero se refiere al S.O., no lo aclare del todo, dije que como yo se que se referia a GNU/Linux, a mi me parece que es mas libre que open source, conozco la politica de Linus, de echo vino RMS a argentina y lo fui a ver, y hablo del soft libre, de GNU, de Linux, de Linus, de GNU/Linux y del open source..
ah, aparte que nunca nombre software libre, siempre decia open source....

salu2! y gracias por comentar!

Anibal dijo...

Me vas a querer matar, pero sigo sin entender lo del punto 4 XD.

Y como dices, si el < > es para referirse a la carpeta include (si lo quieres ver, es una optimización para el compilador), ahora no es tan así, la escritura de < > va más allá, ayuda a leer, tu cuando la lees te dice, éste está en el include del compilador. También se puede poner < > para archivos locales y pasarle un parámetro al compilador para decirle, buscá los include dentro de ésta carpeta, si no están andá a la que viene por defecto. Ésto también puede resultar malo, ya que puedes engañar al lector que piensa que #include < stdio.h > en realidad es stdio de include, cuando en que escribió lo hiso al stdio.h de su carpeta actual (a ver si me aclaro) debería haber escrito #include "stdio.h". Ésto es algo de libertad que te da el compilador de C y como todo, debes tener cuidado al usarlo.

> xD el usuario solo escribe el comando, sh, o csh o la consola que te guste va a interpretar el comando y va a ejecutar lo que corresponda,
Si, agarralo con pinzas, es muy discutible, tomando el caso particular de GNU/Linux (en realidad de Unix), ¿Qué pasa con login?, lo ejecuta el SO, es creado por init, ¿Qué pasa con init?, es cargado al inicio de la carga del sistema (es el primer proceso de usuario en cargarse en memoria luego del kernel, por eso tiene el pid 1), no hay consola en el medio, es más login cuando le das un usuario y contraseña correcta ahí lanza una shell, ¿quién interpretó el comando login?, ¿se entiende, al final es una línea muy fina.

Lo de Linux o GNU/Linux, también está en vos hacer valer cómo debe nombrar, yo por mi parte si lo nombro GNU/Linux (salvo contadas excepciones en las que me quiero referir al kernel, supongamos la administración de procesos, el sistema GNU no juega ningún papel ahí), pero cuando hablo con amigos es más común referirse a Linux únicamente sabiendo de qué hablamos del sistema completo, no desprestigio en ningún momento el trabajo realizado por la gente de GNU, sino que es charla informal y tanto formalismo carece de sentido, igual (como ya dije) siempre que lo escribo me refiero a GNU/Linux. En cuanto a libertad, hay una pequeña cosa que me hace ruido (respeto a Stallman y soy conciente de su trabajo, pero no creo en su mundo utópico), él dice que yo soy libre cuando hago todo lo que él dice, a ver, si yo veo que un software es buneo (y no es libre) ¿por qué no lo voy a usar?, no cuarta él mi libertad al obligarme a usar un software que no me gusta para yo considerarme libre (me refiero al caso de Firefox y Opera, yo uso Opera porque adoro el navegador en cambio Firefox me parece una bosta inmensa, pero es libre). O sea, yo soy libre de usar lo que se me cante las terlipes, y si Stallman viene con su discurso de que si yo uso software propietario no soy libre me está cuartando mi libertad de ejecutar el programa que a mi me gusta. En fin, Open Source, Software Libre, para el resto de los mortales es lo mismo y tienes que estar muy metido para ver la diferencia y si estás tan metido y conoces del tema, es cuestión de avisarle a esa otra persona que está equivocado, en tu caso, le dices a la profesora: "Está equivocada, eso no es como usted dice, así que no ahonde en el tema, se pone en ridículo usted", ésto trae aparejado una discución (a un profesor de la escuela no le gusta que le digan que está equivocado) y seguro que te va a mandar a hacer un trabajo para que lo presentes frente a todos tus compañeros.

DlD dijo...

Jejeje, me imagino que diria o mejor dicho que pensaria tu profe, si viera esto.....xD

Múy interesante leer esto, para soltar un rato el estres...^^.

Saludos.!

Ni0 dijo...

DID, sisi, es muy relajante decir todo esto que dije xD en especial cuando no todo va bien y queres desquitarte te todo lo que tenes guardado... :P

bueno anibal, estamos diciendo los 2 lo mismo asique no voy a decirte nada mas xD jeje solo que uso software libre, pero solo cuando me combiene, tmb uso soft privativo cuando me combiene porque es mejor o por lo que sea, algo como lo que dijo Torvalds:
Anybody who tells me I can't use a program because it's not open source, go suck on rms. I'm not interested. 99% of that I run tends to be open source, but that's _my_ choice, dammit.
http://www.ussg.iu.edu/hypermail/linux/kernel/0410.3/1101.html
(al final del mail)
jeje supongo que lo vas a entender, no necesitas que traduzca...

bueno, espero volver pronto a los posts a los que me dedico... programacion en C, y bajo nivel de la computadora :P

salu2! y gracias a todos!

|_ocutus dijo...

y chicos,no vallan a la escuela, aprendan solos, |_ocutus, gracias por el consejo,ahora entiendo bien porque me lo decias..

no... para q despues van a decir q fomento el abandono escolar... xD

t repito lo mismo q t dije en s momento. lo mejor es aprender x vos mismo, pero mientras estudia para tener el titulo q t va a facilitar mucho las cosas aunque no aprendas nada util o nada nuevo en la facu.

el tema es q para aprender x vos mismo tenes q tener muchas ganas y muchas pilas. hay gente q necesita la mano castigadora tomando examen... je

en cuanto a la profesora... es tipico, pero no la podes culpar demasiado. son users, los users son como ovejas y ven las cosas d otra manera. no ven "directorios" sino "carpetas", y no ven "archivos" sino "documentos" o "planillas" o lo q sea el p... icono d la aplicacion asociada.

como tambien t dije el otro dia, no les interesa lo mas minimo cuantos bits entran en 1 byte...


saludossss

Ni0 dijo...

|_ocutus, gracias por comentar, y como supongo que lo leiste todo, gracias por leerlo xD
veo que entendiste lo de que los archivos son simplemente bytes 1 al lado del otro... seth no me entendia.

salu2!

|_ocutus dijo...

x supuesto q son bytes 1 al lado del otro... todo son bytes 1 al lado del otro y siempre lo entendi asi.

es lo q t decia, el ser humano tiende a convertir las abstracciones en cosas q conoce, lo cual no es tan malo. el tema es acordarse tambien d lo q son en realidad... ;)

es como cuando decis "c corto la luz" cuando no tenes suministro d corriente electrica. muchas veces yo tambien digo "la luz" x costumbre y para q me entiendan, pero tengo muy claro q es 1 corriente d electrones q pasa a traves d 1 conductor... je

gracias x estar vos tambien pendiente d mi blog. siempre leo el tuyo aunq no comente tanto.


saludos amigo

Anónimo dijo...

coincido en muchas cosas con vos...
pero tampoco es para tanto lo que decis o sea estas en un secundario, muchos de tus compañeros -y tambien muchos de los mios (para el que no sepa yo estudio Sistemas en la UTN)- no serian capaces de calentar un te en un microondas...

PD: esas cosas donde se guardan funciones con el fin de reutilizarlas se llaman BIBLIOTECAS (notese que en ingles libreria se escribe book store)

Anonimo eh digo Adriano

waeswaes dijo...

Ni0 ken thompson no se vincula con C el se dedico a unix y B

todo genial la verdad que suele ocurrir mucho, a mi en la universidad en la materia introduccion a la programacion diciendome que html y batch son lenguajes de programacion :P

y demas cosas por el estilo...

me incomodo un poco lo de "los hackers de portalhacker" pero bueno, en verdad hay algunos de esos por alla o los que quieren programar SO en batch (golpe bajo a tanenbaum :P) en fin, estos errores siempre estan y ponerte en contra es al pedo, mejor dejarlos pasar total el que quiere saber no se come eso :P

recuerdo una pregunta que le hicieron a una familiar que empezo la secundaria...

¿que hace funcionar la pc, el msn mensenger, el word, el internet explorer o el windows?

respuesta correcta : windows

:P

saludos

Ni0 dijo...

algo de eso de thomson habia escuchado, pero bueh, es un error minimo porque dije:
"Dennis Ritche, Ken Thompson y Brian Kernighan eran hackers de los hackers[...] ellos eran los machos de los machos, programando e inventando UNIX y C"
tmb nombre a UNIX asique no queda mal, pero bueno, gracias por aclararlo (de todas formas C salio de B asique algo de relacion tiene :P)

si, es al pedo, pero tengo tanta calentura por tantas cosas que me pasan que cuando encuentro oportunidad de putear a todo el mundo, lo hago, lo hize en unline, loo hize/hago en cph, y lo hago x aca...

salu2!