Dariusz on Software

Methods and Tools

About This Site

Software development stuff

Archive

2017-02-24

Sometimes you want to insert image centered on page, taking full length of the paragraph. It's quite easy with aligncenter CSS class:

.aligncenter { display: block; margin-left: auto; margin-right: auto; margin-top: 2em; margin-bottom: 2em; }

.alignright { float: right; margin: 2em; }

blockquote { white-space:pre }

Tags: css.
Sun, 09 Oct 2016 19:52:44 +0000

If you are an experienced programmer who:

  • crosses inter-company and inter cultural boundaries with ease
  • enjoys working directly with customer and partners (knows that a conf call could be not a boring waste of time, but an effective tool)
  • is, like me, a "script guy" who automates everything in projects
  • efficiently uses grep / sed / awk, and the command line in Linux
  • knows that *.pcap is not another MS Office file format
  • is willing to analyze the systems source code one has never contributed to
  • uses many languages (C++ is a must, Java & JavaScript are nice to have)
  • has Linux embedded background (preferably IPTV)
  • is able to capture patterns where others see only noise (i.e.: effective scanning of gigabytes of log files)
  • learns new things in real time
  • owns "sixth sense" to reduce the entropy in IT projects

... then:

uncle-sam-2

... in Warsaw office (Poland), for big, international, IPTV project.

My team makes things happen by:

  • analysis of stream of bugs effectively
  • introducing automation
  • improving development processes and flows
  • squeezing everything possible (and more) from existing build systems
  • pro-actively tracks and improves project health by (guess what?) AUTOMATION!!!

If you match the profile highlighted above do not hesitate to contact me via Skype: cieslakd or by e-mail: dariusz.cieslak at schange.com. I'll be glad to share more details about the position.

Tags: business.
Sat, 16 Apr 2016 07:04:53 +0000

715Yocto is an Open Source project (based, in turn, on OpenEmbedded and bitbake) that allows you to create your own custom Linux distribution and build everything from sources (like Gentoo does).

It's mostly used for embedded software development and has support from many hardware vendors. Having source build in place allows you to customize almost everything.

In recent years I was faced with problem of development integration - to allow distributed development teams to cooperate and to supply their updates effectively for central build system(s). The purpose of this process:

  • to know if the build is successful after each delivery
  • to have high resolution of builds (to allow regression tests)
  • and (of course) to launch automated tests after each build

So we need some channel that would allow to effectively detect new software versions and trigger a build based on them. There are two general approaches for this problem:

  1. enable a "drop space" for files with source code and detect the newest one and use it for the build
  2. connect directly to development version control systems and detect changes there

1st method is easier to implement (no need to open any repository for access from vendor side). 2nd method, however, is more powerful as allows you to do "topic builds", based on "topic branches", so I'll focus on second approach there.

bitbake supports so called AUTOREV mechanism for that purpose. SRCREV = "${AUTOREV}" PV = "${SRCPV}" If it's specified such way latest source revision in the repository is used. Revision number (or SHA) is used as a package version, so it's changed automatically each time new commit is present on given branch - that's the purpose we place ${SRCREV} inside PV (package version) veriable.

Having such construction in your source repository-based recipes allows you to compose builds from appropriate heads of selected branches.

Of course, on each release preparation, you need to fork each input repository and point to proper branches in your distro config file. Then the process should be safe from unexpected version changes and you can track any anomaly to single repository change (ask vendor to revert/fix it quickly if needed or stick to older version to avoid regression for a while).

Tags: build, c++.
Sat, 12 Mar 2016 18:54:57 +0000

Sometimes you need to provide encrypted traffic to your site. Besides proper configuration in web server you need to authenticate your server using some publicly trusted certificates, so your customer's browser won't show warnings about untrusted site.

One of the cheapest SSL certificate solution is ssls.com. Let's check their price for 3 year lease:

694I used to pay $10 per year in the past for ComodoSSL certificates, this offer seems to cut the usual price in half. Sounds unrealistic? Let's check it!

First step is to add your purchase to the basket:

695Then you need to select payment method:

696And you proceed to account registration and the payment itself. When you complete payment you can see the following message:

697You need to:

  • pass your CSR file (I've already mentioned how to create that file)
  • then confirm you are the owner of the domain (typically by responding to special e-mail sent to administering contact of the domain)
  • and finally install you new *.crt key in the web server
  • use https://www.sslshopper.com/ssl-checker.html to check if your domain SSL config is OK

If you hit the following warning from SSL checker:

698You need to install COMODORSADomainValidationSecureServerCA.crt as ssl.ca-file (SSLCertificateChainFile). After web server restart you should see the following picture:

699And finally, manual browser test, just use https:// for your connection. Should be 100% green now.

Tags: business, ssl.
2016-02-04

Joint Test Action Group (JTAG) is a IEEE Standard Test Access Port and Boundary-Scan Architecture. It describes communication standard used mainly for embedded devices for:

  • debugging - reading internal system state in runtime
  • firmware upgrades - re-programming of internal software
  • boundary scan testing - alter internal interfaces directly to simulate system state that is hard to reproduce in normal scenarios

JTAG requires some additional connections to be present on board:

jtag

Is there a method we could use above ideas to improve higher level (let's say J2EE-based system) development? Read on!

Debugging

Debugging activities typically depend on external debugger that is attached to the running process. Using such approach you have detailed insight into running system with all important state exposed. However such approach is not always possible (checking production deployment for example.

tayzq

If "thick" debugger is not available there's a poor man's alternative: application logs. Almost every modern logging library has the ability to switch logging level and enable / disable certain log categories. This way you can have detailed view of selected component (assuming you have added the logs to application in advance).

logs

Tags: quality.

RSS Feed

Tags

Created by Chronicle v3.5