Masonry style layout with CSS Grid

2019 01 20 No Comments

Hello guys

Nowadayas I am trying to do new things with grid. CSS grid is perfect for complex layouts.

Here are the simple example, please resize the window and see the changes.

Adobe Animate CC 2018 multiple canvas in one page

2018 10 24 2 Comments


I faced a interesting problem today. Solution was deadly simple but it took to understand a little time. There is bug when exporting custom named “symbols” in Animate CC.
First of all, if you wanna make play multiple animations in one page you should be careful about your .fla names and symbols key.

If you wonder where is the symbol key here you are(in publish sttings):

Let’s start.
For example you have an animation file named TestAnimaton.fla
Go your publish settings > Click HTML/JS tab. Change symbols area to TestAnimatonSVG

Godot Engine high quality fonts

2018 10 14 No Comments

To prevent blurry on imported fonts, go Project Settings > Rendering > Quality > Dynamic Fonts > Use Oversampling -> enable it. Also enable mipmaps and use filter in inspector.

You will see the difference in mobile devices. This is how I solved blurry font problem in Godot Engine 3.0.6.

CSS ellipsis text

2018 07 05 No Comments

CSS3 gave us perfect property: text-overflow.
We have ability to cut off words.

In CSS pre-processer there are many mixins, I know. But I wanted to share my little mixin 😀

Use like this:


See the Pen RJmQXG by ozer (@ozer) on CodePen.

Also SASS version

@mixin ellipsis($line) {
	display: -webkit-box;
	-webkit-line-clamp: $line;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
@include ellipsis(2);

Ubuntu touchpad problem

2018 06 16 2 Comments

When I install Kubuntu to my computer, unfortunately touchpad was not working. Tried a few ways and this way worked for me. (Xiaomi notebook pro)

sudo apt remove xserver-xorg-input-synaptics xserver-xorg-input-evdev
sudo apt install xserver-xorg-input-libinput

After then sudo vim /etc/X11/xorg.conf.d/30-touchpad.conf
Type these inside vim editor:

Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchIsTouchpad "on"
    Option "Tapping" "on"

And press ESC, then :wq


WordPress üyelere özel içerik için kısa kod

2018 06 07 No Comments

Bazen üyelik sistemi ile çalışan wordpress sitelerinde, site sahipleri sadece üye girişi yapan kullanıcılara özel içerik göstermek isteyebilir. Bunu için kısa kod kullanmak en mantıklısıdır.

Yazı içerisinde “ozel” kısa kodunu kullanarak bazı içerikleri gizleyebilirsiniz.

[ozel] indirme linkleri vs burada [/ozel] 

Kısa kodu aktif etmek için temanızın functions.php dosyasını açın ve


den sonra ekleyin:

function uye_ozel_shortcode($atts, $content = null) {

   if(is_user_logged_in()) {
     return $content;
   } else {
     return '<a class="giris-yap" href="'.wp_login_url( get_permalink() ).'">Bu içeriği görmek için giriş yapmalısınız..</a>';

add_shortcode('ozel', 'uye_ozel_shortcode');

Else bloğundan sonra içeriği düzenlemek size kalmış.

CSRF token with Selmer, Ring

2018 05 29 No Comments

Firstly install Selmer and Ring. Here are my project.clj

(defproject test "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url ""
  :min-lein-version "2.0.0"
  :resource-paths ["public" "resources" "templates"]
  :dependencies [[org.clojure/clojure "1.8.0"]
                 [compojure "1.5.1"]
                 [ring/ring-defaults "0.2.1"]
                 [mysql/mysql-connector-java "5.1.32"]
                 [yesql "0.5.3"]
                 [selmer "1.11.7"]
                 [org.clojure/tools.namespace "0.2.11"]
                 [proto-repl "0.3.1"]
                 [proto-repl-charts "0.3.1"]

  :plugins [[lein-ring "0.12.4"]]
  :ring {:handler test.handler/app}
  {:dev {:dependencies [[javax.servlet/servlet-api "2.5"]
                        [ring/ring-mock "0.3.0"]]}})

After that, create crsf-token as tag to use in selmer template engine.

Using Kemal CSRF handler with Crinja

2018 05 19 No Comments

I assume that you are using kemal, kemal-session and kemal-csrf. Require them and use add_handler to handle requests.

Default input name is authenticity_token so I used it.

require "kemal"
require "kemal-session"
require "kemal-csrf"

  allowed_methods: ["GET", "HEAD", "OPTIONS", "TRACE"],
  error: ->myerrorhandler(HTTP::Server::Context)

def myerrorhandler(env)
  if env.request.headers["Content-Type"]? == "application/json"
    {"error" => "csrf error"}.to_json
    "No token!"

Create a function to use it in templates

Crystal seo friendly url

2018 05 19 No Comments

Maybe someone needs it.

Markdown render in template side with Crinja – Crystal

2018 05 18 No Comments

In crystal ecr templates, we can use render markdown like this: <%= Markdown.to_html("# text") %>

But with crinja we cant do it as I see.

So I created template function.

require "markdown"

c =
c.loader ="src/views/")

c.functions << Crinja.function({:str => ""}, :Markdown) do

To use it:

{{ Markdown("# title")  | safe}}