• С чего начать изучение Java EE?

    SanchelliosProg
    @SanchelliosProg
    Java, Android, Software Testing
    Сначала можно пройти туторилы на сайте NetBeans. Они великолепны и бесплатны. Потом я бы посоветовал Spring или EJB. В довесок - Hibernate, но потом.
    Ответ написан
    Комментировать
  • Где эффективнее учить java se?

    SanchelliosProg
    @SanchelliosProg
    Java, Android, Software Testing
    Бытстро и эффективно? Просто начинаешь кодить и много ошибаться. Не получается? Слишком много ошибок? HeadFirst:Java или Thinking in Java в помощь.
    Ответ написан
    Комментировать
  • Кто знает простой текстовый редактор с интеграцией Git?

    yuliyadrobiazka
    @yuliyadrobiazka
    Atom
    Ответ написан
    Комментировать
  • Что такое GitHub и зачем он нужен?

    EugeneP2
    @EugeneP2
    Java Dev
    Для начала, почитайте что такое Version Control System

    GitHub - это VCS с социальной составляющей. В соц. сети вы выкладываете фоточки, а тут исходный код.
    Ответ написан
    8 комментариев
  • Зачем иметь так много разных консолей? Чем они все отличаются?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Стандартная консоль винды очень убогая.
    ConEmu предлагал как раз решения для замены, и очень удобное, особенно в связке с FAR.

    git предлагает не только консоль, но и весьма внушительный набор портированых с Линукс утилит, поскольку изначально он был разработан для работы в Линукс.

    Node.js предлагает свою консоль, чтобы запускать свои скрипты.

    В основном все проблемы растут от того, что родная консоль винды жутко убогая, и MS ничего с этим не делает. MS добавили повершелл, добавили функции в сам язык скриптов, но саму консоль до адекватного состояния не довели, и даже эти некоторые улучшения только-только начали появляться в последних версиях. Это и привело к тому, что каждый пытается свое решение предложить
    Ответ написан
    7 комментариев
  • Как соединить массив с массивом (byte) в Java?

    EugeneP2
    @EugeneP2
    Java Dev
    В любом случае нужно создавать новый массив длиной byte_1.length + byte_2.length

    Опять же, рекомендую пользоваться готовыми решениями

    <dependency>
    	<groupId>org.apache.commons</groupId>
    	<artifactId>commons-lang3</artifactId>
    	<version>3.4</version>
    </dependency>


    Класс: org.apache.commons.lang3.ArrayUtils
    Метод: ArrayUtils.addAll(arr1, arr2)
    Ответ написан
    3 комментария
  • Как прочитать из файла нужную строку в Java 7?

    EugeneP2
    @EugeneP2
    Java Dev
    Динамически создавать переменные у вас не выйдет. Создайте ArrayList и добавляйте в него строки.

    Для чтения построчно, можно юзать java.util.Scanner, у него есть удобные методы для построчного чтения файла: hasNextLine и nextLine.

    И что это за строки? Случайно не конфигурация? Если да, то проще воспользоваться java.util.Properties, и хранить строки в файле в формате: <Имя параметры>=<Значение>

    package ru.toster.java.q261000;
    
    import java.io.*;
    import java.util.*;
    
    public class MainQ261000 {
    
    	public static void main(String[] args) {
    		
    		
    		String demoFile = "aaaaaaaaa\nbbbbbbbbbbbb\nccccccccccccccccc";
    		
    		Reader r = new StringReader(demoFile); 
    		// Reader r = new FileReader("FileWithTextLines.txt");
    
    		List<String> lines = new ArrayList<String>();
    		
    		Scanner s = new Scanner(r);
    		try {
    			
    			while(s.hasNextLine()) {
    				lines.add(s.nextLine());
    			}
    			
    		} finally {
    			s.close();
    		}
    		
    		for (String line : lines) {
    			System.out.println(line);
    		}
    		
    	}
    }
    Ответ написан
    7 комментариев
  • Как сделать красивый вывод словарей в консоль Python?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    pprint
    Ответ написан
    Комментировать
  • Как разработаться в математике взрослому человеку?

    @sibcrash
    Если надо повторить начиная от школы:
    stepic.org Базовый курс подготовки к ОГЭ по математике

    Если первые курсы универа, то вот: Введение в математический анализ

    Можно записаться прямо на курс, и идти по плану (матан с 16 ноября стартует). Но вообще курсы уже были в том году, а значит можно найти их материалы.

    Если попытаться верунть\зародить интерес к математике, то перед курсами прочитать "Удовольствие от Х" Строгаца, занятное чтиво, доступно о сути таких вещей как интегралы, дифференциал и т.д.
    Ответ написан
    Комментировать
  • Организация структуры приложения java + mongo?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    шаблон Registry.

    p.s. Зачем вам монга то?
    Ответ написан
    1 комментарий
  • Как вы выбираете что нужно изучить?

    IonDen
    @IonDen Куратор тега IT-образование
    JavaScript developer. IonDen.com
    Есть база: EcmaScript 5 и CSS(3) - надо знать
    Есть будущее: EcmaScript 2015 и CSS3(4)+ - надо поглядывать и быть в курсе
    Есть популярные расширения CSS: LESS/SASS/Stylus и т.д. - выбрать что-то одно и изучать использовать.
    Популярные расширения JS: EcmaScript 2015 on Babel, TypeScript, CoffeScript и т.д. - я бы выбрал EcmaScript, так как 2 зайцев одним выстрелом.
    Есть известные фреймворки CSS: Bootstrap - приятно знать
    Есть известные JS фреймворки: jQuery - обязательно знать, SPA-фремворки/библиотеки (Angular, Ember, React, Backbone и т.д.) - обязательно начать что-то изучать и использовать.
    Так же не стоит забывать про системы сборки: Grunt/Gulp/Webpack и т.д. обязательно начать изучать что-то из этого.
    Плюс всегда стоит помнить о работе в команде (даже если вы сейчас работаете один): это Git и GitHub/Bitbucket - тоже обязательно изучать.
    + я не затронул кучу других вопросов: оптимизация, алогоритмы, сетевые протоколы, особенности работы браузеров и т.д.
    + для общего развития полезно изучать еще какой-то язык, помимо JS

    Как видите, требования для современного фронтенд-разработчика невероятно обширны, так что, прежде чем вы решите изучать что-то еще, подумайте, а всем ли из этого списка вы владеете достаточно хорошо?
    Ответ написан
    Комментировать
  • Как сделать все уникальные последовательности из одномерного массива?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комбинаторика, перестановки.
    Ответ написан
    Комментировать
  • Как реализовать симуляцию JAVA используя многопоточность?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    По заявкам телезрителей :)
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.Random;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.TimeUnit;
    
    
    public class Simulation {
    
    	private static final Random globalRandom = new Random(System.currentTimeMillis());
    	
    	public synchronized int getRandomIntInRangeEnclosed(int min, int max){
    		return globalRandom.nextInt((max - min + 1) + min);
    	}
    	
    	private final static int CUSTOMER_NUMBER = 3000;
    	private final static int DESK_NUMBER = 6;
    
    	public final int ITEM_DURATION_S_MIN = 3;
    	public final int ITEM_DURATION_S_MAX = 8;
    
    	public final CustomerFactory customerFactory = new CustomerFactory(this, CUSTOMER_NUMBER);
    
    	public final ArrayList<DeskReport> results = new ArrayList<DeskReport>(DESK_NUMBER);
    	
    	public void perform(){
    		ExecutorService executor = Executors.newFixedThreadPool(DESK_NUMBER);
    		for (int i = 1; i <= DESK_NUMBER; i++) {
    			executor.submit(new Desk(this, i));
    		}
    
    		executor.shutdown();
            try {
                executor.awaitTermination(20, TimeUnit.SECONDS);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
    	}
    	
    	public void printResult(){
    		int maxTimeS = 0;
    		int maxItems = 0;
    		int maxCustomers = 0;
    		
    		int minItems = Integer.MAX_VALUE;
    		int minCustomers = Integer.MAX_VALUE;
    		
    		for(DeskReport r : results){
    			if(r.getSpentTime() > maxTimeS){
    				maxTimeS = r.getSpentTime();
    			}
    			
    			if(r.getSoldItemCount() > maxItems){
    				maxItems = r.getSoldItemCount();
    			}
    			if(r.getSoldItemCount() < minItems){
    				minItems = r.getSoldItemCount();
    			}
    			
    			
    			if(r.getServedCustomerCount() > maxCustomers){
    				maxCustomers = r.getServedCustomerCount();
    			}
    			if(r.getServedCustomerCount() < minCustomers){
    				minCustomers = r.getServedCustomerCount();
    			}
    			
    		}
    		
    		Date date = new Date(maxTimeS * 1000L);
    		DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
    		String dateFormatted = formatter.format(date);
    		
    		
    		System.out.println("---------------- RESULTS ----------------");
    		System.out.println(DESK_NUMBER + " desks served " + CUSTOMER_NUMBER + " customers in " + dateFormatted);
    		System.out.println("Troughput min ~ max:");
    		System.out.println(minItems + "\t~\t" + maxItems + " \titems/desk");
    		System.out.println(minCustomers + "\t~\t" + maxCustomers + "\tcustomers/desk");
    	}
    	
    	public static void main(String[] args) {
    		Simulation sim = new Simulation();
    		sim.perform();
    		sim.printResult();
    	}
    }
    public class CustomerFactory {
    
    	private Simulation simulation;
    	private int capacity = 0;
    	
    	public CustomerFactory(Simulation simulation, int capacity){
    		this.simulation = simulation;
    		this.capacity = capacity;
    	}
    
    	public synchronized Customer getInstanceWithRandomCapacity(){
    		if(capacity-- > 1){
    			return new Customer(this.simulation.getRandomIntInRangeEnclosed(1,20));
    		} else {
    			return null;
    		}
    	}
    	
    }
    
    public class Desk implements Runnable{
    	private Simulation s = null;
    	private int deskNo = 0;
    
    	private int servedCustomerCount = 0;
    	private int soldItemCount = 0;
    	private int spentTime = 0;
    	
    	public Desk(Simulation s, int deskNo) {
    		this.s = s;
    		this.deskNo = deskNo;
    	}
    	
    	public void run() {
    		System.out.println("Desk " + deskNo + " opening...");
    
    		Customer c = null;
    		while ((c = s.customerFactory.getInstanceWithRandomCapacity()) != null) {
    			servedCustomerCount++;
    			for(int i=c.getItemCount(); i>1; i--){
    				soldItemCount++;
    				spentTime += s.getRandomIntInRangeEnclosed(s.ITEM_DURATION_S_MIN, s.ITEM_DURATION_S_MAX);
    			}
    			//get short break after each customer ;)
    			sleep(Long.valueOf(s.getRandomIntInRangeEnclosed(s.ITEM_DURATION_S_MIN, s.ITEM_DURATION_S_MAX)));
    		}
    		
    		s.results.add(new DeskReport(deskNo, servedCustomerCount, soldItemCount, spentTime));
    		System.out.println("Desk " + deskNo + "\tclosing.\tcustomers " + servedCustomerCount + "\titems " + soldItemCount + "\ttime(s) " + spentTime);
    	}
    	
    	private void sleep(long ms){
    		try {
    			Thread.sleep(ms);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    	}
    }
    
    public class DeskReport {
    	private int deskNo = 0;
    	private int servedCustomerCount = 0;
    	private int soldItemCount = 0;
    	private int spentTime = 0;
    	
    	public DeskReport(int deskNo, int servedCustomerCount, int soldItemCount, int spentTime){
    		this.deskNo = deskNo;
    		this.servedCustomerCount = servedCustomerCount;
    		this.soldItemCount = soldItemCount;
    		this.spentTime = spentTime;
    	}
    	
    	public int getDeskNo() {
    		return deskNo;
    	}
    
    	public int getServedCustomerCount() {
    		return servedCustomerCount;
    	}
    
    	public int getSoldItemCount() {
    		return soldItemCount;
    	}
    
    	public int getSpentTime() {
    		return spentTime;
    	}
    	
    }
    
    public class Customer{
    	private int itemCount = 0;
    	
    	public Customer(int itemCount){
    		this.itemCount = itemCount;
    	}
    	
    	public int getItemCount(){
    		return this.itemCount;
    	}
    }

    Симуляция примитивнейшая, демонстрирует скорее работу планировщика потоков, нежели магазина. Но если ее развить: смоделировать неравномерное "поступление" покупателей в магазин, очередь к кассам, случайный выбор кассы покупателем и т.д., можно узнать много интересного о работе магазинов. А пока, чтоб не было совсем уж бессмысленно, считается хоть какая-то примитивная статистика.
    Ответ написан
    Комментировать
  • Какой язык подходит для начинающих?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Java, C, Python и т.д. Берите любой, на все есть хорошие книги и хорошие комьюнити.
    Ответ написан
    Комментировать
  • Не могу понять, что такое VOID в С++?

    @Beltoev
    Живу в своё удовольствие
    Можете воспринимать void как пустое или неопределенное значение.
    Например, может использоваться:
    • в функциях: в качестве возвращаемого значения:
      void print_hello()
      	{
      	    printf("Hello!");
      	}

      Заметим, что print_hello() можно написать и так: print_hello(void)
      То есть, мы явно можем показать, что функция ничего не принимает (обычно void опускают при написании)
    • как указатель на неопределенный тип данных:
      void *value; // указатель на что-то неопределенное
      int a = 5;
      value = (int *)a; // теперь указываем на целое


    Если проще, я бы не заострял внимание на этом. Просто запомните: если функция ничего не возвращает, просто пишем в начале void, иначе - возвращаемый тип данных. И всё: больше себе голову этим забивать не стоит
    Ответ написан
    2 комментария
  • Как освоить сами принципы программирования, не зацикливаясь на каком-то языке?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    На мой взгляд, программирование - прежде всего декомпозиция и алгоритмизация задачи. Научитесь разбивать задачу на легко решаемые подзадачи, подбирать или самостоятельно составлять оптимальные алгоритмы решения каждой подзадачи - это и будет умением программировать.
    Знание языка программирования, а лучше нескольких, конечно обязательно, но само по себе ничего не даёт, так же как знание какого-либо разговорного языка само по себе не делает человека писателем или поэтом.
    Ответ написан
    Комментировать
  • Как получить с Long хэш покороче?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Переведите в 62-ричную систему счисления 0-9a-zA-Z.
    Максимальная длина будет
    log62(232) = 5.37, то есть 6 разрядов.

    В 36-ричной системе 0-9a-z длина будет 7 разрядов.

    410866054910 = 4u3wix62 = 1vy6urp36
    Ответ написан
    1 комментарий
  • Python delite Python delite?

    @deliro
    Не нужно такой говнокод в питон переносить.
    Используй setattr, hasattr и getattr, если совсем невмоготу.
    Ответ написан
    Комментировать
  • А почему 0.1 + 0.1 + 0.1 - 0.3 будет очень большое число?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Важна ли корочка при устройстве на работу?

    @Chekhoved
    Важна, если это корочка хлеба. Вдруг придется в очереди ждать, будет чем перекусить.
    Ответ написан
    2 комментария