Developer productivity is very important for us at Datazenit. Database administration tools usually do not excel with great efficiency, but we are here to change that. I really enjoy quick navigation features in IDEs and code editors. For example, Sublime Text, IntelliJ IDEA and vim with ctrlp or command-t plugins provide an exceptionally quick way to navigate between files, classes and methods.
This is the 5th release of Sensei Grid, a simple data grid in JS/HTML. The biggest addition in this release is new row support and handling. This is implemented as an empty row at the end of table. The empty row can be enabled/disabled via configuration setting:
emptyRow: false. By default the functionality is enabled.
Twitter Cards lets you add rich content to tweets when you share a link. I have added Twitter Cards to this blog which basically means I have added few meta tags to the head part of HTML. I was always sure that Twitter Cards are whitelisted and thus available to big brands and companies, but as it turns out the approval process is really simple and fast. It took around 10 minutes and my card was approved.
Datazenit is a web-based database administration tool. It is a standalone app, that doesn’t require installation - just download and run it. You can then access Datazenit via any browser through specific address, e.g., http://localhost:9000/. It is somewhat similar to the model used by phpMyAdmin. Datazenit becomes most useful when deployed on a server, because from there all your team can access it, share connections, queries, datasets and charts. This is something other database tools lack.
Morning started rather interesting. I was googling search terms related to my blog and was quite surprised when I found another blog with the same content and design as this one. The domain was a regular .com and it had a bit different style, but overall it was a complete copy of this one.
This is another status update for Sensei Grid, an open source project I am working on. As planned yesterday, today all tests were finished for the most important parts of Sensei Grid, and I published a new release - v0.1.3. Today went without any hiccups and I was able to finish testing earlier than expected. Because of that I already started working on functionality regarding new row support - there will be an empty row at the end of grid and it will also introduce row/cell states - saved/unsaved. It seems to be a fairly common and obvious practice.
Today was mostly spent on further testing Sensei Grid. This wasn’t a great day for productivity, because a lot of time was wasted on event binding bugs in Jasmine testing environment (reason: curved_hands.dll). All problems were resolved and testing has been going forward pretty smoothly. I plan to finalize tests tomorrow and start working on new functionality on Friday. First thing in the list - implement functionality for adding new rows.
This is daily progress update for Sensei Grid. Today I spent some time to write test specifications for public data access API methods. New DOM tests were also added and test specs were dived in two files:
domSpec.js. Jasmine is used a testing framework and tests are run together with JSHint to ensure code quality. Tests and JSHint are also run on Travis CI server.
Today I was pleasantly surprised when Sensei Grid, an open source project I am currently working on, reached the top of Hacker News’ front page and stayed there for several hours. It resulted in an interesting discussion, huge load of traffic and new followers on Github. The Github repository if currently 3rd in the Trending repo list.
Today was one of those days off when you just do something random without much thinking. So I just went on a long hike with my girlfriend. We went from our home in Ādaži to the nearest beach (in Carnikava). The route was approx. 23km long and we spent around 5 hours just walking.
I am currently co-founder at a fully bootstrapped startup – Datazenit. Datazenit is a web-based database administration tool, built on top of Scala, Play framework and Backbone.js. Previously I co-founded Hiburo, a simple team management app, but it was more like just a project for me. There was no market research and real business goals behind Hiburo, because we mainly built it for our own need and then later decided to open it up for other teams. Hiburo currently is not in active development, because all my focus is on building Datazenit.
Git is the best version control system and one of my favorite development tools in general. It is small, fast and has some Linux-coolness to it. In this blog post I will share a few handy git commands that I have defined as aliases. Aliases can be defined in .gitconfig file located in your home directory. Aliases are basically shortcuts to frequently used or just long commands. The aliases listed in this post are in form
<name of alias> = <git command>. The same format is used in the
.gitconfig file. Just prefix the
<git command> with “git” and you can use it without setting an alias.
Today I got notified that this blog is not responsive. True.
One small commit later, the design is now somewhat responsive. The blog is now readable at least on the devices I had around house. Also a favicon was added.
I wanted to make a list of useful apps and services that I use or have used for any on my startups. This list will only feature apps that have a free plan.
Previously I wrote about an issue I had regarding an open source library. A short summary – an update that was supposed to fix several blocker issues broke everything else and I was left with a dilemma to either fix the lib or to find a new one. Initially I tried to fix the library, but when enough time was wasted and new bugs started popping up randomly I decided it was time to ditch that dependency entirely. The package provided an Excel-like data grid, which is one of the core elements of Datazenit’s interface. I couldn’t wait for another update, because Datazenit needs to be moving forward.
Typesafe, the company behind the programming language Scala and the Reactive Platform, is occasionally publishing case studies about other companies using their technology stack. I was pleasantly surprised when they asked me to collaborate on a case study about Datazenit. Backend of Datazenit is developed in Scala and built on top of Play framework. I wrote about switching from Python to Scala a few months ago and the article gained some traction inside Scala community. Soon after that Typesafe reached out and wanted to learn more about how we use Scala. I was happy to share, and after several discussions and drafts a case study was born. The study covers the reasons why did we choose Scala, what were our expectations and the end result. You can read the full paper here and check out other interesting case studies at Typesafe’s website. It is an honor to be amongst other tech giants like Twitter, LinkedIn and Foursquare.
Scala is awesome, there is even a proof for that – awesome-scala. 2 months ago I started a list of great Scala libraries, frameworks and tools. The list has significantly grown and improved, thanks to its many contributors. Yesterday awesome-scala reached a small milestone: 1000 stars on its GitHub repository. There are also more than 100 forks and 100 watchers, 153 commits, 38 contributors and 64 closed pull requests.
Fishing is one of my biggest hobbies and I try to get near freshwaters as often as I can. Latvia is full of amazing lakes and rivers that are scattered with anglers trying to get that big catch. I noticed that there is no information in English about fishing records in Latvia, so I made a small list. This list doesn’t feature all records, just those that seemed interesting to me.
This blog post will be a small recap of the work day. After a few day break I resumed my work on Datazenit. I was occupied with other things and few conceptual projects for the past couple of days, but more on that later.
What better way is there to entertain yourself for a short while than to watch educational, scientific or just plain interesting YouTube channels? I usually watch them while having a lunch by myself or when I am totally bored and don’t want to do anything else.
Server administration is an interesting form of art in which I was kinda drawn into. I do not consider myself anything near a system administrator, but I like working with Linux and servers. Most of my favorite development tools are run from a terminal, and I like them because they are fast, predictable and scriptable.
I am a long time Vim user, however in the last few years I have been using it less and less each day in favor of IntelliJ IDEA, a superb, fully featured IDE that really does it all. Vim felt right after I got past its steep learning curve and for quite some time I was a true Vim junkie. I used it for everything and had installed the Vimperator plugin for Firefox and Vimium for Chrome, configured my window manager xmonad to use Vim-like key bindings, enabled vi editing mode in bash and so on.
I am really a fan of TED talks, I watch them for entertainment, to learn something new and when I am bored. Their slogan basically says it all “Ideas Worth Spreading”. There are over 1700 TED talks recorded, but I want to present a list of my all-time favorites.
Yesterday I tweeted that the cloud-based version of Datazenit will be postponed in favor of a standalone app. The cloud version is not a separate thing, it is just the same standalone app, a little bit customized and hosted on our servers, made available to everyone. A question may arise - then why cancel the cloud app? There are several reasons for that.
There are plenty of productivity tips online and some of them are good, some of them are not, but I wanted to create a list of things that actually help me get shit done. Tips that are easy to use and have an immediate effect, not a five year plan. These tips won’t be about what software to use or what color theme is the best, but general practices that significantly boost productivity. However keep in mind – what works for me, may not work for you. These tips may also be relevant to non-developers, but I can only speak from my experience as a developer.
August 17, a fine Sunday here in Latvia. Not too hot and not too cold, just a perfect, sunny afternoon. Today was annual Riga City Festival, which attracts a variety of people. Together with my girlfriend we walked around the city centre and enjoyed the ambience of bright mooded people everywhere. There were a lot of activities for kinds and parents, like straw toy workshop, puppet theater and roller blading championship, but there were also several sport related events like a basketball tournament where teams are formed with people from specific crafts and occupations like artists, actors and politicians. Sadly we didn’t get out of the house early enough to check out all the activities, but on the other hand it was short enough so I didn’t get bored, which is probably good.
Later in the evening I went for small fishing trip outside of the city with few friends. We didn’t catch much this time, but it was meant to be a recreational event just for fun. Lakes and rivers have always relaxed me and I can’t pass on it. To properly finish the day, we grabbed some junk food from McDonalds and ate it with a great smile. It is really a liberal food, because who can turn it down?
This was also one of the rare days when I didn’t do anything work related. Didn’t even think about it that much. I will call it a progress.
Before switching to Jekyll, I tried out Octopress, a blogging framework built on top of Jekyll. I was really surprised to find out how much I disliked the experience with Octopress. I had an impression that it is a hacker friendly, simple and extensible blog platform, but it was the opposite of that. There are many layers of abstraction, themes are pretty complicated, it comes with many (19) pre-installed plugins out of the box, dozen depedencies (ruby gems), it uses Sass by default and so on. A fresh copy of Octopress blog consists of staggering 29 directories and 144 files. That’s wordpress-much.
Just a few days ago I resurrected this blog from the ashes of recent server migration. Previously it was powered by a Python blog engine called Vellum, but now it is a fully open-source static site generated by Jekyll. All my posts and the site itself can be found in a GitHub repository: lauris/lauris.github.com.
Few weeks ago we got accepted into Microsoft BizSpark. It is a program that gives away Microsoft to startups. Besides all the free software and startup community, they also provide us with €115/month credit for Azure services. For 3 years. The credit is enough to spin up several virtual server instances, SQL Server and a lot more. Check out the pricing calculator to get a general idea. So far I haven’t seen a catch, and if everything proves to be alright, we will move at least some of our cloud services to Azure. I have already set up an environment for testing and CI, and it seems to be working like a charm.
P.S. This post was initially a tweet, but I had a trouble to express myself in 140 chars.
Once in a while I like to tear things apart and start fresh – this blog is no exception. Thanks again to Sasha for helping with the new logo. For me the Greek letter lambda “λ” creates associations with Lambda calculus, functional programming and of course Half-Life. The letter in logo also makes sense because my first name starts with “L”.
It has been a wild and fun trip. Year ago I established a company called Hedgehog Solutions. Soon after that I quit my day job and asked Sasha, a friend of mine, who also happens to be badass graphic designer, to join me. After 6 months he quit his day job too and we joined our forces together to build awesome software.
This week was full of surprises! Hiburo got interviewed by ArcticStartup. Unusually high amount of subscribers joined Datazenit Beta List. We also decided to offer a standalone version of Datazenit (in addition to cloud based version). It means that users will be able to use it locally or on their own servers – more on this in an upcoming blog article. Also all of Datazenit t-shirts ended – they went to early adopters and friends. If you missed a chance to get one, there will be a new batch of t-shirts at the end of beta period.
Interesting news, blog posts or Github projects from last week.
- Debian 7.4 Released – my favorite Linux distro got an update.
- Total security in a PostgreSQL database – the challenges of protecting PostgreSQL database server.
- Drone – Continuous Integration platform built on Docker.
- How I hacked Github again – Egor Homakov gains access to private repositories on Github.
- Microsoft CEO – Satya Nadella becomes the third CEO of Microsoft.
- AWS Tips I Wish I’d Known Before I Started – Collection of random tips for Amazon Web Services.
I don’t like the new twitter design update, but the goods news are that it is very easy to fix. My biggest complaint is about the width of navigation bar – it is wider than the main content and it doesn’t make any sense. IMO the width should be the same for both navigation bar and content in this case.
Random news, blog posts or Github projects from last week.
- How I Lost My $50,000 Twitter Username – last week’s most viral article. I don’t think it was possible to miss this one.
- How In-app Purchases Have Destroyed The Industry.
- Achievements for your team – Sasha wrote an article about one of the most interesting features of Hiburo – achievements.
- Lenovo to buy Google’s Motorola in China’s largest tech deal – Not so good news, because I really liked the new Motorola Moto series.
Schrödinger's cat applied to web development: If I don't look at it in Internet Explorer then there's a chance it looks fine.— Datazenit Sensei (@datazenit) January 30, 2014
Last week we designed new Datazenit t-shirts and they look pretty awesome if you ask me. Preview below.
Random news, blog posts or Github projects from last week.
- Instantga.me – collection of many simple flash games to quickly waste some time.
- Beer vs Coffee – infographic based on Coffee vs. Beer: Which drink makes you more creative?.
- Revolution in Kiev, Ukraine.
- Bill Gates loses in 9 moves to chess champion – world chess champion Magnus Carlsen took just nine moves to checkmate Bill Gates.
- Your best passive income? – interesting HackerNews discussion about sources of passive income.
- Hackathon Starter – A boilerplate for Node.js web applications.
Last week was awesome, we finally launched Hiburo. The launch actually means that we are going to shift our focus to Datazenit. We will be working to extend customer base for Hiburo, but most of development time will be spent on Datazenit.
- Hiburo is ready – launch blog post.
- Windows 3.1 written in JS/HTML – sadly the main site is down now, but I have linked related topic on HackerNews.
- Strangest language feature – StackOverflow topic.
- Conway’s Game Of Life in APL – simply amazing.
- Go by Example – hands-on introduction to Go using annotated example programs.
- Grow to Greatness – Coursera course about private business growth challenges.
- Building an open source Nest – Hint: it’s not going to cost $3.2bn.
This week we released first article about Datazenit – Visualization early preview. We have also decided about Hiburo launch date. If everything goes according to the plan, Hiburo will go into a stable version next Monday, January 13th. A full release will be published on Hiburo blog.
Below you can find weekly dose of interesting links:
- Light Table is open source;
- 4k is for programmers – controversial article about monitors;
- Python code to solve xkcd 1313;
- SSL/TLS analysis of the top 1,000,000 websites;
- SQLSoup – a database access tool for SQLAlchemy which provides a convenient way to access existing database tables without having to declare table classes;
- Django SQL Explorer – Django package to easily share data via SQL queries;
Holiday season is over, now I am back to work. January is going to be interesting – Janis, an old friend of mine, has joined our team as an intern. He will be working with us on Datazenit project for a whole month. Another important event is coming very soon - we are launching Hiburo this month. Excitement is building!
- SnapchatDB – This database contains username and phone number pairs of a vast majority of the Snapchat users.
- Mezazzine 3 was released.
- GGPlot for Python + related blog post.
- The Micro Python project – Python 3.x on a microcontroller.
- Hilarious Microsoft support article – “If you move your mouse pointer continuously while the data is being returned to Microsoft Excel, the query may not fail. Do not stop moving the mouse until all the data has been returned to Microsoft Excel.”
- DigitalOcean leaks customer data between VMs.
When Christmas celebration was over, I decided to spend an afternoon to code a little idea I had. There was a left over domain Sotokit.com from the times when we repeatedly changed the name of Datazenit, so luckily no time was wasted choosing the name - otherwise it would have been more than just an afternoon.
Random news, blog posts or Github projects from last week.
- Regex Golf – Check your Regex-fu.
- Jolla Shop – Jolla Phone finally available in Europe.
- Open Salaries at Buffer – Interesting approach to business transparency and employee salaries.
- Origami – Design prototyping with Quartz Composer.
Obligatory link: WAT Talk.
News, blog posts or Github projects from last week that got my attention.
- Has NoSQL Come Full Circle?
- Moto G – Budget Android phone done right. Even ordered one for myself.
- BayesDB – Bayesian database.
- An Engineer’s guide to Stock Options.
- Websocketd – Turn any app into a WebSocket server.
- Craft – A simple Minecraft clone written in C.
Tweet of the day: Apparently Mac now supports Windows.
Introduction to the blog. This is not a blog post. #paradox