<<31-03-2015>>

00:00:00reactormonkhm. I'm not sure if I like the ruby syntax with types stuffed on top
00:00:34flaviureactormonk: The point is that you don't notice the type :)
00:01:04flaviuEverything is inferred, you can even do `foo = 1; foo = "asd"`
00:01:18reactormonkflaviu, yeah, but inferrence gan only go so far
00:05:13*hellonico joined #nim
00:07:35*replace-bot joined #nim
00:07:47*replace-bot quit (Remote host closed the connection)
00:10:22*BlaXpirit_UA quit (Remote host closed the connection)
00:12:11*drewsrem quit (Quit: Leaving)
00:13:18*tmku quit (Ping timeout: 265 seconds)
00:13:50*davidhq quit (Ping timeout: 250 seconds)
00:19:34*tmku joined #nim
00:24:57*fizzbooze joined #nim
00:25:42*tmku quit (Ping timeout: 272 seconds)
00:27:55*alex99 quit (Ping timeout: 246 seconds)
00:31:43*tmku joined #nim
00:32:07*saml_ joined #nim
00:39:25*wink-s joined #nim
01:28:14*HakanD____ joined #nim
01:28:56*Trustable quit (Quit: Leaving)
01:30:18*leonlee joined #nim
01:33:03*HakanD____ quit (Ping timeout: 265 seconds)
01:38:42*RandIter joined #nim
01:40:41RandIterhttps://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Nim_(programming_language)
01:44:31*gokr1 quit (Quit: Leaving.)
01:48:22*Kingsquee joined #nim
01:50:17EXetoCit has been going on for a long time
01:58:27RandIterThis instance started on 2015-03-25.
01:59:05RandIterIf anyone here is a pre-existing wp editor, they may wish to make their thoughts known.
01:59:50*arnetheduck quit (Ping timeout: 244 seconds)
02:01:22*wink-s quit (Ping timeout: 246 seconds)
02:04:52*darkf joined #nim
02:12:07*arnetheduck joined #nim
02:25:17*MagusOTB joined #nim
02:25:33*TEttinger joined #nim
02:31:28*brson quit (Ping timeout: 256 seconds)
02:36:53*leonlee quit (Ping timeout: 246 seconds)
02:42:18*Demon_Fox joined #nim
02:44:30*saml_ quit (Quit: Leaving)
02:47:58*brson joined #nim
02:59:38*brson quit (Quit: leaving)
03:03:28*reem quit (Read error: Connection reset by peer)
03:05:54*infinity0_ joined #nim
03:05:54*infinity0_ quit (Changing host)
03:05:54*infinity0_ joined #nim
03:05:54*infinity0 quit (Killed (barjavel.freenode.net (Nickname regained by services)))
03:05:54*infinity0_ is now known as infinity0
03:06:46*reem joined #nim
03:24:59*wb joined #nim
03:35:15*hellonico quit (Remote host closed the connection)
03:35:44*hellonico joined #nim
03:40:05*hellonico quit (Ping timeout: 248 seconds)
03:51:44*hellonico joined #nim
04:09:59*ChrisMAN quit (Ping timeout: 252 seconds)
04:12:26*jasondotstar quit (Ping timeout: 272 seconds)
04:14:06*jasondotstar joined #nim
04:21:01*gsingh93 quit (Ping timeout: 250 seconds)
05:04:30*nande quit (Remote host closed the connection)
05:32:14*rektide quit (Ping timeout: 256 seconds)
05:33:59*gokr joined #nim
05:34:29*Demos quit (Read error: Connection reset by peer)
06:08:28*banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:12:23*wb quit (Ping timeout: 250 seconds)
06:22:10*johnsoft quit (Ping timeout: 250 seconds)
06:22:52*johnsoft joined #nim
06:23:05*notfowl quit (Ping timeout: 252 seconds)
06:26:21*fowl joined #nim
06:43:34*reem quit (Remote host closed the connection)
06:46:09*reem joined #nim
07:07:25*hellonico quit (Remote host closed the connection)
07:10:35*hellonico joined #nim
07:12:09gokrHey guys
07:14:13*wb joined #nim
07:18:32*BlaXpirit joined #nim
07:19:23*irrequietus joined #nim
07:24:19*fizzbooze quit (Ping timeout: 250 seconds)
07:30:59*hellonico quit (Remote host closed the connection)
07:43:42*hellonico joined #nim
08:12:42*HakanD____ joined #nim
08:13:47*reem quit (Remote host closed the connection)
08:14:07*Ven joined #nim
08:17:17*HakanD____ quit (Ping timeout: 256 seconds)
08:22:13*HakanD____ joined #nim
08:26:51*reem joined #nim
08:36:14*HakanD____ quit (Quit: Be back later ...)
08:37:53*HakanD____ joined #nim
08:43:23*reem quit (Remote host closed the connection)
08:55:37*milosn quit (Ping timeout: 264 seconds)
09:01:41*TEttinger quit (Ping timeout: 248 seconds)
09:02:16*reem joined #nim
09:15:40*HakanD____ quit (Quit: Be back later ...)
09:19:20*HakanD____ joined #nim
09:19:48*Tennis joined #nim
09:19:48*Tennis quit (Changing host)
09:19:48*Tennis joined #nim
09:23:46*jefus__ joined #nim
09:24:22*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:27:12*jefus_ quit (Ping timeout: 250 seconds)
09:28:04*Strikecarl joined #nim
09:28:10StrikecarlGuys?
09:28:17StrikecarlI am messing around with osproc
09:28:24Strikecarlbut when i do the Process = ref ProcessObj
09:28:29Strikecarli get errors
09:28:37*davidhq joined #nim
09:28:44StrikecarlI have all imports correct.
09:31:03LoneTechthat's a type declaration. your variables would look like var child : Process = startProcess("echo hello world")
09:31:28LoneTech(and since startProcess returns a Process, you don't need ": Process" in there)
09:31:47StrikecarlOh.
09:31:50Strikecarlso for example
09:31:58Strikecarlif i wanted to make an program that shutdown steam.exe
09:32:00Strikecarli would do
09:32:09StrikecarlSteam = ref ProcessObj
09:32:12StrikecarlOr?
09:32:26Strikecarlor like
09:32:37Strikecarlidk
09:33:12LoneTechyou'd have to either find the steam process (I don't think osproc covers that) or run a separate command like kill (don't know the windows equivalent) to do so
09:33:52StrikecarlCould i just run the windows command "taskkill /mi Steam.exe"
09:33:58LoneTechsure
09:34:02Strikecarlwhat function allows me to run windows commands?
09:34:21LoneTechosproc.execCmd
09:34:27Strikecarlkk
09:35:27Strikecarlmhm weird.
09:36:02Strikecarlproc execCmd(command: string)
09:36:08Strikecarl"implementation of 'test.execCmd(command: string)' expected"
09:36:27StrikecarlWhat do i need to declare?
09:36:29LoneTechdon't declare it. just import osproc
09:36:38Strikecarloh kk.
09:37:05LoneTechall the declarations in the library documentation are things that are in the documented module
09:37:23StrikecarlOh. Thanks!
09:37:29StrikecarlThought i had to declare everything :3
09:37:37StrikecarlPretty new to nim :-P
09:37:41*hellonico quit (Remote host closed the connection)
09:40:17LoneTechwelcome
09:40:22StrikecarlCan i do so when i run the program
09:40:28Strikecarlthere is no box poup or anything?
09:40:30Strikecarl100% silent?
09:40:36Strikecarlas i dont want to see an ugly cmd box popup
09:40:41Strikecarlwhen i run the taskkill
09:41:11LoneTechtry building with --app:gui to make a nim program not open a console. don't know if taskkill will, though.
09:42:04LoneTechit's possible it will if using execCmd but not using execCmdEx, I am not well versed in Windows behaviour
09:45:57Strikecarlif i want to run taskkill
09:46:03Strikecarlwhy do i have to use echo
09:46:12Strikecarl{.discardable} doesnt seem to work
09:47:42LoneTechexecCmd returns something, so Nim expects you to use the value (for instance, to know if the command failed). just put "discard execCmd(command)" to ignore the return value
09:48:34*Demon_Fox quit (Quit: Leaving)
09:48:56LoneTechthe discardable pragma would fit in the proc declaration for procs where it's normal to not use the return value
09:48:59StrikecarlThanks!
09:50:26LoneTechfor instance http://nim-lang.org/macros.html#add,PNimrodNode,PNimrodNode is discardable because it returns its first argument; it's meant for nesting, not a new value.
09:51:35Strikecarl:)
09:57:33*Strikecarl quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
09:58:20*milosn joined #nim
10:01:18*HakanD____ quit (Quit: Be back later ...)
10:01:30*reem quit (Remote host closed the connection)
10:04:32*Strikecarl joined #nim
10:08:20*Strikecarl quit (Client Quit)
10:12:19*milosn quit (Read error: Connection reset by peer)
10:12:44*milosn joined #nim
10:27:13*HakanD____ joined #nim
10:34:45*banister joined #nim
10:44:45*Ven joined #nim
10:51:51*Kingsquee quit (Quit: Konversation terminated!)
10:57:53*irrequietus quit ()
10:59:49*milosn quit (Ping timeout: 245 seconds)
11:01:53*davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
11:07:18*milosn joined #nim
11:16:24*JinShil joined #nim
11:21:25*Trustable joined #nim
11:23:04*HakanD____ quit (Quit: Be back later ...)
11:29:37*davidhq joined #nim
11:43:43*irrequietus joined #nim
11:47:23*milosn quit (Ping timeout: 252 seconds)
11:50:28*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:02:00*nulpunkt joined #nim
12:07:48*JinShil quit (Quit: Konversation terminated!)
12:10:30*milosn joined #nim
12:15:32*Etheco- quit (Quit: Leaving)
12:21:51*JinShil joined #nim
12:24:30*EXetoC quit (Ping timeout: 264 seconds)
12:24:48*davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
12:26:34*HakanD____ joined #nim
12:33:44*JinShil quit (Quit: Konversation terminated!)
12:35:19*Ven joined #nim
12:35:44*HakanD_____ joined #nim
12:38:08*HakanD______ joined #nim
12:38:22*HakanD____ quit (Ping timeout: 256 seconds)
12:39:28*HakanD_______ joined #nim
12:41:04*HakanD_____ quit (Ping timeout: 245 seconds)
12:43:09*HakanD______ quit (Ping timeout: 245 seconds)
12:44:36*Etheco joined #nim
12:46:37*no_name quit (Ping timeout: 252 seconds)
12:46:43*devzerp quit (Ping timeout: 250 seconds)
12:50:42*no_name joined #nim
12:51:07*devzerp joined #nim
12:52:53*mpthrapp joined #nim
12:56:41*milosn quit (Ping timeout: 250 seconds)
13:02:09*reem joined #nim
13:06:33*reem quit (Ping timeout: 246 seconds)
13:07:21*milosn joined #nim
13:18:57*milosn quit (Read error: Connection reset by peer)
13:19:14*milosn joined #nim
13:24:01*milosn quit (Ping timeout: 252 seconds)
13:26:32*BitPuffin joined #nim
13:28:42*HakanD_______ quit (Ping timeout: 264 seconds)
13:29:08*HakanD_______ joined #nim
13:35:14*davidhq joined #nim
13:50:49*pigeon_ quit (Ping timeout: 246 seconds)
13:54:25*davidhq quit (Ping timeout: 264 seconds)
13:58:26*davidhq joined #nim
13:59:12*itPuffinB joined #nim
14:01:57*BitPuffin quit (Ping timeout: 248 seconds)
14:06:30*milosn joined #nim
14:07:48*itPuffinB is now known as BitPuffin
14:15:29*rektide joined #nim
14:19:23*milosn quit (Ping timeout: 256 seconds)
14:41:24*devzerp quit (Ping timeout: 244 seconds)
14:41:24*no_name quit (Ping timeout: 244 seconds)
14:42:51*untitaker quit (Ping timeout: 250 seconds)
14:48:09*untitaker joined #nim
14:51:55*devzerp joined #nim
14:53:36*no_name joined #nim
15:12:36*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:16:43*Ven joined #nim
15:17:16*milosn joined #nim
15:35:32*wb quit (Ping timeout: 250 seconds)
15:39:23*ChrisMAN joined #nim
15:45:03*darkf quit (Quit: Leaving)
15:48:33*arnetheduck quit (Ping timeout: 265 seconds)
15:53:15*davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
15:53:18*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:54:45*wb joined #nim
16:03:18*Tennis quit (Quit: Leaving)
16:09:48*Strikecarl joined #nim
16:10:02Strikecarlvar program = readLine(stdin)
16:10:02Strikecarldiscard execCmd("taskkill /F /IM "program".exe /T")
16:10:11StrikecarlCant i do something like this?
16:10:12Strikecarl:/
16:12:56*banister quit (Read error: Connection reset by peer)
16:13:42*banister joined #nim
16:19:44*nimnoob joined #nim
16:19:58nimnoobhello
16:34:06*HakanD________ joined #nim
16:37:24*HakanD_______ quit (Ping timeout: 252 seconds)
16:37:51*HakanD_________ joined #nim
16:38:40*davidhq joined #nim
16:38:53*HakanD________ quit (Read error: No route to host)
16:41:31*HakanD__________ joined #nim
16:45:30*HakanD_________ quit (Ping timeout: 264 seconds)
16:45:37BlaXpiritStrikecarl pls
16:45:39BlaXpiritwhat do you want to do
16:45:43Strikecarllike
16:45:46Strikecarli type in an string
16:45:48BlaXpiritdon't use the goddamn execCmd
16:45:49Strikecarllike
16:45:51Strikecarl"Chrome"
16:46:01Strikecarlthen it kills Chrome.exe
16:46:04Strikecarlpls
16:46:09Strikecarlits just some testerino
16:46:28*HakanD__________ quit (Read error: No route to host)
16:50:59BlaXpiritimport osproc, rdstdin \\ let program = readLineFromStdin("") \\ discard execProcess("taskkill", ["/F", "/IM", program & ".exe", "/T"], options = {poUsePath})
16:51:01BlaXpiritStrikecarl,
16:52:31StrikecarlTy.
16:53:04BlaXpiritalso your original example would work if you replace `program` with `&program&`
16:53:05*jefus__ is now known as jefus
16:53:13StrikecarlAh.
16:53:17StrikecarlThanks!
16:53:52BlaXpiritStrikecarl, problem is, i can write program name "; del C: ;"
16:54:02BlaXpiritor whatever destructive command
16:58:10StrikecarlHow do i do
16:58:17Strikecarl--app:gui in Aporia IDE?
17:00:24BlaXpiritStrikecarl, go to settings>tools
17:00:43BlaXpiritmaybe u can copy the first field into the 2nd field and add --app:gui
17:01:08BlaXpiritbut then you'd also need -r
17:01:31BlaXpiritah, Strikecarl, you can probably also make nim.cfg
17:01:38BlaXpiritmuch better solution
17:03:50StrikecarlI just fucked mine up real bad.
17:04:15StrikecarlCan i reset my compile settings somehow?
17:04:28BlaXpiritdid u edit the main nim.cfg?
17:04:33BlaXpirityou're never supposed to
17:04:50StrikecarlNo
17:04:55Strikecarli edited in the "Tools" Thing
17:05:01Strikecarlbut i accidently deleted the other important ones
17:05:09Strikecarlso i only have --app:gui
17:05:15BlaXpiritthere is just this:
17:05:16Strikecarland i cant remember my other ones :'(
17:05:17BlaXpirit$findExe(nim) c --listFullPaths $#
17:05:19Strikecarlyes
17:05:19StrikecarlTY
17:08:17Strikecarl(nimrod)
17:08:23Strikecarlits $findExe(nimrod) c --listFullPaths $#
17:08:32Strikecarl:')
17:09:42StrikecarlEven tho i get "execution of an external program failed
17:09:42Strikecarl> Process terminated with exit code 1"
17:09:45Strikecarlwhen i use --app:gui
17:09:46Strikecarl<.<
17:28:47*ChrisMAN quit (Remote host closed the connection)
17:33:02*gsingh93 joined #nim
17:41:32nimnoobis it possible to forward declare types?
17:42:05onionhammernimnoob you can put them in the same type block
17:42:43onionhammerif types need to reference each other in a different order
17:43:27nimnoobonionhammer: so if there are circular references then the only option is to declare in the same block? i am ok with doing that, was just wondering if there were other options
17:43:48onionhammerI dont think you can forward declare a type, but im not 100% sure.
17:44:00nimnoobok, np. thanks for that all the same
17:45:03nimnoobi guess another way i've gotten around this is using "interfaces" in C++ and using multiple inheritance
17:45:22nimnoobbut nim doesn't support the concepts of interfaces or multiple inheritance, correct?
17:45:48onionhammercorrect
17:46:13nimnoobok. thanks again
17:46:49onionhammernim doesnt have interfaces, it has type classes, which can be used in similar situations to when you'd want interfaces sometimes
17:47:02onionhammerthey're experimental though
17:48:59*amaurea joined #nim
17:49:39amaureaWhat's the status of numpy-like (or fortran-like) multidimensional arrays for nimrod?
17:52:55dom96amaurea: not aware of anybody implementing them, not sure what those style of multidim arrays look like actually.
17:54:06*mpthrapp_ joined #nim
17:54:30*mpthrapp quit (Ping timeout: 272 seconds)
17:54:37nimnoobonionhammer: i will take a look at type classes
17:55:37*brson joined #nim
17:58:45amaureadom96: For example: a = zeros([2,3,4,5]) (create 2 by 3 by 4 by 5 array filled with zeros), a[1,1,:,:2] = 4 (set subset of array to 4). x=range(10) (create array [0,1,2,3,4,5,6,7,8,9]). table=x[:,None]*x[None,:] (create multiplication table, 10x10). table[table<50]*=-1 (invert sign of part of table matching condition), etc.
17:59:22amaureadom96: And lots of other stuff, such as indexing arrays by arrays, etc.
17:59:50amaureadom96: fortran arrays are basically the main reason why anybody would still use fortran rather than C++ or similar
18:01:18dom96amaurea: With Nim's macros you could probably implement very similar syntax for arrays. But you should ask on the forum if anybody else has started working on something similar.
18:01:52dom96If not then you can create a library for this yourself, if that is something you would like to pursue of course.
18:04:11*ChrisMAN joined #nim
18:04:36*reem joined #nim
18:04:47amaureaCreating a good array library is a lot of work. I don't have time to do that. But if nimrod were to get such arrays, that would make it a promising language for scientific computation. Most of us in astrophysics currently use python+fortran, but it would be nice to not have to choose between writing in a convenient language or a fast language.
18:06:12amaureaI found some posts on the forum, but it's hard to know if those represent the current status or not. They amounted to somebody declaring they planned to make such a library.
18:12:16*nimnoob quit (Ping timeout: 246 seconds)
18:25:06dom96amaurea: If I may ask, what use cases would you have for this library?
18:28:42*Strikecarl quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
18:41:39*Senketsu quit (Quit: Leaving)
18:44:11*davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
18:49:54*BlaXpirit_ joined #nim
18:51:23*BitPuffin quit (Ping timeout: 256 seconds)
18:51:38*BlaXpirit_ quit (Client Quit)
18:51:56*BlaXpirit_ joined #nim
18:52:16*BlaXpirit quit (Ping timeout: 250 seconds)
18:52:42*tmku quit (Ping timeout: 265 seconds)
18:53:31*reem quit (Remote host closed the connection)
18:58:22*reem joined #nim
19:03:07*reem quit (Ping timeout: 255 seconds)
19:04:32*reem joined #nim
19:19:24*kulelu88 joined #nim
19:19:47kulelu88Would anybody be interested in building a NoSQL DB in nim as a use-case to see how it performs?
19:25:17dtscodelike building redis and making bindings for it?
19:25:26dom96That sounds like a fun project. Are you looking for people to help you out?
19:29:08kulelu88partially yes, but I would really really like to see some robust nim code that isn't too abstract. a proper "use-case" to say "hey, this powerful language runs at the same speed as mongoDB"
19:29:26kulelu88*mongoDB/C
19:29:41onionhammermaybe dont mention mongodb
19:29:43onionhammer:)
19:31:03kulelu88:D
19:32:18*reem quit (Remote host closed the connection)
19:33:07federico3there are so many *SQL DBs around tho
19:34:43*egrep quit (Remote host closed the connection)
19:35:06kulelu88federico3: It would certainly be a strain to build yet another DB, but doesn't Nim need some production-power tool to advocate for it?
19:36:14*egrep joined #nim
19:37:01federico3kulelu88: absolutely yes, and I would say it could really encourage people to use Nim if 1) it is something that people need 2) it is a library or a framework to be used from Nim applications
19:37:53kulelu88federico3: What do you have in mind? In the world of the internet, I could only assume something web-related would be the engine for growth
19:39:41federico3kulelu88: e.g. think for example iPython Notebook + Pandas [+ maybe scikit-learn]. People in science or finance are moving from domain-specific languages to Python because of those
19:40:29kulelu88I don't see anybody rewriting the math libs of Python entirely
19:40:37kulelu88in any other language
19:40:40kulelu88at all
19:42:11federico3sorry I don't get it
19:43:29pigmejkulelu88: well for DB its' more important to inter node speed
19:43:30federico3(most of the internals of Pandas/Numpy/sklearn are in C, C++, fortran)
19:43:33pigmejrather than single node speed
19:43:44pigmej(while single node speed is important too)
19:43:59pigmejbuilding simple kv store is easy, in any language
19:44:13pigmejbuilding decent storage though is different story
19:45:46kulelu88Are any of you working on any open source projects where others can learn from your code?
19:45:48pigmejkulelu88: I have built some k/v storage engines and databases
19:46:39pigmejkulelu88: well, first of all, you have to think => what do you want to have in your database, what about CAP, what about hmm let's say CRDTish structures etc
19:46:46pigmejwhat about ACID (or acid like things) etc etc
19:47:05pigmejyou would porbably need to know at least how paxos / raft / multipaxos works
19:47:17kulelu88pigmej: which is probably why it is over my head as a downstream programmer
19:47:25pigmejOR if you want to build single node database
19:48:14pigmejok, then still a lot of reading / thinking
19:48:42pigmejand well, there are a lot of opensource databases
19:48:46kulelu88pigmej: maybe I should start small and convert my current python script into a Nim executable
19:48:58pigmejdo you have python kv database
19:48:58pigmej?
19:49:30kulelu88nope pigmej . This is a plain old script
19:51:47*fizzbooze joined #nim
19:51:55*reem joined #nim
19:52:14federico3in terms of DBs, I'd love to have a tiny, zero-maintenance datastore for email/feeds/personal data that can do syncing across platforms (including smartphones)
19:53:10pigmejfederico3: in what lang?
19:54:31federico3pigmej: the implementation lang for the DB itself? If it has to be lightweight enough and run on different plaftorms maybe Nim would be a good candidate
19:55:25pigmejhmm, I might have then something in near future ;P
19:55:36pigmejI'm currently in the middle of some play / rewrite
19:55:44pigmejok, middle was incorrect word there
19:55:49federico3what is it? :)
19:56:15pigmeja sinmple embeddable crdt storage
19:56:19pigmejsimple*
19:58:34federico3crdt?
20:00:23federico3the tricky part is syncing albeit (it's safe to assume that only one node/device is being actively used at a time by the user)
20:01:00kulelu88that should be a restriction
20:01:16*brson quit (Ping timeout: 252 seconds)
20:02:02pigmejcrdt is for syncing let's say
20:02:03pigmej;-)
20:02:49pigmejit's for strong eventual consistency (blah... blah... blah)
20:03:01pigmeja lot of buzzwords, a lot of academic publications
20:03:02pigmejetc
20:03:45federico3the large majority of network-based PIM application is meant to be multiuser and have centralized databases
20:03:55pigmejsure,
20:04:00pigmejit's the easy part
20:04:04pigmejthe centralized store
20:04:09pigmej"easy"
20:04:09federico3once you lose connectivity between laptop/phone/VPS you are in trouble
20:05:17pigmejfederico3: http://research.microsoft.com/apps/video/default.aspx?id=153540&r=1, https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf and the kind of next-gen http://arxiv.org/pdf/1410.2803v1.pdf
20:05:23federico3hovewer, if we think of a single-user/many devices platform, things are entirely different
20:05:46federico3thanks!
20:06:12*reem quit (Remote host closed the connection)
20:07:21pigmejone of the coolest crdt implementations are for riak
20:07:46pigmejor if you like beam like langs, there is also one implementation of delta-crdt in elixir
20:13:07gmpreussner|workkulelu88: i've been playing with the idea of implementing a simple graph database in Nim
20:14:28kulelu88Do any of you use Nim at work for real projects?
20:14:54pigmejI'm considering Nim for some event storage
20:15:15pigmejkulelu88: nim is quite ok from my tests,
20:15:26gmpreussner|worki've played with event stores in C# before. they're relatively easy to implement. should be fun in Nim.
20:15:42gmpreussner|worki wrote a whole a CQRS stack once
20:15:48gmpreussner|workwith event sourcing
20:15:55pigmejgmpreussner|work: for time series data?
20:16:08gmpreussner|workno, for a web application
20:16:12pigmejah,
20:16:34gmpreussner|workmaybe you mean something else by 'event storage' :)
20:16:43pigmejyeah could be ;)
20:16:55pigmejfor me event / series storage is time series database or time series kv
20:17:12gmpreussner|workah ok
20:17:12pigmejlike 10_000 new events in a second
20:17:28pigmejaverage from 30d
20:17:32gmpreussner|workyou could probably just store that sequentially and then binary search it :)
20:17:42pigmejnot an option ;)
20:17:43*reem joined #nim
20:17:52pigmejbut yeah, it's stored sequentially :)
20:18:01pigmejlike rrd
20:18:12pigmejthough replicated / clustered...
20:19:16pigmejthe fact is, python hits the limit there, and I will need to rewrite that part in hmm, probably next 6 months or so
20:19:18kulelu88gmpreussner|work: you built a webapp using Jester?
20:19:24*Demon_Fox joined #nim
20:19:35gmpreussner|workkulelu88, no, but others have
20:20:06kulelu88what do you use? gmpreussner|work
20:20:30gmpreussner|workkulelu88, i use C++ at work, Nim in my free time
20:20:42gmpreussner|worki used to use C# in my free time
20:20:49kulelu88So you built a webapp with pure Nim?
20:21:35kulelu88that must've taken ages compared to Rails
20:22:32onionhammerweb app in nim w/o jester?
20:22:56onionhammerit's not as bad as you might think, since there's the httpserver module
20:23:26kulelu88Jester itself is complicated. Pure Nim must be o_0
20:23:31gmpreussner|workkulelu88, i have not done it, but others here have
20:24:05onionhammerjester is probably overcomplicated
20:24:16onionhammerbut it does a lot of stuff to make it easier and general purpose
20:24:22onionhammerwuoldnt necessarily be the case for specific applications
20:24:59kulelu88it's not very optimized though. Runs slower than Node IIRC
20:25:15onionhammerno, and neither are the underlying libraries it uses
20:25:49onionhammernode is actually pretty fast if you don't have to do a lot of heavy crunching I imagine. libuv is quick
20:25:58pigmejjester is not that fast that's a fact
20:26:21pigmejbut in most real life apps (where jester targets), you will hit a limit in IO (db files or whatever)
20:26:22kulelu88kind of biting yourself in the foot if your static language web framework is slower than Javascript
20:26:46pigmejkulelu88: not at all
20:27:01pigmejalso node => v8 => JIT
20:27:19pigmejand JIT technique is quite effective (for example pypy, rpython stack)
20:28:53pigmejalso you can't compare apples and oranges :)
20:29:58kulelu88you can't directly compare, but they're both web tools and Nim should be quicker in everything
20:30:24pigmejkulelu88: not at all
20:30:49pigmejjester adds quite a lot (maybe some parts are overcomplicated / badly implemented), but those are probably good enough
20:31:05pigmeji node (also what framework?) they are probably better optimized
20:31:18*johnsoft quit (Ping timeout: 265 seconds)
20:32:19pigmejalso headers parser from node.js is one of the best available on free licenses
20:32:33*johnsoft joined #nim
20:32:40pigmej(and its C implemented)
20:34:13federico3speaking of which, we need better benchmarks for Nim :)
20:36:30pigmejfederico3: asynchttpserver is quite fast :)
20:36:42pigmejespecially that forked version of asyncdispatch
20:41:24*blobs joined #nim
20:42:36*blobs left #nim (#nim)
20:44:12*blobs joined #nim
20:45:53pigmejanyway, being still on performance part
20:46:21pigmejnanomsg + nim, is there something better in terms of inter node / machine message passing performance
20:50:15*mwbrown joined #nim
20:50:42mwbrownQuestion for you guys: is c2nim still the recommended way of interfacing with existing C code by way of converting structures to Nim equivalents?
20:51:12mwbrownI wanted to resume work on this embedded Nim example running on a Cortex M3 but I'm lazy and don't want to convert all the C structures being used ;)
20:51:26mwbrownconvert by hand, that is
20:53:48*clynamen quit (Ping timeout: 246 seconds)
20:54:54*Sembei quit (Ping timeout: 250 seconds)
20:55:19*clynamen joined #nim
20:55:56reactormonkmwbrown, sure
21:00:09*davidhq joined #nim
21:05:04*mpthrapp_ quit (Remote host closed the connection)
21:06:43amaureadom96: Wow, that's a bit like asking what use case people would have for a string library or a math library. I use multidimensional arrays in practically every program I write. For example, today I wrote a program that reads in an num_detector by num_samples 2d arrays, computes the fourier transform along the last axis and then computes the inverse-variane weithed mean of the power spectra. Or how about a program that draws a random realization of the cosmic mi
21:07:06amaureadom96: all those things could be done with 1-d arrays and index juggling, but it would be cumbersome and error prone.
21:07:55*TEttinger joined #nim
21:09:49amaureadom96: I used to program mostly in C++, but I moved to python+fortran because C++'s multidimensional array libraries aren't (or weren't) anywhere near as good as numpy or fortran arrays.
21:10:31reactormonkamaurea, so a numpy wrapper for nim? :-)
21:11:30amaureareactormonk: that would be a huge shortcut in implementing it
21:11:54reactormonkamaurea, but it would add another layer
21:12:15reactormonknot sure how much glue code is between numpy and libblas etc.
21:12:20amaureareactormonk: one would have to use only the C part of numpy, and replace the whole python interface
21:12:23*fizzbooze quit (Ping timeout: 265 seconds)
21:13:29amaureareactormonk: blas and lapack calls are a pretty small part of what numpy does. I'd guess most of the code deals with slicing and storage schemes
21:14:20amaureareactormonk: well, most of the core of numpy at least. Of course, if you include all the libraries built on top of that, then the sum of all those will be much more
21:14:23*fizzbooze joined #nim
21:15:02reactormonkamaurea, one messy part will be the different memory management systems
21:15:25amaureareactormonk: I think python is reference counted. What does nim use?
21:15:51reactormonkamaurea, different GC layouts, depending which one to go for. Honestly, I don't know what the default is
21:16:26reactormonkalso, nim has macros, which will make a lot of the metaprogramming slightly different
21:16:56onionhammerrefc is the default iirc
21:18:50amaureareactormonk: Julia, one of nimrod's competitors, has multidimensional arrays, but they aren't quite as nice as numpy arrays (too matlab-inspired in my opinion, and conflates the concepts of arrays and matrices). I think most of the choices nimrod has made are better than Julia's choices, and the lack of multidimensional arrays in nimrod is the largest thing julia has over nimrod in my opinion
21:19:10reactormonkamaurea, it's called nim now ;-)
21:20:18amaureareactormonk: Ok, I'll update my vocabulary :)
21:20:19reactormonkamaurea, think of an API for nim and put it inside the dumpTree macro
21:23:54*jefus_ joined #nim
21:24:05reactormonkbtw, what's the current status of concepts?
21:24:20flaviufederico3: Is a special database really necessary for that? You can probably put together syncing fairly easily by logging all commands that write to the database and replaying them on the centralized DB once internet connectivity is restored.
21:25:50amaureareactormonk: I'm a novice in nim, really just an outsider going "nim really looks like it would be worth getting into if only it had feature X". I'm not the best person to ask about the status of nim :)
21:26:00federico3flaviu: what you just described sound like a log-based database :)
21:26:35flaviuEveryone keeps stealing my ideas :P
21:27:03*jefus quit (Ping timeout: 246 seconds)
21:27:41federico3flaviu: and you still have to manage collisions when replying the transaction logs
21:36:59*brson joined #nim
21:40:48gokramaurea: I am not an expert in numerical computing so to speak, but I suspect the lack of multidimensional arrays in Nim can be relatively smoothly fixed given its powerful macro system and operator overloading etc.
21:41:20gokrSo I think you could make them nice without actually modifying Nim itself.
21:42:35amaureagokr: Would [:,:,:]-syntax be possible, do you think? It would be nice not do have to do stuff like [Slice()][Slice()][Slice()]
21:43:57def-amaurea: like this?: https://github.com/def-/nim-unsorted/blob/master/bitmap.nim#L39
21:44:36BlaXpirit_amaurea, at the very least, [1..2, 3..4, 5..6] is possible
21:44:53amaureadef-: yes, like that, but with slices
21:45:55amaureaBlaXpirit_: Hm, having to specify the end point for full slices would be a bit tedious. 1..2 is nice when you mean index 1 to 2, but not when you mean "every index along this axis"
21:46:31BlaXpirit_amaurea, syntax sugar is easy to make
21:46:47amaureaBlaXpirit_: nice :)
21:47:25reactormonkamaurea, that was directed to the general audience
21:48:28*davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:49:14reactormonkamaurea, I basically want you to think of some API calls you would like to make and we can tell you how to do it not going against the grain
22:06:55dom96amaurea: I was merely curious whether you had a specific project in mind.
22:07:00*Jehan_ joined #nim
22:11:08blobsI support amaurea's efforts. I use multidimensional arrays quite often myself, and having an easy interface in nim would make a world of difference.
22:13:09*vendethiel quit (Ping timeout: 245 seconds)
22:17:01*fowlmouth joined #nim
22:19:08*mwbrown quit (Ping timeout: 252 seconds)
22:19:15*vendethiel joined #nim
22:19:43*fowl quit (Ping timeout: 252 seconds)
22:25:49*Kingsquee joined #nim
22:34:36*reem quit (Remote host closed the connection)
22:38:33gokrdef-: What was the latest new on http serving performance?
22:38:36gokrnews
22:40:52dom96gokr: def-'s PR is still pending. I still think we need to look at ways of making it safer.
22:41:16gokroki
22:48:29*irrequietus quit ()
22:51:08onionhammerdom96 is it currently safe?
22:51:50dom96onionhammer: yeah.
23:13:55*fizzbooz1 joined #nim
23:21:13*fizzbooz1 quit (Quit: WeeChat 1.1.1)
23:21:33*fizzbooz1 joined #nim
23:26:01*Trustable quit (Remote host closed the connection)
23:28:41*kulelu88 left #nim ("Leaving")
23:35:07*reem joined #nim
23:35:44*polde quit (Read error: Connection reset by peer)
23:38:11*blobs quit (Quit: Page closed)
23:39:26*brson quit (Ping timeout: 252 seconds)
23:41:22*reem quit (Ping timeout: 256 seconds)
23:55:25*Varriount_ joined #nim
23:57:34a5iwow
23:57:39a5iI just realized
23:57:50a5iPython is to Nim as Ruby is to Crystal
23:57:54a5i#mindblown
23:58:09*Varriount quit (Ping timeout: 245 seconds)
23:58:23*MyMind quit (Ping timeout: 250 seconds)
23:59:00Araqa5i: meh. Nim borrows from lots of languages. from Python only the syntactic feeling
23:59:55AraqNim doesn't even use 'def' but 'proc'