Re: Regal: An SQL relational algebra builder

2014-05-16 Thread Jacob Carlborg via Digitalmars-d-announce

On 16/05/14 02:29, Dylan Knutson wrote:

Hi all,

I'd like to announce the initial version of Regal, an SQL relational
algebra builder for D. It's intended as a backbone for a relational
database ORM, in line with how Arel works with Rails' ActiveRecord, but
nearly any project that generates SQL dynamically can benefit from it.
The goal of the library is to make programmatically generating queries
simple (and more robust than simple string concatenation), and to be
database agnostic (it's very easy to write database specific printers
for a Regal AST).

There are extensive examples available in the Readme about how to use
the library, from generating very simple queries (SELECT * FROM users)
to multiple chained joins and nested constraints. Here's an example from
the documentation: finding a user with ID 1:

```
auto users = new Table(
   users, // table name
   id,// the rest are columns
   name,
   created_at,
   updated_at);


Does this need to be a class, can it be a struct instead?


// SELECT * FROM users WHERE users.id = 1 LIMIT 1
users
   .where(users.id.eq(1))
   .limit(1)
   .project(new Sql(*))
   .to_sql
```


Why is 'new Sql(*)' needed? If you need to have a specific type, could 
it be a struct instead?



The library can be found at: https://github.com/dymk/regal
And the dub package: http://code.dlang.org/packages/regal


This all looks pretty nice :). Does it work at compile time?

--
/Jacob Carlborg


Re: 10 Years of Derelict

2014-05-16 Thread ponce via Digitalmars-d-announce

On Thursday, 15 May 2014 at 15:02:33 UTC, Mike Parker wrote:
I managed to let this little anniversary slip by me. My first 
post in the old Derelict forum at DSource[1] is dated May 6, 
2004, my initial commit to svn[2] was May 7, and my 
announcement in the newsgroup[3] was on May 8. My attention to 
the project has waxed and waned, but I'm still puttering along. 
I expect to continue for the forseeable future.


There have been a number of contributors over the years who 
have helped out in porting to Linux and Mac, fixing bugs, and 
keeping the bindings up to date. It's been very much a 
community project, which has made it more enjoyable to work on. 
It helps that it isn't difficult to maintain :)


Maybe before the next decade goes by I'll actually finish a 
game in D, which is the reason I started Derelict in the first 
place.


For those who don't know, the current iteration of Derelict can 
be found at the DerelictOrg group at github[4]. I've still got 
work to do on it (ahem, documentation), but it's coming along.


[1] http://www.dsource.org/forums/viewtopic.php?t=105
[2] http://www.dsource.org/projects/derelict/changeset/5/
[3] 
http://forum.dlang.org/thread/c7hl51$2k4u$1...@digitaldaemon.com

[4] https://github.com/DerelictOrg


Thanks for that long dedication! Using it since 7 years :)
I probably wouldn't have stucked with D if it weren't for 
Derelict, and I know other people who wouldn't have either.


Re: Regal: An SQL relational algebra builder

2014-05-16 Thread Dylan Knutson via Digitalmars-d-announce

Does this need to be a class, can it be a struct instead?


Ya know, it might be able to be made into a struct; I'll fiddle 
with it tomorrow. The main reason it was made a class was so 
.join had to take a Table type as its first parameter, and 
internally Table implements a Joinable interface (which is needed 
for chaining .joins and propagating the table name during 
printing).


Why is 'new Sql(*)' needed? If you need to have a specific 
type, could it be a struct instead?


The Sql class is needed because it's a node in the AST (all nodes 
inherit from a basic Node class) that just prints out its content 
verbatim when to_sql is called. All the methods that take a Node 
would need to be modified/templated to also accept a specialized 
SQL struct type, which unfortunately isn't feasible. If it was 
done, it'd probably be implemented using std.variant's Algebraic 
type, but then CTFE is forfeited. If you know of another way to 
go about doing this, I'd be really interested in hearing it. It 
is unfortunate that the library has to make so many small 
allocations, for sure.


Another option is, you could try using CTFE as much as possible 
to get the allocations over with at compile time :)





The library can be found at: https://github.com/dymk/regal
And the dub package: http://code.dlang.org/packages/regal


This all looks pretty nice :). Does it work at compile time?


Thank you! I haven't tested it, but it's not using any features 
that would impede CTFE. So that's a solid probably.


Re: 10 Years of Derelict

2014-05-16 Thread Kiith-Sa via Digitalmars-d-announce

On Friday, 16 May 2014 at 07:43:06 UTC, ponce wrote:

On Thursday, 15 May 2014 at 15:02:33 UTC, Mike Parker wrote:
I managed to let this little anniversary slip by me. My first 
post in the old Derelict forum at DSource[1] is dated May 6, 
2004, my initial commit to svn[2] was May 7, and my 
announcement in the newsgroup[3] was on May 8. My attention to 
the project has waxed and waned, but I'm still puttering 
along. I expect to continue for the forseeable future.


There have been a number of contributors over the years who 
have helped out in porting to Linux and Mac, fixing bugs, and 
keeping the bindings up to date. It's been very much a 
community project, which has made it more enjoyable to work 
on. It helps that it isn't difficult to maintain :)


Maybe before the next decade goes by I'll actually finish a 
game in D, which is the reason I started Derelict in the first 
place.


For those who don't know, the current iteration of Derelict 
can be found at the DerelictOrg group at github[4]. I've still 
got work to do on it (ahem, documentation), but it's coming 
along.


[1] http://www.dsource.org/forums/viewtopic.php?t=105
[2] http://www.dsource.org/projects/derelict/changeset/5/
[3] 
http://forum.dlang.org/thread/c7hl51$2k4u$1...@digitaldaemon.com

[4] https://github.com/DerelictOrg


Thanks for that long dedication! Using it since 7 years :)
I probably wouldn't have stucked with D if it weren't for 
Derelict, and I know other people who wouldn't have either.


Same here.

It'd just be good for it to stabilize so we can write tutorials 
for it without them getting out of date (yeah, the APIs are the 
same, but Derelict itself keeps changing).


Re: OpenGL Examples in D and a birth of a New Initiative

2014-05-16 Thread Andrej Mitrovic via Digitalmars-d-announce
On 5/16/14, Manu via Digitalmars-d-announce
digitalmars-d-announce@puremagic.com wrote:
 Out of curiosity, are you running Linux or Windows?

Win7.


Re: 10 Years of Derelict

2014-05-16 Thread Mike Parker via Digitalmars-d-announce

On 5/16/2014 5:32 PM, Kiith-Sa wrote:



It'd just be good for it to stabilize so we can write tutorials for it
without them getting out of date (yeah, the APIs are the same, but
Derelict itself keeps changing).


For the record, I don't foresee any more structural changes now that 
I've got the versioning with dub sorted. Once I get all of the packages 
caught up, and barring any unexpected surprises (like, everyone 
abandoning dub for something else), it all should (finally!) be in a 
permanently stable state. I'm really happy with the current set up.


Re: 10 Years of Derelict

2014-05-16 Thread Rikki Cattermole via Digitalmars-d-announce

On 16/05/2014 3:02 a.m., Mike Parker wrote:

I managed to let this little anniversary slip by me. My first post in
the old Derelict forum at DSource[1] is dated May 6, 2004, my initial
commit to svn[2] was May 7, and my announcement in the newsgroup[3] was
on May 8. My attention to the project has waxed and waned, but I'm still
puttering along. I expect to continue for the forseeable future.

There have been a number of contributors over the years who have helped
out in porting to Linux and Mac, fixing bugs, and keeping the bindings
up to date. It's been very much a community project, which has made it
more enjoyable to work on. It helps that it isn't difficult to maintain :)

Maybe before the next decade goes by I'll actually finish a game in D,
which is the reason I started Derelict in the first place.

For those who don't know, the current iteration of Derelict can be found
at the DerelictOrg group at github[4]. I've still got work to do on it
(ahem, documentation), but it's coming along.

[1] http://www.dsource.org/forums/viewtopic.php?t=105
[2] http://www.dsource.org/projects/derelict/changeset/5/
[3] http://forum.dlang.org/thread/c7hl51$2k4u$1...@digitaldaemon.com
[4] https://github.com/DerelictOrg


I also have to say good job on your work on it!
I definitely value it, even if I don't use it much.


Re: 10 Years of Derelict

2014-05-16 Thread Mike Parker via Digitalmars-d-announce

On 5/16/2014 4:43 PM, ponce wrote:


Thanks for that long dedication! Using it since 7 years :)
I probably wouldn't have stucked with D if it weren't for Derelict, and
I know other people who wouldn't have either.


I think you've just motivated me to do drop everything else and work on 
Derelict exclusively for the next few weeks. Thanks :)


Re: OpenGL Examples in D and a birth of a New Initiative

2014-05-16 Thread Andrej Mitrovic via Digitalmars-d-announce
On 5/15/14, Dicebot via Digitalmars-d-announce
digitalmars-d-announce@puremagic.com wrote:
 I think it is a very good initiative to start creating community
 teams of D hackers interested in specific domains. Can be
 beneficial for both spreading the information and lobbying needed
 changes in D/Phobos.

Yeah. I plan on writing some blog posts as well to get things going.

 Game dev is not my area of interest but I wish you best luck :)

Thanks!


Re: Regal: An SQL relational algebra builder

2014-05-16 Thread Jacob Carlborg via Digitalmars-d-announce

On 16/05/14 09:58, Dylan Knutson wrote:


Ya know, it might be able to be made into a struct; I'll fiddle with it
tomorrow. The main reason it was made a class was so .join had to take a
Table type as its first parameter, and internally Table implements a
Joinable interface (which is needed for chaining .joins and propagating
the table name during printing).


Can you do compile time introspection, like ranges do? Basically check 
if it has a join method.



The Sql class is needed because it's a node in the AST (all nodes
inherit from a basic Node class) that just prints out its content
verbatim when to_sql is called. All the methods that take a Node would
need to be modified/templated to also accept a specialized SQL struct
type, which unfortunately isn't feasible. If it was done, it'd probably
be implemented using std.variant's Algebraic type, but then CTFE is
forfeited. If you know of another way to go about doing this, I'd be
really interested in hearing it. It is unfortunate that the library has
to make so many small allocations, for sure.


I don't know, use structs and compile time introspection.


Another option is, you could try using CTFE as much as possible to get
the allocations over with at compile time :)




--
/Jacob Carlborg


Re: OpenGL Examples in D and a birth of a New Initiative

2014-05-16 Thread Andrej Mitrovic via Digitalmars-d-announce
On 5/14/14, Andrej Mitrovic andrej.mitrov...@gmail.com wrote:
 I am starting an initiative for everyone interested in D game
 development by creating the github organization d-gamedev-team[1].

Just ported the imgui library to D. It's a minimal OpenGL GUI library,
useful for things like tweaking parameters. Have a look here
(screenshot included):

https://github.com/d-gamedev-team/dimgui
http://code.dlang.org/packages/dimgui


Gearing up for DConf 2014

2014-05-16 Thread Andrei Alexandrescu via Digitalmars-d-announce
We're stoked about DConf 2014! 54 visitors will be joined by 10 Facebook 
engineers for a great three-day event.


James Pearce (https://twitter.com/jamespearce), Facebook's Open Source 
representative, graciously accepted to emcee the conference.


We have secured livestreaming of the entire event. I'll be glad to take 
questions on Twitter in real time during my keynote, Wendnesday May 21, 
9:00-10:00 AM PST. Send your questions to @D_Programming with hashtag 
#dconf.


Tolga Cakiroglu put together a beautiful T-shirt design - even our 
recruiters and the folks at the printing company were impressed.


We're also happy to announce that Facebook will throw a Happy Hour with 
food and drinks on Thursday, May 22, between 5:30 and 7:30 PM.


We haven't yet filled the Lightning Talks 
(http://dconf.org/2014/talks/lightning.html), please send me a note if 
you're interested in talking for 5-10 minutes on anything you believe is 
interesting and relevant.



See you soon!

Andrei


Re: 10 Years of Derelict

2014-05-16 Thread Kyle Hunter via Digitalmars-d-announce
When I choose a programming language to work on a problem, one of 
the factors I look at is whether there are enough tools and 
libraries to construct a solution in a reasonable amount of time.


Back when I was looking at D for game development – and I still 
am – there was Derelict. And now, there still is Derelict. 
Without it, I probably would've wrote D off for this specific 
task.


I'm hoping in another few years, we'll have nice idiomatic D 
wrappers on top of Derelict for most things. There are a lot of 
promising projects out there, many that are quite nice already 
(gfm, for example). Derelict oft serves as the basis for these 
projects, eliminating a lot of the front load.


Thanks to Mike Parker and all of the other contributors for 
developing and maintaining Derelict for these 10 long years.


Regards,
Kelet