« first day (1088 days earlier)      last day (2696 days later) » 

12:01 AM
Teve uma outra situação parecida, mas aí a solução foi bem menos elaborada, pq era uma empresa pequena, daquelas que o dono acha que é familiar, mas na verdade é "caseira". Nessa foi só um script pra eliminar senhas. Quem fazia login no servidor era um pequeno executável. O usuário não tinha senha da rede. Ele usava a credencial local do win, mas não tinha a senha do servidor.
 
@Bacco Muito estranha essa "chateação "- se o AD foi substituído por algo mais simples... Aqui nós usamos o AD só para controle de usuário e nunca deu problema.
@Bacco Se precisamos de compartilhamento de pasta, funciona também sem incomodação. Acesso via terminal de tudo que é computador também rola sempre.
@Bacco Ficar sem senhas... :o
 
@DanielGomes sem acesso às senhas. Ele logava local, com o usuário dele, e o executavel logava remoto. Ele nao poderia usar a senha dele pra logar direto no servidor, por exemplo, e nem acessar o servidor do PC errado.
 
@Bacco Tendi.
 
Mas isso nem serve como exemplo, pq era uma situação anormal. Problema de confiança com funcionário.
 
@MagicHat Parabéns... ;)
@Bacco Deixa eu te contar da minha outra idéia - não vale acabar com os meus sonhos/delírios, plz.
@Bacco Um programa que fica de olho em tudo quanto é pasta na rede. Quando alguém cria um .txt com "backup" escrito dentro dele, esse programa faz backup do que tem na pasta.
 
12:06 AM
@DanielGomes de curiosidade, pra que o txt, em vez do usuário escolher a pasta no programa?
 
@Bacco LOL - como eu poderia fazer sem ele?!
 
@DanielGomes nao vai ter um progama rodando? Seria o caso do cara escolher a pasta nele.
 
@Bacco Ahh - é pra ser automático - o programa está rodando num servidor, escondido... Os usuários não mexem nele.
 
@DanielGomes vc quer que o usuário controle o .txt?
 
@Bacco Isso - só o .txt.
 
12:08 AM
eu acho problematico o programa ficar no servidor acessando um monte de pasta compartilhada. Ou as pessoas fariam isso na pasta do servidor remotamente?
 
@Bacco Isso. Na verdade cada workstation acessa um servidor de mídia central - esse programa faria o mesmo.
 
@DanielGomes o programa não vai rodar no servidor de midia?
seria na maquina de backup?
 
@Bacco Isso - na máquina de backup.
 
@DanielGomes e como vc controla se o backup foi feito, à medida que as pessoas vao alterando as coisas da pasta?
 
@Bacco Todos os dias os editores importam gigas e gigas de material. Eu pediria que cada editor criasse um .txt escrito backup dentro dele quando terminassem de importar a mídia. Assim a máquina de backup já retira aquele material e libera o espaço...
 
12:11 AM
@DanielGomes entendi. seria um "Mover para o backup"
 
@Bacco Isso, por aí... xD
 
bom, não vejo grandes problemas. talvez fosse bom dar um lock
na hora que começar o procedimento, pra pessoa não alterar o treco "em movimento"
vc pode até adotar algum criterio, como a pessoa renomear a pasta pra nome.backup
ai de cara ao olhar, a pessoa ja ve que aquilo nao é mais pra mexer
sem precisar ver se tem .txt dentro
 
@Bacco Entendi. Ou o próprio programa fazer isso para o usuário não ter que fazer mais de uma coisa.
 
@DanielGomes o usuário só renomearia a pasta pra pasta.backup em vez do txt
e seu sistema renomearia para .algumaoutracoisa
quando começasse o procedimento, por exemplo.
exemplo: importei a(s) midia(s)
renomeio a pasta pra pasta.backup
e continuo fazendo meu serviço com outras pastas/coisas tranquilamente
 
@Bacco Eu queria um .txt pq. a idéia era um pouco mais complexa... Era o cara escrever "backup usuario:daniel senha:minhasupersenha" - para impedir quem não pode fazer backup de fazer backup... xD
 
12:18 AM
@DanielGomes ah sim, ai faz mais sentido
só que tem que ver como evitar um terceiro ver o txt
São muitas máquinas que vao poder solicitar esse backup?
 
@Bacco Eu pensei nisso - é uma... vulnerabilidade... Pensei em fazer o programa apagar assim que ele visse, mas acho que sempre dá para outra pessoa ver no meio do caminho... xD
 
@DanielGomes pois é.
 
@Bacco Sim, teria que ser todas, hahaha...
 
@DanielGomes todas são quantas? um campus inteiro, ou 100 ilhas, ou 10?
 
@Bacco Ah - 20-50...
 
12:21 AM
@DanielGomes com que frequencia as pessoas farão isso?
 
@Bacco A cada material/trabalho novo... Pode acontecer todos os dias. Não muitas vezes ao dia.
 
@DanielGomes entendo. pensei em outra coisa aqui, mas ficaria muito burocrático.
seria a pessoa logar em alguma página pra baixar o backup.txt com um token, mas seria chatinho o procedimento
se fossem menos máquinas ia sugerir um .exe nelas
pro cara escolher a pasta.
ai esse .exe já "empacotaria" pra transporte.
(protegeria a pasta e geraria esse txt)
mas tb é chato.
 
@Bacco Tendi - Não é tão terrível... Deixar um atalho pra ele no quick launch - pedir para arrastar a pasta pra cima dele - ele pede usuário e senha e começa seus trabalhos...
 
Na verdade tudo que depende de "rede dos outros" tem uma tendência a ser chato.
@DanielGomes se vc tiver o acesso às máquinas, ou algum parça do laboratório (suponho que seja um lab) pra repor nas maquinas quando formatar, é uma boa. O programa não precisa ser complexo, é só pra autenticar o .txt e/ou fazer algum procedimento básico.
 
@Bacco Isso não depende da rede de outros. Essa é a rede "do lado de cá"...
@Bacco Meio que eu posso fazer "o que quiser"...
 
12:26 AM
@DanielGomes ai é só vc avaliar o quanto trabalho quer ter então. :)
 
@Bacco O executável significa fazer dois programas ao invés de um... xD
 
@DanielGomes isso é o de menos, o problema é vc decidir como vai autenticar a pessoa.
 
@Bacco E... Se alterar o OS em algum momento, meio que compilar de novo... :s
@Bacco E teria que funcionar em mac tbm...
 
@DanielGomes a unica coisa que me faz sentir falta de um Mac em rarissimas ocasiões na vida é a curiosidade de testar minhas aplicações, se um dia precisar liberar uma versão pra Mac. O que eu duvido um pouco.
Em teoria as coisas que eu uso funcionam nos OSes principais, mas não testei em Mac.
 
@Bacco Hahaha... Omg. Vou fazer isso... Eliminar os macs daqui assim que puder.
 
12:30 AM
@DanielGomes eu respeitava Mac quando eram os de verdade, até o G3
 
Tem um pessoal que vai ficar meio chateado.
 
depois que virou linux (ou bsd?) com skin, perdeu um pouco a graça pra mim.
não desprezando o "acabamento" apple, mas eu acho que caiu muito o diferencial desde então.
 
@Bacco É... Ele é tipo um bsd... lol
@Bacco Você não usa Visual Studio né... Nem programa em C#... :s
 
@DanielGomes instalei pra ver a cara dele, brinquei um pouco e tou pra desinstalar e reinstalar numa VM, que é o que eu devia ter feito desde o principio. Como está longe de ser algo que eu pretenda usar intensivamente, a VM é o melhor lugar.
 
12:47 AM
@Bacco Eu coloquei uma função de leitura de pastas num processo a parte. E no main, eu criei um while (função.lerProgresso() != 100) { }...
 
@DanielGomes nao entendi a do lerProgresso
 
@Bacco Enquanto não chega em 100% da leitura, ele fica lá dentro fazendo coisas... Inclusive dizendo quando chega em 30%, por exemplo...
@Bacco Mas ele não avisa nada... lol - Queria entender o porquê.
 
mas como ele vai fazer se tiver com 2 leituras em paralelo?
ah, é teste só?
 
@Bacco Leitura em paralelo?! Isso não acontece...
 
@DanielGomes achei que vc ja tava testando seu copiador de backup
 
12:50 AM
@Bacco Esse não é o servidor - esse é um programa que lê todas as pastas de um HD, apenas... xD
 
@DanielGomes sim, percebi agora
Mesmo assim nao entendo a do progresso.
digo, não sei como vc vai contar a % sendo que leitura de pasta é indeterminado.
(só ao entrar numa pasta que vc sabe quantas outras tem dentro)
a nao ser que a cada pasta que vc entre, vc diminua a escala.
por exemplo, 4 pastas principais sao 25% cada, se a 1a tiver 3 pastas, cada uma é 33% dos 25%, etc
ai a barra funciona, só que nao fica linear o tempo. (pq a 3a pode ter 1000 subpastas, e a 4a só 2)
se bem que se for só leitura de diretório, é pra ser coisa de segundos.
 
@Bacco Ah, isso. É - na real o que acontece agora é que ele "volta" a porcentagem de vez em quando... xD
 
@DanielGomes kkk. sei como é.
 
@Bacco Mas e a minha questão?! :D
 
@DanielGomes a de não mostrar nada? só vendo o código :P
 
12:56 AM
@Bacco Quando eu coloquei um for ( ; ; ) { } com um break lá dentro, ele atualizava a porcentagem - trocando por aquele while ele fica quietinho até chegar no 100%.
 
@DanielGomes suponho que vc esteja sufocando a thread responsavel pelo redesenho de tela.
Bota um sleep dentro, senao inclusive eu acho que vc vai ficar com um core da CPU colado no 100% se largar como está. O sleep provavelmente vai liberar a thread pra fazer outras tarefas.
 
Vou tentar reproduzir com um código mais simples... Mas achei que isso seria fácil pra quem programa de verdade, lol
@Bacco E isso é problema?!
 
@DanielGomes pra uma tarefa que só fica esperando é O problema. Mas eu nao sei como o C# lida com isso, tou falando de princípios gerais de GUI.
 
@Bacco Mas pq. com o for infinito funciona?! Qual a diferença entre eles?!
 
@DanielGomes bom, nem sei se deveria ter alguma, como eu disse, só vendo o código pra ver. Pode ser alguma bobeira qq. Independente disso, o que eu falei de sleep vale, normalmente nunca se larga loop infinito sem algum tipo de respiro no meio (a nao ser que vc esteja de fato processando algo no loop).
 
1:00 AM
@Bacco Ah sim - entendi. Bom, não era essa a intenção - esse é meu rascunho de programa - inclusive eu pretendia colocar uma maneira de interromper o processo, já que as vezes o usuário pode mandar ler o HD errado...
 
@DanielGomes eu tenho um protótipo de backup aqui, mas eu fui por uma linha meio diferente, é tcp/ip direto. Cliente/servidor.
 
@Bacco É um programa de terminal - eu queria que o usuário pudesse continuar escrevendo coisas no terminal enquanto o outro processo faz scan do HD...
 
Foi feito justamente pra não depender de compartilhamentos etc
 
@Bacco E de tempos em tempos ele mostra que o progresso já chegou em 30%, por exemplo.
 
@DanielGomes isso do lado do cliente ou do servidor de bkp?
 
1:03 AM
@Bacco Esse era pra ser local - sem servidor, sem nada. Apenas fazer scan dum HD que o usuário tem em sua máquina.
 
@DanielGomes sei. nao entendi a razão de usar threads.
 
@Bacco Poder escrever no terminal enquanto o scan acontece... :o
@Bacco Pq. no loop que eu copiei do outro sujeito que faz scan de pastas, o terminal simplesmente trava por minutos as vezes.
 
@DanielGomes eu nao sei dizer detalhes do C#, mas em vários sistemas de GUI vc tem função pra intercalar no loop e manter a GUI funcionando em paralelo. Nao que vc nao possa usar a thread, claro. De qq forma precisa ver como sincronizar a variável da thread com o loop principal.
como eu disse, nao tenho experiencia com C# pra isso.
 
@Bacco Você quer dizer usando uma só thread deixar a GUI funcionando?! Vou pesquisar sobre isso.
@Bacco Não entendi essa de sincronizar...
 
@DanielGomes eu nao sei como funciona o lock de variável entre threads no C#, pra vc poder usar a mesma nas 2. Em principio não deve precisar de nada, só atualizar de um lado e consultar do outro. Mas eu poria o sleep no loop de qq forma. nem que fosse de uns 30 microsegundos
Thread.Sleep(30); seria isso acho
(na que exibe a barra, nao na do scan, claro)
 
1:11 AM
@Bacco Entendi.
 
@DanielGomes albahari.com/threading/threading.pdf <--- nao li ainda, nao sei se presta
 
@Bacco Parece bem completo! xD
 
pg 19 falando do sleep
e da troca de contexto
que é o lance que eu falo dela liberar a fatia de processamento pro resto
aparentemente ai nesse material vai ter algo sobre semaforos e mutexes
que é interessante conhecer, pra situações mais elaboradas
 
@Bacco Vou dar uma lida! Obrigado... :D
 
(uma thread dar um recado pra outra que tá esperando, por exemplo, em vez de loop)
 
1:16 AM
@Bacco Cara - parece bem legal esse livro! Será que atualizaram ele depois de 2011?!
 
@DanielGomes não faço idéia, só dei uma pesquisada rápida, baixei, "folheei" por cima e me pareceu ter os conceitos fundamentais, ai te repassei, sem análise mais profunda.
 
@Bacco Droga - já aprendi um bagulho.
 
@DanielGomes kkkk. É sobre a disponibilidade da variavel entre threads, ou outra coisa?
 
@Bacco Ele diz que threads rodam em paralelo num mesmo processo... ¬¬
 
@DanielGomes sim, mas isso é normal né?
 
1:22 AM
@Bacco E que ter duas threads não significa rodar em cores ou processadores diferentes - damnit.
 
@DanielGomes bom, ai tem mais um monte de questão sobre afinidades, etc. e como o OS se organiza.
 
@Bacco Eu juro que não sabia disso.
 
@Bacco podes me ajudar com um JSon?
 
@gato posso tentar :)
 
Esta dando erro de sintaxe
{
   "SuperMercado":{
      "RazaoSocial":"Meu supermercado",
      "Cnpj":"99616557000119",
      "ChaveAcesso":"minha_chave",
      "Categorias":[
         "Categoria": {
            "Descricao":"Alimentos",
            "Produtos":[
               "Produto":{
                  "Nome":"Chocolate",
                  "Preco":"1.20"
               }
            ]
         }
      ]
   }
}
quatro erros, estou usando este site para fazer parse: json.parser.online.fr
quero organizar em objetos
 
1:27 AM
"Categorias":[
"Categoria": {
colchete no primeiro.
colchete nao é pra pares, e sim pra listas
Ou vc usa { "a":123, "b":456 }, ou voce usa [123,456]
 
como ficaria uma lista de categoria e cada uma delas com uma lista de produtos
 
se vc tem chave:valor é sempre { }
basicamente é { } quando é chave valor, chave valor, e [ ] quando é valor, valor
o resto vc pode organizar como for conveniente.
se tem nome:valor, fora dele precisa ser { }
 
@Bacco sim agora comecei a entender
 
No seu exemplo acima tudo é nome:valor
entao é sempre { }
um exemplo:
{ meses: [ 'jan', 'fev', 'mar' ] }
o de fora é { } pq é meses:valor (no caso o valor é uma lista, mas isso é irrelevante)
 
@Bacco Ele foi atualizado sim - o nome do livro é C# 4.0 in a Nutshell - essa é só a parte de threading que o autor deve disponibilizar de graça. O último é o C# 6.0 in a Nutshell...
 
1:30 AM
o de dentro é [ ], pq eu só tenho uma lista de valores, sem nomes
 
@Bacco a lista pode conter um valor ["valor"]
 
@gato a quantidade nao importa
o que importa é se é par ou só valor.
{"nome":"pedro"}
["pedro"]
 
neste caso para representar as categorias e os produtos como eu faria?
 
{"nome":"pedro","idade":25}
["pedro",25]
@gato como achar mais adequado :)
nao tem regra, nem certo e errado, só depende de como vai organizar.
no seu exemplo eu simplificaria
"Categorias":[
"Categoria": {
"Descricao":"Alimentos",
 
@Bacco sim, compreendi rsrs
 
1:33 AM
para:
"categorias": { "alimentos": { "chocolate":1.20, "batata-doce":3.25 } ....
Ou entao, se cada alimento tiver varios dados:
"categorias": {
     "alimentos": [
         {"nome":"chocolate","valor":1.20,"unidade":"kg"},
         {"nome":"banana prata","valor":0.75,"unidade":"cacho"}
     ]....
 
@Bacco vou testar assim
 
@gato percebeu o uso dos colchetes? apesar de cada item ter nome:valor, eles nao tem nomes individuais
 
@Bacco ainda estou um pouco confuso, mas estou começando a entender
 
Dentro do item tem uma propriedade nome, mas o item é um conjunto sem nome
portanto é uma lista de itens, e não chave:valor
 
isso aqui seria o item por si só:
[{"nome":"chocolate","valor":1.20,"unidade":"kg"}]
 
1:38 AM
isso, ele nao tem nome.
Teria nome se fosse assim:
ops
no caso vc passou uma LISTA com 1 item.
{"nome":"chocolate","valor":1.20,"unidade":"kg"} <--- o item é esse
[{"nome":"chocolate","valor":1.20,"unidade":"kg"}] <---- isso é uma lista com 1 item só
 
@Bacco Obrigado pelo papo e pela ajuda - acho que vou indo pra casa... ;)
 
@DanielGomes t+
@gato veja a diferença, aqui eu já pus uma chave nos itens, entao nao é mais [ ] :
"categorias": {
     "alimentos": {
         "chocolate":{"valor":1.20,"unidade":"kg"},
         "banana prata":{"valor":0.75,"unidade":"cacho"}
     }....
 
@Bacco estou entendendo agora hehe
:D
 
notou que agora cada item tem uma chave
entao o alimentos passa a usar { }
 
{
   "SuperMercado":{
      "RazaoSocial":"Meu supermercado",
      "Cnpj":"99616557000119",
      "ChaveAcesso":"minha_chave",
      "Categorias":{
         "Alimentos":[
            {"nome":"Chocolate", "preco":"1.90"},
            {"nome":"Nescal", "preco":"3.99"}
         ]
      }
   }
}
 
1:42 AM
dependendo do que for fazer depois "SuperMercado" poderia ser uma lista de supermercados
 
@Bacco neste caso teria que ser só um supermercado
cada supermercado teria seu json com suas categorias de produtos e produtos
 
certo. Ai vc realmente organiza de acordo com o uso. Na verdade, uma vez que entendeu a diferença entre { } e [ ], é sossegado :)
 
@Bacco vou criar uma API para utilizar este JSon
:)
@Bacco o uso do [] ou {} implica em algo (performance ou facilidade de manipulação) quando estiver usando em alguma linguagem?
 
@gato nao tem opção, vc tem que usar o que for certo pro seu caso.
o que vai acontecer é que dependendo da situação, compensa eliminar chaves pra economizar espaço
"produtos":{
    "colunas":["nome","valor","unidade"],
    "itens":[
        {"chocolate",1.20,"kg"},
        {.....
pra nao ter que mandar "nome" "nome" "nome" "nome" "nome" "nome"
se tiver 200 itens, economiza um espaçao.
 
@Bacco sim, vou usar esta dica :)
Vlw o/
@Bacco arrumei um estagio como desenvolvedor web
 
1:52 AM
@gato o Json é pra isso? Pra web vai usar Json de monte.
 
@Bacco nao rsrs
@Bacco sim
@Bacco eu mexi muito com desktop e esta sendo um pouco difícil para mim entender como funciona as aplicações web :)
 
@gato é menos pior do que o caminho inverso :)
O chato é só acostumar com a questão de ser stateless
e ter que usar essas gambiarras como sessão, cookies etc.
É o que tem pra se usar, mas se for analisar mesmo, é um grande remendo :)
 
@Bacco verdade rsrs
ainda tem muitas coisas que me deixam confuso em relação a aplicações Web
 
Bom, vou nessa.
até logo mais o/
 
@Bacco ate + \o/
 
2:19 AM
@DanielGomes Vlw man... Boa Sorte, "Agente Smith", não esqueça de se valorizar, dá bastante, mas exija o mínimo.. abraço man
 
@diegofm Por que rejeitou ?
 
@MagicHat não trivial
 
@diegofm o que é não trivial ?
 
2:26 AM
@diegofm Você prefere deixá-la com o erro de português ? "Atibuto" ou prefere o correto "Atributo?
 
@diegofm Acho que vc está com o mods_operation desrregulado, vá descansar man...Leve como uma crítica construtiva
 
@MagicHat desregulado por que?
 
@diegofm estão com vários erros ortográficos
 
uma palavra é varios?
 
2:30 AM
@diegofm 1 não mais de uma sim, reveja e entenderá pq estou dizendo para ir descansar
 
Não preciso descansar porque não estou cansado.
 
@diegofm Então seu monitor está com defeito
 
Acho que é você que precisa rever a edição, somente a palavra atributo estava errada
IMG ele apenas destacou, o que foi totalmente descartavel como edição. A correção da palavra até da pra entender
 
@diegofm no 1º caso sim, ainda assim eu aprovo por que há melhorias mas nas 2 outras tem masi de 1 erro
@diegofm veja não estou querendo afrontá-lo, apenas chamando sua atenção para algo que talvez não esteja vendo
 
@MagicHat estou vendo perfeitamente, só acho as correções irrelevantes para perguntas tão antigas
 
2:34 AM
@diegofm Eu sei man, tudo bem... Se na sua opinião não há necessidade de aprovar a boa ação do usuário em querer melhorar pequenos detalhes, por mim tudo bem... Eu continuo o respeitando... Eu gosto desses detalhes melhorados...
 
Só acho meio desnecessário desenterrar perguntas tão antigas para mudar tão pouco. Enfim, é questão de opinião mesmo.
 
Só acho que é bom incentivar esse tipo de atitude... Agora quando o cara edita a ortográfia, e faz mal feito aí concordo
@diegofm entendo, mas imagina que vc fosse o dono do So, vc teria esse mesmo pensamento ?
 
@MagicHat qual a relação desta pergunta com o caso?
 
@diegofm Por que eu não acho que seu argumento, torna dispensável pequenas melhorias mesmo em perguntas antigas, mas o fato não são as questões antigas para mim, mas a boa vontade do usuário, mesmo que seja pra ganhar 2 conto...
@diegofm mas eu me pergunto, por que rejeitar, pequenas melhorias ?
 
Eu já expliquei mais acima, não vou ficar repetindo a mesma coisa.
 
2:40 AM
hehe... tranquilo man... sou meio chato as vezes...
malz ae
 
2:55 AM
0
Q: Votos em série...Positivos

MagicHatPosso dar votos em série em repostas ou perguntas de um mesmo usuário ? Existe algum limite para votos ? Por exemplo vez ou outra eu entro no perfil de algum usuário, por acreditar que as perguntas e respostas são boas, e as que gosto voto positivo, existe algum limite ?

 
3:31 AM
0
Q: Fila de análise, respostas tardias

MagicHatO que deve ser analisado, na fila "Respostas Tardias"? Existe alguma pergunta ou link explicativo sobre os procedimentos na fila de análise ?

 
@MagicHat me desculpe se pareci rude, realmente não precisava te responder como respondi, é o stress do convívio social, a gente acaba refletindo até na internet. :/
 
@diegofm relaxa man... sei que vc faz bastante por aqui... e só quer o melhor... Fica tranquilex que não existe 1 pessoa que as vezes num solta um farpa...
@diegofm mas sempre que quiser trocar umas ideias off-topic, para esvaziar o "cache", tamo ai...(sei que não é o lugar ideal), mas agente faz umas analogias com nosso mundo da programação..; já dá pra dar uma aliviada... as vezes é bom agente por pra fora de uma forma ou de outra... Se não fizer se vai acumular e por bem ou por mau vai sair...
 
 
13 hours later…
4:31 PM
@bigown me tira uma dúvida(caso saiba). Quando passo um ArrayList como parâmetro, está sendo passada sua referência de mémoria ao inves de ser feita uma nova cópia?
 
isso
 
 
2 hours later…
6:15 PM
@bigown é porque vi num site que em java toda passagem é por valor, fiquei meio confuso já que o arraylist passado é alterado também. Então na verdade a "passagem por valor" é o endereço de memória e não um clone do objeto ne
 
@diegofm é cópia rasa, se não me engano.
Ou seja, uma nova lista, mas com os mesmos itens (e nao uma cópia deles)
@diegofm experimente mandar um array list com 3 itens como parametro, e dentro do método remova um.
ai vc imprime a lista dentro do método e depois do retorno imprima de novo fora do método.
Ah, e dentro do método antes de imprimir, mude um valor.
se for cópia rasa, a remoção só acontece dentro, e a alteração em ambos
a remoção é da nova lista, mas o valor é do mesmo item nos 2 casos
 
@Bacco pior que já fiz um teste, respondi uma pergunta recente aqui no site e notei o comportamento, até citei na pergunta algo sobre "passagem por referencia" mas estou em duvida se a informação não está errada
 
@diegofm Mas vc chegou a testar essa situação que eu comentei? Alteração x remoção de um item?
 
Tem um arraylist criado em um componente e compartilhado entre outrs 2, cada vez que um dos tres modificava ele, era refletido na "copia" de todos
 
@diegofm e está correto, ele passou por valor. Qual é o valor de um ArrayList? É a sua referência, então é isso que é passado. Não é o objeto que é referenciado. Java não possui passagem por referência, mas possui valores que sejam referências.
 
6:24 PM
se for cópia rasa mesmo, a alteração afeta fora (pq mexeu no item que ta nas 2 listas) mas a remoção nao (pq mexeu na nova lista e nao no item, nem na lista original)
 
0
A: Atualizar ComboBox que recebe uma lista de outro painel

diegofmDa forma como o código estava, seria complicado qualquer adaptação. Separei os paineis em classes diferentes e para resolver o problema do combo sem alterar a estrutura do seu código, implementei um listener no Painel onde o combo se encontrava, de forma que ele vai ser invocado sempre que o pain...

@Bacco mas adicao/remocao não afeta a lista?
 
@diegofm se for copia rasa nao, pq sao 2 listas. Nao tou afirmando, nao tenho pratica com Java. O teste é a melhor resposta.
Se o valor do item altera em ambas, mas qtd de itens nao, grande chance de ser o que eu disse.
pq se for clone, copia "profunda" nada se altera
 
@Bacco olha o gif da resposta, são 3 telas diferentes e eu só passava o arraylist como parametro, mas ao adicionar um item fora da classe onde ele se originou, a lista era alterada em todas as telas com o item adicionado
 
e se for referencia, a lista altera nos 2 lados
se for copia rasa é esse meio termo.
 
Ah, então vou alterar o trecho onde falo de passagem por referencia
 
6:28 PM
@diegofm nao altere, teste kkkk. Eu nao sei se é.
e mesmo testando, precisa entender melhor.
 
@Bacco o @bigown confirmou ali em cima isso mesmo, a passagem é por valor, mas um arraylist não tem uma definicao certa, dai o valor passado é seu endereço de memoria, por isso altera em todas as telas
 
Fiz uma alteração sutil, pra não ter que ficar explicando isso e fugir do escopo da pergunta kkk
 
de fato nem cópia rasa é.
 
@Bacco como eram 3 classes diferentes, eu adicionei breakpoints nas 3 em linhas estrategicas, de forma que eu poderia ver o tamanho do arraylist antes e depois de adicionar um item. De fato, o tamanho e o objeto adicionado era refletido nas 3 classes
 
6:34 PM
removeu e acrescentou nas 2 situacoes
@diegofm eu ja acabei mandando um ideone simples mesmo kkk
 
@Bacco mas foi isso mesmo que fiz kkk
Lembro de ter lido numa resposta aqui que para evitar isso teria que clonar o objeto, só não achei a resposta para usar de referencia na resposta(caso o OP quisesse mais detalhes)
 
@diegofm eu não falei nada disso, eu falei o que está escrito lá em cima :)
 
kkkkkkkkkkkkkkkkkk
 
@bigown foi isso que quis dizer, só expliquei mal :p
Deu pra ver porque tenho mais de 100 repostas no site e nenhuma é teórica kkkkkkkk
 
se precisa manter o valor precisa de uma cópia rasa ou profunda, q ñ é o padrão
9
Q: Copia de classe em C#

Ivo FritschNa programação em C++ para copiar uma classe, para outra, basta fazer o seguinte: minhaClasse* class_1 = new minhaClasse(); minhaClasse* class_2 = new minhaClasse(); *class_2 = *class_1; // Faz a atribução membro-a-membro da classe ou ainda minhaClasse class_1; // declara a classe diretamente...

8
Q: Qual é a finalidade do método mágico __clone?

Wallace MaxtersNo PHP temos o método mágico __clone. Ele serve para definir um comportamento quando você clona um objeto, através da palavra chave clone. Até aí tudo bem. Porém não entendi muito bem por que ter esse método mágico, já que a palavra clone por se só já clona um objeto. Exemplo 1: $a = new Arra...

 
6:42 PM
@bigown em C# é copia rasa por padrão?
 
30
Q: Alocação de memória em C# - Tipos valor e tipos referência

LeonardoEm C# há uma diferença entre a forma que a memória é alocada pelo CLR para tipos referência (classes) e tipos valor (estruturas). A diferença, pelo que sempre ouvi falar, seria o fato de tipos valor serem armazenados na pilha e tipos referência no heap. Ocorre, porém, que tipos valor também podem...

@Bacco de tipo valor, sim. Se for tipo referência, nem isso é feito, o que é copiado é a referência apenas
o método clone() é usado para clonar objetos, se vai ser raso ou profundo é decisão da classe implementar
Se precisa clonar precisa implementar a IClonable e fazer o que quiser ali. O Object possui um método utilitário que faz a rasa, mas ele foi feito p/ a sua classe usar, ñ p/ uso externo: msdn.microsoft.com/en-us/library/… Se quiser fazer a profunda, o problema é seu se virar. Ele provavelmente será chamado dentro do Clone() da sua classe.
Em C# existe passagem por referência e será ampliado no C# 7
 
Bom, menos mal que, para a resposta, o comportamento de alterar externo era benéfico, apesar que eu jamais usaria daquela forma.
 
O Harbour tb existe, é o @, se ñ usar o @ ñ é passagem por referência
 
@bigown exceto array e hash :P
 
48
Q: List passed by ref - help me explain this behaviour

NgmTake a look at the following program: class Test { List<int> myList = new List<int>(); public void TestMethod() { myList.Add(100); myList.Add(50); myList.Add(10); ChangeList(myList); foreach (int i in myList) { Console.W...

@Bacco é, em termos
 
6:55 PM
@bigown mas na verdade vc tem razão, pq se eu nao passar com @
e mudar completamente o valor, a de fora nao muda
a := {1,2,3}
muda( a )
se eu adicionar, alterar, remover, muda a de fora
mas se dentro do muda( x ) eu fizer x := 'xxx'
a de fora nao vira 'xxx' sem o @
ou seja, no fim é a mesma coisa, a referencia é o @
 
essa explicação do C# vale pra praticamente todas linguagens. No C# o ref é o @
 
bom, até mais pra quem fica, vou fazer outras coisas por aqui.
o/
 
 
4 hours later…

« first day (1088 days earlier)      last day (2696 days later) »