[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]

 [ Скрыть форму ]
Имя
Не поднимать тред 
Тема
Сообщение
Капча Капча
Пароль
Файл
Вернуться к
  • Публикация сообщения означает согласие с условиями предоставления сервиса
  • В сообщениях можно использовать разметку wakabamark
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: pdf, music, text, code, vector, image, archive, flash, video
  • Тред перестает подниматься после 500 сообщений.
  • Треды с числом ответов более 100 не могут быть удалены.
  • Старые треды перемещаются в архив после 40 страницы.

No.36161 Ответ [Открыть тред]
Файл: 125860969610249.jpg
Jpg, 39.86 KB, 300×100 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
125860969610249.jpg
Доска посвящена созданию программ и всему, что с ним связано. Для обсуждения готовых программ, железа, устройств есть доска >>/lor/

Простые реквесты для ньюфагов >>28288
Помощь начинающим >>44688 (новый)
Оффициальный™ Лунного Сахара тред >>43581

Языки программирования:
Haskell >>35693
Lisp >>29402
Assembler >>32929
C++ >>43511
Java >>46281
C# и .Net >>27510
Perl >>37854
Python >>46029
Доска посвящена созданию программ и всему, что с ним связано. Для обсуждения готовых программ, железа, устройств есть доска >>/lor/

Простые реквесты для ньюфагов >>28288
Помощь начинающим >>44688 (новый)
Оффициальный™ Лунного Сахара тред >>43581

Языки программирования:
Haskell >>35693
Lisp >>29402
Assembler >>32929
C++ >>43511
Java >>46281
C# и .Net >>27510
Perl >>37854
Python >>46029
PHP >>23225
JavaScript >>40541
Pascal/Delphi >>37645
Golang >>48143

Фреймворки и библиотеки:
Ruby on Rails >>31319
Qt >>31597

Инструменты:
Vim >>33881
Emacs >>36714
Системы контроля версий >>28005

Прочие технологии:
SQL >>29820

Информатика:
Стеганография >>35350

"Кафедра сайтостроя": тред тут в /s >>31137 и тред в /u >>u/104773
Game Development тред тут >>39943 "Кафедра гейм-девелопмента" в /u: >>u/60525
Сообщение слишком длинное. Полная версия. Post was modified last time at 2017-09-26 21:53:58


No.48832 Ответ [Открыть тред]
Файл: pg087.png
Png, 23.35 KB, 475×349
edit Find source with google Find source with iqdb
pg087.png
Файл: pg072.png
Png, 56.58 KB, 515×709
edit Find source with google Find source with iqdb
pg072.png
Файл: 14686072547160.png
Png, 44.08 KB, 1024×450
edit Find source with google Find source with iqdb
14686072547160.png

Как понять ООП? Я просто вот не понимаю, зачем это нужно. Безотносительно языка программирования

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

Вот допустим есть public private protected модификаторы доступа т.е. ограничения на то, откуда какой метод можно вызывать. public можно вызывать отовсюду, private только для методов из числа public, а protected ... protected становится private при наследовании, притом наследований может быть 3 вида - тоже public, private, protected... Зачем всё это? Чем это лучше просто кучи функций, которые могут просто вызывать другие функции и работать с какими-то структурами?

Или вот методы, методы это функции, которые привязаны к конкретной структуре, но что если мне нужны методы, которые связывают два разных класса? Например это может код, переводящий из вектора в растровую картинку. Этот код должен быть методом класса для растровой или векторной картинки?
48 posts are omitted, из них 2 с файлами. Развернуть тред.
>> No.49168 Ответ
>>49166
> Да, такой вариант длиннее будет. Да, там есть вероятность забыть изменить значение при копипасте.

В этом и заключается говнокод
>> No.49170 Ответ
>>49168
Для меня говнокод, это когда все настолько запутанно, как наушники в кармане. В создании такой мешанины временами помогают и всякие "короткие, красивые и эффективные" синтаксические конструкции языков.
>> No.49172 Ответ
>>49164
>>49165
>>49166
> Не вижу говнокода. Да, такой вариант длиннее будет.
Я и говорю, плохо быть говнокодером.
А должен бы видеть, что сперва будет инициализация скорее всего нулями (но вообще undefined), а потом инициализация еще раз нужными значениями (на самом деле не инициализация, а присваивание, но так нагляднее).
>> No.49177 Ответ
>>49172
И? В чем проблема?
>> No.49180 Ответ
>>49177
В удвоенном потреблении ресурсов, очевидно.
>> No.49183 Ответ
>>49180
И как в других языках решается эта проблема? В переменной сразу нужные значения находятся? Откуда? Кто их заранее в память закинул?
>> No.49214 Ответ
>>49163
> Вначале у тебя инициализируются все поля начальным значением, затем
Я что-то пропустил? С каких пор сишка стала инициализировать переменные какими либо значениями вообще?
Насколько я помню, даже плюсы этого не делали, для полей классов разве что.
>> No.49217 Ответ
Файл: 1544280718843.png
Png, 0.97 KB, 300×20 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1544280718843.png
>>49214
Он указал, что
> > (но вообще undefined),
но все равно бред. Нулями инициализирует не C, а ОС (в случае линукса это так). Другой вариант, это ОС выделяет память переменной, а в этой области памяти могу быть какие угодно значения, оставшиеся после выполнения другой программы.
>> No.49221 Ответ
>>49183
> И как в других языках решается эта проблема? В переменной сразу нужные значения находятся? Откуда? Кто их заранее в память закинул?
Constructor, motherfucker, do you write it?
>>49214
>>49217
> Я что-то пропустил? С каких пор сишка стала инициализировать переменные какими либо значениями вообще?
Насколько я помню, даже плюсы этого не делали, для полей классов разве что.
> Другой вариант, это ОС выделяет память переменной, а в этой области памяти могу быть какие угодно значения, оставшиеся после выполнения другой программы.
Джуниоров полон тред. При создании объекта, что в динамике что в статике, память выделяется сразу на весь объект (это в обычном случае, пляски с собственными менеджерами памяти не рассматриваем). И если ты объявляешь какой-нибудь int i, то он уже на стеке и имеет значение, и ты можешь его cout или printf. Но если ты криворук и не проинициализировал сразу, то значение все равно есть, но undefined. В большинстве случаев это будет 0 просто по дефолту ОС и компилятора, но это не гарантировано. Таким образом работает что С, что кресты.
Проверяется легко: возьми
struct A
{
int i;
char j;
double k;
>>49183
> И как в других языках решается эта проблема? В переменной сразу нужные значения находятся? Откуда? Кто их заранее в память закинул?
Constructor, motherfucker, do you write it?
>>49214
>>49217
> Я что-то пропустил? С каких пор сишка стала инициализировать переменные какими либо значениями вообще?
Насколько я помню, даже плюсы этого не делали, для полей классов разве что.
> Другой вариант, это ОС выделяет память переменной, а в этой области памяти могу быть какие угодно значения, оставшиеся после выполнения другой программы.
Джуниоров полон тред. При создании объекта, что в динамике что в статике, память выделяется сразу на весь объект (это в обычном случае, пляски с собственными менеджерами памяти не рассматриваем). И если ты объявляешь какой-нибудь int i, то он уже на стеке и имеет значение, и ты можешь его cout или printf. Но если ты криворук и не проинициализировал сразу, то значение все равно есть, но undefined. В большинстве случаев это будет 0 просто по дефолту ОС и компилятора, но это не гарантировано. Таким образом работает что С, что кресты.
Проверяется легко: возьми
struct A
{
int i;
char j;
double k;
};
std::cout << i << std::endl; // etc.
И то же самое в сях.
Сообщение слишком длинное. Полная версия.
>> No.49222 Ответ
>>49221
Я знаю это и написал то же самое.


No.48615 Ответ [Открыть тред]
Файл: 1.jpg
Jpg, 49.89 KB, 1024×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1.jpg
Предлагаю челендж, где каждую неделю мы будем выполнять задания.

Придумал разные уровни сложности:
1 - как самый простой.
5 - самый сложный.

Первые задания от меня, на правах ОПа!

C3: Реализация синтезатора bytebeat, воспроизводящего аудио непосредственно с помощью OpenAL или аудио вашей платформы (e.g alsa, oss, sndio)

C2: Реализуйте последовательность Фибоначчи с помощью рекурсивного решения, но избегайте экспоненциальной временной сложности. Программа должна быть четко определена для первых 100 членов Фибоначчи. Это типичный вопрос на интервью. Haskell, Idris и Agda не могут быть использованы для этого задания, бонусные очки для выяснения, почему.

C1: Реализация программы fizzbuzz без использования оператора деления по модулю ( % , mod, rem, & c...)

Реализацию можно кидать тут под спойлером либо pastebin.
Предлагаю челендж, где каждую неделю мы будем выполнять задания.

Придумал разные уровни сложности:
1 - как самый простой.
5 - самый сложный.

Первые задания от меня, на правах ОПа!

C3: Реализация синтезатора bytebeat, воспроизводящего аудио непосредственно с помощью OpenAL или аудио вашей платформы (e.g alsa, oss, sndio)

C2: Реализуйте последовательность Фибоначчи с помощью рекурсивного решения, но избегайте экспоненциальной временной сложности. Программа должна быть четко определена для первых 100 членов Фибоначчи. Это типичный вопрос на интервью. Haskell, Idris и Agda не могут быть использованы для этого задания, бонусные очки для выяснения, почему.

C1: Реализация программы fizzbuzz без использования оператора деления по модулю ( % , mod, rem, & c...)

Реализацию можно кидать тут под спойлером либо pastebin.

Связь дабы не проебать треад и для организации тут: @lambdaclass
Сообщение слишком длинное. Полная версия.
>> No.49129 Ответ
Так себе идея.
>> No.49134 Ответ
>>48615
Где-то я видел уже задачу C2. Не понимаю, почему haskell не может быть использован для решения. Вот несколько решений на хаскеле. Третье не рекурсивное, но самое лаконичное и ясное. Первые два - рекурсивные, хотя рекурсивна внутренняя функция. А рекурсивной должна быть внешняя? Тогда наверное и вправду не получится избежать экспоненциальной временной сложности. Но почему именно на тех трех языках? На джаве наверное тоже не получится избежать. Или здесь я должен разбираться в тонкостях того, как исполняется хаскель, чтобы ответить?

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

module Fib () where

fib :: Int -> [Int]
fib 1 = [1]
fib 2 = [1,1]
fib n = innerfib [1,1] (n-2)

innerfib :: [Int] -> Int -> [Int]
innerfib arr 0 = arr
innerfib (a : b : rest) n = innerfib (a + b : a : b : rest) (n-1)
>>48615
Где-то я видел уже задачу C2. Не понимаю, почему haskell не может быть использован для решения. Вот несколько решений на хаскеле. Третье не рекурсивное, но самое лаконичное и ясное. Первые два - рекурсивные, хотя рекурсивна внутренняя функция. А рекурсивной должна быть внешняя? Тогда наверное и вправду не получится избежать экспоненциальной временной сложности. Но почему именно на тех трех языках? На джаве наверное тоже не получится избежать. Или здесь я должен разбираться в тонкостях того, как исполняется хаскель, чтобы ответить?

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

module Fib () where

fib :: Int -> [Int]
fib 1 = [1]
fib 2 = [1,1]
fib n = innerfib [1,1] (n-2)

innerfib :: [Int] -> Int -> [Int]
innerfib arr 0 = arr
innerfib (a : b : rest) n = innerfib (a + b : a : b : rest) (n-1)

fib2 :: Int -> [Int]
fib2 1 = [1]
fib2 2 = [1,1]
fib2 n = innerfib2 (1, 1) (n-2) [1,1]

innerfib2 :: (Int,Int) -> Int -> [Int] -> [Int]
innerfib2 p 0 arr = arr
innerfib2 p n arr = case nextpair p of (a,b) -> innerfib2 (a,b) (n-1) (b:arr)

nextpair :: (Int,Int) -> (Int,Int)
nextpair (a,b) = (b, a+b)

fib3 :: Int -> [Int]
-- fib3 n = take n (map snd (iterate nextpair (1,1)))
fib3 n = (map snd . take n) (iterate nextpair (1,1))
Сообщение слишком длинное. Полная версия.
>> No.49179 Ответ
fizzbuzz
public class FizzBuzz {
public static void main(String[] args) {
for (int i = 1, m = 4, n = 2; i <= 100; i++, m--, n--) {
if (m == 0 || n == 0) {
if (n == 0) {
System.out.print("Fizz");
n = 3;
}
if (m == 0) {
System.out.print("Buzz");
m = 5;
}
System.out.println();
} else {
fizzbuzz
public class FizzBuzz {
public static void main(String[] args) {
for (int i = 1, m = 4, n = 2; i <= 100; i++, m--, n--) {
if (m == 0 || n == 0) {
if (n == 0) {
System.out.print("Fizz");
n = 3;
}
if (m == 0) {
System.out.print("Buzz");
m = 5;
}
System.out.println();
} else {
System.out.println(i);
}
}
}
}
Сообщение слишком длинное. Полная версия.
>> No.49182 Ответ
>>49179
Как не нужно делать последовательность Фибоначчи
import java.math.BigInteger;

public class Fibonacci {

private static int count = 100;

private static void step(BigInteger num1, BigInteger num2) {
count--;
if (count <= 0) {
return;
}
System.out.print(num2 + " ");
step(num2, num1.add(num2));
>>49179
Как не нужно делать последовательность Фибоначчи
import java.math.BigInteger;

public class Fibonacci {

private static int count = 100;

private static void step(BigInteger num1, BigInteger num2) {
count--;
if (count <= 0) {
return;
}
System.out.print(num2 + " ");
step(num2, num1.add(num2));
}

public static void main(String[] args) {
step(BigInteger.ZERO, BigInteger.ONE);
}
}
Сообщение слишком длинное. Полная версия.
>> No.49219 Ответ
>>49182
А так?
a = 0
b = 1
c = 0
while c < 1000:
c = a + b
a = b
b = c
print(a)


No.47927 Ответ [Открыть тред]
Файл: tumblr_oppvh6XMAq1w6k0rko1_540.gif
Gif, 231.52 KB, 540×304 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
tumblr_oppvh6XMAq1w6k0rko1_540.gif
Тред помощи начинающим свой долгий и тернистый путь в дебри программирования. А также необузданных оленей, код-мартышек, выбора ЯП и иных платиновых вещей.
Но в первую очередь всё-таки помощи новичкам. Всё, чтобы зашедший сюда в первый раз мог почувствовать себя как дома.
Главное - без фанатизма.

Предыдущий: >>46762
411 posts are omitted, из них 60 с файлами. Развернуть тред.
>> No.49205 Ответ
>>49204
> This VM will expire on 02/3/19.
Зачем этот геморрой? Просто скачай образ винды с трекеров, установи и крякни. Тебе правда так важно, чтобы все было законно, но при этом одновременно влом заплатить денег MS?
>> No.49206 Ответ
>>49205
Всегда так делаю, классика же. Но потенциально такой способ может быть быстрее и проще. Попробую, попытка не пытка.
>> No.49209 Ответ
Поясните разницу между понятиями "Green thread" и "Fiber". Как я понял из беглого чтения педивикий и стековерфлоу, и то и другое является кооперативными псевдо-тредами, работающими только на одном ядре и только в рамках процесса, в котором создаются (то есть, они не создают отдельных процессов, в отличие от нативных ОС-левел тредов), и в силу природы кооперативности нельзя одновременно запустить более одного такого "потока". Как мне отличать одно от другого и понимать, что мне нужно для конкретной отдельно взятой ситуации?
>> No.49210 Ответ
Файл: object-oriented.jpg
Jpg, 41.27 KB, 547×385 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
object-oriented.jpg
>>49209
> Fiber
ООП-обёртка над зелёными потоками. Все языки программирования замусорены этим, вот да.
>> No.49211 Ответ
Файл: pr1.png
Png, 138.38 KB, 1010×628
edit Find source with google Find source with iqdb
pr1.png
Файл: pr2.png
Png, 132.30 KB, 996×590
edit Find source with google Find source with iqdb
pr2.png
Файл: pr3.png
Png, 51.24 KB, 916×596
edit Find source with google Find source with iqdb
pr3.png
Файл: pr4.png
Png, 23.51 KB, 580×302
edit Find source with google Find source with iqdb
pr4.png
Файл: pr5.png
Png, 39.95 KB, 578×506
edit Find source with google Find source with iqdb
pr5.png

Привет, доброчанчик. Я в шараге сейчас оканчиваю последний курс, программирование толком не учил, а диплом писать надо. Программа есть, надо просто немного туда добавить дополнительного функционала и интерфейс переделать. Понятия не имею, на чем она написана. Да и ладно. Посоветуйте пожалуйста, на чем переписать? У меня еще полгода есть, чтоб задрочить матчасть. Хочу, чтоб выглядело красиво и современно. Эта слишком глючная и как-то ебануто окна открываются.
>> No.49212 Ответ
>>49211
> программирование толком не учил
> Понятия не имею, на чем она написана
> переписать
> полгода есть, чтоб задрочить матчасть
> Хочу, чтоб выглядело красиво и современно
С такими планами соснешь инфа 1000000%
>> No.49213 Ответ
>>49211
> Понятия не имею, на чем она написана. Да и ладно.
Ну раз там есть WPFToolkit.dll то явно C# присутствует. А вот BlendThumb.dll намекает, что это что-то экспортированное из Blender, вот тут тоже такой набор DLL файлов https://youtu.be/FTiJSyT0QQA?t=150
> Хочу, чтоб выглядело красиво и современно.
Перепиши на Qt5
>> No.49215 Ответ
>>49212
Да не, все не так уж плохо. Писал на С++, С#, Pascal, Python, Java, PHP, даже на ассемблере, просто не углублялся во что-нибудь одно достаточно хорошо. Да и очень быстро схватываю любую инфу.
>>49213
> Qt5
Есть примеры симпатичного гуи на нем? Как раз с крестами хорошо дружу.
>> No.49216 Ответ
>>49213
> Blender
Видимо, это симулятор 3D-поля.
>> No.49218 Ответ
Анон, прости за платиновый вопрос.

Что выбрать, python или R для дата сайенса и всего такого?

Я как бы уже выбрал R 3 месяца назад, и в свободное от работы время пытался что-то на нем сделать. Но после удобного, consistent, пусть и слегка too verbose языка sql, я столкнулся с кромешным пиздецом.
Да, есть офигенная ide RStudio. Да, очень просто устанавливать пакеты (install.packages). Хотя вот например lightgbm уже хрен установишь таким образом. Как бы все хорошо.

Но сам R это кромешный ужас. Миллион способов сделать одну вещь, и все неправильные. Миллион пакетов, библиотек, функций, типов и тд, которое вообще непонятно как работают друг с другом. Это я еще конечно с javascript не работал и зря жалуюсь, ну да ладно.

Хочешь например библиотеку для работы с текстом. Есть стандартные функции, есть stringr, есть stringi. И тд.

Есть data.frame, есть data.table, есть dplyr, plyr и тд.
Вроде и то круто, и то круто, и пайпы крутая штука, а на практике написать простенький код по типу lag over становится нетривиальной задачей.

Хочешь построить график в ggplot2. Вроде по идее он должен упрощать все, такая у него философия, tidy во все поля. Но на практике, чуть свернул налево, все, неясно что делать. Документация не шибко помогает, когда у тебя есть 2 минуты на задачу. Приходится качать какое-то левый сторонний пакет, который не работает. В итоге все равно идешь и строишь график в экселе.
Анон, прости за платиновый вопрос.

Что выбрать, python или R для дата сайенса и всего такого?

Я как бы уже выбрал R 3 месяца назад, и в свободное от работы время пытался что-то на нем сделать. Но после удобного, consistent, пусть и слегка too verbose языка sql, я столкнулся с кромешным пиздецом.
Да, есть офигенная ide RStudio. Да, очень просто устанавливать пакеты (install.packages). Хотя вот например lightgbm уже хрен установишь таким образом. Как бы все хорошо.

Но сам R это кромешный ужас. Миллион способов сделать одну вещь, и все неправильные. Миллион пакетов, библиотек, функций, типов и тд, которое вообще непонятно как работают друг с другом. Это я еще конечно с javascript не работал и зря жалуюсь, ну да ладно.

Хочешь например библиотеку для работы с текстом. Есть стандартные функции, есть stringr, есть stringi. И тд.

Есть data.frame, есть data.table, есть dplyr, plyr и тд.
Вроде и то круто, и то круто, и пайпы крутая штука, а на практике написать простенький код по типу lag over становится нетривиальной задачей.

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

При этом, сам базовый R такое ощущение, что учить тоже бессмысленно.

Вот я думаю, может все-таки Python? Я вроде на нем делал какие-то простенькие сайтики на django.

Я же правильно понимаю, что в python в целом есть ограниченный набор надежных consistent инструментов, которыми можно пользоваться НА ПРАКТИКЕ?
Что есть надежная стандартная библиотека, которая не подведет в трудную минуту. Что этим короче можно пользоваться.
Сообщение слишком длинное. Полная версия.


No.46281 Ответ [Открыть тред]
Файл: main-qimg-2a7cef12cc63002b267d248611c76e58.png
Png, 782.27 KB, 572×861 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
main-qimg-2a7cef12cc63002b267d248611c76e58.png
И мы продолжаем ликвидацию безграмотности, неспешные беседы и яростные дискуссии вокруг яваскрипта.

Предыдущий тред: >>40541
141 posts are omitted, из них 23 с файлами. Развернуть тред.
>> No.49002 Ответ
Вы тут живые?
>> No.49003 Ответ
>>48939
function sayMyName({firstName, lastName} = {firstName: 'Zell', lastName: 'Liew'})
>> No.49004 Ответ
>>49002
Ну ячеловек, учащий жавоскрипт устал и на пару недель взял перерыв. А что?
>> No.49013 Ответ
>>49004
Просто проверяю вас.
>> No.49014 Ответ
Файл: De8HhOqWAAEfuVf.jpg_large.jpg
Jpg, 119.74 KB, 640×797 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
De8HhOqWAAEfuVf.jpg_large.jpg
>> No.49118 Ответ
XMLHttpRequest суть хитро обмазанный методами общения с сервером промис?
>> No.49176 Ответ
>>49118
В твоем сообщении неправильно все.

XMLHttpRequest появился гораздо раньше промисов. И работает он через колбэки.
Его можно промисифицировать. Но можно воспользоваться функцией fetch.
>> No.49187 Ответ
Анон, объясни, как работает стэк, очередь и прочие внутренности в ЖС. А то максимум, что я понял, так это то, что асинхронные функции "выпадают" из главного (он же вроде единственный?) потока. Желательно попроще, хоть на примере мужика, срущего с дерева, как в треде о сопротивлении электричества.
>> No.49207 Ответ
>> No.49208 Ответ
>>49187
Хуле тут вообще сложного? Просто функции дергают другие функции как обычно. Когда это закончилось, внешний цикл смотрит нет ли еще каких событий которые нужно обработать и запускает обработку следующего. Ничего не упустил? Может сэкономлю кому 26 минут.


No.43581 Ответ [Открыть тред]
Файл: -.jpg
Jpg, 125.61 KB, 700×500 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
-.jpg
Новый традиционный тред Доброчана, в котором мы будем постить каждый раз, когда заходим в /s/ дабы поделиться своими хоббипроектами, поговорить о смежных с программингом вопросах, поспорить на тему X vs Y, пообсуждать синтаксический сахар разных ЯП. Как обычно можно постить и в другие моменты, обсуждать разные темы. Всё во имя того, чтобы зашедший code monkey не чувствовал себя одиноким. Каждому зашедшему по чашечке скумы за мой счёт.

Предыдущий тред: >>40630
322 posts are omitted, из них 34 с файлами. Развернуть тред.
>> No.48235 Ответ
Я фронтенд-разработчик. Где-то год работаю с js. Каждый рабочий день.

Но вот иногда меня подмывает поработать с какой-нибудь экзотикой, будь то ocaml или clojure. Попробовать где-нибудь применить.

Но я вот думаю, а что лучше? Изучать новые языки, или потратить это время на изучение js? Ведь этот язык действительно вещь в себе. И где-то раз в месяц-два я узнаю что-то совершенно новое о нем.
>> No.48236 Ответ
>>48235
Я фронтенд-разработчик. Угодил в ловушку узкой специализации. И так — каждый рабочий день.

Но вот иногда меня подмывает нырнуть ещё глубже, прям в море говн, поработать с какой-нибудь экзотикой, будь то ocaml или clojure. Попробовать где-нибудь применить.

Но я вот думаю, а что лучше? Изучать новые языки, или потратить это время на изучение js? Ведь этот язык действительно вещь в себе. И где-то раз в месяц-два я узнаю что-то совершенно новое о нем.
>> No.48247 Ответ
>>48235
Изучить ФП очень полезно для js. Промисы -- это те же самые монады. Станет легче.
>> No.48366 Ответ
Файл: 866.jpg
Jpg, 100.68 KB, 473×600 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
866.jpg
Заканчивался 2025-й год. СТРАУСТРУП брёл по засыпанному неубранным снегом тротуару на интервью, неохотно отвечая на приветствия своих бывших коллег, стоявших в очереди к доширакомату и проклинавших десятиуровневую идентификацию. «Главное, чтобы они не догадались, куда я направляюсь», – размышлял наш герой, небезосновательно опасаясь конкуренции. Год для программистов выдался совсем печальным – искусственный интеллект окончательно заменил собой целую профессию, теперь заказчику было достаточно сказать: «ещё один Фейсбук», и нужный код моментально находился на облачном складе, далее менялись цвета и перетасовывались кнопки (дабы избежать обвинений в плагиате), и новый продукт поступал в продажу. Новые версии изготавливались по подобному же сценарию. Заправляли всем этим делом вовсе не программисты, а представители шоу-бизнеса, поднаторевшие на подобных перелицовках начиная ещё с 90-х годов. Разработчики 1С считали себя в безопасности, однако в предыдущем году Россия и Зимбабве последними в мире присоединились к унифицированной системе глобальной бухгалтерии. В военной сфере требовалась лишь поддержка ПО, и там прозябали 80-тилетние старцы с воспалёнными глазами.

Заканчивался 2025-й год. СТРАУСТРУП брёл по засыпанному неубранным снегом тротуару на интервью, неохотно отвечая на приветствия своих бывших коллег, стоявших в очереди к доширакомату и проклинавших десятиуровневую идентификацию. «Главное, чтобы они не догадались, куда я направляюсь», – размышлял наш герой, небезосновательно опасаясь конкуренции. Год для программистов выдался совсем печальным – искусственный интеллект окончательно заменил собой целую профессию, теперь заказчику было достаточно сказать: «ещё один Фейсбук», и нужный код моментально находился на облачном складе, далее менялись цвета и перетасовывались кнопки (дабы избежать обвинений в плагиате), и новый продукт поступал в продажу. Новые версии изготавливались по подобному же сценарию. Заправляли всем этим делом вовсе не программисты, а представители шоу-бизнеса, поднаторевшие на подобных перелицовках начиная ещё с 90-х годов. Разработчики 1С считали себя в безопасности, однако в предыдущем году Россия и Зимбабве последними в мире присоединились к унифицированной системе глобальной бухгалтерии. В военной сфере требовалась лишь поддержка ПО, и там прозябали 80-тилетние старцы с воспалёнными глазами.

Зато потребление достигло невиданных высот, держать в доме телевизор старше одного месяца считалось неприличным, новые модели активно привозились, а старые сдавались в утиль. Искусственный интеллект так и не осилил транспортных средств – то самолёт вмажется в небоскрёб, то автобус въедет в остановку, так что многие программисты переквалифицировались в шофёров. Именно в этой сфере деятельности и подвизался СТРАУСТРУП в последние несколько лет.

Бизнес-центр ничем не отличался от своих собратьев: после стандартных антитеррористических процедур, включавших себя рентген, флюорографию, томографию, спектрографию и прочие «графии», так знакомые любому жителю этой поры, СТРАУСТРУП с трудом отбился от вагиноскопии и попал в комнату №101, ибо рисунок его радужной оболочки по ошибке совпал с данными одного известного биткойнодилера. К счастью, у СТРАУСТРУПА был с собой пистолет, голографическое фото на котором послужило надёжным удостоверением личности в просвещённый электронный век.

В скромном офисе СТРАУСТРУПА сразу же отвели в комнату для собеседований на должность шофёра. Огромный экран симулятора занимал всю стену, и на нём проигрывался ролик с рассказом о компании. Интервьюер вошёл неожиданно и сразу же приступил к делу.

– Итак, нам требуется драйвер. Нужно развозить новые модели бытовой техники и забирать старую. Владеете ли вы автоматической гирей? – так на модном полуанглийском именовалась коробка передач.
– Есть небольшой опыт, – отвечал СТРАУСТРУП. – Я всю жизнь имел дело с ручной, так что проблем не будет.
– Сомневаюсь. Я пробовал стик после автомата, и у меня... В самом деле, без высокоуровневых фреймворков сейчас никуда, с ними быстрее и удобнее Ладно, вот вам тестовое задание: развернуть строку… ой, я сам из бывших… нужно подъехать к дому и развернуть автомобиль так, чтобы он был припаркован задом наперёд.
– А зачем это?
– Проверить ваши навыки вождения. Сначала расскажите, какой подход примените.
– Ну, объеду квартал…
– Зачем это, достаточно же просто развернуться.
– Видите ли, я в последние годы был связан с высоконагруженностью – водил грузовик с прицепом…
– Считайте, что ширина дороги достаточная. Считайте, что у вас легковой автомобиль. Кстати, вы водили их последние версии?
– Нет, но…
– Сомневаюсь, что вы справитесь с замыканиями.
– Какими ещё замыканиями?
– Гудки режут слух, так что в современных моделях звуковой сигнал мычит. Так как же вы развернётесь?
– Ну, я подъеду, включу Reverse…
– Библиотечные функции использовать нельзя!
– А как же многопоточность? Водители из других полос вряд ли будут рады простаивать, пока я описываю большой круг.
– Это не главное. Нам важно, чтобы быстро. К сожалению, мы не можем вам предложить работу. Наши специалисты разворачиваются за пару секунд.
– Да не может быть!
– Смотрите, – и экзаменатор подошёл к симулятору. Разгон, удар по тормозам, управляемый занос, машина встаёт в обратном направлении…

На улице СТРАУСТРУП увидел большую пробку: грузовик с брендом компании, где только что был получен отказ, никак не мог развернуться. Осатаневшие водители гудели, мычали и просто матерились. Незадачливый шофёр высунулся из окна и крикнул СТРАУСТРУПУ:

– Братишка, я тебе покушать принёс! Посмотри, чтобы я задом ни в кого не въехал.

После серии тырканий туда-сюда, грузовику удалось-таки припарковаться. СТРАУСТРУП не удержался и задал вопрос водителю по поводу разворота путём управляемого заноса.

– Ты что, только что от нашего клоуна? – сообразил шофёр. – Это он так нашу кадровичку до метро подвозит, ей-то ничего не будет, она всё равно деревянная, а у меня в кузове 20 шестиметровых рулонов сданных телевизоров – побьются.

– Так ведь их же всё равно в утиль.

– Дурак что ли?

– А куда, в Африку?

– Ты ведь работу ищешь? Так? Ну пойдём, попробую поговорить, может, тебя возьмут…

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

– Вот смотри, – объяснял СТРАУСТРУПУ уже знакомый нам шофёр. – Клиенты один чёрт не помнят, что было год назад. Поэтому мы свозим их барахло сюда, выдерживаем 12 месяцев, потом приделываем шильдик новой модели и в путь!

– То есть как это?

– Ты что, еду сам не покупаешь? Когда у твоих любимых сосисок истекает срок годности, специальная тётка клеит свежую этикетку. Так и у нас… Постой здесь, я перетру с мастером…

СТРАУСТРУП был счастлив – его взяли на работу! Мастер тоже был из… бывших, долго гонял по способам сортировки просроченной продукции, предложил разработать алгоритм обхода склада, спрашивал, почему у них не стек, а очередь. В конце беседы похлопал по плечу:

– В нашем деле прежде всего нужно знать, чем равенство объектов отличается от equals. Клиенты в этом ни бум-бум, а мы этим пользуемся. Выходи после Нового года, будешь менять указатели, тьфу ты, шильдики. Хочешь смузи? Не боИсь, не просроченное… Десятилетней выдержки!..

Так счастливо закончилась эта удивительная история трудоустройства программиста.
Сообщение слишком длинное. Полная версия.
>> No.48368 Ответ
>>43581
Господа, доставьте книгу "Learn Haskell for great good" на русском.
>> No.48373 Ответ
>>48368
Тебе это не нужно.
>> No.48374 Ответ
Файл: 1355315146509.png
Png, 0.50 KB, 10×10 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1355315146509.png
>>48373
Взлольнул тут.
>> No.49192 Ответ
Файл: -.png
Png, 319.85 KB, 2518×1024 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
-.png
Если резюмировать, то будет как-то так. Что-то походящее на рф но в области /s/.
Хотел написать длинно, но решил, что бессмысленно.
В итоге: с детства (житое в 90е) благодаря отцу имея ZX Spectrum мечтал пилить игори.
Первую книгу по программированию и, собственно, возможность программировать обрел в 2003 году, когда учился в 10м классе. Был комп и по совету знакомого отцу программиста купили мне Лафоре (ООП в C++).
Пока учился в школе и ВУЗе (на программера) мечтал и стремился прогать игори - изучил DirectX (9й на тот момент) и в большей степени OpenGL (до уровня шейдеров) изучал движок Ogre, колупал простенький HGE, по возможности, но время требовалось на учебу и подработки.
После ВУЗа (армейки не было - пороки сердца). Устроился на работу - после чего наступила полоса беспамятства и тотального въебывания, базы данных, нескончаемые ETL, скрипты, окошечные набивалки для операторов. И всё. Ни желания, ни сил у меня не было ворошить свой мозг еще после работы, а время шло.
Сейчас я осознаю, что знания устарели - сейчас никто не будет писать игру с полностью своим движком - думаю закидают говном просто. Тем более DX весьма обновился, OpenGL пододвинулся для Vulkan - да и в этом нет уже смысла, когда везде это либо Unreal Engine либо Unity - даже для простых ДВУМЕРНЫХ ИГОР КАРЛ!
Если резюмировать, то будет как-то так. Что-то походящее на рф но в области /s/.
Хотел написать длинно, но решил, что бессмысленно.
В итоге: с детства (житое в 90е) благодаря отцу имея ZX Spectrum мечтал пилить игори.
Первую книгу по программированию и, собственно, возможность программировать обрел в 2003 году, когда учился в 10м классе. Был комп и по совету знакомого отцу программиста купили мне Лафоре (ООП в C++).
Пока учился в школе и ВУЗе (на программера) мечтал и стремился прогать игори - изучил DirectX (9й на тот момент) и в большей степени OpenGL (до уровня шейдеров) изучал движок Ogre, колупал простенький HGE, по возможности, но время требовалось на учебу и подработки.
После ВУЗа (армейки не было - пороки сердца). Устроился на работу - после чего наступила полоса беспамятства и тотального въебывания, базы данных, нескончаемые ETL, скрипты, окошечные набивалки для операторов. И всё. Ни желания, ни сил у меня не было ворошить свой мозг еще после работы, а время шло.
Сейчас я осознаю, что знания устарели - сейчас никто не будет писать игру с полностью своим движком - думаю закидают говном просто. Тем более DX весьма обновился, OpenGL пододвинулся для Vulkan - да и в этом нет уже смысла, когда везде это либо Unreal Engine либо Unity - даже для простых ДВУМЕРНЫХ ИГОР КАРЛ!
Госп-ди Б-же мой! Я вижу, что теперь я биомусор, т.к. я не знаю, за что мне взяться и есть ли в этом какой смысл. Требования у игроков очень высоки и мне за ними не поспеть. Алсо идея инди-игр (созданых малой группой разработчиков) теперь очернена ебаными корпорациями, когда какой-нибудь EA имеет игру на стиме с тэгом ИНДИ блядь.
Какого чертова черта? И что мне делать, если желание пилить игори есть даже в 30 лет, но знания устарели?
Сообщение слишком длинное. Полная версия.
>> No.49197 Ответ
>>49192
> Тем более DX весьма обновился, OpenGL пододвинулся для Vulkan - да и в этом нет уже смысла, когда везде это либо Unreal Engine либо Unity - даже для простых ДВУМЕРНЫХ ИГОР КАРЛ!
> Госп-ди Б-же мой! Я вижу, что теперь я биомусор, т.к. я не знаю, за что мне взяться и есть ли в этом какой смысл.

Не парься, забудь про C++, бери чистый C + SDL2, напиши рогалик или примитивный платформер под свою любимую ОС. Никаких анрилов и юнити-хуюнити для этого тебе не потребуется.
>> No.49203 Ответ
>>49192
Линейная алгебра и дифференциальная геометрия не устаревают. Ты можешь в математику? Или твои знания ограничиваются glBegin glEnd?
Знание движков не отменяет необходимости понимания. Наоборот, понимание позволяет быстро учить новые вещи.
Да, и заодно осиль Rust, потом спасибо скажешь.


No.37854 Ответ [Открыть тред]
Файл: aadhhaaeo.jpg
Jpg, 15.55 KB, 300×300 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
aadhhaaeo.jpg
Не нашел перлотреда.
Листал пиратбей и наткнулся на книжку "Beginning Perl". Стоит ли читать?
Спрашиваю, потому что давно уже ничего не кодил, с линукса перелез на шинду, многое уже подзабыл.
109 posts are omitted, из них 6 с файлами. Развернуть тред.
>> No.48961 Ответ
>>48959
> И тем не менее, а как запустить этих потоков сразу несколько?
Никак, это кооперативная многозадачность, надо вручную передавать контекст.
> Когда я пишу async{ ... }, ничего не происходит же.
Становится в очередь.

Почитай документацию, штоле.
https://metacpan.org/pod/distribution/Coro/Coro/Intro.pod
https://metacpan.org/pod/Coro
>> No.48962 Ответ
>>48961
Я читал это всё, и про очередь, и про ручную передачу контекста, о чём уже и писал >>48954 здесь. Может, плохо написал, нет таланта, да.
Речь именно об одновременном запуске нескольких потоков и необходимости семафоров для этой цели (иначе наличие возможности установки им значения больше двух я объяснить не могу).

> Никак
Прям вот совсем никак? Может, придумали способ, пусть даже странноватый. Других либ для мультитрединга нет, их в перле всего две и вторая делает то же самое, только хуже, насколько мне известно.
Давай только без толстоты типа ./proga.pl &
>> No.48963 Ответ
>>48962
Всякие более-менее современные я не особо знаю, тащемта. Но как минимум искаробочный threads. https://perldoc.perl.org/perlthrtut.html
А что за задача у тебя?
>> No.48964 Ответ
>>48963
> Но как минимум искаробочный threads
Ну вот про него я и говорил — либо он, либо Коро. И под тредами в перле обычно понимается Коро, нативные же треды использовать не рекомендуют. Они умеют то, о чём я говорил выше?

> А что за задача у тебя?
Писать вайпилки и набигать на капчу в 9000 потоков, как у пистуха было!!1
Шутка.
Но в каждой шутке есть доля правды: суть того, что я хочу, чем-то похожа. Уточнять не буду пока, потому что пока сделано ничего. Впрочем, помощь мне ещё наверняка будет нужна, а перлотредов больше и нет нигде особо. На стаковерфлоу не хочу.

Знаю, что есть модуль Coro::LWP, где что-то похожее вроде как уже сделано, но мне не интересно LWP, я хочу именно libcurl и придётся писать свои велосипеды.
>> No.48967 Ответ
>>48964
> нативные же треды использовать не рекомендуют. Они умеют то, о чём я говорил выше?
Не рекомендуют по причине тяжеловесности. Умеют.

> но мне не интересно LWP, я хочу именно libcurl и придётся писать свои велосипеды.
А какая разница? Суть одна и та же.
Многопоточный хттп я делал на AnyEvent::HTTP, это неблокирующие реквесты + коллбеки, результат неплохой.
>> No.48970 Ответ
>>48967
> Суть одна и та же.
В смысле?
Не помню весь список полезных фичей кёрла, отсутствующих у LWP, но одну довольно важную называю сходу — он умеет в socks5 с проксированием днс. LWP этого не умеет, и если мне нужно будет, чтобы всё работало через тор и работало наверняка, придётся помещать это в обёрнутый в тор контейнер/vm и запускать оттуда.
Или ты о чём?

> AnyEvent
Совсем забыл про это, да.
Можешь сказать, что ещё ты использовал?

Про треды - спасибо, буду иметь в виду.
>> No.48971 Ответ
>>48970
> Или ты о чём?
О либах для хттп. Как-то не случалось найти отсутствие фич, хотя при модульности LWP туда всяко можно вклиниться и докостылять. Потом HTTP::Tiny добавили в core и можно вообще обойтись без жирного LWP, для большинства задач его достаточно.

> Можешь сказать, что ещё ты использовал?
В каком смысле ещё? В основном на перле делал всяких бэкендовые сервисы и автоматизации, потом помаленьку перекатился на ноду для такого, но как подручную тулзу ещё пользую.
>> No.49040 Ответ
Зачем сабам и переменным атрибуты? locked, method, lvalue.

> http://www.perltutorial.org/perl-subroutine/
> sub NAME PROTOTYPES ATTRIBUTES BLOCK
> The ATTRIBUTES gives subroutine additional semantics. Perl provides three standard attributes including locked, method and lvalue.
Больше ничего не нашёл.
>> No.49041 Ответ
>>49040
lvalue позволяет присваивать функции. Как тот же substr -
substr($str, 0, 10) = 123;
Не пользовался таким, так что хз, в чем может быть профит. Можно обойтись без временных переменных при всяких манипуляциях, наверное.

Остальные без понятия, какие-то забытые ооп-шные костыли скорее всего.
>> No.49202 Ответ
1. Coro::rouse_cb создаёт отдельный поток? Вывод дампера не похож на таковой у инстансов класса Coro.

2. https://metacpan.org/pod/distribution/Coro/Coro/Intro.pod#The-Real-World-Event-Loops
Почему в первом примере join не блокирует? Вернее, все три join успевают вызваться ещё до завершения первого потока. Стейтменты типа print должны блокировать, даже если Coro::Socket асинхронен сам по себе. Но они даже не выполняются.
2.1 Если Coro::Socket таки асинхронен (не блокирует), почему после него идут принты (те, которые печатают в stdout)? Они же ничего не должны вывести.

3. Рассмотрим следующую лапшу:
use Coro;
use Mojo::Base -strict;

my $thr1 = async {
  my $this = $Coro::current;
  $$this{desc} = "First thread";

  my $i = 0;
1. Coro::rouse_cb создаёт отдельный поток? Вывод дампера не похож на таковой у инстансов класса Coro.

2. https://metacpan.org/pod/distribution/Coro/Coro/Intro.pod#The-Real-World-Event-Loops
Почему в первом примере join не блокирует? Вернее, все три join успевают вызваться ещё до завершения первого потока. Стейтменты типа print должны блокировать, даже если Coro::Socket асинхронен сам по себе. Но они даже не выполняются.
2.1 Если Coro::Socket таки асинхронен (не блокирует), почему после него идут принты (те, которые печатают в stdout)? Они же ничего не должны вывести.

3. Рассмотрим следующую лапшу:
use Coro;
use Mojo::Base -strict;

my $thr1 = async {
  my $this = $Coro::current;
  $$this{desc} = "First thread";

  my $i = 0;
  recurring Mojo::IOLoop 2 => sub { say "1st: ", $i++ };
};

my $thr2 = async {
  my $this = $Coro::current;
  $$this{desc} = "Second thread";

  my $i = 0;
  recurring Mojo::IOLoop 2 => sub { say "2nd: ", $i++ };
};

$_ -> join for ($thr1, $thr2);

start Mojo::IOLoop;
Работает как ожидается, но не из потоков $thr1 и $thr2: они умирают, как только навешивают свои коллбэки на луп, в итоге всё выполняется в одном потоке. Как сделать чтобы в каждом потоке было? Если в каждом эвент луп запускать, он заблокирует.

4. Как работают все эти асинхронные эвент лупы типа Mojo::IOLoop, когда поток всего один? Просто интересно. Coro в числе зависимостей не висит, под капотом они его не пользуют. Там своя имплементация потоков?
Сообщение слишком длинное. Полная версия.


No.30133 Ответ [Открыть тред]
Файл: Java8-Logo.jpg
Jpg, 49.61 KB, 321×340 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Java8-Logo.jpg
Начнем же тред околожабных технологий. Приветствуются дельные маны, пояснялки современных течений и анализ ситуации на будущее.
389 posts are omitted, из них 56 с файлами. Развернуть тред.
>> No.48580 Ответ
У меня есть веб приложение, собранное мавеном.
Из эклипса нормально запускается и деплоится на томкат. Сделал war этого приложения и попробовал вручную запустить на томкате, закинув варник в папку webapp. Судя по логу - https://ideone.com/0XVkO8 - вроде всё норм, но не работает.

Почему, подскажите?
>> No.48583 Ответ
>>48580
Я - идиот. Полный.
Собирал этот war не мавеном (mvn package) а простой командой (jar -cvf projectname.war *). Решение проблемы заняло у меня дней пять, в течении которых у меня натурально порой слёзы наворачивались от собственного бессилия и тупости (ну, хоть томкат нормально освоил).
Фигово быть мной.
>> No.48584 Ответ
>>48583
Поздравляю, ты испытал эмоциональные качели программиста. Дальше будет легче.
>> No.49181 Ответ
Изучение javafx же бесполезное занятие? Просто время в пустую потрачу, а никаких полезных навыков не будет?
>> No.49184 Ответ
>>49181
Сможешь писать GUI приложения на джаве на относительно простом, понятном и удобном API. Подумай, нужны ли миру джава-приложения с GUI?
>> No.49185 Ответ
>>49184
нет конечно
>> No.49198 Ответ
>>49181
полностью бесполезное. Технология мертва, хотя и довольно удобна для несложных гуёв. Не повторяй мою ошибку :3
>> No.49199 Ответ
>>49198
Я думал, приложения на андроиде используют javafx.
>> No.49200 Ответ
>>49198
А swing?
>>49199
Теоретически можно писать через gluon, но он платный.
В андроиде свой собственный ничем не совместимый api.
>> No.49201 Ответ
>>49200
> А swing?
Попроще в плане функций. Но сложнее добиться того, чего ты хотел. Если уж ты хочешь делать GUI на джаве, то таки JavaFX лучше.


No.46029 Ответ [Открыть тред]
Файл: pylogo0.png
Png, 126.61 KB, 800×642 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
pylogo0.png
Предыдущий >>37139 ушёл в бамплимит.

Краткая справка для новичков:
Официальный сайт: http://python.org/
Документация по стандартной библиотеке и разнообразные Tips & Tricks: http://docs.python.org/
неСвежая тема для священной войны, или руководство по выбору между версиями: http://wiki.python.org/moin/Python2orPython3
Ссылка для вопящих про дикие тормоза: http://speed.pypy.org/
Python для микроконтроллеров http://micropython.org или http://www.github.com/micropython
293 posts are omitted, из них 49 с файлами. Развернуть тред.
>> No.49100 Ответ
>>48738
> 1) Весь код - одно большое нарушение PEP8.
Почему в Питоне придумали какой-то там PEP8 и все его стараются соблюдать, а в других языках ничего такого нет?
Понятно что есть какие-то договоренности на тему кодинг стайла, но у разных проектов/огранизаций они разные.
>> No.49101 Ответ
>>49100
Потому, что сначала Гвидо соговнокодеры не смог в нормальный интерпретатор, хотя бы уровня пёрла но со своим ЧИТАЕМЫМ тимоди, а потом этот баг с отступами был превращен в охуеть какую фичу. Защитники Гвидо могут идти лесом со своим "это было by design".
>> No.49102 Ответ
>>49099
> на 7-8 лет
Не используй питон.
>> No.49110 Ответ
Привет, питоноводы. Можете ленивому недонепрограммисту подсказать библиотеку для работы с графикой. Так, чтобы как в Паскале с модулем Graph: чтобы можно было нарисовать точку, линию, прямоугольник, небо, Аллаха, и, конечно, грабить корованы.
P.S. Какого чёрта у меня NameError: name 'Tk' is not defined в копипасте из интернета:
import tkinter
window = tk()
>> No.49115 Ответ
>>49110
PyQt5
>> No.49137 Ответ
Нужен нормальный алгоритм отрисовки графа.
ТЗ: Не более 16 вершин, у каждого ребра есть вес, который нужно обозначить на рисунке(т.е. на самом ребре). Очень желательно, чтобы ребра не пересекались.

Мне бы хоть концепт нормальный... А то сейчас вообще вершины по кругу и веса в легендах.
>> No.49146 Ответ
>> No.49147 Ответ
>> No.49195 Ответ
>>49110
Может
`import tkinter`
`window = tkinter.tk()`

Или
`from tkinter import tk`
`window = tk()`
>> No.49196 Ответ
>>49195
Я не знаю разметку.


No.49189 Ответ [Открыть тред]
Файл: xlarge_exaba.png
Png, 12.67 KB, 360×200 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
xlarge_exaba.png
Помогите найти движок exaba, его отовсюду выпилили. Хотел написать себе борду и такой вот облом. Раньше находился по адресу http://github.com/imageboards/exaba
>> No.49190 Ответ


No.33881 Ответ [Открыть тред]
Файл: vim-shortcuts-dar...
Png, 116.56 KB, 2560×1600
edit Find source with google Find source with iqdb
vim-shortcuts-dark_2560x1600.png
Файл: vim_cheat_sheet_f...
Png, 1791.61 KB, 3301×2550
edit Find source with google Find source with iqdb
vim_cheat_sheet_for_programmers_print.png

Обещал про Vim написать. Ну вот собсна и написал.

Итак. Для начала поговорим о том, кому он не нужен. Ненужен он в самую первую очередь тем, кто не умеет в слепую десятипальцевую печать. Для таких людей vim буде каторгой. Посему данной категории людей советую либо забить на это дело, либо начать развивать слепую печать. Благо навык полезный. Можно гуглить например очевидную stamina и т.д. Вторая категория людей, которым не нужен сабж, это фанаты emacs по очевидным причинам. Кроме того не очень желательно изучать для виндопользователей. Ибо может быть черевато переходом на linux в конечном итоге, лол.

Ну а теперь собсна о vim и о том, что он из себя представляет. Если кратко, то это текстовый редактор, оптимизированный под слепую печать. Т.е. в нём можно делать всё не снимая рук с клавиатуры. Ну а ещё он мощный, расширяемый, бла-бла-бла.

Ок. Где взять? Для линупсов достаточно установить из пакетного менеджера очевидный пакет под именем vim sudo apt-install vim для бубунты, а остальные и сами разберутся. Для винды можно пользовать ссылочку ftp://ftp.vim.org/pub/vim/pc/gvim74.exe

Скачали, запустили. Ну и? Где вся няшнота то?
Объясняю только самые основы:
  • выход без сохранения точнее закрытие файла при помощи :q!
  • есть несколько режимов работы. Основные: "нормальный", редактирование, командный, выделение.
  • передвижение по файлу при помощи клавиш h j k l это соответственно влево, вниз, вверх, вправо.
  • для собсна редактирования можно нажать например i
Далее находим vimtutor и проходим его. Он ответит на остальные вопросы. Для линупсов vimtutor ru в консольке. Для винды должно быть гхдетоу в районе меню пуск. Хотя шут его знает. Потом изучаем и печатаем на бумажку или ставим в качестве обойки воон те картинки, что в комплекте с постом идут.
Обещал про Vim написать. Ну вот собсна и написал.

Итак. Для начала поговорим о том, кому он не нужен. Ненужен он в самую первую очередь тем, кто не умеет в слепую десятипальцевую печать. Для таких людей vim буде каторгой. Посему данной категории людей советую либо забить на это дело, либо начать развивать слепую печать. Благо навык полезный. Можно гуглить например очевидную stamina и т.д. Вторая категория людей, которым не нужен сабж, это фанаты emacs по очевидным причинам. Кроме того не очень желательно изучать для виндопользователей. Ибо может быть черевато переходом на linux в конечном итоге, лол.

Ну а теперь собсна о vim и о том, что он из себя представляет. Если кратко, то это текстовый редактор, оптимизированный под слепую печать. Т.е. в нём можно делать всё не снимая рук с клавиатуры. Ну а ещё он мощный, расширяемый, бла-бла-бла.

Ок. Где взять? Для линупсов достаточно установить из пакетного менеджера очевидный пакет под именем vim sudo apt-install vim для бубунты, а остальные и сами разберутся. Для винды можно пользовать ссылочку ftp://ftp.vim.org/pub/vim/pc/gvim74.exe

Скачали, запустили. Ну и? Где вся няшнота то?
Объясняю только самые основы:
  • выход без сохранения точнее закрытие файла при помощи :q!
  • есть несколько режимов работы. Основные: "нормальный", редактирование, командный, выделение.
  • передвижение по файлу при помощи клавиш h j k l это соответственно влево, вниз, вверх, вправо.
  • для собсна редактирования можно нажать например i
Далее находим vimtutor и проходим его. Он ответит на остальные вопросы. Для линупсов vimtutor ru в консольке. Для винды должно быть гхдетоу в районе меню пуск. Хотя шут его знает. Потом изучаем и печатаем на бумажку или ставим в качестве обойки воон те картинки, что в комплекте с постом идут.

Это было сверхкраткое введение. А теперь мы будем обмазыватся плугинками и всячески допиливать редактор до удобоваримого состояния. Для начала открываем .vimrc или _vimrc (для венды). Это конфигурационный файлег. Да, да, господа виндузятники. Ни каких окошечек с настроечками. Только хардкор.
По поводу настроечек рекомендую загуглить самомуа лучше почитать маны. Примеры: http://dimio.org/cgi-bin/bps/hlghtsrc/sourcehl.cgi?d=conf&s=vimrc&l=vim http://pastebin.com/jy4a3pE5 http://pastebin.com/paPWQ5fE http://pastebin.com/V3GdD38s Тысячи их.

Однако мы переходим к самому интересному. Доведём до ума сабж при помощи плугинок. Ибо без них vim уныл. Для начала нужно установить пакетный менеджер. Рекомендую либо Vundle либо NeoBundle. Думаю сами сможете загуглить их. К ним идут инструкции. Тож сами читнёте.

Самые полезниньки плагины можно найти там http://vim.wikia.com/wiki/Use_Vim_like_an_IDE

Отдельно упомяну следующие:
NERDTree добавляет древо файлов.
bufexplorer даёт удобную навигацию по буферам.
Вот кстати о буферах, окнах и табах в виме. Вот открыли вы один файлег, а потом, не закрывая первый, открыли второй. Можно потом переключаться между этими файлами. А можно их в одном окне одновременно открыть. Подробнее об том читнуть в справке или например в http://habrahabr.ru/post/28572/ http://habrahabr.ru/post/102373/
Vim Powerline раскрашивает статусную строку.
ColorSamplerPack набор тем оформления.

Вообще лучше самому подбирать плугинки. Их дофига, но не каждому все из них нужны. Да и изучать каждую плугинку тож время отнимает.

Можно ещё читнуть напоследок http://habrahabr.ru/post/176187/

Ну пока всё. Спрашивайте свои ответы. Ато может я чего забыл ненароком.
Сообщение слишком длинное. Полная версия. 223 posts are omitted, из них 42 с файлами. Развернуть тред.
>> No.49055 Ответ
>>49054
> Нашел для практики
Найди лучше такой сайт/прогу, где есть специальные упражнения, заточенные именно на постепенное освоение выбранной тобой раскладки. Там они выстроены от простого к сложному. В том же gtypist'е есть.
> Без гайдов
Гайд простой: каждому пальцу назначается свой набор клавиш, которые только он может нажимать. Плюс в состояни ожидания пальцы возвращаются на свои клавиши в центральном ряду. А дальше упражнения и тренировки, соблюдая это правило. В википедии есть:
https://en.wikipedia.org/wiki/Touch_typing
>> No.49056 Ответ
>>49055
> Найди лучше такой сайт/прогу, где есть специальные упражнения, заточенные именно на постепенное освоение выбранной тобой раскладки. Там они выстроены от простого к сложному
Так так там и есть.
>> No.49058 Ответ
>>49056
Не нашёл, но я не очень пристально искал. Должны быть упражнения типа того, что сначала печатаем только слова/псевдослова, состоящие из букв центрального ряда. Потом постепенно добавляем другие буквы.

Если есть, то ок.
>> No.49060 Ответ
>>33881
Анон, как эти вашим ВИМом овладеть? Туториал пройден, плагины поставлены, настроен под себя. Десятипальцевой слепой печатью владею, но печатаю всё равно медленнее чем в IDE или любом другом редакторе, особенно когда нужно заниматься рефакторингом, да и вообще по коду перемещаться.
>> No.49061 Ответ
>>49060
Ищи решения для всяких утомительных для тебя операций, сведи использование hjkl до минимума.
>> No.49062 Ответ
>>49060
Почитай вот это:
http://www.moolenaar.net/habits.html
Это оригинал. Вроде бы русский перевод тоже где-то есть.
>> No.49082 Ответ
>>48854
> Я, когда вимом пользовался, вообще выработал у себя привычку любой законченный кусок ввода на автомате завершать нажатием на Esc (конечно, Esc надо перебиндить поближе для этого).
Я хоть и пока не очень много пользовался вимом, но уже выработал привычку долбить постоянно долбить по эскейпу. Хорошо, что он обычно ничего не делает, но вот если перебиндить его на капслок... печатать не в виме станет невозможно.
>> No.49106 Ответ
>>49060
Я поставил vim-плагин для intellij idea и совмещаю vim с ide.

Ну и еще добавил разные плагины в сам vim, что он тоже стал похож на ide, так что разные небольшие проекты можно править прямо в vim-е. Когда бывает нужно автодополнение, переключаюсь на intellij idea.

Лично мне удобны в vim-е:
- перемещение по тексту
- поиск
- повторение последней операции через нажатие на "."
- сложные замены с регулярными выражениями

Мне стало легче с vim-ом после того, как я узнал, что можно выделять несколько строк, нажав "Shift-V".
Кастомизацию vim-а через добавление плагинов облегчает Vundle.vim.

Я создал git-репозиторий, в котором храню свой .vimrc-файл.
>> No.49116 Ответ
> Вики на wikia.com
смеюсь
>> No.49186 Ответ
Файл: 1521405363079.jpg
Jpg, 98.85 KB, 710×540 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
1521405363079.jpg
>>40393
Впридачу к этому есть ещё zathura — для чтения pdf/djvu.


[0] [1] [2] [3] [4] [5] ... [51] [52] [53]
Пароль:

[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]