00:15:12 | * | infinity0 quit (Ping timeout: 246 seconds) |
00:17:05 | * | infinity0 joined #nim |
00:17:26 | fowl | Araq, this is pretty cool https://gist.github.com/fowlmouth/9c40de9a3700868a7419 |
00:19:04 | * | qwr quit (Ping timeout: 265 seconds) |
00:21:06 | Araq | fowl: :D told ya |
00:22:33 | def- | got asynchttp 33% faster with some crude speedups: https://github.com/def-/nim-http-speedup#optimizing-standard-library |
00:22:47 | * | xkpe quit () |
00:24:32 | * | qwr joined #nim |
00:24:50 | * | banister joined #nim |
00:27:25 | Araq | def-: request.hostname.shallowCopy(address) # unsafe! |
00:27:40 | def- | i don't think that made any change anyway |
00:27:43 | def- | i was just trying everything |
00:27:57 | Araq | it's not just unsafe, it's wrong here |
00:28:10 | Araq | what if I pass a constant string to this? |
00:28:58 | fowl | Araq, did you tell me not to try variant types |
00:29:42 | * | iivvoo quit (Ping timeout: 276 seconds) |
00:29:48 | Araq | fowl: no I told you to try them |
00:29:55 | * | bretthart joined #nim |
00:30:21 | fowl | i get an error lib\core\macros.nim(459, 26) Error: index out of bounds |
00:30:55 | bretthart | how do i return a cstring to my C function? right now when my C function calls my nim function and gets the cstring, it crashes with: "No stack traceback available |
00:30:55 | bretthart | SIGSEGV: Illegal storage access. (Try to compile with -d:useSysAssert -d:useGcAssert for details.)" |
00:30:57 | fowl | oh thats from lisprepr, weird |
00:30:58 | * | iivvoo joined #nim |
00:31:15 | dom96 | def-: awesome! |
00:31:25 | bretthart | i am supposed to use GC_ref(mystring) before returning it? |
00:33:47 | Araq | bretthart: depends on what the C functions does with the cstring |
00:33:57 | bretthart | just prints it |
00:34:26 | Araq | sounds more like a threading issue then |
00:34:35 | bretthart | i'm not using threads |
00:34:41 | Araq | does the C stuff create threads behind your back? |
00:34:48 | bretthart | no |
00:35:00 | bretthart | its a very minimal hello world |
00:35:18 | Araq | did you initialize Nim from C properly? |
00:35:30 | bretthart | i call PreMain, and NimMain() |
00:36:12 | dom96 | bretthart: How are you returning the cstring? |
00:36:17 | dom96 | can we see your code? |
00:36:20 | bretthart | result = mystring |
00:36:32 | bretthart | yes one sec |
00:36:53 | dom96 | def-: Are the shallow calls significantly improving the performance or is it your other changes? |
00:38:06 | def- | dom96: the other ones |
00:38:12 | def- | the shallow things didn't do anything actually |
00:38:31 | def- | and i wouldn't call 30% significant. should be 100 or 200% faster |
00:39:23 | flaviu | def-: What code are you testing |
00:39:39 | flaviu | I've found that perf (linux) works great as a non-intrusive profiler. |
00:39:44 | bretthart | my code is here |
00:39:45 | bretthart | https://github.com/rusthon/Rusthon/blob/master/examples/hello_nim.md |
00:40:03 | def- | flaviu: this one: https://github.com/def-/nim-http-speedup/blob/master/asynchttpserver_hello.nim |
00:41:14 | flaviu | def-: How do you generate the requests? |
00:41:29 | def- | wrk -c 400 -d 10 -t 12 http://localhost:8080 |
00:42:43 | flaviu | thanks! |
00:43:06 | def- | numbers are in the readme: https://github.com/def-/nim-http-speedup#nim-http-speedup |
00:43:51 | Araq | bretthart: try the GC_ref please but it should really work without |
00:46:59 | def- | bretthart: hm, i thought i did that once, but i resorted to array[1024, char]. now i'm wondering if i ran into the same problem as you do: https://github.com/def-/nim-unsorted/blob/master/anotherlang/query.nim |
00:48:32 | flaviu | hm, profiling is pretty much useless here as allocation is separate from collection. |
00:49:59 | def- | using the boehm gc helps quite a lot here. another 43% faster |
00:50:38 | def- | with boehm gc it's just as fast as go and cppsp with 1 thread |
00:51:28 | Araq | def-: yeah but watch out |
00:51:39 | Araq | boehm uses parallelism |
00:51:39 | * | Demon_Fox joined #nim |
00:51:54 | Araq | I don't think that counts as "1 thread" then |
00:52:20 | Araq | but maybe I'm wrong an Boehm doesn't use threads in your configuration? |
00:52:37 | def- | Araq: does it? i only see the program using exactly 100% cpu, so 1 core only |
00:52:49 | def- | and i don't see a boehm process anywhere |
00:53:45 | * | kniteli quit (Quit: Leaving) |
00:54:06 | flaviu | I see 4 threads, 3/4 have 1 second of cpu time, the other has 10 sec. |
00:54:18 | flaviu | I assume the thread with 10 sec is the GC thread. |
00:54:31 | bretthart | Araq, so in my nim code i simply do "GC_ref(mystring)" and then assign it to "result"? |
00:54:54 | Araq | no you GC_ref(result) |
00:55:21 | bretthart | ok, thanks |
00:57:09 | def- | flaviu: how do you see them? |
00:57:23 | flaviu | def-: I set htop in tree mode. |
00:58:50 | def- | flaviu: still only 1 thread for me, strange |
00:59:03 | def- | oh, i compiled boehm without threads :P |
00:59:31 | flaviu | http://i.imgur.com/LBfBh7j.png |
00:59:41 | bretthart | Araq, is there a command line option to tell the compiler not to copy all the internal nim stuff in the generated output? |
00:59:52 | def- | but it's good to know that performance is so much better even without threads |
01:00:32 | def- | with threads it's actually worse for me |
01:00:43 | Araq | bretthart: -d:release helps when you wanna read the generated C code |
01:00:57 | bretthart | right now i merge stdlib_system.c and mynim.c into the same c file and compile it |
01:01:30 | bretthart | because i need to hack it and remove references to `dlopen`, `dlclose`, and `dlsym` |
01:01:56 | bretthart | i have to do that because for some reason those symbols are undefined when i link to my final exe |
01:02:10 | bretthart | even if my final exe links do libdl |
01:02:31 | Araq | what OS? |
01:02:37 | bretthart | linux |
01:02:53 | flaviu | def-: I haven't enabled threads either, this is my invocation command: nim c -r -d:release --debuginfo --linedir:on --gc:boehm test.nim |
01:03:13 | def- | flaviu: nono, i mean when I compiled boehm itself |
01:03:32 | flaviu | ah, right. I guess my distro compiled it with threads. |
01:03:43 | bretthart | i would rather use nim to compile my nim project, maybe nim could just have an option not to use libdl stuff because it seems like its not required. |
01:03:56 | Araq | bretthart: well usually dlopen etc are generated when they are required and not for the sake of it |
01:03:59 | def- | dom96: my bad, the shallow is significant after all, about 10% improvement |
01:05:13 | bretthart | then maybe something in my build options is wrong and forcing libdl? --header --noMain --noLinking --compileOnly --genScript --app:staticlib |
01:05:33 | bretthart | my nim program itself is just printing hello world |
01:05:46 | * | TEttinger joined #nim |
01:06:31 | Araq | --app:staticLib doesn't work with --noMain iirc |
01:06:31 | bretthart | or is it possible that having my function pragma as: {.cdecl, exportc.} forcing libdl? |
01:07:01 | Araq | no, but you need -d:release or --deadCodeElim:on to get rid of the crap |
01:07:02 | * | BlaXpirit quit (Quit: Quit Konversation) |
01:09:07 | bretthart | how do i build a staticlib without noMain? i thought that the staticlib is supposed to then be linked to a final program that defines a C main? |
01:10:14 | * | infinity0_ joined #nim |
01:10:14 | * | infinity0_ quit (Changing host) |
01:10:14 | * | infinity0_ joined #nim |
01:10:14 | * | infinity0 is now known as Guest99657 |
01:10:14 | * | Guest99657 quit (Killed (cameron.freenode.net (Nickname regained by services))) |
01:10:14 | * | infinity0_ is now known as infinity0 |
01:19:43 | Araq | yeah I dunno |
01:20:11 | Araq | report it properly and I'll look at it properly ;-) |
01:21:51 | fowl | Araq, variant types work, but lispRepr fails on it |
01:22:13 | Araq | btw your problems with Haxe might stem from the fact that it is a compiler, and not a transpiler ;-) |
01:25:44 | TEttinger | is someone using haxe with Nim? |
01:25:48 | fowl | Araq, i believe its the empty recList in the else branch (in ast it would have NilLit in it) |
01:26:09 | Araq | fowl: lispRepr is clearly bogus |
01:26:23 | Araq | add(result, lispRepr(n[0])) # without any check? |
01:26:45 | Araq | what if it's a statement list with 0 statements in it? |
01:26:56 | fowl | Araq, it would have an nnkEmpty in it |
01:27:13 | Araq | not necessarily |
01:27:22 | fowl | or discard or something |
01:27:27 | Araq | I think that's just an artifact of lambda lifting |
01:27:47 | fowl | how do you make a statement list with no statements? |
01:28:02 | fowl | from code i mean |
01:28:10 | Araq | newStmtList() ? |
01:28:12 | fowl | from code i mean |
01:28:19 | fowl | like `foo: #` |
01:28:46 | Araq | oh you can't |
01:28:58 | Araq | but lispRepr is for outputting any AST |
01:30:48 | fowl | nil lit would be more useful than an empty reclist ^^ |
01:39:09 | * | reem quit (Remote host closed the connection) |
01:40:31 | * | reem joined #nim |
01:57:11 | bretthart | if i call GC_ref(onsomething) i always have to be sure to call GC_unref on it later? |
02:00:38 | * | brson quit (Ping timeout: 272 seconds) |
02:04:51 | * | chemist69_ joined #nim |
02:06:34 | fowl | bretthart, if you dont want leakage |
02:07:05 | * | infinity0 quit (Remote host closed the connection) |
02:07:53 | * | chemist69 quit (Ping timeout: 240 seconds) |
02:08:20 | * | darkf joined #nim |
02:09:15 | fowl | bretthart, my recommendation would be create a function that copies a string to a new cstring, return that and free it when you're done with it |
02:18:20 | * | whitenoise quit (Quit: Connection closed for inactivity) |
03:00:54 | * | reem quit (Remote host closed the connection) |
03:06:25 | * | reem joined #nim |
03:07:01 | * | gsingh93 quit (Ping timeout: 264 seconds) |
03:17:46 | * | saml_ joined #nim |
03:21:45 | * | gsingh93 joined #nim |
03:24:50 | * | reem quit (Remote host closed the connection) |
03:42:04 | * | qwr quit (Ping timeout: 265 seconds) |
03:42:12 | * | reem joined #nim |
03:42:54 | def- | I guess the results are good, have to clean this all up for a real PR: https://github.com/def-/nim-http-speedup#optimizing-standard-library |
03:43:40 | * | qwr joined #nim |
03:43:56 | def- | with these changes asynchttpserver is twice as fast as before |
03:50:52 | * | gsingh93 quit (Quit: WeeChat 1.1.1) |
03:51:47 | * | gsingh93 joined #nim |
03:54:06 | flaviu | I wonder if boehm is constantly faster than Nim's GC. |
03:57:14 | fowl | flaviu, i dont know about faster but it was noticeable a lot sooner than nims gc in my experience |
04:07:08 | * | aidanh quit (Ping timeout: 264 seconds) |
04:11:13 | bretthart | has anybody tried hooking into the JVM from nim using JNI? |
04:11:47 | * | aidanh joined #nim |
04:14:22 | bretthart | http://rusthon-lang.blogspot.com/2015/02/nim-and-rusthon.html |
04:14:47 | * | reem quit (Remote host closed the connection) |
04:15:45 | fowl | cool |
04:16:14 | fowl | bretthart, no but jnis c api should be easy to wrap |
04:16:24 | def- | bretthart: https://github.com/zielmicha/nimrod-java and https://github.com/gradha/nimrod-on-android |
04:18:17 | shevy | how do writing bindings (in C) in nim compare to python and ruby? e. g. ease of doing so (when we have comparable developers there, let's say 3 years of C and 3 years of said language) |
04:19:41 | bretthart | def-, nimrod-java hasn't been updated in a year, any idea if it still works? |
04:19:54 | def- | no idea, i just googled for nim and jni |
04:20:32 | def- | shevy: bindings to C libraries are pretty easy in Nim I'd say |
04:21:07 | * | reem joined #nim |
04:23:25 | fowl | shevy, did you see hisham just uploaded gobolinux tools to github? |
04:23:39 | fowl | https://github.com/gobolinux |
04:23:44 | shevy | oh |
04:23:47 | shevy | did not see that |
04:24:33 | shevy | wonder why he is doing that |
04:27:12 | def- | shevy: here's how to wrap a nice library for example: http://hookrace.net/blog/what-makes-nim-practical/#wrapping-libraries-with-c2nim |
04:27:18 | fowl | more visibility than their svn i would guess |
04:33:52 | * | reem quit (Remote host closed the connection) |
04:37:04 | * | reem joined #nim |
04:38:44 | * | saml_ quit (Quit: Leaving) |
04:39:23 | * | shevy quit (Ping timeout: 252 seconds) |
04:39:32 | * | reem quit (Remote host closed the connection) |
04:46:26 | * | Jehan_ joined #nim |
04:48:26 | * | reem joined #nim |
04:51:01 | * | reem quit (Remote host closed the connection) |
04:53:34 | * | reem joined #nim |
04:58:17 | * | reem quit (Ping timeout: 252 seconds) |
05:07:19 | * | reem joined #nim |
05:15:39 | * | Jehan_ quit (Quit: Leaving) |
05:24:40 | bretthart | new post on mixing nim, java and c++. http://rusthon-lang.blogspot.com/2015/02/nim-and-java-and-c.html |
05:37:43 | * | darkf_ joined #nim |
05:39:48 | * | darkf quit (Ping timeout: 244 seconds) |
05:41:29 | fowl | lol |
05:42:04 | fowl | someone removed "as well as Android" from wikipedia "(Maybe iOS but not Android so far.)" |
05:42:50 | * | reem quit (Remote host closed the connection) |
05:43:25 | * | reem joined #nim |
05:47:15 | Varriount | bretthart: Is it something I should read? Or does it cast negative light on Nim? |
05:47:30 | Varriount | onionhammer: Sent out another big update to the refactoring branch. |
05:49:30 | Triplefox | i looked at the post, it's short and hard to make sense of |
05:50:08 | bretthart | Varriount, there is nothing negative in the post, and in my first post first thing i say is "Nim is a new language with some very powerful features." |
05:50:23 | Triplefox | i guess it's easier to grok from the sense of "using nim(and other languages)" from rusthon |
05:54:52 | Varriount | Hm. The quote on the Nim manual's page is really resonating with me right now. (The one about complexity being transferable, but the amount remaining the same) |
05:55:23 | Varriount | I'm refactoring this code, and although I can make it easier to follow, I can't seem to make it any less complex. |
05:57:48 | Varriount | bretthart: Hm. I'm not sure that, just because the nim-java repo hasn't been updated, means that it's worthless. |
05:58:38 | Varriount | Possibly outdated and in need of a maintainer, but still salvageable. |
05:59:25 | * | reem quit (Remote host closed the connection) |
06:00:47 | * | reem joined #nim |
06:05:08 | * | bretthart quit (Ping timeout: 265 seconds) |
06:08:39 | * | darkf_ is now known as darkf |
06:10:28 | * | sillesta joined #nim |
06:14:42 | * | Menche quit (Quit: Leaving) |
06:15:59 | reactormonk | Favourite way to call subprocesses? |
06:32:34 | * | Jehan_ joined #nim |
06:35:30 | * | Jehan_ quit (Client Quit) |
06:41:07 | * | shevy joined #nim |
06:46:42 | * | bretthart joined #nim |
06:48:38 | * | gsingh93 quit (Ping timeout: 265 seconds) |
06:59:30 | * | reem quit (Remote host closed the connection) |
07:07:48 | * | kniteli joined #nim |
07:09:27 | * | reem joined #nim |
07:10:51 | * | Guest6923 quit (Read error: Connection reset by peer) |
07:12:38 | * | bjz joined #nim |
07:15:40 | * | Menche joined #nim |
07:30:50 | * | Jehan_ joined #nim |
07:31:48 | * | Jehan_ quit (Client Quit) |
07:41:52 | * | chemist69_ quit (Quit: WeeChat 1.1.1) |
07:42:02 | * | chemist69 joined #nim |
07:56:08 | * | Demon_Fox quit (Quit: Leaving) |
07:57:15 | * | johnsoft joined #nim |
08:07:07 | * | gokr joined #nim |
08:08:04 | * | pafmaf joined #nim |
08:11:46 | * | beier joined #nim |
08:12:16 | * | beier quit (Client Quit) |
08:12:52 | * | beier joined #nim |
08:16:01 | * | jazz_ joined #nim |
08:16:25 | jazz_ | :beier hi |
08:18:26 | * | gmpreussner|work quit (Read error: Connection reset by peer) |
08:18:42 | * | gmpreussner|work joined #nim |
08:20:30 | * | reem quit (Remote host closed the connection) |
08:26:57 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
08:30:09 | beier | what does nim target ? system develop ? distributed develop ? |
08:31:25 | * | banister quit (Read error: Connection reset by peer) |
08:31:48 | Araq | beier: my website says it's a "systems programming language" |
08:34:15 | beier | like go language ? why reinvent the wheel ? |
08:34:48 | * | dyu joined #nim |
08:35:14 | gokr | beier: Not the same language by far. |
08:35:47 | aidanh | beier: Nim is much closer to Python or Ruby (except compiled) |
08:36:20 | gokr | Further, in my personal opinion I do think Nim is more general purpose than typical "systems programming languages" - but it may be due to different views on what that entails. |
08:36:39 | gokr | And good morning btw ;) |
08:39:30 | beier | morning, but it's afternoon at asia :( |
08:39:54 | gokr | There is always morning somewhere! :) |
08:42:09 | beier | are there some project develop using nim ? |
08:42:55 | * | jazz_ quit (Quit: Page closed) |
08:43:54 | aidanh | beier: I'm using Nim to do the matasano crypto challenges, although I don't know if that qualifies as a project |
08:44:23 | * | BlaXpirit joined #nim |
08:47:03 | gokr | beier: What's your domain of interest? |
08:48:36 | beier | distributed development |
08:49:29 | beier | I'm intersting in big data processing |
08:49:49 | gokr | Ok, on what level? Hacking your own or using some dbs/frameworks for that? |
08:50:18 | beier | before I use akka |
08:50:50 | gokr | Nim has quite nice networking modules, using the newer more modern APIs on the various OSes, it has async networking stuff. Also, it can very easily wrap C/C++ libraries. |
08:52:39 | gokr | AFAIK we don't have higher level networking frameworks like Akka (although I am unsure), except for wrappers of ZeroMQ etc |
08:53:01 | * | sepisoad joined #nim |
08:56:40 | * | reem joined #nim |
08:56:45 | beier | It's say nim is a member of c platfrom and is another compile frontend. |
08:57:55 | beier | like scala to java platfrom ? |
08:57:56 | gokr | Well, Nim can compile via C or C++ (and js but.. I think that's more experimental) but the language is very far from those languages. It does however mean Nim gets many benefits from the C ecosystem. |
08:58:32 | gokr | So yes, interoperating with C and C++ is very easy. And the performance of Nim is similar to C/C++. |
09:03:18 | * | reem quit (Remote host closed the connection) |
09:06:43 | * | pafmaf quit (Quit: This computer has gone to sleep) |
09:06:48 | * | reem joined #nim |
09:08:26 | * | tumult joined #nim |
09:09:53 | * | BlaXpirit quit (Quit: Quit Konversation) |
09:11:42 | * | BlaXpirit joined #nim |
09:31:37 | * | tumult_ joined #nim |
09:31:52 | * | tumult quit (Ping timeout: 246 seconds) |
09:35:20 | * | reem quit (Remote host closed the connection) |
09:36:47 | * | reem joined #nim |
09:38:15 | * | bretthart quit (Ping timeout: 250 seconds) |
09:41:07 | * | bretthart joined #nim |
09:46:41 | * | reem quit (Remote host closed the connection) |
09:46:57 | * | Trustable joined #nim |
09:47:28 | dyu | I just built nim on freebsd (thanks to http://forum.nim-lang.org/t/936, PR: https://github.com/Araq/Nim/pull/2225) |
09:48:33 | * | reem joined #nim |
09:49:44 | * | reem quit (Remote host closed the connection) |
09:52:32 | TEttinger | woo dyu |
09:52:47 | * | bretthart quit (Ping timeout: 265 seconds) |
09:53:11 | TEttinger | now you have to maintain it, since no one else uses BSD with Nim yet! |
09:53:25 | def- | TEttinger: not true, there is wtw as well |
09:53:32 | * | Jehan_ joined #nim |
10:06:20 | * | pafmaf joined #nim |
10:08:46 | * | bjz joined #nim |
10:12:42 | dyu | Tettinger: I use nim on linux (which depends on c libs with no freebsd ports) ... just wanted to play with nim on my freenas box |
10:20:28 | * | beier quit (Ping timeout: 256 seconds) |
10:31:37 | * | TEttinger quit (Ping timeout: 264 seconds) |
10:41:02 | * | dyu quit (Quit: Leaving) |
10:46:46 | * | bretthart joined #nim |
11:14:56 | * | bretthart quit (Remote host closed the connection) |
11:16:25 | * | beier joined #nim |
11:21:46 | * | beier quit (Ping timeout: 272 seconds) |
12:13:55 | * | pafmaf quit (Quit: This computer has gone to sleep) |
12:47:30 | * | beier joined #nim |
12:52:15 | * | beier quit (Ping timeout: 244 seconds) |
13:22:10 | * | Jehan_ quit (Quit: Leaving) |
13:33:48 | * | pafmaf joined #nim |
13:49:28 | onionhammer | Varriount great when are u going to merge? :) |
14:20:01 | * | mpthrapp joined #nim |
14:21:22 | * | darkf quit (Quit: Leaving) |
14:36:16 | * | beier joined #nim |
14:41:13 | * | beier quit (Ping timeout: 255 seconds) |
14:47:57 | * | BlaXpirit_ joined #nim |
14:51:24 | * | BlaXpirit quit (Ping timeout: 272 seconds) |
14:56:29 | Araq | OderWat: " If he could do this impressive demonstrations while being that nervous, he can do this compiler anyway!" |
14:56:34 | Araq | hey |
14:56:51 | Araq | they told me after 10 minutes there are only 5 minutes left |
14:57:09 | OderWat | Hehe. I think you where great! |
14:57:13 | Araq | I was at slide 10 or something |
14:57:41 | Araq | and I was like "wtf? I will do all of this, I was promised 35 minutes of time" |
14:59:34 | OderWat | They should have given you 90. There is so much "less interesting" stuff where people can talk all day. |
15:01:43 | OderWat | But really. I think that standing there after developing for years and showing off highly opinionated and specialized stuff (it is isn't it?) needs a lot of self esteem. I don't know you but that was just my impression. |
15:04:05 | BlaXpirit_ | umm what am i missing here |
15:05:10 | Araq | well I expected the audience to know everything already so I focussed on stuff which is not as known |
15:05:22 | BlaXpirit_ | any video? |
15:09:30 | OderWat | Talk by Araq here: http://www.infoq.com/presentations/nimrod (nothing new probably) |
15:11:15 | tumult_ | ^ cheers :) |
15:24:10 | * | dyu joined #nim |
15:25:40 | * | saml quit (Quit: Leaving) |
15:32:09 | * | saml joined #nim |
15:33:55 | * | saml quit (Client Quit) |
15:34:21 | * | saml joined #nim |
15:35:21 | * | saml quit (Remote host closed the connection) |
15:40:22 | * | saml joined #nim |
15:55:31 | * | pregressive joined #nim |
15:57:28 | * | pafmaf quit (Quit: This computer has gone to sleep) |
16:15:30 | * | beier joined #nim |
16:18:15 | * | sillesta quit (Ping timeout: 252 seconds) |
16:20:26 | * | beier quit (Ping timeout: 246 seconds) |
16:29:38 | * | sillesta joined #nim |
16:37:09 | * | gsingh93 joined #nim |
17:03:20 | gmpreussner|work | Araq: great presentation |
17:03:43 | Araq | thanks :-) |
17:04:23 | mpthrapp | How do I serve static pages with Jester? Eg. I want to do resp "path/to/file.html" and have that render. |
17:04:35 | onionhammer | put it in the public/ folder |
17:04:48 | mpthrapp | I have it in public/root/ |
17:05:18 | onionhammer | you have what in public/root/ |
17:05:57 | mpthrapp | My static HTML file that I want jester to serve as the response to get "/" |
17:06:45 | onionhammer | so... you're trying to map "/" to a static file? |
17:07:06 | onionhammer | if you're rewriting the path to the static file then it's not static anymore |
17:07:22 | onionhammer | you'll have to handle it in code or in config if you're using a web server like nginx |
17:07:33 | mpthrapp | onionhammer: I may be misunderstanding stuff then, I don't have a ton of experience with web stuff. |
17:07:39 | onionhammer | np |
17:07:45 | * | Etheco- quit (Read error: Connection reset by peer) |
17:08:05 | onionhammer | so if you put "something.html" in public/, you would hit localhost:{PORT}/something.html |
17:08:08 | onionhammer | and it should serve that file |
17:08:10 | * | pafmaf joined #nim |
17:08:25 | mpthrapp | Ahhhh, okay. |
17:08:38 | onionhammer | if you want localhost:{PORT}/ to map to something.html you need to redirect to it or you need to serve it from code by reading the file and writing it to the http response |
17:08:52 | mpthrapp | Alright, that makes sense. |
17:09:14 | mpthrapp | Can I do a redirect right in jester? Or do I need to do it through nginx? |
17:09:23 | onionhammer | personally i would recommend just using a web server like apache or nginx to serve your static content |
17:09:50 | onionhammer | then you just do a rule for whatever your path is to the actual file |
17:09:56 | mpthrapp | Okay. I'm really just doing this as a way to learn nim/the web. |
17:10:04 | onionhammer | ok |
17:10:32 | onionhammer | yeah if its just learning then dont bother with nginx probably:) |
17:10:38 | mpthrapp | I've pretty much just done enterprisey utility apps so far. |
17:11:05 | mpthrapp | And while I do actually enjoy it, I figure I should probably have at least a basic understanding of how the web works. :P |
17:19:39 | mpthrapp | Alright, one more question. What module should I be looking at to do file io? |
17:19:59 | mpthrapp | I'm looking at the streams module, I'm just not sure if that's the right way to do things? |
17:20:58 | Araq | streams work, so does the stuff in system.nim |
17:21:34 | Araq | as a rule of thumb: if you care about stdin and stdout, use system.nim, else use streams |
17:21:49 | mpthrapp | Alright, cool, thanks! |
17:31:43 | * | tumult_ quit (Ping timeout: 246 seconds) |
17:36:32 | * | pafmaf quit (Quit: This computer has gone to sleep) |
17:44:28 | emilsp | mpthrapp, just load the file as a string and return it as a response |
17:44:43 | mpthrapp | emilsp: Yeah, that's what I'm doing now. |
17:45:07 | emilsp | is that bad ? or do you want it to redirect '/' to '/home.html' ? if yes, then why ? |
17:45:16 | * | BlaXpirit_ quit (Quit: Quit Konversation) |
17:45:56 | emilsp | of course, you could have a directory static/ and put all the 'static' stuff in there, then enumerate them before you start jester and add them as responses. |
17:45:57 | mpthrapp | No, that's exactly what I wanted. I wanted a way to change what's being returned to / without recompiling for testing purposes. |
17:46:28 | mpthrapp | So reading the html from a file and returning it is exactly what I needed. |
17:47:29 | * | zahary joined #nim |
17:47:29 | emilsp | ok then :) |
17:48:42 | * | BlaXpirit joined #nim |
17:48:44 | mpthrapp | Now I just have to figure out the JSON module. :/ |
17:49:34 | emilsp | it's a bit of a pain, but to get values out of it, you have to load the json data and then access it by json_obj[key].num or .str or .fnum |
17:49:56 | mpthrapp | Actually I'm trying to do it the other way around. I want to build a JSON response. |
17:50:01 | emilsp | I was dealing with the same things last weekend |
17:50:26 | mpthrapp | I get how to create nodes, I'm just not sure what the overall object should be. |
17:50:47 | * | dumdum joined #nim |
17:51:24 | emilsp | isn't it just a toplevel node holding lower nodes ? |
17:51:44 | mpthrapp | Maybe? I've never really built JSON in any language before. |
17:52:05 | emilsp | well, do experiment then. I can't say I'm a json expert by any means either. |
17:53:23 | * | brson joined #nim |
17:53:57 | mpthrapp | Yeah, I'm basically just throwing things at the wall and seeing what sticks. :P |
17:54:39 | emilsp | basically newJObject() will create an empty object and you can add key value pairs to that. |
17:55:06 | mpthrapp | That's what I'm doing now. |
17:55:14 | emilsp | is it working ? |
17:55:16 | mpthrapp | Yeah. |
17:55:20 | emilsp | hurray |
17:55:34 | mpthrapp | Now to figure out how to get jester to return JSON without flattening it. |
17:57:04 | * | Matthias247 joined #nim |
17:57:56 | * | pafmaf joined #nim |
17:57:57 | mpthrapp | Hurray for .pretty! |
18:01:09 | shevy | Hurray for .cookies! |
18:01:52 | emilsp | If I want to write a secure web service, I'll be bound to using nginx to deal with ssl, right ? |
18:03:16 | onionhammer | you can use https with nim, but you have to enable it w/ a compiler flag |
18:03:28 | onionhammer | -d:ssl |
18:03:48 | onionhammer | you're better off using nginx reverse proxy though |
18:04:05 | emilsp | ok, is jester multithreaded ? And why am I better off using nginx's reverse proxy ? |
18:04:16 | * | beier joined #nim |
18:04:43 | onionhammer | no i dont think jester is multithreaded |
18:04:57 | emilsp | so it is bound to a single request at a time, right ? |
18:05:20 | onionhammer | no it uses non-blocking socket IO operations |
18:05:59 | emilsp | so if I'm serving a massive file on one request, it would still be able to take other requests ? |
18:06:29 | onionhammer | yeah, depending on how you served the massive file |
18:07:05 | emilsp | well, I'd intend not to divide it up into little chunks |
18:08:13 | onionhammer | just avoid blocking the thread |
18:08:53 | emilsp | so I'd have to use nonblocking io on my end as well, right ? |
18:09:02 | * | beier quit (Ping timeout: 245 seconds) |
18:09:27 | onionhammer | if you're using jester? it might be abstracted away for u |
18:09:39 | emilsp | ok, thank you very much. |
18:09:45 | onionhammer | is there a 'sendfile' method or something? |
18:11:55 | onionhammer | anyway, nginx is probably going to be a lot smarter/better optimized at serving static files |
18:12:42 | onionhammer | it'll also spawn multiple processes |
18:12:43 | mpthrapp | Speaking of jester, is there a way to return JSON without doing .pretty? Or does it even matter? Will the receiving client still interpret it as JSON? |
18:13:05 | onionhammer | the whitespace doesnt matter to the interpreter, only to humans reading the json |
18:13:56 | mpthrapp | Okay, that makes sense. So, as long as I set content-type, the bits themselves don't matter? |
18:14:27 | onionhammer | i mean, they do matter, it still has to be valid json :) |
18:14:50 | mpthrapp | Well, yeah. :P But it doesn't matter if Nim converts it to a string before it responds with it. |
18:15:52 | onionhammer | oh |
18:15:56 | onionhammer | i see what you're asking |
18:16:30 | onionhammer | you still have to convert it to a string because I doubt jester or whatever http server you're using supports JsonNode objects |
18:16:49 | onionhammer | unless there's a converter |
18:17:09 | onionhammer | you should juse use '$' |
18:17:12 | onionhammer | not .pretty() |
18:17:32 | mpthrapp | I tried using $, but it says I don't have enough arguments. |
18:17:33 | onionhammer | .pretty() = human readable, $ is the 'tostring' operator |
18:17:41 | onionhammer | how are you invoking it |
18:17:49 | mpthrapp | resp $json |
18:17:56 | onionhammer | try resp($json) |
18:18:05 | mpthrapp | Okay, thanks. |
18:18:16 | onionhammer | and dont name ur variable 'json', name it something else in case it's conflicting w/ the module name |
18:18:27 | mpthrapp | That is a really good point. |
18:19:11 | mpthrapp | Yup, that did it. |
18:19:52 | onionhammer | yeah, sometimes nim has problems w/ that ambiguity |
18:19:54 | * | matkuki joined #nim |
18:20:32 | mpthrapp | I mean, it's a hard problem. I'm not sure any language has really solved it. |
18:21:08 | onionhammer | i think araqs idea is to make whitespace significant to operator precedence |
18:21:17 | mpthrapp | Interesting. |
18:21:27 | onionhammer | he's gotten a lot of pushback on that though |
18:21:44 | onionhammer | people dont like the idea of 4+4 / 2 being different from 4 + 4/2 |
18:21:45 | OderWat | just to mention it: jester currently has no support for any caching of static files |
18:22:43 | mpthrapp | onionhammer: Yeah, that seems like it could be a little frusterating. |
18:23:03 | OderWat | at least not with its supplemented static route so nginx (or apache2 which i prefer) will help with that too |
18:23:19 | onionhammer | nginx > apache :P |
18:24:32 | OderWat | may be but I have apache running everywhere and only occasionally need a reverse proxy for some stuff like ghost |
18:27:18 | mpthrapp | Yay, finished my hello world as a service. :P AKA, learning Nim. |
18:28:46 | * | BlaXpirit quit (Quit: Quit Konversation) |
18:30:30 | * | BlaXpirit joined #nim |
18:33:46 | emilsp | onionhammer, how does nim handle namespaces ? |
18:34:17 | emilsp | oh, I remember, if I get a clash, I have to use the 'full path' with the import |
18:38:27 | * | Matthias247 quit (Read error: Connection reset by peer) |
18:41:40 | onionhammer | you mean import from cpp? |
18:42:26 | emilsp | nono, I was thinking out loud, sorry about that. |
19:01:05 | Araq | onionhammer: we can make resp $foo work without full blown "strong spaces". |
19:01:43 | Araq | but I still think resp (1, 2) should then mean "pass tuple to resp" and this will break code |
19:01:57 | Araq | lots of code. |
19:04:18 | emilsp | Araq, please, don't introduce 'significant' significant whitespace. |
19:04:56 | Araq | emilsp: and yet we have more problems *without* it |
19:13:03 | * | superfunc joined #nim |
19:13:10 | * | filwit joined #nim |
19:13:48 | filwit | flaviu: just got your memo about the website background image. Nice job on fixing it, has that been uploaded to the web? |
19:14:15 | Trixar_za | Hey Araq, is there a clever way around the floating point base 2 conversion issue? |
19:14:49 | Araq | Trixar_za: use bignums? use the new rationals module? |
19:15:33 | Trixar_za | Rationals module? |
19:17:11 | def- | Trixar_za: fresh in devel: https://github.com/Araq/Nim/blob/devel/lib/pure/rationals.nim |
19:17:42 | Araq | def-: btw I would rename these to Rat[T], but that's just me |
19:18:16 | def- | Araq: just for brevity or any deeper reason? |
19:18:39 | Araq | for brevity |
19:18:39 | def- | When I read "Rat" I wouldn't think of rational number immediately |
19:18:50 | Araq | I think it's common in math |
19:18:59 | emilsp | rats are rational, mmkay ? |
19:21:07 | onionhammer | ew definitely dont rename it to Rat[T] :P |
19:21:40 | def- | i just don't like that you have to write "initRational" now instead of just having a tuple |
19:22:02 | onionhammer | i hate init procs :) |
19:22:39 | onionhammer | it would be great if nim had a way of restricting construction of a type to the module (e.g. internal constructor) araq |
19:23:32 | * | mpthrapp quit (Remote host closed the connection) |
19:23:34 | Araq | yeah initRational sucks |
19:24:11 | Araq | it's like a punishment for using rational numbers |
19:24:30 | Araq | def-: the tuple was weird too though |
19:24:32 | Araq | what about |
19:24:46 | Araq | proc `//` (a, b: T): Rational[T] |
19:24:53 | Araq | 1//7 + 4//6 |
19:25:24 | Araq | now that's a rational number |
19:26:05 | def- | Yes, something like this would be nice |
19:26:28 | def- | not sure if // is that obvious |
19:26:53 | Araq | maybe 1 /. 3 |
19:27:06 | Araq | unfortunately / already means divison |
19:27:21 | * | mpthrapp joined #nim |
19:28:27 | * | superfunc quit (Ping timeout: 250 seconds) |
19:28:53 | * | JodaZ joined #nim |
19:29:06 | JodaZ | how does nims garbage collector work? |
19:29:25 | onionhammer | http://nim-lang.org/gc.html |
19:31:15 | JodaZ | :/ |
19:31:32 | JodaZ | ok, so its not actually optional if you really want to use nim |
19:33:51 | * | reem joined #nim |
19:34:14 | BlaXpirit | kinda |
19:34:23 | Araq | JodaZ: *shrug* I have stopped thinking about that question. *I* can use Nim without GC and its GC has obviously been written in the GC-less subset. But then I can also write C without using strlen() everywhere. |
19:35:59 | * | pafmaf quit (Quit: This computer has gone to sleep) |
19:37:01 | Araq | but I can also use its GC in a realtime setting and call it a day |
19:41:54 | mpthrapp | This might be a crazy person thing to do, but is there a library to interface with MSSQL? |
19:42:10 | * | JodaZ left #nim (#nim) |
19:47:18 | Demos | mpthrapp, you /can/ use COM API fairly easily |
19:47:39 | Demos | you can wrap the CINTERFACE version or use the string based way of calling things |
19:47:44 | mpthrapp | That is a really good point. |
19:47:54 | * | Menche quit (Quit: Leaving) |
19:48:08 | Demos | (I don't know the string based way, but I have wrapped Direct3D and it was way easier than I thought it would be) |
19:48:59 | Demos | I have wrappers for some of the required COM stuff |
19:49:41 | Demos | directnimrod is in nimble |
19:50:27 | Demos | OK yeah I did not even bother to wrap IUnknown.h or any of that stuff |
19:50:36 | Demos | I think some of that is actually in windows.nim |
19:51:08 | Demos | https://bitbucket.org/barcharcraz/directnimrod/src/05adb989d8f961ddcfc43c5f05aa9ea4b27ce14c/src/d3d11.nim?at=master |
19:51:14 | Demos | that is the main d3d11.h wrapper |
19:51:23 | Demos | and there may be a premade library to do it |
19:51:31 | Demos | already in nimble |
19:53:02 | * | beier joined #nim |
19:57:55 | * | beier quit (Ping timeout: 250 seconds) |
19:59:52 | * | gokr_ joined #nim |
20:02:38 | * | reem quit (Remote host closed the connection) |
20:03:20 | * | reem joined #nim |
20:06:33 | * | reem quit (Remote host closed the connection) |
20:18:59 | filwit | gokr_: btw, I added your blog's code colors to my recent Aporia PR, but I didn't know if they came from a common color-scheme, so I just named it "EggShell" with a description "Colors from Gokr's blog"... if you have a more official name for them I would like to know. |
20:20:16 | * | mrkishi joined #nim |
20:20:27 | gokr_ | oh... its actually what I get when I use "nimrod" in code blocks in octopress |
20:21:04 | gokr_ | i can look it up, on phone now |
20:21:08 | * | sepisoad quit (Quit: Leaving) |
20:21:46 | filwit | gokr_: okay, thanks. No rush or anything, just wanted to give credit to the original theme |
20:24:13 | matkuki | Can someone tell me why a call to a proc/method of a type has less overhead when calling "myproc(mytype, myparameter)" than "mytype.myproc(myparameter)"? |
20:26:06 | Araq | matkuki: because an indirect call is slower than a direct call? |
20:26:23 | matkuki | Araq: Can't the compiler make these equal? I don't know much about compilers, so please be gentle. |
20:27:11 | filwit | matkuki: those should be identical (unless you're talking about proc vs method). Can you expand a little on how you've reached that conclusion? |
20:27:30 | Araq | filwit: he stores the proc in the object as a field |
20:27:53 | filwit | Araq: ah, okay i see |
20:28:16 | Araq | matkuki: you can do: |
20:28:29 | Araq | obj.myproc = someOtherProc |
20:28:38 | Araq | you can redefine it at runtime |
20:28:50 | Araq | and so the compiler's optimizer has a hard time |
20:29:24 | Araq | sometimes gcc can optimize the overhead away, but often it can't |
20:31:02 | * | onionhammer quit (Quit: WeeChat 1.0.1) |
20:31:02 | matkuki | Thanks. But I'm a little confused about the object field thing. Let me give you some code, just a minute... |
20:31:20 | * | onionhammer joined #nim |
20:36:15 | Triplefox | Should I be worried if I've taken to making the . syntax my default? |
20:36:48 | Araq | Triplefox: no, not at all. that's a different dot with no overhead .. ;-) |
20:37:10 | Triplefox | Whew |
20:37:11 | matkuki | Araq, filwit: https://bpaste.net/show/996e6afbf727 |
20:39:17 | filwit | matkuki: both calls should be identical in performance (the compiler sees them as pretty much the same thing). How are you reaching the conclusion that one "has less overhead"? |
20:41:24 | matkuki | filwit: what if I use "TypeA = ref object" ? |
20:43:35 | filwit | matkuki: what if you do? I'm not sure what you're asking, and you didn't answer my previous question about how you reached the conclusion one call incurred more overhead. I am having trouble understanding what problem you're trying to solve. |
20:50:12 | filwit | matkuki: I need to get something to eat, so I'll help you later if you still have questions. |
20:50:29 | matkuki | filwit, Araq: Sorry, totally my mistake. I once asked Araq if I could simulate namespaces by assigning procs to a type, as Araq showed above "obj.myproc = someOtherProc". |
20:50:31 | matkuki | Araq has better memory than me, because I forgot about the that the overhead only happens in the above example. Sorry for the mixup! |
20:50:45 | matkuki | filwit: Thanks! |
20:53:18 | filwit | matkuki: okay i see.. fyi, you can assign procs to a type like this: `proc foo(t:type T, ...)` |
20:53:48 | filwit | matkuki: that will allow you to call like this: `T.foo(...)` without any runtime overhead |
20:54:10 | filwit | okay, need food. bbl |
20:54:26 | matkuki | filwit: Thanks. |
20:54:31 | matkuki | Araq: Sorry for the confusion:) |
20:55:27 | * | reem joined #nim |
20:58:04 | Demos | you don't need namespaces for the same reasons you do in c++, the module system takes care of it |
21:00:31 | * | dapz joined #nim |
21:02:31 | * | reem quit (Remote host closed the connection) |
21:03:03 | * | reem joined #nim |
21:06:21 | * | reem quit (Remote host closed the connection) |
21:08:30 | matkuki | What is the guidline for using "include"? Always at the top of a module, like import? |
21:10:11 | * | dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:11:27 | * | dapz joined #nim |
21:11:58 | * | fizzbooze joined #nim |
21:17:05 | BlaXpirit | matkuki, i'd suspect the guideline is not to use include |
21:17:32 | matkuki | Is it going to be deprecated? |
21:17:44 | BlaXpirit | uh no |
21:17:51 | BlaXpirit | i just feel like it's inelegant |
21:20:17 | * | mikolalysenko joined #nim |
21:22:20 | Varriount | 'include' is meant for splitting up a single module into multiple modules. |
21:23:05 | Araq | 'include' is also required when you need to reuse a userdefined pragma |
21:23:12 | Araq | due to a hole in the language |
21:23:14 | Varriount | Generally, 'import' is better, but the choice is up to you. |
21:24:34 | matkuki | Thanks. |
21:24:54 | Varriount | onionhammer: I'll merge when things are ready. |
21:25:56 | * | reem joined #nim |
21:26:55 | onionhammer | well yeah :P |
21:27:00 | onionhammer | I meant ballpark ETA |
21:30:25 | * | dumdum quit (Ping timeout: 256 seconds) |
21:30:32 | Varriount | onionhammer: Well, spring break is coming up for me. I'd guess sometime then. |
21:30:50 | onionhammer | ah ok |
21:30:52 | Varriount | onionhammer: Right now a large portion of my time is being taken up with Calculus studies. |
21:31:03 | Varriount | And I really can't afford to get a bad grade. |
21:31:09 | onionhammer | should be a piece of cake for a genius like u though :P |
21:31:52 | Varriount | I wish. |
21:32:20 | * | dhasenan_ quit (Remote host closed the connection) |
21:33:25 | * | banister joined #nim |
21:33:54 | * | gever-gever joined #nim |
21:41:46 | * | beier joined #nim |
21:46:51 | * | beier quit (Ping timeout: 256 seconds) |
21:57:23 | * | dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:59:19 | * | dapz joined #nim |
21:59:44 | * | pafmaf joined #nim |
22:00:12 | * | mpthrapp quit (Remote host closed the connection) |
22:01:20 | * | reem_ joined #nim |
22:02:35 | * | dapz quit (Client Quit) |
22:04:12 | * | reem quit (Ping timeout: 246 seconds) |
22:09:06 | shevy | you can do it! |
22:09:24 | shevy | Varriount why can't you have bad grades btw? |
22:11:10 | fowl | Araq, how is urhonimo going to work without forward declarations |
22:19:46 | matkuki | def~: Just found your HookRace articles on Nim. I didn't know you make games, cool. You made the artwork? |
22:33:10 | def- | matkuki: nope |
22:33:29 | matkuki | Physics? |
22:33:51 | matkuki | Did you make the physics engine? |
22:35:06 | * | banister is now known as banisterfiend |
22:36:00 | * | fizzbooze quit (Ping timeout: 256 seconds) |
22:36:37 | * | reem_ quit (Remote host closed the connection) |
22:36:41 | def- | matkuki: The physics is based on Teeworlds as well. This isn't really Nim-related, so we can talk by PM I guess |
22:48:32 | matkuki | def~: Was just curious. |
22:51:20 | flaviu | filwit: Yep, it's been merged to the forum and website. I'm not sure if it's been deployed yet though. |
22:54:06 | * | reem joined #nim |
22:54:07 | * | reem quit (Remote host closed the connection) |
22:54:13 | filwit | flaviu: nice job. I think it has been (website dots look a little cleaner than before) |
22:54:31 | * | fizzbooze joined #nim |
22:55:50 | * | TEttinger joined #nim |
22:56:28 | * | matkuki quit (Quit: ChatZilla 0.9.91.1 [Firefox 36.0/20150222232811]) |
22:56:28 | flaviu | Thanks! Yes, you're right, it has been deployed. I also have it pushed to the assets repo, see https://raw.githubusercontent.com/nim-lang/assets/master/Art/background.svg. I didn't bother updating the concept art though, there's little use in that. |
22:57:22 | flaviu | def- helped optimize the file size, I'm not sure if I ultimately went with his version or https://kraken.io/ |
22:59:18 | * | elbow joined #nim |
22:59:21 | * | elbow_ joined #nim |
22:59:40 | * | elbow_ left #nim (#nim) |
23:00:37 | * | reem joined #nim |
23:06:02 | BlaXpirit | http://htmlpreview.github.io/?https://raw.githubusercontent.com/nim-lang/assets/master/Art/background.svg to actually view the file |
23:07:28 | flaviu | BlaXpirit: Doesn't render correctly. |
23:07:49 | BlaXpirit | :o that's true |
23:07:55 | flaviu | https://raw.githubusercontent.com/nim-lang/assets/master/Art/background.png |
23:08:43 | * | Matthias247 joined #nim |
23:11:30 | * | OderWat quit (Quit: Textual IRC Client: www.textualapp.com) |
23:14:39 | * | fizzbooze quit (Ping timeout: 250 seconds) |
23:15:59 | * | filwit quit (Quit: Leaving) |
23:17:14 | * | OderWat joined #nim |
23:17:52 | * | saml quit (Quit: Leaving) |
23:22:53 | * | filwit joined #nim |
23:23:19 | * | pafmaf quit (Quit: This computer has gone to sleep) |
23:24:17 | * | reem quit (Remote host closed the connection) |
23:25:16 | * | sillesta quit (Ping timeout: 265 seconds) |
23:26:47 | * | Menche joined #nim |
23:29:53 | filwit | flaviu: ps. we should probably update the github nim-lang group's logo to the new one |
23:32:41 | * | fizzbooze joined #nim |
23:32:43 | * | whitenoise joined #nim |
23:32:51 | ldlework | new logo? |
23:33:04 | ldlework | glowing instead of black? |
23:33:22 | ldlework | oh I see |
23:36:30 | filwit | ldlework: yeah there was an older logo for the first site redesign |
23:42:03 | * | elbow quit (Remote host closed the connection) |
23:42:36 | flaviu | filwit: I'm not sure that you included the source art for https://raw.githubusercontent.com/nim-lang/assets/master/Art/new-design.png in the bundle. |
23:43:24 | flaviu | Or did I make that file? I don't remember. |
23:44:01 | filwit | flaviu: probably not.. that's just the logo on top of the raw background.. I think i just rendered that real fast to show off the new logo to everyone as a stand-alone image |
23:44:28 | filwit | flaviu: i gave def the raw-logo svg/png pack the other day, let me give you a link.. one sec |
23:46:16 | filwit | flaviu: http://www.reign-studios.net/philipwitte/nim/artwork/NimLogo.zip |
23:46:18 | gmpreussner|work | anyone here going to be at the Game Developer Conference in San Francisco next week? |
23:46:40 | Triplefox | gmpreussner|work: yep... |
23:46:43 | * | reem joined #nim |
23:46:54 | gmpreussner|work | yay |
23:47:03 | gmpreussner|work | come see me at the Epic Games booth. ask for Max! |
23:47:23 | filwit | flaviu: that's basically the Logo SVG as a separate entity (there's a background color to the SVG file, but it will export as transparent) + 3 different resolution PNGs for people to use on blogs and stuff |
23:47:53 | Triplefox | will do...if i get a pass, ha (i live here, usually end up with an expo every year by chance) |
23:48:16 | filwit | flaviu: I should (or you can) make a monochrome color version of the logo for other branding purposes in the future |
23:48:34 | gmpreussner|work | Triplefox: if you don't get a pass, email me at [email protected] - maybe i can get you in, or we can meet outside :) |
23:48:53 | flaviu | filwit: Already have a two-color version at https://github.com/nim-lang/assets/blob/master/Art/logo-simple.svg |
23:48:55 | * | brson quit (Quit: leaving) |
23:49:11 | Triplefox | okay, will probably let you know in another day or two |
23:49:24 | onionhammer | gmpreussner|work you work for epic? |
23:49:52 | onionhammer | I just subscribed to the new unreal engine :) |
23:49:59 | gmpreussner|work | yep |
23:50:20 | onionhammer | what do u do there? |
23:50:29 | gmpreussner|work | sr. engine programmer |
23:51:19 | onionhammer | so when can we expect nim support in unreal? :P |
23:51:29 | * | Hakaslak joined #nim |
23:54:17 | flaviu | filwit: Looks like I already have that. Should the repo's logo be the rectangular logo? I'd like to keep it square so it's recognizable. |
23:54:44 | filwit | flaviu: you can adjust it if you want |
23:54:50 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:55:20 | filwit | flaviu: a two-tone logo isn't the same as a monotone one.. monotone is the onlything that works for watermarks, etc |
23:55:31 | * | reem quit (Remote host closed the connection) |
23:55:43 | filwit | flaviu: i actually already made one (for the website favicon) |
23:56:32 | filwit | flaviu: it uses outlines instead of colors to differentiate between the front and back side of the crown |
23:56:37 | * | dapz joined #nim |
23:57:36 | filwit | flaviu: it may already be in the zip i gave you and just needs to be adjusted in size.. i'll take a look later if you can't find it |
23:58:25 | * | reem joined #nim |