[WT] [Архив]  [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]
Ответ в нить [Первые 100 сообщений]
Имя
Animapcha image [@] [?]
Тема   ( ответ в 14160)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером не более 10000 кБ.
  • Ныне 2332 unique user posts. Посмотреть каталог
  • Максимальное количество бампов треда: 500
  • ">
Файл: 146695702917.jpg-(86.47KB, 720×720, junior_developer_nagato.jpg)
14160
No. 14160 watch    
Здесь можно получить помощь и консультацию по любому языку программирования, в любой сфере разработки. Не важно, программируете ли вы собственного робота, пишете серверную приблуду, интегрируете чужие API, ковыряете игру, или пытаетесь сделать сайт на Wordpress - если аноним что-то об этом знает, он обязательно поможет.

Примеры кода лучше выкладывать в виде ссылок на http://pastebin.com или http://ideone.com

Не знаете, какой язык и библиотеки взять для вашей задачи? Вам сюда.
Не знаете, где клиент, а где сервер? Вам сюда.
Не понимаете, что такое ООП? Вам сюда.
Написали код, и не понимаете, почему не работает? Вам сюда.
Обнаружили кусок кода, и не понимаете, как оно вообще могло работать? Вам тоже сюда.
Не знаете, как подступиться к проблеме? Вам обязательно сюда.

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

Чтобы не сбивать новичков с толку, а также не разбавлять полезную информацию мусором, беспредметные споры типа "какой язык / парадигма / библиотека / етц лучше" здесь запрещены.

Если здесь поселится достаточное количество программистов на одном языке / одной сферы, можно будет их выделить в отдельную нить, а в этом оставить на него ссылку.

По мере поступления вопросов можно составлять FAQ и базу знаний.
Развернуть все изображения
No. 14162    
Файл: 146696426195.png-(13.57KB, 917×456, .png)
14162
Мне лень думать и гуглить. Юки, напиши мне следующий алгоритм:
Есть двухмерная декартова система координат, в ней каждая клетка может быть заполнена, а может быть пустой. Координаты по любой оси от минус бесконечности до бесконечности.
Задача найти все заполненные клетки, начиная поиск из начала координат (0;0). Заполненные клетки могут иметь между собой n пустых, если пустых клеток насчиталось больше, можно считать эту клетку крайней.
На пикрилейтед зеленые клетки с координатами - заполненные, красные - область поиска для n=0, желтые - для n=1;
Язык js, можно Питон.
No. 14163    
>>14162
Как вход задается?
No. 14164    
>>14162
Т.е. какую структуру имеют входные данные, в частности массив? Или это тоже можно придумать?
No. 14165    
Файл: 146696928030.png-(11.33KB, 581×1163, c3.png)
14165
>>14162
Положи в очередь первую клетку.
Все, что когда-либо добавлял в очередь — запоминай и больше не добавляй (раз масштабы бесконечные, в Питоне подойдут set или dict, в JS вроде тоже есть Set, или можно для {} придумать уникальные ключи, например, (5, 6) → "5_6").

Теперь, пока очередь не пуста, повторяй следующее:
Извлеки клетку из очереди.
Отметь как найденную.
Перебери её окрестности в радиусе.
Все непосещённые клетки из радиуса добавь в очередь. (Как вариант — одну любую непосещённую, должно получиться то же самое).

Модификация поиска в ширину.
No. 14166    
>>14164>>14163
Входных данных как таковых в условии нет, алгоритм просто вызывает метод getCell(x,y), который возвращает true, если клетка не пустая. Единственное входное число - n, радиус поиска. Задача сводится к вызвать этот метод для каждой клетки в желтой (для n=1) или красой (для n=0) зоне на картинке >>14162.
Метод getCell() затратный, так что по условию для каждой клетки его можно вызывать только раз.
>>14165
Перебор окрестностей - наиболее интересная часть. Запоминать посещенные клетки и добавлять не посещенные в очередь действительно проще всего. Я представлял себе, что будет похоже на алгоритм заливки в пеинте, нечто рекурсивное.
No. 14167    
Файл: 146697845913.gif-(1.38MB, 1277×720, 1434136205.gif)
14167
>>14166
>>14162
Собственно вот, держи, на яваскрипте:
http://pastebin.com/Hu223SV4

Результаты берешь из переменной foundCells.
Если будешь запускать в браузере - раскомменть console.log() и оно выведет тебе объект c непустыми точками в консоль

Запускай вызовом функции getNonEmptyCells(0) если N == 0, getNonEmptyCells(1) если N == 1 и т.д. Новые непустые точки добавляй в метод getCell() по образцу.
Поскольку этот метод у тебя черный ящик - я там сделал просто портянку костылей
По идее для каждой точки getCell должен дёргаться один единственный раз.

Надеюсь, всё понятно, за качество кода не обессудь.
No. 14169    
>>14167
Говно код ужас
No. 14170    
>>14169
>за качество кода не обессудь
Написано же.
Давай не флудить.
No. 14186    
Файл: 146738840786.jpg-(94.51KB, 720×720, junior_developer_nagato_standby.jpg)
14186
Аноним проверяет тред несколько раз в сутки, чтобы каждый мог получить ответ или хотя бы наводку на него в тот же день.

Раздел медленный, так что пусть даты постов не пугают вас, аноним ждет ваших вопросов и кодерских находок.
No. 14187    
У меня вопрос - сам я жавист, в перспективе собираюсь менять место работы. Несколько лет назад начало активно форситься слово "фулстак" и на этой волне в 80% жава вакансий в требованиях начал появляться фронтенд в том или ином виде. Подскажите что следует поизучать? Первая мысль была взять HF книжки по html/css и JS, будет ли этого достаточно?
No. 14188    
>>14187
Обычно под фронтендом в джаве, в контексте фуллстека, подразумевается умение ковыряться в определенном наборе популярных фронтенд фреймворков, в частности:
Это большие фреймворки для построения веб-приложений, поэтому в них старается соблюдаться сходная с бэкендом архитектура, контроллеры-сервисы-вьюхи и т.д.

Еще подразумевается, что ты ориентируешься в популярных простых фреймворках для стилизации и рюшечек, вроде:
Также в контексте яваскрипта подразумевается:
  • ты не растеряешься в работе с "серверным яваскриптом", т.е. nodeJS или его альтернативами, типа io.js
  • ты совладаешь хотя бы с одним яваскриптовым фреймворком общего назначения, например jQuery
Т.е. книги и справочники "просто" по CSS и Javascript я бы рекомендовал тебе использовать только как справочную литературу в контексте ознакомления с какими-то из фреймворков выше. У всех тех фреймворков есть туториалы, которые ты сможешь выполнить приобретя минимальные знания в яваскрипте и CSS, попутно получив уже полезные профессиональные навыки.

Надеюсь, помог тебе сориентироваться.

Выбор какого-то конкретного фреймворка не так важен, т.к. они в целом похожи.
No. 14189    
>>14186
Тогда запили метод getCell(x, y) из предыдущего поста. Он должен через websocket связываться с сервером, в запросе указывать x и y; в ответе получаем JSON, парсить его неважно как, просто добавляем полученный объект в массив, с ним разберутся позже. Возвращаем true, если объект есть, false, если null или ошибка. Желательно использовать промисы.
No. 14190    
Файл: 146741056360.gif-(210.55KB, 500×278, yuki_ramen.gif)
14190
>>14189
Держи: https://jsfiddle.net/dvgmnx1e/

Можешь смело жать RUN в фиддле и смотреть консоль браузера. Там в самом низу написан пример вызова, который дёргает всю эту хрень.

Проверял только в Firefox, тестов и дополнительных проверок нет, так что если что - не обессудь.

Итак, getCell(x, y) возвращает jQuery'шный Deferred Object, на который можно вешать листенер по вкусу что и сделано в примере там внизу, так что вызов не блокирующий.

Алсо там запилен быстроэмулятор сервера, который говорит, что точка найдена если сумма координат делится на 2, и не найдена, если не делится. Естественно, можешь менять как хочешь.

Найденные точки можно забирать из массива pointsArray или из объекта points, который выступает в роли сэта обработанных точек. Вид, в котором хранятся данные - в комментариях рядом с объявлением этих хранилищ.
No. 14191    
>>14190
Забыл указать, без JQuery, чистый ES6.
No. 14192    
Файл: 146746460624.gif-(2.12MB, 659×504, yuki_programming.gif)
14192
>>14191
Держи пуристскую версию: https://jsfiddle.net/y4v9ua1b/

Как и в прошлый раз, дополнительных проверок нет, проверялось только в Firefox, так что не обессудь. Смело жми RUN и смотри консоль, там всё так же.

>Забыл указать, без JQuery, чистый ES6.
Вот из-за такого месседжа "вдогонку" мне теперь кажется, что ты немного абьюзишь этот тред, в том смысле, что на самом деле помощь тебе никакая не нужна и это просто такое изощренное развлечение с твоей стороны. Если это так - лучше перестань, от этого толку нет ни мне, ни тебе, и особенно толку нет 410му.
No. 14194    
Файл: 146753698114.jpg-(109.74KB, 1280×720, AKBINGO! Ep_228_mp4_20160418_213354_900.jpg)
14194
Спрошу тут.
tail -f over XMLHttpRequest возможен?
No. 14195    
>>14194
Собственная реализация? Если через вебсокет, или через "висячий" реквест, например, то почему нет?

Вот даже кто-то сделал уже tail over http:
https://github.com/vpelletier/htail
No. 14196    
>>14194
>>14195
Вот гист, с реализацией на питоне и использованием конкретно XMLHttpRequest:
https://gist.github.com/scoffey/1617014
No. 14197    
>>14195
По "висячим" реквестом ты имел ввиду это http://www.w3schools.com/html/html5_serversentevents.asp или интерактив xhr?
Но так-то xhr мне уже не нравится, лучше попробовать EventSource или websockets.
>>14196
питон не божественнен :3
No. 14198    
>>14197
>По "висячим" реквестом ты имел ввиду это http://www.w3schools.com/html/html5_serversentevents.asp или интерактив xhr?

В первую очередь да, server-sent events, но подразумевался любой подходящий способ одностороннего или псведо-одностороннего получения сообщений.
No. 14206    
Файл: 146791089052.jpg-(133.93KB, 1280×720, AKBINGO! Ep_292_MP4_20160704_211348_404.jpg)
14206
А правда, что суть любого веб фреймворка - роутить запросы в скрипты?
No. 14207    
>>14206
Нет, не правда
No. 14208    
>>14207
А в чём правда?
No. 14210    
>>14206
>>14208
Правда в том, что не надо, пожалуйста, разводить флуд в этом треде. Если хочется получить более точный ответ, то лучше задать более точный и конкретный вопрос.
No. 14211    
Файл: 146799019310.jpg-(74.15KB, 720×720, junior_developer_nagato_standby_2.jpg)
14211
Как обычно, аноним проверяет тред несколько раз в сутки, чтобы каждый мог получить ответ или хотя бы наводку на него в тот же день.

Раздел медленный, так что пусть даты постов не пугают вас, аноним ждет ваших вопросов и кодерских находок.
No. 14214    
Есть тут малиноводы?
Пытаюсь установить flask под nginx с uwsgi.
Делаю
sudo pip install uwsgi или sudo pip3 install uwsgi
Пакет качается, на этапе установки малина крашится, экран просто выключается без сигнала, ssh не реагирует, в общем, признаков жизни не подает. Один раз перед выключением экрана застал простыню сообщений Kernel #шестнадцатиричные_числа.
У кого-нибудь так же? Raspbian jessie, переустанавливал.
No. 14215    
>>14214
В общем ладно, через apt-get ставится.
Можно ли на nginx поставить два сервера: один с fastCGI/php, другой с uwsgi/python, на одном крутится phpMyAdmin и кусаба, на втором flask. Чтобы один был доступен по 127.0.0.1/php, другой по 127.0.0.1/python.
No. 14216    
>>14215
Не вижу проблем для такой конфигурации. Правда, думается, придётся это сделать с помощью 3 server-блоков. Один сконфигурированный на fastCGI/php, второй на uwsgi/python как здесь http://raspberrywebserver.com/cgiscripting/setting-up-nginx-and-uwsgi-for-cgi-scripting.html а третий - как роутер между ними, чтобы локейшн /php указывал на первый "сервер", а /python на второй. Может быть, можно и элегантнее это сделать.
No. 14219    
Чего полезного сделать?

полгода назад сделал выкачивалку борд(для человеку тут), и саму борду.

Чем еще полезным для фана(или не очень) заняться не знаю.
No. 14221    
>>14219
Следуя логической цепочке проектов, следующим напрашивается headless-борда, без сервера, где информация существует только пока она есть на нодах участников и синхронизируется между ними.
No. 14222    
Может кто знает годные и главное легкие примеры без заморочек работы с апи контача на питоне (реквест статусов, обновление, лайк постов и тд.)? Хотелось помучиться немного и поразбираться. Сам бы нашел, но все что могу сейчас и вообще в ближайшее время - написать этот пост на всемилюбимом. Буду благодарен.
No. 14223    
>>14222
Либы:
https://pypi.python.org/pypi/vk
https://github.com/python273/vk_api

Простые примеры:
https://habrahabr.ru/sandbox/84639/
No. 14224    
>>14223
Спасибо огромное, няша.
No. 14225    
Эй, ребята, тут есть раздел про компьютерное железо?
No. 14226    
Эй, ребята, тут есть раздел про комп. железо?
No. 14227    
Ой, капчанул дважды. Извиняюсь.
No. 14228    
>>14227
iichan.hk/s
No. 14229    
Файл: 146834961874.jpg-(72.54KB, 720×720, junior_developer_nagato_standby_3.jpg)
14229
Аноним проверяет тред несколько раз в сутки, чтобы каждый мог получить ответ или хотя бы наводку на него в тот же день.

Раздел медленный, так что пусть даты постов не пугают вас, аноним ждет ваших вопросов и кодерских находок.
No. 14230    
>>14223
Так. Вк апи я освоил. Написал обновлялку статуса погодой в реальном времени лол, поиск и лайкинг картинок, ленты и еще пару фич. Чем бы заняться в оставшиеся два свободных дня? Может посоветуешь интересных апи? Понимаю что глупо звучит, но у меня фетиш на апи разных проектов - нахожу такие, делаю что-нибудь клевое и ищу дальше. Из известных - апи инстаграма затерто до дыр, как и твича.
No. 14231    
>>14230
Есть апи курсероподобного образовательного сервиса:
https://stepic.org/api/docs/
Попробуй там всякое. Пост-запросы есть и доступны, но особо не документированы - вот тебе будет дополнительный челлендж потыкать запросами из веб-морды и сэмулировать их.
No. 14232    
>>14230
Посмотри в сторону API сервисов хранения и синхронизации данных, вроде Dropbox, OneDrive, Google Drive, etc.
No. 14260    
Вопрос такой, язык Python для чего нужен? (Кроме визуальных новелл), Он сложный? Интересна точка зрения анонов.
No. 14265    
>>14260
Питон относительно простой и при этом мощный язык, некоторые мои знакомые пропагандируют и используют его для обучения школьников.
Применения - это в основном веб-сервера, вспомогательные скрипты и утилиты для разного рода админов и девопсов (вытесняет перл в этом качестве), тесты для в том числе не-питоновских продуктов, а еще немножко в машинном обучении и бигдате. Немножко - потому что на нем просто написать прототип, но с действительно большими объемами лучше работать более производительными средствами.
Ренпай хорошему питону не научит, к слову, так что если хочешь его получше изучить, то стоит поискать другие применения.
No. 14283    
>>14265
Это какая-то "непонятная простота". Для меня питон где-то в одной луже с пхп. Этот тоже непонятный. Правда питон ещё более наркоманский - выделение блоков кода сделано табуляцией. Язык для омичей.
No. 14284    
>>14283
Не табуляцией, а пробелами.
No. 14285    
Файл: 146895357087.jpg-(111.62KB, 720×720, junior_developer_nagato_standby_4.jpg)
14285
Как обычно, аноним проверяет тред несколько раз в сутки, чтобы каждый мог получить ответ или хотя бы наводку на него в тот же день.

Раздел медленный, так что пусть даты постов не пугают вас, аноним ждет ваших вопросов и кодерских находок.
No. 14286    
>>14260
Нужен для того же, для чего и Perl, Ruby, Lua, sh… Быстрого написания скриптов. И под веб.
Сам язык очень сильно зафоршен. Всякие курсы делают, книги, если встает вопрос, "Что учить?" "Бидон!". До того, что половина инициализационных и системных скриптов Убунты на нём.
Сам язычок так себе. Синтаксис дубовый, TIMTOWTDI это не пр?
No. 14287    
>>14285
Тебе не лень?
No. 14288    
>>14286
...не про него. Лишний пробел в файле будет стоить тебе Syntax Error. Есть разделение на питон 2 и питон 3 и они никогда не сольются.
Так что из плюсов — библиотек много, доки хорошие и расфоршенность, т.e. все проблемы уже решены на стековерфлоу.
No. 14292    
>>14260
Да для всего. Его всякая школота, студентота изучает, причём, много среди не-ITшников. Изучается легко путём копипастинга нескольких разных листингов и последующего разбора работы их. Это на базовом уровне. Дальше используется как конструктор - просто берётся какой-то модуль и используется согласно инструкции.
Так получил большое распространение.
Плох видом кода - во первых, эти отступы. Нет, отступы обязательны, но интерпретатору на них должно быть наплевать - их нужно делать потому, что так надо, а не потому, что это нужно для определения блоков кода. Интерпретатор, как по мне, должен воспринимать скобки или begin-end. Всё. А это - ересь. Ещё отсутствие символа окончания строки (;) - но этим многие языки грешат. Динамическая типизация, чтоб её. Тоже мерзость та ещё, после которой сложно привыкать к нормальной статической типизации. Хреновая организация ООП. Если хочешь дубового ООП с принудительным написанием классов, методов, созданием объектов - это в Джаву. Хотя там ООПовских фич не так много, как в крестах.
Алсо, после Си или Джавы выглядит игрушечным. Даже Руби мне таким не казался.
Плюс ещё огромное количество мамкиных программистов на этом питухоне, считающих себя такими крутыми и понимающих, кто они есть на самом деле, когда сталкиваются с самым обыкновенным Си. Но если начинать с Си, ничего такого не чувствуешь - это я про себя. Да, может, я сам к ним отношусь, но, по крайней мере, я имею в некоторой степени большее представление, где там что и как и не реагирую так, как они (единственное, что убивает - это энтерпрайзная лапша, необходимая для использования многих джава-пакетов). Ну и питон своей игрушечностью вызвал некоторый когнитивный диссонанс, потому что до сих пор такое ощущение, что вроде бы, всё просто, но вот-вот напорюсь на такое, что крыша поедет.
No. 14297    
>>14292
Я понимаю кто я есть каждый раз когда даже в JS пытаюсь. Не то чтобы не получалось, но при работе таких ярких чувств и ощущения сношения мозга быть не должно.
No. 14303    
>>14292
>begin-end
МЕРЗОСТЬ! У меня от этого в lua ужасное отвращение возникло. Совершенно идиотская система, в которой только и делаешь что пишешь бессмысленный end, который более того очень плохо виден при чтении кода.
Да и скобки, честно говоря не нужны. С отступами писать намного проще, потому что их делаешь в любом случае для структурирования кода, а так они заодно и синтаксис определяют.

От точек с запятой тоже только глаза рябят, никакой полезной нагрузки они по своей сути не несут, кроме возможности писать однострочники, и языки с Automatic Semicolon Insertion это прекрасно показывают.

И да, синтаксис, основанный на форматировании отступами очень хорошо читается. Возьми тот же yaml и jade/haml, да сравни с читабильностью xml, json и html.
No. 14304    
>>14303
>Чтобы не сбивать новичков с толку, а также не разбавлять полезную информацию мусором, беспредметные споры типа "какой язык / парадигма / библиотека / етц лучше" здесь запрещены.

Это всё же тред для помощи и вопросов начинающим.
Если вы хотите поругаться поделиться впечталениями на тему что кому как, создайте уже свой "Программистских споров" тред.
No. 14306    
>>14303
Я для себя чётко разделяю форматирование кода (всего лишь украшательство для читаемости) от структурирования. И скобки с тчкзпт мне дают возможность самому решать, как будет выглядеть мой код. Идею выделять блоки кода непечатаемыми символами считаю бредом.
No. 14307    
>>14306
---
>>14304
No. 14311    
>>14304
Собственно, тут есть тред про оформление кода: >>8789
No. 14316    
Ычан, реквестирую аналог шарповского XmlReader.ReadOuterXml() для джавы. В стандартном XmlStreamReader почему-то нет даже ReadInnerXml. Или подскажите, как можно обойти это досадное недоразумение.
No. 14318    
>>14316
>В стандартном XmlStreamReader почему-то нет даже ReadInnerXml.
Этот ридер использует SAX-парсинг, т.е. он не хранит в себе структуру документа, поэтому вернуть контент ноды, включая саму ноду он не может, он ничего не знает о структуре, он знает только когда какая-то нода / аттрибут начинается и когда заканчивается.

Поэтому чтобы получить
>аналог шарповского XmlReader.ReadOuterXml() для джавы
тебе нужен DOM-парсер

Сначала получи ноду, любым способом, например через XPath, как здесь
http://stackoverflow.com/a/2811101

Затем экспортируй эту ноду, как здесь
http://stackoverflow.com/a/13962207

Естественно, лучше всего экспорт оформить в отдельный метод.
No. 14323    
Стив, где можно выучить достаточно быстро php?
No. 14325    
>>14323
Да там учить нечего. Если любой другой язык знаешь, то достаточно любого справочника со списком встроенных функций. Например:
http://www.php.su/functions/
http://php.info-kna.ru/
No. 14326    
>>14325
> Если любой другой язык знаешь, то достаточно любого справочника со списком встроенных функций.
Так в том то и проблема, что остальные языки я не знаю. Начинал учить только Питон. Ну и еще html и css, но это не считается ведь.
No. 14328    
>>14323
>>14326
Я бы начал с https://www.codecademy.com/learn/php
No. 14329    
>>14326
А, ну тогда да. Нужно всякие особенности изучать. Впрочем, любого самоучителя должно быть достаточно. Я бы порекомендовал сперва перл изучить который был его предком. На нём и вакаба написана. Но это моё личное мнение.
No. 14330    
>>14328
Любопытные примеры для обучения. Мне понравились. С точки зрения того кто уже знаком с языком. Но есть подозрения, что новички его воспримут как нечто избыточно сложное.
No. 14341    
Файл: 146928196197.png-(272.93KB, 642×490, Снимок экрана_2016-05-21_01-20-31.png)
14341
Кто-нибудь делал сайты на пружине?
Насколько вообще тяжёлый фреймворк (ну если не считать традиционной лапши, являющейся отличительным свойством языка)?
Насколько тяжело "въехать" знающему основы джавы (т.е., изучившему JBG и немного поковырявшему стандартные коллекции)?
Есть какие-то гайды для начинающих, чтобы быстро влиться в это дело, а потом уже на базе этого "скелета" доизучать фреймворк?
No. 14342    
>>14341
Честно говоря перед написанием ответа пришлось гуглить что такое jdg, не смотря на то что уже 3 года пишу на жаве за денежку. Субъективно, по спрингу с обучением все довольно грустно - на их сайте есть туториалы, но они совершенно не дают представление о реально работающем проекте. Рекомендую сначала изучать Java EE, затем только обмазываться литературой по спрингу.
Если все-таки нужен именно спринг, то начинай с Spring Boot пожалуй.
No. 14343    
>>14341
Я бы не рекомендовал делать сайт на Spring'e, но если ты всё же хочешь, то лучший вариант чтобы всё быстро скрутить - использовать JHipster:

https://jhipster.github.io/
https://jhipster.github.io/video-tutorial/

Зная Джаву как таковую у тебя всё получится и не придётся долго ломать голову что пошло не так. Единственное, не пытайся сильно отходить от того что пишут в туториалах поначалу.
No. 14352    
Файл: 146954131711.jpg-(95.20KB, 720×720, junior_developer_nagato_standby_5.jpg)
14352
Аноним проверяет тред несколько раз в сутки, чтобы каждый мог получить ответ или хотя бы наводку на него в тот же день.

Раздел медленный, так что пусть даты постов не пугают вас, аноним ждет ваших вопросов и кодерских находок.
No. 14353    
С чего вообще начинать?Подскажите статейки, вот сегодня захотел заняться
No. 14354    
>>14353
Для начала тебе надо выбрать то, к чему у тебя душа лежит.

Есть семь основных направлений.

1. Веб-приложения, back-end, очень грубо говоря это внутренняя оснастка для работы всяких функций на сайтах. Т.е. тебе надо принять данные от сайта, или другого элемента оснастки, что-то с ними сделать, и вернуть что-то обратно. Хороший пример - внутренности платёжной системы, которые по цепочке проводят платёж до банка, а потом по той же цепочке возвращают результат на сайт платёжной системы.

2. Веб-приложения, front-end, если грубо, то внешний вид и специфические функции сайта, типа форм, меню, сообщений для пользователя и т.д. Хороший пример - сайт платёжной системы, который проводит тебя по этапам оформления платежа, предлагает выбрать что и кому ты хочешь заплатить, сообщает что ты заполнил что-то неправильно и т.п, всё в красивом и модном виде.

3. Десктоп приложения. Это огромный кластер самодостаточных приложений самой разной направленности, включает в себя также игры, обучающий софт, софт для работы с документами и т.п. Опять же, хороший пример такого - твой плеер, типа foobar, WinAMP, AIMP, офисные пакеты типа MS Office или OpenOffice, просматривалки изображений типа XnView, графические редакторы типа Photoshop. Вобщем, сложность такого софта может быть любой.

4. Мобильные приложения. Сейчас это огромный кластер приложений под смартфоны, все твои телефонные приложения (начиная от телефонной книги и заканчивая всякими ватсаппами), написанные под целевую платформу (типа iOS, Android, WP). Кстати, такие приложения проще всего опубликовать самому и получать за них скромный доход.

5. Embedded. Суровая, но очень востребованная сфера софта для прямой или почти прямой работы с железными компонентами. Хорошим примером будут всякие системы управления приводами, электронные блоки управления двигателями в автомобилях, контроллер HDD в твоем ПК, или даже блок управления современной стиральной машиной - все это для работы используют embedded софт.

6. Игры Веб, десктоп, мобильные, или даже embedded, написанные напрямую под целевую электронику (типа ранних тамагочи или игр серии Электроника которые Game & Watch). Это отдельная дисциплина, потому что под какую бы ты платформу не писал, набор подходов и костылей сильно отличается от обычного софта.

7. Скрипты Это административная оснастка инфраструктуры для работы других приложений. Т.е. это софт, обустраивающий или обеспечивающий инфраструктуру для работы другого софта. Хорошим примером будут скрипты, создающие и выделяющие тебе место в облаке, где ты уже потом городишь сам что хочешь.
No. 14358    
>>14354
Мне эти категории кажутся слишком общими, так как спектр задач в их пределах объединяет порой исключительно позиция, на которую ты пошел. Все же Фотошоп от Фубара слишком многим отличается, как и бэкенд соцсети от бэкенда банковского сервиса.
В любом случае, >>14353 не задумывайся пока о конкретной сфере, да даже и о конкретном языке - разве что это будет твоим мотиватором, что вот когда-нибудь ты хочешь разрабатывать игровые движки, или там драйвера. Если ты действительно начнешь карьеру, то и сам не заметишь, как будешь заниматься совсем разными проектами - какими конкретно зависит от невероятной кучи факторов, вплоть до того, что ты внезапно на выходных потыкаешь какой-нибудь движок/фреймворк, а в понедельник на работе предложишь с его использованием что-нибудь запилить.

А для начала нужно осилить базовые концепты, которые общие для более-менее всех языков: что такое алгоритм, что такое функция, вызов, присвоение, всяческие for'ы, if'ы, рекурсии; ввод-вывод, работа с подключаемыми модулями, работа с операционной системой; оценка занимаемых алгоритмом памяти и времени; парадигмы программирования, базовые шаблоны проектирования. Все это в принципе может постигаться на примере любого современного языка.
Некоторым уже работающим программистам или студентам соответствующих специальностей может показаться, что большинство вышеописанного это интуитивно понятная элементарщина, а что-то, наоборот, сложно и не нужно. Но по мне, такой подход позволит человеку лучше понимать, что и зачем он пишет в целом, а не просто скатываться в заучивание функций фреймворка, и в целом проще переключаться между разными технологиями.
No. 14360    
>>14353
>С чего вообще начинать?
С википедии.
>Подскажите статейки
Самой лучшей тренировкой для программиста будет их самостоятельный поиск.
No. 14363    
>>14358
Ведь глупость же написал.
>слишком многим отличается, как и бэкенд соцсети от бэкенда банковского сервиса
Я уверен, что для любого языка можно указать стек технологий, который покроет бекенд 90% проектов.
>не задумывайся пока о конкретной сфере, да даже и о конкретном языке
Что лучше - мочь написать законченный проект на конкретном языке, или уметь писать Hello World! на десяти языках? Да, есть некоторый базовый набор инструментов, который для разработчика в разных языках отличается только синтаксисом, но он составляет меньшую часть даже ядра самого языка.
>базовые шаблоны проектирования
Реализация и применение шаблонов может сильно различаться от языка к языку, имеет смысл изучать шаблоны когда имеется какой-нибудь опыт, хотя бы из самостоятельных проектов для самообучения
>скатываться в заучивание функций фреймворка
не ты ли случаем с пеной у рта доказывал в /b несколько недель назад что фреймворки не нужны, только велосипеды, только хардкор?
No. 14367    
>>14363
>>Чтобы не сбивать новичков с толку, а также не разбавлять полезную информацию мусором, беспредметные споры типа "какой язык / парадигма / библиотека / етц лучше" здесь запрещены.

Сейчас тут три человека высказали три возможных подхода, и каждый ответ дает полезную информацию спрашивающему. Спорить о том какой из подходов лучше - только сбивать человека с толку и разводить тут флейм. Не надо, если хотите похоливорить - создайте холивор тред.
No. 14369    
Поясните основные понятия серверов.
Есть апач, нгинкс, но зачем они, когда простой скрипт на питоне так же может по запросу отдавать html-страничку? И каким образом работает php? Зачем ему нужен fastCGI? Нужен ли nginx, если я хочу написать веб-приложение, которое будет общаться с nodejs через вебсокеты?
Все скриптовые серверные языки, когда общаются с базами данных, тупо коннектятся к ним, написав команду в терминал ОС?
Если у меня одно приложение использует фремворк такой-то версии, а другое - тот же фреймворк другой, то как организовать виртуальную среду? Это делается средствами языка? сервера? ОС?
No. 14370    
>>14369
>Есть апач, нгинкс, но зачем они, когда простой скрипт на питоне так же может по запросу отдавать html-страничку?
Если тебе надо просто отдавать страничку себе, то незачем. Всё хорошо для своего применения. Большие сервера типа апача и ngnix нужны, когда тебе надо, например управлять и администрировать кучу хостов на одном сервере, или тебе нужно распределять нагрузку запросов между несколькими поднятыми копиями одного приложения, или обустроить быстренько кеширующий прокси, чтобы одинаковые запросы не давали паразитную нагрузку на сервис. Собственно, часто можно встретить конструкцию вида ngnix с настроенными административными штуками и нужными модулями, который потом пропускает запрос на тот самый простенький скрипт на питоне.

>каким образом работает php? Зачем ему нужен fastCGI?
Собственно, fastCGI ему нужен чтобы код на перле исполнять.
Запрос приходит на твой сервер, а сервер, через установленный в него php-модуль посредством fastCGI исполняет код и передаёт результат тебе.
В данном случае php-модуль для сервера выполняет функцию твоего "скриптика на питоне", который уже передает данные апачу, ngnix'у или что там.

>Нужен ли nginx, если я хочу написать веб-приложение, которое будет общаться с nodejs через вебсокеты?
Не совсем понимаю вопрос, уточни. Веб-сокет же открывается всё равно на какое-то направление, не будешь же ты для своих целей пользовать echo.websocket.org?

>Все скриптовые серверные языки, когда общаются с базами данных, тупо коннектятся к ним, написав команду в терминал ОС?
Думаю это зависит сугубо от настройки БД и того что позволяет библиотека для работы с ней. Может кто-то конкретнее знает?

>Если у меня одно приложение использует фремворк такой-то версии, а другое - тот же фреймворк другой, то как организовать виртуальную среду? Это делается средствами языка? сервера? ОС?
Ну, для начала тебе надо выбрать протокол общения.
Например, твои приложения могут общаться:
  • Через REST API по сети, перекидываясь данными в любом формате. Обычно JSON или XML
  • Через кластерную систему, построенную на акторах.
  • Через протокол удаленного вызова процедур или методов. Не делайте так
  • Через базу данных, когда например, одно приложение постоянно мониторит таблицу, в ожидании записи, которая даст команду на какое-то действие, а второе приложение мониторит ту же таблицу и оставляет там такую запись если данных о том что первое приложение что-то там обрабатывает нет.
  • Через файлы прямо в файловой системе. Не делайте так
  • Через третье приложение, которое объединяет в себя первые два и уже у себя внутри рулит, что делать с каждым. Не знаю, стоит ли делать так

No. 14371    
>>14370
Ты слишком сложно всё объясняешь.
>>14369
Прочитав твой пост мне показалось, что ты собираешься использовать несколько языков и использовать под них несколько серверов. Дам совет - постарайся использовать какой то один. Судя по всему что ты написал это будет JS. На порядок меньше кодомусора придётся слоями ставить\настраивать. Не то чтобы использование даже десятка разных языков параллельно было чем то из ряда вон выходящим. Только оправдать это может только по настоящему высокий специалист способный взвесить на весах все "за" и "против" вплоть до мелочей. На практике правда обычно всё куда прозаичнее - 10 индусов кодили на 10 языках гигабайты кода а ему задним числом приказали воедино собрать. А иначе это нубовыпиндрёж.
>но зачем они
Предположим у тебя нет серверных скриптов. Совсем. Только html-странички без JS. Или даже просто картинки и текстовые файлы. И это твой сайт. Сервер нужен для того чтобы организовать к ним сетевой доступ. Когда то давно операционные системы не имели встроенных серверных функций. Позже серверные ветки в рамках оптимизации производства заняли их место и иметь развитую серверную часть вошло в моду. Сейчас поднять свой сервер может практически любой пользователь обычной ОС, даже не понимая что он его поднимает. Но это не значит что они не нужны. Устанавливать сторонний софт или ковырять операционку - каждый решает сам для себя. Выбор кажется иллюзорным, тем более что скачиваемый софт часто представляет из себя полную версию урезанной из операционки. Но последствия от него если в обоих случаях не настраивать всё через известное место будут крайне ощутимы.
>каким образом работает php?
Как любая программа не требующая установки. Только для сервера. Скачиваешь папку, кидаешь куда захочешь а затем прописываешь где полагается файлы с каким расширением чем открывать при попытке открытия\запуска. Имея нулевой опыт в настройке серверов задача будет трудной и непонятной чуть меньше чем полностью. Но затем начнёт казаться столь же очевидной как назначение кнопок мыши. Надеюсь вопрос был не о подкапотном взаимодействии с операционкой?
>Зачем ему нужен fastCGI?
Чтобы работать быстрее, очевидно же. Остальное, как и 95% неиспользуемых функций используемого при поднятии сервера софта знать по началу не нужно. Примерно как ресайзящим фотки в фотошопе о той камасутре что с ним можно делать.
>Нужен ли nginx, если я хочу написать веб-приложение, которое будет общаться с nodejs
В смысле? Нужен ли сервер на линукс если будет стоять nodejs выполняющий функцию сервера? Трудный вопрос. С одной стороны нет. С другой, ситуация когда стоит по стопятсот серверов друг на друге - это нормально. Какой подход лучше сказать не решусь. Первый более правильный, второй более проторенный. При нубоподходе в первом случае выше вероятность накосячить, во втором оставить уязвимость.
>Все скриптовые серверные языки, когда общаются с базами данных
>тупо
не все
>коннектятся к ним
все
>написав команду в терминал ОС?
не все
>Если у меня одно приложение использует фремворк такой-то версии, а другое - тот же фреймворк другой...
Не хочу отвечать на все вопросы из этой части. Слишком много зависимостей. Скажу только, что уровень геморности будет прямо пропорционален пряморукости подъёма сервера начиная с самых первых шагов. Учитывая что опыта у тебя нет, готовься к худшему. Главное запомни на будущее, что найденный тобою путь не есть норма и всё можно было сделать куда проще начни ты делать всё в начале иначе.
No. 14397    
Подскажите тему на диплом, пожалуйста. Знаю джаву на среднем уровне. Готов обучаться новому. Можно что-нибудь сложное сделать, это полезно.
No. 14398    
>>14397
>04:10:04
>04:10
>410
вот это таймстамп

Предложи смарт-систему подбора персонала. Суть в том, чтобы не просто вести учет потенциальных рекрутов, но и автоматически предлагать уже существующих рекрутов на вновь открывшиеся вакансии.

Т.е. открываешь ты в системе вакансию "developer", добавляешь туда скиллы типа "джава, спринг фреймворк, хибернейт боже" и т.п., указываешь географическую зону или говоришь что тебе пофиг, и тебе сразу предлагает список Вась и Петь, отсортированных по свежести, по наличию скиллов и возможно по выставленным баллам по этим скиллам. Возможно чтобы получать более-менее точную информацию лучше делать интеграцию профилей рекрутов с линкедин и аналогичными сайтами.

Далее ты выбираешь Васю или Петю, назначаешь ему собеседование, проводишь его, прикрепляешь к профилю карточку собеседования с какими нужно файликами (например фидбеком от технаря) и проставленными баллами по скиллам указанным в вакансии. Отдельно помечаешь, взяли или нет Васю или Петю на работу. Чтобы не раздувать виртуальный штат, система может раз в полгода делать алерт, мол подтвердите, работает у вас этот чувак всё еще или нет, и если на алерт не ответили "освобождать" его

Т.е. цель системы - упростить процесс получения работы и поиск рабочей силы, а "фищка" - в ведении и автоматических саджестах рабочей силы. Название темы диплома: "Экспертная система подбора персонала на базе технологии Java EE и твои фреймворки"
No. 14399    
>>14397
Странный ты, у нас нужно было искать себе научного руководителя и вместе с ним решать, о чем будет писаться диплом. Если же вам дозволяют заниматься чем угодно и без трудоустройства, то назови хотя бы специальность кафедры, чтобы можно было подсказать конкретней. Вариант >>14398 мне кажется бестолковым, потому что идея заезженная, уже имеется с полдюжины крупных сервисов для рекрутинга, кривая дипломная поделка не будет никому интересна, дипломная работа должна быть "инновационной и не имеющей аналогов", почти во всех вузах никому не интересно что там под капотом и работает ли оно.
No. 14400    
>>14399
Научный руководитель сказал выбирать тему самому. Сказал только, что делать либо веб-приложение, либо десктопное (но не хочу на джаве десктопное). Специальность "Прикладная математика". Можно что-нибудь с уклоном в математику.

>>14398
Подумаю над этим, спасибо.
No. 14402    
Друзья, надо написать веб-приложение с REST API на джаве, как сказано в условии. Но я даже не знаю с чего начать. Модет поможете, напрвив меня, материалов и всяких примеров подарите, пожалуйста?
No. 14403    
Именно для джавы, для которой уже практически ни один браузер плагин не поддерживает? Может всё таки на JavaScript? Если нет, тогда даже не знаю. Может быть Android-клиент для какой-нибудь соц-сети с её готовыми API? А, подожди, тогда это будет не веб-приложение... тогда не знаю.
No. 14405    
>>14402
Самый быстрый способ написать приложение с REST API на Java - воспользоваться Play Framework:
https://playframework.com/
https://playframework.com/download

Фреймворк существует в двух вариантах, для Scala и для Java.

Вот пример проекта с REST API на Java:
https://github.com/boldradius/rest-java-play-sample

Вот всякие туториалы на сайте плея:
https://playframework.com/documentation/2.5.x/Tutorials

По идее, если пройдешь туториал и посмотришь на пример REST'a с гитхаба, у тебя всё должно получиться быстро и безболезненно.
No. 14407    
Ассемблер сегодня вообще не актуален?
No. 14408    
>>14407
Как тебе сказать... это как на собеседовании в google заявить что ты предпочитаешь Netscape Navigator. Тебя не поймут.
No. 14410    
>>14407
Еще как актуален. Во-первых, в Embedded же используется по полной программе. Даже когда пишут изначально на C, некоторые блоки ручками пишут на ассемблере. Во-вторых, ассемблер используется для GPU-программинга, и написания графических шейдеров в том числе. Т.е. для геймдева и распределенных вычислений он тоже нужен и важен.

Вобщем, assembler актуален.

>>14408
Прекращай писать вещи которые только что выдумал. Этим ты только сбиваешь не знающих людей с толку и вредишь треду.
No. 14411    
>>14410
По моему это ты его сбиваешь с толку. Платный сегмент в той его части где без асамблера не обойтись слишком узок чтобы брать людей с улицы. Догнать их за пару лет не реально. А на код низкого качества спроса больше нет совершенно. Компиляторы справляются иногда даже лучше.
No. 14413    
>>14410
> Во-вторых, ассемблер используется для GPU-программинга, и написания графических шейдеров в том числе.

Это с каких пор? Шейдеры и вычислительные ядра GPGPU пишутся на C-подобных языках. В той же CUDA есть, конечно, ассемблероподобный низкоуровневый промежуточный язык, но на нём пишут только особо критичные к производительности участки кода, если вообще к нему прибегают. На ассемблере в индустрии не пишут даже для тех видеокарт, на набор инструкций которых есть какая-то открытая документация.
>>14411
> Компиляторы справляются иногда даже лучше.
У программиста обычно больше информации, на которую он может полагаться, чем у компилятора.
Впрочем, да, сейчас ассемблер больше нужен для реверс-инжиниринга, чем для микрооптимизаций или каких-то низкоуровневых вещей.
No. 14415    
>>14413
Мне-то все равно, но бедная Юки на себе волосы рвать начнет. Создайте себе уже холиваров-тред и спорьте там.
No. 14416    
Файл: 147008136898.jpg-(34.26KB, 640×360, Yuki-Nagato-yuki-nagato-31606575-640-360.jpg)
14416
>>14415
Спасибо, что вступаешься за бедную Юки.

Да, очень прошу, если вы хотите холиворы, создайте отдельный холивор-тред.
No. 14417    
Файл: 147008174193.jpg-(87.34KB, 720×720, junior_developer_nagato_standby_6.jpg)
14417
Как обычно, аноним проверяет тред несколько раз в сутки, чтобы каждый мог получить ответ или хотя бы наводку на него в тот же день.

Раздел медленный, так что пусть даты постов не пугают вас, аноним ждет ваших вопросов и кодерских находок.
No. 14418    
>>14416
Противоположные мнения всегда будут высказываться. Если только не создать бан-систему "кто первый высказался - тот и прав высказался". Перехода на личности при этом можно и нужно избегать. Но как это делать в подобных ситуациях не совсем понятно. Наверное я сейчас провоцирую. А может виноват будет тот кто ответит. Возможно это тема достойная отдельного треда. Возможно даже в /d/. Ей здесь разумеется не место, но озвучить проблему было надо. Приношу извинения.
No. 14419    
>>14418
Можно просто высказать альтернативное мнение вопрошающему, как будто другого поста не существует. Пусть сам решает.
No. 14434    
Файл: 147041079188.jpg-(117.42KB, 720×720, junior_developer_nagato_standby_7.jpg)
14434
Аноним проверяет тред несколько раз в сутки, чтобы каждый мог получить ответ или хотя бы наводку на него в тот же день.

Раздел медленный, так что пусть даты постов не пугают вас, аноним ждет ваших вопросов и кодерских находок.
No. 14438    
>>14434
Зачем ты постишь снова и снова один и тот же пост? Тред и так закреплён, зачем флудить?
No. 14461    
>>14160
>Не знаете, как подступиться к проблеме? Вам обязательно сюда.
Подчиняюсь.
Проблема: как реализовать полноценный raytrace на GPU?
No. 14463    
>>14461
Что ты понимаешь под "полноценный"?

Вижу большую статью на гитхабе про то как это делать с OpenGL через LWJGL с кучей теории:
https://git.io/v6WKz
https://git.io/v6WKV
Там же в статье ссылки на литературу.

Вижу запись в блоге:
http://raytracey.blogspot.com/2015/10/gpu-path-tracing-tutorial-1-drawing.html
http://raytracey.blogspot.com/2015/12/gpu-path-tracing-tutorial-2-interactive.html
http://raytracey.blogspot.com/2016/01/gpu-path-tracing-tutorial-3-take-your.html
Там же ссылки на литературу и другие статьи.
Репозиторий автора поста с кодом:
https://github.com/straaljager

Вижу также такой старый туториал:
http://www.geeks3d.com/20090814/cuda-real-time-ray-tracing-tutorial/
Примеры кода оттуда:
http://www.daimi.au.dk/~trier/CUDA_RayTracingTutorial/CUDA_RayTracingTutorial2_1.zip
http://www.daimi.au.dk/~trier/CUDA_RayTracingTutorial/CUDA_RayTracingTutorial.zip

Вижу еще старенький туториал:
http://cg.alexandra.dk/?p=278

Вижу еще статью по оптимизации k-D Tree:
https://graphics.stanford.edu/papers/i3dkdtree/gpu-kd-i3d.pdf

Вижу также, что NVIDIA говорит "пользуйтесь для рейтрейсинг целей нашим OptiX и забейте на всё остальное":
https://developer.nvidia.com/optix

Тут несколько туториалов покрывают процесс целиком, есть простые туториалы из серии "на попробовать", и есть ссылка на фреймворк Правда только NVIDIA. Надеюсь, это поможет разобраться.
No. 14467    
>>14463
>Что ты понимаешь под "полноценный"?
Не на полигонах.
Треугольники - весьма забавный подход, типично человеческий, с историей и прочим, но нет.
Потому что отрисовывать поверхность - это скучно и старо, а на объемах (прозрачность и прочее) все это ваше просто умирает. Упрощая: это не 3д, это топологическое 2д - что очень мило, конечно.
>куча ссылок на полигонах
Благодарю, но этот подход просто бесполезен.
403 сообщений пропущено. Показаны 100 первых сообщений. [Назад] [Вся нить] [Первые 100 сообщений] [Последние 50 сообщений]

Удалить сообщение []
Пароль  
[Mod]