Tag Archives: Appartments

Appartment development

Suddenly: back to business

At took a bit of time to settle things down all over the place, so I can continue with the things I used to work with. Now huge post about things happened :)

First, recent development things. Altough a bit confused, but still.
Last several days I worked on morphological analysis and mainly on automatic grammatics extraction from texts and text generation based on them. I did not care much about performance, multithreading and the like, but instead concentrated on the idea. So I selected Lisp for prototyping, to date I do not know whether it will have more serious usage.

So, task of grammatics extraction is rather trivial when you have a database of morphological data. Namely I wanted to parse a sentence and get a knowledge about all words and their morphological forms, for example for nouns it could be at least cases and number and so on. Having a huge database for all possible word forms and all words in russian language (I selected it since I know it well and it has a quite reach morphological structure, but technique is applicable to any language of course) is not a feasible task.

So I developed a lemmer/stemmer, which has a limited database (I use about 10k words), obtained by aot.ru output parsing, although originally I wanted to DoS wikipedia with my requests. Getting that there are no on-line dictionaries (for russian at least) with tagged morphological data and structured output, I had to write regexp parsers to get that information from HTML pages. Wikipedia has noticebly worse and noisy output compared to aot.ru though.

To select unique words I downloaded one rather big text (Pelevin’s “Generation P”) and used Levenstein-Damerau distance to select words, which are rather far from each other (I used 0.25 normalized distance as a threshold, i.e. words are considered different in this metric, when roughly more than 1/4 of the letters are different). Then I received morphological data from aot.ru and stored it into local structures.

My lemmer allows not only to obtain information about words it has stored in the database, but also guess it for the words, which it does not know about based on matched word endings.
Grammatics generation becomes rather trivial – iterate over all words in the sentence and write realted morphological information without word form itself.

Second part – sentence generation, is rather simple, when morphological data is well structured. Namely I use derived grammatics and select random words which have to match morphological data for grammatics. So it looks like a grammatically valid sentence, but it contains nonsence of course, since words are not related to each other and do not follow some ‘meaning’ of the phrase. Also, there is no information for prepositions, which concatenate different forms, and some of them (in russian at least) can not be used with some forms and vice versa.
Another problematic part is multiple meaning of some words. It is even possible that the same word will not only have multiple noun cases with the same wordform, but simultaneously will be a verb in some form. And I did not yet develop a sentence analyzer, which will drop grammatics which do not match russian sentence rules, like must-have verb and/or noun forms presentd in the sentence and so on.

Below is several examples of how it works (in russian). First sentence is origianal text.

(какая-нибудь простая грамматика с текстом .)
(сдайся эротическая девушка меж мотоциклом .)
(жмурься рыжеволосая межа вне логиком .)
(вдумайся техническая папироса от борисовичем .)
(ответь тренажерная сидоровна изо симптомом .)
(просыпайся непосредственная харольдовна безо фактом .)
(тревожь забытая судьба между бомжом .)

It is possible to generate grammatics by hand and select words around some meaning, but such manual interference is not what I want. Next step is sentence processing rules described above. It is rather simple task, but it is a must-have feature for text generation.

Noticebly more complex is knowledge extraction problem and long-term memory, which in turn will allow to select words tied to each other based on previous experience. Using such technology system will be able to understand meaning of the data in terms of related words and generate reply based on its knowledge of their relations.

This is a task for some future though…

Another lexical problem I worked on is language detection. Common algorithms use N-M gramms, where N is number of letters and M is number of subsequent words, such NM-gramms are used to calculate conditional probability of the next characters based on probability of the previous ones in selected NM-gramm, so it is possible to detect languages, when system was trained and language-specific NM-gramms have been selected.

I think that brain works quite differently and does not calculate any kind of NM-gramms at all, but instead use highly parallel fuzzy words search in the memory. I did not yet develop a fast fuzzy searching except calculating Levenstein-Damerau distance against every word in the dictionary for every input word, which is rather costly task. So this is another interesting task to think about.

So I decided to switch to more simple matching – cut off endings and match against learned words. Thus I implemented in LISP a simple RADIX-based algorithm, where downloaded documents are parsed and reversed words (optionally without one or two last letters – kind of endings) are inserted into RADIX tree. Checked words are reversed and looked in this ‘dictionary’ optionally without one or two letters from its end – I kind of cut off the ending. When lookup returns a match system considers given word as being part of the language it refers to. Of course it is possible that the same word will be present in multiple languages (especially when training corpus contained words from different languages like what I used: raw wikipedia pages), so to determine document language we should check all words and calculate how many of them matched against every known to the system language. It is still possible to check single words of course.

This simple technique (less than 200 lines in LISP not counting RADIX tree implementation) behaves surprisingly good in the test case I ran. Namely I selected 3 big articles (several thousands of words) from wikipedia in english, turkey, ukrainian and russian languages, and then got wikipedia texts (not used in learning of course) and text matched its real language with probability (just a division of the matched words (in the above sence) to all words in the document) noticebly higher than for any other languages. All texts were downloaded automatically and CL-PPCRE based parser removed all tags, numbers and non-letter characters.

Here is an example output for english learning process:

$ ./get-page.lisp :radix-root-path=radix.obj.en :learn-url-path=/tmp/learn.en.txt \
  :output-dir=learn-data :check-url-path=/tmp/check.txt

url: http://en.wikipedia.org/wiki/Bahá'í_Faith, learned words (including dublicates): 9197
url: http://en.wikipedia.org/wiki/Carabane, learned words (including dublicates): 11072
url: http://en.wikipedia.org/wiki/Is_This_It, learned words (including dublicates): 6469

url statistics: http://tr.wikipedia.org/wiki/Uğultulu_Tepeler_(roman)
total match: 35 %

url statistics: http://en.wikipedia.org/wiki/Wuthering_Heights
total match: 60 %

url statistics: http://ru.wikipedia.org/wiki/Заглавная_страница
total match: 7 %

url statistics: http://uk.wikipedia.org/wiki/Головна_сторінка
total match: 6 %

As we see, it detected english language with 2 times higher probability. I skipped other tests (turkey, ukrainian and russian), but they show similar numbers.

Here is example for the most popular russian livejournal blogger Tema Lebedev LJ page and its profile:

TR: tema: 5%  profile: 21%
UA: tema: 30%  profile: 15%
EN: tema: 8%  profile: 27%
RU: tema: 47%  profile: 20%

Profile contains rather large number of english usernames words, so result is quite correct.
Percentage is far from 100% since small number of words were learned, I skipped prepositions and other small words and there are non-russian words there of course.

Not sure whether this is a very useful project, but I did not regret a day spent on thinking and development.

That’s it for noticeble development issues. Now lets more to life happenings.

I made an eye correction operation and can look at women without glasses now. I can also swim, play tennis and football and overall behave like a normal person. It is fucking cool feeling!

Operation itself is painless, but was rather complex from psycological point of view, at least for me. Especially things like vacuum cup on eye, can-opener-like part of the cornea cut and the like. But overall it was not something you should be afraid of.

I absolutely do not regret I did it.

I also filled an action at law against development company, which build a house I bought appartments in, to recognize me as a real owner of the appartments. It will take a while to settle though, I think a month or two.

Ugh, and I play trumpet. I do play it, and it sounds quite good, when I’m in a good mood and can play loudly on my Yamaha. I still can not improvise out of the head, but I usually have no troubles playing some melody after I learnt it. Learning can take a while if I did not hear melody before. Piano playing is rather stuck – I prefer to learn melody first on piano, but I have real troubles playing by both hands, even when left one part is really trivial like 2-3 notes. So I usually learn melody part only before trying it on trumpet :)

Heh, I’m back to business :)
Stay tuned!

Appartment development: installing the door and sound proofing

I did not blog for a while, but that’s not because there were no new things done, but because I started another ‘project’ which I plan to half complete next week. It is not related to development or something similar, but still was quite challenging for me. I will describe it in detail when things have settled down.

In a meantime I moved close to the final completion of the kitchen sound insulation.

First, I finally installed the kitchen door, which was not that complex task except that I again messed up with the development foam. I worked with it quite a lot, but still can not properly fill big holes.

After covering the whole wall with the glass wool for sound insulation and fixing it using plasterboards, it started looking like this

Sound proofing of the wall

I decided to cover it with rough plaster and make it not a straight wall, but instead with large patterns. Inspired by the “Devil’s Advocate” wall, although with less rough edges.

That’s what I made

Plastered wall

It has to be covered with the special wax to fix the plaster and make strong accents on the rough edges on the wall, which are not visible on the picture. I plan to make it either grey or black, although it could be an interesting design with some other colors too.

Eventually there will be a kitchen furniture and hardware just on that wall, so if I will not like this, there will be additional stimulus to quickly start cooking. Although getting how I decided to spend money, it is unlikely to appear this year :)
That’s how I spent weekend besides climbing training and hacking this week. My loft looks and ‘feels’ more and more the way I would like it to be.

I’m a loser, I did not finish the todo

Well, as any other programmer out there all my timings should be multiplied by 3 to get it right.
I wanted to build a plaster-pasterboard wall which will hold a glass wool layer in the kitchen near air trunk for the better sound insulation. Also wanted to setup a kitchen door and build a wall (from the same materials) on top of it up to the ceiling.

And I only finished (even not completely) the main sound proofing wall (which will help a bit, but without door it is unlikely to be very useful) because I did not get enough screws.

So, here is the plot


Each of four plates weights about 20 kg, its dimension is 120×110 sm, and two of them are being held by only 3 screws instead of 6.

I fucked myself again was a little bit tired doing it with two hands only. Definitely for anything which has more than 30×30 sm in dimension and its weight is more than several kilogramms pair of hands is not enough. I want another couple of my own.
For this task I even used a head. By the direct meaning of this phrase – I used either skull or jaw to hold some stuff while hands usually held a plate or a glass wool.

Especially fun it becomes when I drop something or forget to take – hands fix the plate attached to the wall (it is rather resilient 20kgs because of glass wool, which should be complressed), head holds screws and foot tries to get a screwdriver or other instrument. Actually it is fun only when it is over :)

I recall what I used when build a big hinged ceiling (its total weight is more than 100 kg) – ropes, own back, special holds… Well, I enjoy the result, hope my sound insulation will be good as well.

And the final trait

Hello comfort, I waited way too long for this. And things are getting better and better, if you can afford some time and efforts. And I enjoy it.

Will do more broad photoset of the appartments and how I spent my spare time on this later :)

Trumpeting in C

I did not write for a while about my trumpet exercises, but I continue them, and can say that I have some progress. I could not call it something exceptionally cool, but I already can play without major problems within 1.5 octaves, and move into half of the small octave after warm up. Also can start and play some notes at the end of the second octave, probably sometimes I can get 3C (trumpet one, it is two half-tones less than piano).

And what I really like is how I play tones: sound is clear and I can easily move between the notes.
Except that I do not really play notes. I sometimes can pick out the tones, but usually not very complex melodies. What I want is to play the melody just by listening it. When I start playing I understand when things are wrong, but I can not say where is the right note. Recently I started to memorize intervals (by simply playing 2C and tones below), I think I do not yet know them good enough to easily pick out needed interval, also music I listen is almost never produced by the trumpet or similar brass instruments, but I think it will sound very interesting if played by trumpet.

I’m studying…

The whole weekend I actually did not learn, but finished the appartment development: cleaned the area and completed small things. And you know, I can say now: appartment development is really over. Point.

I’m enjoying this monday, hope you too. Stay tuned!

The Main News.

This day has come, I’ve just finished the appartment development!

Yes, you did not get it wrong, today January 10 (actually it is a middle of the January 11’th night) I finished this process. It took several years and couple of complete rebuilds of the original design of how my small appartment should look like. Now I’m virtually happy with what I made.

While I sawed the walls or messed with the concrete, several my friends married and two pairs already have children, several other families bought appartments and finished there own develpment, Abr got a PhD, several others changed the jobs (some of them multiple times).

What did I get from this? Except the home I really love.
Well, I changed the job, the first one allowed me to buy this, second one allowed to finish the process and I expect many interesting things will be made, so far I only warmed :) I met and made a friendship with lots of intersting men and women and managed not to lose my old friends, although we are slowly moving via own directions. Started to play music (it can hardly be called ‘play music’ though). I succeeded with the software development and started the electronics one. Only HIFN driver was imported into the tree during this time though, but who cares :)

Repair process brought me experience in the appartment development itself: work with different instruments and materials, skills on processing the hard work alone (if you could see my ‘systems’ to lift the masses), lots and lots of enjoyment working with the modern materials, mixes, development technologies and devices.

What do I have now? Red, blue, white, black, grey, brick and yellow walls (yes, there is at least one wall of above colours in my loft), multiple level higned ceiling, round doors and other small things like U-form table, brick walls, interesting tiles, X-form and usual shelves, filtered water-system (I will eventually install a boiler), warmed floor and the like. Not everything I thought of at the begining, it was implemented iteractively.

The main issue of course is the fact, that it is done. To draw the line I ordered the first furniture: couple of big sofas (I could do it myself though, divan is a quite simple wood device :), which will be delivered within the month. Such things really shows that there is no more development.

Actually I lied: to really finish the process I have to clean and throw out all the garbage, finish glueing 3 ceiling plinth, but I have no more glue, and attach fire alarm wires to their place. Maybe also something small… One more day, and likely it will be the best day among already passed this year :)
To furhter improve the case I will buy mirrors (I do not have even a small one) and I need one additional door, but I will leave it for the near future as long as other furniture and similar appartment extensions.

What I learned from this? Just three things: do not run for the perfect, it is impossible, at every turn you will find new opportunity to improve something which will take the time originally devoted to the main goal; it is always possible to make things better and experience matters and can grow pretty much infinitely, which means that you can do anything yourself, but it will take some time to get to the proper level.

One may wonder what’s that major in the appartment development completion? Actually nothing, except that three years project I made solely myself is now ready. Not ready for inclusion, for review or someting, but it is just ready. And I’m with it. Ready to move forward.

Appartment development: the fireworks.

My favourite corner grinding machine can break not only concrete walls or ceramic and granite, but also a heavy reinforcement rods with special disk. This produces nice fireworks.

Iron sawing fireworks

Unfortunately most of the time it is located in so unconvenient places, that making a good photo with the timer is not easy. For example we can apprise my back and flying fireworks.

Iron sawing fireworks

Today I finished all the diry works. Not counting shelve installations or similar tasks, which require screwing the concrete walls with the perforator, but really dirty tasks like glueing the tiles (or filling the holes with the plaster), sawing the walls (or tiles), plastering the walls, floor or ceiling, painting and so on.

And tomorrow… Stay tuned, and you will reach tomorrow news.

Appartment development: opened for myself the right way to saw the tiles.

Feel so incredibly stupid that I did not use it before.

I used to saw the whole tile by corner grinding machine, since I did not see the proper rotating disk cutter which was capable to cut my ceramic tiles or granite. This process produced tons of dust. Well, maybe not tons, but anything in the appartments was covered with quite thick layer.

The first main problem to cut the tile is its glaze. This glass-like material is extremely strong in some tiles (especially for the ground cover). There is no such layer in the ceramic granite, but this material is very strong itself, which is the second main problem.

So, to cut the tile one has to scratch the whole glaze layer, and only produce very thin scratch so when force is applied to break the tile, the smallest energy level would be located along the scratch.

Today I opened a new way, which is basically above scratch, but made with the corner grinding machine help, which saws the glaze layer. To work well the sawed line should be as thin as possible, which is not that easy using my favourite device.

The 125mm cutting disk of the corner grinding machine

Moreover the sawed line will not be exactly straight and will contain upto couple of millimeters non-straight places, which may be ‘polished’ by the back side of the disk, it is covered with special scratches at the edge as you may see. But in the most cases the tile is sawed to be placed near the wall or when holes between tiles are supposed to be filled with the special plaster, so this will not be a serious problem.

Here is what can be quite easily made with above method.

Broken line

Scale is quite big, for the comparison the width of the sawed scratch is about 1-2 millimeters.
Not perfect, but if needed it can be polished. Main advantage of the method (guide in pictures) is amount of dust completely non-comparable with the whole-line sawing with essentially the same straightness. It is also much less noisy.

Appartment development: the brick corner completed.

Just bloody good IMO.

The brick corner

To finish this I bought a 25kg glue bag and while delivered that sack and the wood plate for the shelves on my hump from the development market I decided to introduce a new physical quantity to measure a load and a work: a ML. One man-load is equal to the amount of work needed to deliver 25kg to the 1 km distance with the speed of 10 km/h. Thus I wasted one man-load. IIRC this equals to 400 W or roughly one half of the (not real) horse power.

Since now I have a big bag of the glue I decided to glue all the tiles I have, so started to glue part of the floor in the kitchen, some parts of the hall and wall there… Well, I need to put the glue and tiles (lots of tiles, overall I have about 5 boxes of 3 different types (of 2 sizes: 33×33 tiles and 30×30 ceramic granite) of the tiles) somewhere, so I improve the look and feel of the appartments. This will not take lots of time, likely tomorrow all will be finished, but it again requires to saw the tiles which I already hate because of the amount of the dust. It is just hell everywhere, but tomorrow this will be finished and I will finally clean the whole appartments.

Own appartment development – infinite amount of the sex with the ugly stuff creativity on the very limited area. Pervertively love it.

Appartment development: the brick wall.

That’s how I spent productive part of this day.

The brick corner wall

The more I look at it the more I like this corner.
Actually I only covered one wall today (and the corner with the hatch in the bathroom yesterday). And while there is enough time to finish another wall (this took about 3-4 hours), but because I ‘m idiot can not calculate needed materials in advance, I have to wait for tomorrow, when I will buy another glue bag (this wall took 10kg), then fill the holes between bricks with the graphite plaster and finally finish the kitchen. If stars will stay in line this may even happen tomorrow eveninig.

But I do not regret I do this. Not only because I got lots of experience with appartment development in general and tile glueing (and related tasks) in particular, but basically because the end result is exactly what I want. Even if it was achieved after several iterations :)

And now some slacking reading and slacking beering…

Appartment development: installing the water access hatch.

I did not write for a while about my appartment development. It took way too long already and I believe its time to finish the things.

The main cases to resolve are tile completion in the bathroom and brick tiles in the kitchen. Both are rather simple tasks, but bathroom tile glueing stuck because of the water system hatch.

Installing the water system access hatch

Long ago I bought an interesting system which allows to hide hatch behind the tiles, so only sawed edges will be visible. The most interesting is connection part which allows to move the hatch door rotation point. Unfortunately the hatch hole is large enough so even frame connection is not trivial. But after some sawing, screwing and foam sealing I finished this task.

Installed water system access hatch

Hatch is not covered by tiles yet, and because of its dimensions (and bathroom walls themself) some tiles have to be sawed. I love my Bosch corner grinding machine more than any other instrument, maybe because it can saw and break anything, and that’s the time for it. I found that the same clamps can be used to saw the straight line even over the extremely hard tiles.

Preparing the tile

I have to saw the tiles while all usual people just cut them with the special hard-metal rotating disk. This does not work with my tiles, I almost imagine how molecules laugh on the master who tries to scratch that surface. Sometimes I succeeded to cut the tile by producing deep enough scratches, but I way too many tiles trying to cut a single piece, so I prefer just to saw them.

Sawing the tile using corner grinding machine

I will spent tomorrow glueing the tiles in the bathroom and expect it to be fully completed. If time (and amount of the glue) will permit, I will move to the kitchen, where will finally glue my ubercool brick tiles.

Brick tiles

I can not even imagine how I will feel when this is finished. I will be sooo close to the finish…
Probability that I will do the whole appartment development (even in my small loft) myself again is somewhere between zero and void. But it is very interesting no matter what :)