181

(11 відповідей, залишених у C++)

Llewellynka написав:

Дякую за допомогу. Єдине, що я зрозуміла, так те, що онлайн-компілятори - не моє, в тому ж Visual Studio все працює без питань, а компілятор вирішив познущатись з мене (або викладач, який дав такий таск, просто відішлю йому лістинг та відео працюючої програми). Але якщо все ж таки можна реалізувати даний код в компіляторі якось, маякніть мені. Сподіваюсь, зайвим не буде.

Онлайн-компілятори зазвичай спираються на існуючі стандарти. Наприклад, на Codewars це Clang. Ваш Visual Studio можливо використовує інший компілятор, ніж на тому вашому онлайні, наприклад, Clang vs GCC, тому виникають такі розбіжності.

182

(9 відповідей, залишених у Оцінка сайтів)

А зареєструватися без ботнету можна?

183

(11 відповідей, залишених у C++)

Llewellynka написав:

Якщо моєте на увазі лапки, то їх вже перевіряла. З одинарними видає помилку до кожної літери warning: multi-character character constant [-Wmultichar]

Я не фахівець зі С++, але, здається, для кирилиці вам потрібно щось із підтримкою UTF8.

wcout is the equivalent of wprintf just like cout is the equivalent of printf - the last two won't do Unicode.

184

(4 відповідей, залишених у Java)

Spring Boot топчик, і ґайдів завались. Триматимусь поки його, хоча інші теж взяв на замітку.

Він доволі відрізняється по флоу від RoR'у, з яким я більш-менш знайомий, — тож треба повчити особливості. Але загалом видається навіть простішим. Єдине, що доводиться перекладати з Джави на Скалу. Втім краще так, ніж куца документація/репрезентація native Scala фреймворків.  :D

185

(14 521 відповідей, залишених у Інше)

frz написав:

Я до того веду, що за компом тепер проводжу набагато більше часу, і це не обов'язково про роботу. Таке враження що раніше було більше різноманітних занять. Зараз вони теж є, але щоб робити щось інше, потрібно докласти певне зусилля, а от сісти за комп або взяти до рук інший ґаджет виходить само собою по дефолту.

Ви так кажете, наче це щось погане. В ідеалі ми маємо жити у віртуальному просторі, а в «реалі» тільки їсти, пити та ходити в туалет.

186

(4 відповідей, залишених у Java)

Який вибрати веб-фреймворк для бекенду невеликої CRUD-апки?

Пробував Play і Scalatra. Перше надто замудрене (і Twirl це буеее), друге надто базове (і Twirl це буеее).

Чи варто вчити Spring Boot? Чи може порадите щось інше?

Джавідик написав:

Потрібний опис цільового призначення однорядкової складової команди з
обов’язкове дотримання її формату.

Перекладіть українською, будь ласка.

188

(14 521 відповідей, залишених у Інше)

frz написав:

Чим хто займався у вільний час до ери інтернету?

Тим самим, що й Тарпан — грався на ПК у відеоігри днями і ночами.

Коли ще не мав комп'ютера, то багацько читав, теж фантастику і фентезі. Доступ до відеоігор 24/7 зменшив попит на книжки, доступ до помегабайтного інтернету майже знищив потребу читати, а високошвидкісний інтернет прикінчив книжки як факт (хоча я читав дечого на компі, то сатанинські статті, то онлайн-книжки маргіналів з рунету).

koroc написав:

koala ф можна у Вас купити це завдання (щоб ви зробили а я заплатив) просту дуже потрібно

Вам у розділ Пропоную роботу.

190

(102 відповідей, залишених у Обговорення)

https://refactoring.guru/uk -- додали українську версію.

191

(629 відповідей, залишених у Обговорення)

kohutd написав:
bebyk написав:
kohutd написав:

Якщо маєте бажання допомогти зробити краще, буду вдячний!)

Ідеться не про *краще*, а про *послідовне*. Бути аж настільки славним українцем, що безоплатно створювати інтерпретатор для україноподібного коду, але з самого фундаменту зав'язувати проект на виразно кацапоїдній платформі. Втім я вже звик, що українські патріоти першим ділом звалюють під час війни до Польщі або чинять ще якісь вельми патріотичні дії типу використання ТГ. Ваш черговий приклад хіба посміхнув.  *PARDON*

Щодо решти, то мені байдуже на ваш проект.

Прихований текст

А сайт красивий, чесно, порадував око. Зразу видно — Жабоскрипт-дев.

О, ми з вами схожі. Мені теж не подобається, що багато п*здунів тепер називають себе українцями. Щодо телеграму, то я не вважаю його кацапською платформою, хоча він давно мене бентежить через авторитаризм в управлінні - останні дії з іменами користувачів лише підтверджують.

Байдуже вам, не байдуже на цей проєкт, я вам вдячний за відгук, гарного дня ;)

Я може й хотів би не називати себе українцем, але це було би неправдою, бо вродився таким. ????

Можете не вважати Путіна кацапським диктатором, телеграм не вважати кацапською платформою, а мене не вважати українцем — суті це не змінює.

192

(629 відповідей, залишених у Обговорення)

kohutd написав:
bebyk написав:
kohutd написав:

Привіт, я прийшов сюда щоб прорекламувати https://diia.dev

Наразі лише концепт, тому у кого є бажання, можете приєднуватись до створення :)

Як мінімум — сайт красивий. Але телеграм — це кацапська параша.  *PARDON*

Якщо маєте бажання допомогти зробити краще, буду вдячний!)

Ідеться не про *краще*, а про *послідовне*. Бути аж настільки славним українцем, що безоплатно створювати інтерпретатор для україноподібного коду, але з самого фундаменту зав'язувати проект на виразно кацапоїдній платформі. Втім я вже звик, що українські патріоти першим ділом звалюють під час війни до Польщі або чинять ще якісь вельми патріотичні дії типу використання ТГ. Ваш черговий приклад хіба посміхнув.  *PARDON*

Щодо решти, то мені байдуже на ваш проект.

Прихований текст

А сайт красивий, чесно, порадував око. Зразу видно — Жабоскрипт-дев.

193

(629 відповідей, залишених у Обговорення)

kohutd написав:

Привіт, я прийшов сюда щоб прорекламувати https://diia.dev

Наразі лише концепт, тому у кого є бажання, можете приєднуватись до створення :)

Як мінімум — сайт красивий. Але телеграм — це кацапська параша.  *PARDON*

194

(6 відповідей, залишених у Бази даних)

torsar написав:

ClickHouse - це Яндекс.
Тому рашка-парашка. :(

Які алтернативи є?

Глянув на вікі, що воно таке. По ходу вам підійде будь-яка column-oriented DBMS. Ви, до речі, теж могли  би це глянути на вікі: https://en.wikipedia.org/wiki/List_of_c … ted_DBMSes.

Я найбільше знайомий з екосистемою Амазону, там Redshift робить цю роботу і він направду дуже швидкий.

195

(3 відповідей, залишених у Залізо)

Лишень дивіться, де ємність акумулятора більша (оті mAh, «міліампер-година», 6000 має бути топ). Я мав Сяомі з доволі місткою батареєю (4000 mAh), коштував щось біля 6к грн. На початках тримав заряда 2 дні.

196

(8 відповідей, залишених у Scala)

Завдання PrintMessages з книги Hand-On Scala Programming. Залучає просту рекурсію.

Li Haoyi написав:

Write a recursive method printMessages that can receive an array of Msg class instances,
each with an optional parent ID, and use it to print out a threaded fashion. That means that child
messages are print out indented underneath their parents, and the nesting can be arbitrarily deep.

Вводимо таке:

printMessages(Array(
  new Msg(0, None, "Hello"),
  new Msg(1, Some(0), "World"),
  new Msg(2, None, "I am Cow"),
  new Msg(3, Some(2), "Hear me moo"),
  new Msg(4, Some(2), "Here I stand"),
  new Msg(5, Some(2), "I am Cow"),
  new Msg(6, Some(5), "Here me moo, moo")
))

На виході має бути таке:

#0 Hello
    #1 World
#2 I am Cow
    #3 Hear me moo
    #4 Here I stand
    #5 I am Cow
        #6 Here me moo, moo
моє рішення
object PrintMessages {
  class Msg(val id: Int, val parent: Option[Int], val txt: String)

  final val TAB = "    "
  def printMessages(messages: Array[Msg]): Unit = {
    for (message <- messages) println(
      s"${TAB * getIndentation(message.parent)}#${message.id} ${message.txt}"
    )

    def getIndentation(currentParent: Option[Int], tabCount: Int = 0): Int = {
      if (currentParent.isEmpty) tabCount
      else getIndentation(messages(currentParent.get).parent, tabCount + 1)
    }
  }

  def main(args: Array[String]): Unit = {
    printMessages(Array(
      new Msg(0, None, "Hello"),
      new Msg(1, Some(0), "World"),
      new Msg(2, None, "I am Cow"),
      new Msg(3, Some(2), "Hear me moo"),
      new Msg(4, Some(2), "Here I stand"),
      new Msg(5, Some(2), "I am Cow"),
      new Msg(6, Some(5), "Here me moo, moo")
    ))
  }
}

197

(629 відповідей, залишених у Обговорення)

wretsker написав:

постійні користувачі цього форуму оцініть його по десятибальній, ви тут через пошук готового коду чи як користуєтесь як форумом, в  пошуках хорошого/активного (тут надто мала активність) форуму для програмістів мені це потрібно як самоучці

Я тут з двох причин.

1. Відповідати на (адекватні) питання новачків (і не новачків). Коли навчаєш, то сам учишся.
2. Самому питати в більш досвідчених спеціалістів. До слова, не лише про програмування, а й про залізяки, операційні системи тощо.
2.1. До другого можна додати підпунктом обмін кодом у певних темах (цікаві задачі, тема з shell-скриптами тощо), коли дивишся код досвідчених людей, а свій виставляєш напоказ, тож його можуть оцінити і покритикувати.

Якщо брати суто ці дві активності, то оцінюю на 7/10. Мінус 2 бали, бо неадекватних питань новачків у рази більше, ніж адекватних, мінус 1 бал, бо часом місцеві завсідники не вельми ввічливі, а часто й доволі токсичні. Окрім цього, сюди заходять дуже знаючі й досвідчені люди, які зможуть слушне порадити або підказати корисну інформацію (скажімо, у якому напрямку шукати відповіді).

198

(388 відповідей, залишених у Алгоритми та структури даних, технології)

Ок, можна ще так, щоб зовсім без зайвини. І на цьому мої ідеї сьодні вичерпались.

Прихований текст
object SimpleAssembler {
  def interpret(program: List[String], 
                currentIndex: Int = 0, 
                result: HashMap[String, Int] = new HashMap[String, Int]
                ): Map[String, Int] = {
    if (currentIndex >= program.length) result.toMap
    else {
      lazy val getNumericValue = (
        hashMap: HashMap[String, Int], 
        value: String
      ) => 
        hashMap.get(value).getOrElse(value.toInt)
      val args = program(currentIndex).split(' ')
      val switcher: Int = args(0) match {
        case "mov" =>
          result.put(args(1), getNumericValue(result, args(2)))
          1
        case "inc" =>
          result.put(args(1), result.get(args(1)).get + 1)
          1
        case "dec" =>
          result.put(args(1), result.get(args(1)).get - 1)
          1
        case "jnz" =>
          if (getNumericValue(result, args(1)) != 0) {
            getNumericValue(result, args(2))
          } else {
            1
          }
      }
      interpret(program, currentIndex + switcher, result)
    }
  }
}

199

(388 відповідей, залишених у Алгоритми та структури даних, технології)

Що ж, рекурсію мені таки втулити вдалося, навіть @tailrec не знадобився.

Прихований текст
object SimpleAssembler {
  def interpret(program: List[String]): Map[String, Int] = {
    val getNumericValue = (
      hashMap: HashMap[String, Int], 
      value: String
    ) => 
      hashMap.get(value).getOrElse(value.toInt)
    
    def loop(list: List[String], currentIndex: Int, result: HashMap[String, Int]): Map[String, Int] = {
      if (currentIndex >= list.length) result.toMap
      else {
        val args = list(currentIndex).split(' ')
        val switcher: Int = args(0) match {
          case "mov" =>
            result.put(args(1), getNumericValue(result, args(2)))
            1
          case "inc" =>
            result.put(args(1), result.get(args(1)).get + 1)
            1
          case "dec" =>
            result.put(args(1), result.get(args(1)).get - 1)
            1
          case "jnz" =>
            if (getNumericValue(result, args(1)) != 0) {
              getNumericValue(result, args(2))
            } else {
              1
            }
        }
        loop(program, currentIndex + switcher, result)
      }
    }
    loop(program, 0, new HashMap[String, Int])
  }
}

200

(388 відповідей, залишених у Алгоритми та структури даних, технології)

Довго промучився, пробуючи рекурсію як за каноном у Scala, проте на «складних програмах» воно сипалося. І ніяк не придумав, де втулити хвостову рекурсію з теґом @tailrec.

Прихований текст
object SimpleAssembler {
  def interpret(program: List[String]): Map[String, Int] = {
    val result = new HashMap[String, Int]

    def loop(list: List[String]): Unit = breakable {
      for (command <- list) {
        val args = command.split(' ')
        args(0) match {
          case "mov" => 
            result.put(args(1), result.get(args(2)).getOrElse(args(2).toInt))
          case "inc" => 
            result.put(args(1), result.get(args(1)).get + 1)
          case "dec" => 
            result.put(args(1), result.get(args(1)).get - 1)
          case "jnz" =>
            val switcher = 
                result.get(args(2)).getOrElse(args(2).toInt)
            if (result.get(args(1)).getOrElse(args(1).toInt) != 0) {
              val startPosition = program.indexOf(command) + switcher
              loop(program.slice(startPosition, program.length))
              break()
            }
        }
      }
    }
    loop(program)
    result.toMap
  }
}

Зрештою закинув до готових цей процедурний стандарт як у koala:

Прихований текст
object SimpleAssembler {
  def interpret(program: List[String]): Map[String, Int] = {
    val result = new HashMap[String, Int]
    var iter = 0
    

    while (iter < program.length) {
      breakable {
        val args = program(iter).split(' ')
        args(0) match {
          case "mov" => 
            result.put(args(1), result.get(args(2)).getOrElse(args(2).toInt))
          case "inc" => 
            result.put(args(1), result.get(args(1)).get + 1)
          case "dec" => 
            result.put(args(1), result.get(args(1)).get - 1)
          case "jnz" =>
            val switcher = 
                result.get(args(2)).getOrElse(args(2).toInt)
            if (result.get(args(1)).getOrElse(args(1).toInt) != 0) {
              iter = iter + switcher
              break()
            }
        }
        iter = iter + 1
      }
    }
    result.toMap
  }
}

Відтак мені відкрилися рішення інших людей, котрі знають Скалу і ФП ліпше за мене і хвостову ресурсію звісно ж реалізували — є чого повчитися.