All streams
Search
Write a publication
Pull to refresh
37
0
vyalow @vyalow

Пользователь

Send message
Спасибо за статью!
Возник один вопрос.
Не могу разобраться, как настроить краулинг через прокси… Кто-нибудь сталкивался?
Прямая трансляция будет? Или видео с конференции впоследствии?
Подписался на ваш блог. Как реализуете mercurial у себя — может придем к вам =)
А про параллельное программирование — это какая именно?
Нашла коса на камень )
Ссылку или хотя бы автора не затруднит запостить?
Блок можно отделять отступом хоть в один пробел, хоть в десять. Есть лишь рекомендация по использованию четырёх пробелов. Её и советую придерживаться.
Верно. В Унциях про это ни слова. Ввиду очевидности. Роль привычных {} в питоне играют отступы от левого края.
Надо же!!! Это радостное известие для меня. Желаю удачи! :)
Не совсем так. Третий пример не эквивалентен первому. Например, когда S имеет ложное значение.
Пример:

>>> A = 0
>>> S = 1
>>> B = 'hi'
>>> A if S else B
0
>>> ((A and S) or B)
'hi'


Второй пример будет работать медленнее, чем первый. Т.к. в первом используется сокращённая схема вычислений, а во втором полная.

Короче говоря, иметь представление об альтернативных вариантах — полезно. Т.к. они могут встретиться в старом коде (когда тернарный оператор ещё не был введён). Но в новом коде следует использовать только первый вариант. Читаемость кода — это тоже немаловажный фактор, согласитесь ;)
Это радостно слышать! Сегодня будет продолжение.
Связь такая, что в унциях измеряется золото ;)
Спасибо за хорошее дополнение!
Спасибо! Поправил.
Формат статьи — что-то обязательно окажется обрезанным рамками.
>Нет функции «Скрыть пустые группы».

+1
Скрыть пустые группы, скрыть контакты оффлайн — это всё что мне нужно, чтобы начать пользоваться вашим клиентом )
Альбом новый, а песни старые? хмм…
А так всё в духе времени )
>иначе все развалится

Чтобы что-то развалить — для начала нужно построить ;)
Пока же немного настораживает обилие громких слов.
Хотя с тругой стороны автор говорит о наличии опыта.
В любом случае эксперимент интересный! :) Хотелось бы поучавствовать.
Хочу сказать спасибо за эту статью! Она сподвигла меня на некие действия. Во-первых благодаря ней я-таки съездил в магазин и купил книгу «JAVA 2 Тонкости программирования» второй том. Когда бы иначе я до этого дошёл? ))
Взялся за третью задачу. Т.к. первые две для меня не интересны.
Впервые стал разбираться с многопоточностью.
Первые три подзадачи сделал. А вот на четвёртом пункте подзастрял. Пока не могу сообразить как сделать так, чтобы введённое одним пользователем — выводилось сразу у всех. Нужно как-то передавать информацию между потоками. Как это обычно делается? Т.е. чтобы один поток пробуждал все остальные.
Подсказки от вас могут быть? =) Вот реализация первых трёх пунктов. Она немного изменена, т.к. я работал над четвёртым. Запись в файл, к примеру, в первых трёх пунктах не нужна. Пока не пойму потребуется ли она вдальнейшем.

Класс chat

package ru.chat;

import java.io.*;
import java.net.*;

public class chat {
public static void main(String args[]){
try{
int i =1;
ServerSocket s = new ServerSocket(1234);
while (true){
Socket incoming = s.accept();
System.out.println(«Swaping „+i);
Runnable r = new ThreadedChatHandler(incoming);
Thread t = new Thread®;
t.start();
i++;
}
}
catch (IOException e){
e.printStackTrace();
}
}
}

класс ThreadedChatHandler

package ru.chat;

import java.io.*;
import java.net.*;
import java.util.*;

public class ThreadedChatHandler implements Runnable{
public ThreadedChatHandler(Socket i){
incoming = i;
}
public synchronized void run(){
try{
try{
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();
Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream,true);
RandomAccessFile fileIn = new RandomAccessFile(“history.txt»,«r»);
fileIn.skipBytes((int)fileIn.length());
out.println(«Hello! Enter BYE to exit.»);
String answer = "";
while (answer != null){
String line = in.nextLine();
FileWriter fileWrite = new FileWriter(«history.txt»,true);
fileWrite.write(«Echo: „+line+“\n»);
fileWrite.close();
answer = fileIn.readLine();
out.println(answer);
if (line.trim().equals(«BYE»)) break;
}
}
catch (FileNotFoundException e){
e.printStackTrace();
}
finally{
incoming.close();
}
return;
}
catch(IOException e){
e.printStackTrace();
}
}
private Socket incoming;
}

класс ChatClient

package ru.chat;

import java.io.*;
import java.net.*;
import java.util.*;

public class ChatClient{
public static void main(String args[]){
try{
Socket s = new Socket(«localhost»,1234);
try{
InputStream inStream = s.getInputStream();
OutputStream outStream = s.getOutputStream();
Scanner in = new Scanner(inStream);
Scanner userin = new Scanner(System.in);
PrintWriter out = new PrintWriter(outStream,true);
while(in.hasNextLine()){
String line = in.nextLine();
System.out.println(line);
if (!line.equals(«Echo: BYE»)) out.println(userin.nextLine());
}
}
finally{
s.close();
}
}
catch(IOException e){
e.printStackTrace();
}
}
}
Мой id вконтакте нашёлся аж в трёх местах =) 2 1 0 9 0

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity