To continue my previous post about Kephra, please let me ramble about just one seemingly little feature. It is interesting in its own right - but also an example for the design principles I employ:
1. max productivity
2. max consistency (less to memorize)
3. breaking habits and customs only when 1 and 2 demand it.
As soon graphics plays a greater role I will add max beauty as new 2.
Juhuu, released Kephra 0.401 in the spirit release early - release often. It is the start of a complete rewrite. So it's back to zero: now it can only edit one file at a time and has only Perl highlighting and UTF-8 or ASCII encoding. But some of you will still want to use it (beside vi, emacs, VStudio or atom - I know) because of the comfort in basic editing it provides. The following article explains what I mean by that.
Kephra, an editor for programming (mostly Perl) written in WxPerl is my main project since I stumbled into the Perl community. Most people I know already heard of it - but I want to write about a new development that might be helpful for some, which might consider to use it even if it has a very limited feature set (forth rewrite baby!).
Welcome to the fifth post about the Kephra Base Object System, where I explain the need for three kinds of attributes: data, delegating and wrapping and gas a little about their properties. It is especially advised to have read the first part (scopes) and the previous part, since accessors are methods.
In case you wonder how practical this exercise is - I already implemented a slightly simpler version and currently rewrite it. It's a standalone bundle of modules with its own tests and docs named Base-Class (Kephra::Base::Class) (123kB), which depends only on the bundle Base (there are the data types) (32 kB). So once ready it could be released on CPAN without much work.
After scopes, types and signatures we got all the prerequisites to talk about the syntax and semantics of KBOS methods. Unless you want to contribute to Kephra or write a plugin, you may never use them, but please join me in the thought experiment - maybe we get a littler smarter.
There are signatures in Raku, core Perl 5, Moose, Dios and lot of other modules. With KBOS I tried to find out how optimal signatures would look like to me. My objectives are: 3. easy to parse with the eye, 2. concise syntax and 1. delegates as much work as possible into the background so I have to write the least amount of code.
After introducing KBOS I should write about the most fundamental concept in this Perl syntax extension. In fact it's so basic, you could use it even without objects.
Starting even before Moose, we (in the Perl 5 world) have a plethora of Modules extending the syntax of the language with Perl 6 and more in mind. The following article sums up not only my 2 and a half cents on the subject but also an attempt to implement it. It should be of interest to anybody thinking about programming in general.
The editor is our most closest tool we spent most time with, any discussion will spark highly emotional reaction. But because it has to be the cosy seat to our personality I started Kephra.
Lets be honest most people I know see it like my little pet project ("good you allowed to upload to CPAN" but i will use vim/emacs/.. anyway), some like it enthusiastically but that's it mostly. But Kephra is not about to have a Editor written in Perl - Perl is just IMO the best tool for the job. It's not about certain features like nice integration of your favorite Perl tools, not even the TIMTOWT…
Some of you witnessed me last August standing in front of the great Perl congregation at YAPC::EU and talking a lot of steamy hot air out of my mouth. More precisely how nice it would be to have a DSL for GUI creation like Rebol has it. I just turned hulky green (but without the muscles) of envy when I saw how much less syntax they need to define GUI. Especially if you use the super verbose Wx. (But it looks just better :) ). As I currently do a lot for the rewrite of /users/lichtkind/kephra/index.html
The Kephra rewrite is doing very well, expect some great revelations even for Wx programming in genereal. But today i just want to rant about bibucket, which hosts my hg repo for most of my projects. I mean i like mercurial better then git, or should I say liked. the more I learn about the raw awesome power of git the more I find it perlish. But surprisingly what bit me just today is that bitbucket doesn't have this nice graphs. I just underestimated how motivating…
Yes this is in a way my 5th grant report in a row, but even for Perl 5 people that might get insightful and even useful.
As I prepared a piece for the Perlzeitung which will not happen, i interviewed several people - some names you know for sure - about the current state of the core documents. Yes there slowly improving, the d did IMO good stuff, the new ooptut is good but there needs to be much more done. And instead of dropping here a blob of text, just …
I almost could repeat the last post, But in an effort not to be boring: here are the exciting parts. I turned over to do something almost daily. Sometimes not much, but it turned out that i discover this way some dark dark corners of the spec and the tablets as well that really need some attention. And its so much fun to come up with keywords in the #perl 6 channel present people never heard of.
Much work went further into the details. I standardize almost everything not only that th…
As Kephra gets prepared for its great day, there are some design decisions hat make me just happy and maybe you will benefit from it too.
The previous incarnation had also a command list. A central place where most calls are stored that end up in the menu a toolbar or the user can access otherwise. But it was not only the API into userland, it also helped to create menus and bars from very simple yaml files, that only listed command IDs. Because to every command belonged a label, icon, and key informations, the rest was almost trivial. This way you could very easily change the menus w…
DISCLAIMER: this text is lengthy - if yor not interested in GUI programming or API design, you should stop reading now.
This year I held at YAPC::EU, italian and german Perl workshop a lightning talk about an idea - complete vaporware, but an idea of a better world where Apps are a breeze to write. But this will maybe change since I'm much inclined to do it, it just will take some time. The problem: GUI programming sucks badly. Its way to complex and too much to type, especially in Wx. There are some techniques to ease the pain (a talk about that I will submit to this years YAPC) but …
As an update and continuation of my last post: lot has happened. This is also a kind of Grant report since the Perl 6 Tablets are rolling again and I plan to cash in the first half of the TPF grant around YAPC in Riga but definitively before Frankfurt (german perl workshop).
You may ask what took so long or why I believe to be now much faster. I just…
Frankly I never got it until recently. Sure, I had some informal contacts with plan 9, the OS that is entirely designed around that concept. First when Linus talked about the features he borrowed for Linux, later I borrowed myself features from Plan 9's editor acme for Kephra. But yesterday I saw a talk from the author of MacFuse and I really got a hang of it.
And suddenly I realized the implications for a better Kephra that I currently design. When it read and writes FIles it should have hooks to do whatever (aka *). Not only …
I just started a huge and deep rewrite of what I believe is the most useful editor overall. So why throw it away? (most imortant point is at EOF)
First it will still be maintained, a new version just came out today and i still will fix some remaining issues and even add some features. I will do so, till it can be fully replaced.
On the other side some issues are not that easy to fix, in modules with hairy dependencies, you know what I'm writing about. In fact, I have to write some test app eather way to toy wi…
OMG yet another new year BS.
Since I live here on planet earth where biology by in large restarts with every spring, which happens in this part of the world in march, I'm bit reluctant to join the gregorian calender, which is named after a roman katholic pope and a calendar which prior to that changed its start to january by another roman dictator, which makes it further unatractive to me. don't get me wrong, I dont want to act here any more special then necesary, but its good to review and to make plans.
so here is my 2010:
He ist lead dev of Scintilla the edit component, Kephra, Padre and Kommodo are using. And I was very happy to read that he will open up the internal API. So Perl editors will be able to do even more.
as the next release 0.4.4 is about basic editing, I filles there several feature holes.
like e.g. inserting rectangular selections properly, making the brace nav more consistant (jumping from inside to inside matching braces or from outside to outside). then i also added left and right to moving text(line/block) to indend/dedend tabwise which makes refactoring easier. Now im working on the proper DND of rectangular selections, which isnt delt properly even in kommodo 5.
here on austrian perl workshop the friendly guys helped me to fixe an issue with Module::Install and thanks …
I fixed some nasty bugs lately and get these days ready for the next testrelease. Im happy that this release brings also some new features. And I don't mean new for Kephra, but literally unknown to many editors. and in this episode I will highlight just 2 of them.
I already mentioned, that if you select a text by holding the left mouse button and while its still pressed you push the right too, the text gets deleted (opposite of acme). Now i just seperate the direction you selected it. If its from left to right, its cuts, meaning remember in the clipboard. if you do it backwards, its …
In the next days, Kephra 0.4.4 will arrive.
jejky, I got a TPF grant. Even if scheduled it for 7 month, I plan to be ready end of this year. I think it will also appear in the first Module I ever uploaded to CPAN: Perl6::Doc, so you can grok perl 6 too. More info about that on my Perl 6 related blog.
So far I stored my slides on my homepage. Now that I saw that every speaker at Pisa put his slides on that site. So I simply did too.
Kephra is doing very well. Still 7 or 8 issues to be fixed till 0.5 plus some feature, but we will get there I think before the german perl-community workshop in Frankfurt. We n…
its been a great YAPC, emotionally. Not as many technical talks where really compelling, but lot where really funny. But I met a lot of people I like. martin berends, jnthn and the bunch, finally i met mattia barbon which was also releasing and intresting (our interview will come soon on radio YAPC). I met a lot of germans, larry who tried to talk to me german too. and there were a lot more. great people, great food, wonderfull ice cream, fantastic hostel, great rides. it was the best possible holiday for me now.
my talks were both very well recieved but attended by few. Kephra is now…
finally 0.4.3.2 does install under all sane linux systems and will be packaged to become a .deb package. thanks jozef++.
recently i got 3 new ideas what to put into kephra. elastic tabs i cant implement, like MC hammer said it: can`t touch it. an spelling checker will be implemented for me and wil propably become the first real Kephra plugin and an idea by stefan suicu I will implement ASAP because it seems to me helpfull, especially in oop programming. insert the variable from the last line on curso position.
my talk abo…
Because of technical problems I was stuck to xp but recently using more and more my ubuntu boot partition. That was the main reason it was not on top of my priority list to to fix the remaining problems Kephra had. But finally, 0.4.2.33 is the first version that installs like a breeze. Of course its a dev release but a stable/testing release will come soon (1 blocker left).
But when you run Kephra, you will get a bag of GTK errors. That's not because i can't code. It's because i was too quick. I thought of features that in the end GTK considers as bugs. So i will rethink the autogener…
Someone responded to my first post and asked a question: How differs Kephra from Padre?
In many ways:
* Kephra has much less dependencies (Wx and config parser)
* different feature set
* much older project
* smaller dev team (currently)
of course we stay upon the same core technologies but we have different goals i think. So far I understand Padre, they have the known IDE and larger editor (Ultraedit and Jedit and ...) in mind and want to slowly grow into that direction. And thats good for Perl, but thats not desirable to me. I started Kephra to make t…
lets see how useful this platform will be, but i really hope to release Kephra 0.4.3 next days.