Archive for the ‘Programming’ Category
Motivation
Things became more stable last time – we have clients who pay in time, the projects are mostly interesting, we have defined schedule and proven methods to achieve results. No more crashes, sleepless nights and broken builds that should have been in production a day ago
We have not introduced TDD and really good QA process yet, however this became stable enough to make our life not so stressed. Are we satisfied? Someone – yes, but others want something more thrilling. Programming should be fun (I think so too), but we cannot make our commercial projects to be fun, because we need to guarantee the quality. At the same time, there are a lot of interesting technologies to try that we don’t deal with on a regular basis. Ruslan, our client-side developer whose hobby technologies are RoR and low-level C++ and Assembler coding proposed to hold a kind of hackathon.
Continue reading ‘In-house JS && C++ hackathon’ »
Posted by Konstantin Mirin on July 17, 2011 at 21:00 under JavaScript, node.js, Programming.
Comment on this post.
In my recent project there are quite many tasks that run in the background – generate thumbnails, detect colours on the pictures, run DB updates etc. Sure, all that is handled using cron and Yii commands. However there is a little problem. Consider we have DB update routine that should import new stock data from the datafeed. Datafeed is uploaded hourly, but upload can’t be scheduled to minutes – connection speed, different errors may interrupt the upload. On the other hand, sometimes processing takes 5 mins and sometimes – a few hours because in the first variant we just replace records and in the latter – download images for the new products.
Continue reading ‘Concurrent process management in Yii’ »
Posted by Konstantin Mirin on March 25, 2010 at 09:31 under PHP, Programming, Yii.
Tags: experiece, extension, tip, trick, Yii
Comment on this post.
In the previous post I outlined the system’s specs and use cases. We also selected the primary use case we should start from – that is filtering screen.
Continue reading ‘Database structure and filtering approach. SMS Notification system.’ »
Posted by Konstantin Mirin on March 19, 2010 at 08:00 under DB Design, Programming.
Tags: database design, modelling, PHP, sms-notify, UML
Comment on this post.
I’ve graduated in March 2010 and I don’t need to visit university any more. However, I enjoyed studying there and I know what challenges my fellow students-programmers have. That’s why I continue the job started this autumn – computer club, we call it “Geeks’ Club”. Sure, we’re not true geeks there, but we tend to be
So I’m helping students who’re interested in web-technologies and in object-oriented programming. I explain them things that are not covered in the standard university course. Things, that are more practical and they can be paid money for.
Continue reading ‘Requirements and Use Cases. SMS Notification System.’ »
Posted by Konstantin Mirin on March 18, 2010 at 08:00 under OOP, PHP, Programming.
Tags: DB, experiece, modelling, OOP, PHP, sms-notify, UML
1 Comment.
Firefox is great for web development mainly because of the large number of plug-ins available. Here’s my list:
- Web developer toolbar – great thing for the web development. Personally I use resizing features, password revealing and elements highlighting.
- Firebug – absolute winner. This is actually the main tool for development I use. I’m going to write a more detailed post about it later. For now, you can enjoy this video
- Cache status shows cached size in the status bar. But the main use is it’s ability to clear cache in a few clicks. This saves lots of time clicking here and there when developing complex JS application.
- Live HTTP Headers allows to view all HTTP headers that go here and there while you’re requesting the page. It’s a great thing when you need to grab some content from the password-protected area or inspect what’s going on when you request page.
- YSlow is a firebug plug-in from the Yahoo team which analyzes your content and shows you the ways of the client-size optimization of your page. It’s recommendations are really valuable. Try it and you’ll never uninstall it
- SitePoint HTML reference is a firebug plug-in too, that adds HTML help to the every HTML tag and CSS property. It also provides examples and best practices. I don’t think this is great value for gurus, but definitely useful for all others
- Fasterfox is a plug-in that boost Firefox performance. It is in the “experimental” state, but quite stable. I haven’t ever experience any problems with it.
- Selenium IDE is designed as a helper tool for creating selenium tests. It is really great and handy tool if you use automated testing. I’m going to cover this in my blog later.
And what are your favourite plug-ins? How do you use them?
Posted by Konstantin Mirin on March 16, 2010 at 08:00 under Programming.
Tags: browsers, efficiency, tip, trick
1 Comment.
Most of the beginners and, sometimes, even more advanced programmers, want to develop everything from scratch because they want have control over the every aspect of their application. I entirely understand this tendency. When you learned how to program and you can code nearly anything you want (this relates more closely to scripting languages like php, perl, js etc), you start to do something global. Something that will change the world. This may be a new CMS, a new framework, new blog of e-commerce engine. And when you start this, you want to code it in the most efficient way, optimizing every little thing: every function, every SQL query. At the same time, you want to reuse the code you’re writing. So you tend to create more general solutions than you really need. And this slows down the performance. And again you go into optimization, limiting the possible uses to some extent.
Finally, if you finish your application, it may be faster or better than similar ones (however, usually it is the same or worse), but remember how much time you spent developing it. Yes, you’re proud of yourself – you’ve created your own DB abstraction layer, that handles SQL injections in a very smart way. You’ve also developed your own ORM engine, that goes nicely with your DB abstraction layer. It is quite likely, that you’ve already created your very own template engine and a nice JS library that makes animation very easy. Great job, my fellow programmer!
Continue reading ‘What is a framework and why you should use one?’ »
Posted by Konstantin Mirin on March 14, 2010 at 14:53 under Frameworks, Programming.
Tags: framework, OOP, PHP, Yii
2 Comments.
When designing some architecture, you face with the problem “which object should perform X task?” We discussed this question in my previous post in this series. There we noted, that object should perform the tasks he has enough info for. He should be an “expert”. But because one of the main OOP characteristics is interaction between objects, it’s often hard to answer this question.
Continue reading ‘Low Coupling and High Cohesion – GRASP (Design patterns series)’ »
Posted by Konstantin Mirin on October 6, 2009 at 08:00 under Design patterns, OOP, Programming.
Tags: design pattern, grasp, OOP, PHP, polymorphism, tutorial, UML
1 Comment.
Websites, that aggregate something become more and more popular because we need all information available in one place and accessed fast and easily. From time to time, you come across with tasks, that require retrieving some data from the password-protected area. For example, I use Guru.com for my job search. They post lots of the projects there, but they don’t offer convenient listing and filtering. So I developed my own tool, that grabs everything from there and ranks it all in the way I need. So, we’ll take a look at different types of password-protected areas and see how to deal with any of them
Continue reading ‘Grabbing password-protected content with cURL’ »
Posted by Konstantin Mirin on May 24, 2009 at 09:00 under PHP, Programming.
Tags: experiece, PHP, tip, trick, tutorial
14 Comments.
Personal productivity depends on the tools greatly, so I pay much attention to the programs I use. My previous post in this field was about MySQL workbench which I consider the best free DB design tool for MySQL.
When I started coding PHP, I used Linux so I used Kate, which only had syntax highlighting and allowed to save multiple files opened as a project
Next was Quanta, the Linux IDE for PHP. I spent lots of time developing there until I installed trial version of Zend Development Environment (ZDE) 5.5. That was really cool. I liked it very much and used for quite long time. Around half a year ago I heard about NetBeans and decided to try it out. I was thinking quite long about it, I didn’t have enough time to install and go through all it’s functions. Finally I saw that I will never have this time, so I started using it around 1.5 months ago. While using, I was putting down some notes about the things I liked and the ones I didn’t. So now I just want to present my list
Continue reading ‘NetBeans 6.5 for PHP – My Experience’ »
Posted by Konstantin Mirin on May 22, 2009 at 09:00 under PHP, Programming.
Tags: choice, experiece, feedback
14 Comments.
This is an introductory post to the series, where I’ll cover all design patterns, their usage, diagrams. Besides patterns, I am going to guide you through the principles of the high-quality application design. We’ll start from these principles (GRASP), and then advance to patterns, see how they use these principles and develop several systems (architecture only). The whole series will take 10-15 posts. However, I don’t have exact plan yet
So, let’s go!
So what we’re talking about?
Actually, design pattern is no more, than a proven solution to some common problem. When saying “problem” I mean things you face with when developing the application architecture. These solutions are intended to make you application better – more extensible, flexible, simple.
Common examples of design problems (Let’s agree that in this series “design” means application, not graphics or DB design) are:
Continue reading ‘Creator and Information Expert principles – GRASP (Design patterns series)’ »
Posted by Konstantin Mirin on March 28, 2009 at 15:37 under Design patterns, Programming.
Tags: design pattern, efficiency, grasp, OOP, polymorphism, tutorial, UML
13 Comments.