Showing posts with label Software. Show all posts
Showing posts with label Software. Show all posts
Saturday, June 29, 2013
Formal Methods: Removing Industrial Adoption Barriers
Recently I had an opportunity to participate in the inaugural FormaliSE workshop. It had some interesting papers, but here I'll focus on the round-table discussion. Basically the problem is, research guys are in pain because code shops don't use their results. Among all the research guys, the formal methods (FM) guys are in most pain because formalisms are "eewwww," according to an average programmer Joe.
Thursday, June 13, 2013
Software Engineering as Engineering
Software engineering is engineering by definition. But is this vision still precise and useful enough? [triggered by ICSE'13]
Monday, January 28, 2013
MacOS UI: the Good, the Bad, and the Ugly
Having had an experience of using an Apple laptop, I want to rant on MacOS user interaction details that proved to be important to me personally.
Not being a big apple fan, I cannot draw lines between all trades of apple OS and hardware. I worked with MacOS Lion, and this repelled me from using this line of products for probably a while.
[I've been trying to make all this more objective, but there's only that much that you can rationalize your taste and judgment. Just take it or leave it.]
Upd: this is a perspective of a more keyboard-fluent person than a mouse/touchpad-fluent person.
The Good:
The Bad (don't like yet can be reasonably fixed by regular users):
The Ugly (don't like and cannot be reasonably fixed):
The Controversial (bah nothing is as elegant as I wanted it to be):
Not being a big apple fan, I cannot draw lines between all trades of apple OS and hardware. I worked with MacOS Lion, and this repelled me from using this line of products for probably a while.
[I've been trying to make all this more objective, but there's only that much that you can rationalize your taste and judgment. Just take it or leave it.]
Upd: this is a perspective of a more keyboard-fluent person than a mouse/touchpad-fluent person.
The Good:
- Visual sugar, in all of its unexpected forms.
- Spotlight (aka search tool): the centralized OS design enables impressive capabilities of system-wide search.
- Left-aligned window positioning buttons (maximize, minimize, close). This reduces lots of mouse movement.
- Cmd + arrow is way better than separate keys for home and end.
- Finder (aka file manager) has a file preview for most common filetypes. Saves a lot of time while digging through a bunch of pdfs. I guess it's another advantage of the strong system-level integration.
- A huge platform of quality widgets. Saves most application developers the embarrassment of creating their own widgets (most hand-made tend to be gross!).
- Automator (aka script engine + cron + UI) is truly awesome! It offers a visual editor for system-wide automation. It would work almost anything from regular backups to setting up a nice workspace. It's also a great practical way for kids to learn programming fundamentals (not some useless birds flying around).
- Upd: Dashboard is pretty cool. It's was a surprisingly smooth experience for me.
The Bad (don't like yet can be reasonably fixed by regular users):
- The dock with apps shouldn't be open by default! It's really taking up a lot of valuable vertical space. However, just hiding it isn't an option either. Cmon Apple, you can do better!
- Multi-monitor setup is impoverished beyond any limits. Isn't Apple about selling stuff to flashy fellas who'd love to have two large monitors? How about saving brightness settings for both monitors? Doesn't make any sense. Can go around this with 3rd party software.
- No default shortcuts for common OS actions (e.g. sleep or process monitor). Upd: one can set it up with a 3rd party app Quicksilver.
- No default shortcuts for window manipulation (resize, maximize/minimize). Maximizing windows is implemented awkwardly for no apparent reason. Sizeup and Cinch help a bit.
- Comma in the Russian keyboard layout sucks: one has to do something crazy to type it. However, can be fixed by remapping key codes or installing different layouts.
- Middle mouse button? Any support for that? It's pretty useful in browsing, y'know.
- Upd: I didn't get the point of Mission Control. What seems nice in iPads looks like a desperate attempt to patch the broken metaphor of the window model on laptops and desktops.Why would I want to bring all my windows to one view, except if I were totally lost and desperate?
The Ugly (don't like and cannot be reasonably fixed):
- No indication of currently open windows (except the doc that does not count). Apple's bad habit of omitting the useful part of the "state" shows up in many places actually.
- Alt+tab (or cmd+tab in the vocabulary of Apple) switches windows across virtual desktops/workspaces. This is REALLY a showstopper, which renders the metaphor of workspaces completely broken. Why the hell have workspaces if they are not isolated? I might as well install windoze and have it all piled up.
- Shortcut inconsistency (home/end/jump by word) in gmail, terminal, ms office. These three places act all differently. It's terribly exhausing to consciously switch between ways of doing quick editing. Hate it! All this makes Apple keyboards, with all the thought behind them, look very lame. Upd: I used Firefox, not Safari. I think no OS should strip me off my right to use the international heritage like Firefox or Chrome.
- Launchpad is terrible AND dysfunctional. Scratch it.
- The Mono (.NET native implementation) doesn't share copypaste buffer, and cannot be convinced to do so. It's partially Mono's fault, but it kills the whole experience. (To be honest, the whole Mono implementation sucks in Mac OS much more than in Linux).
- NTFS cannot be written to. It makes me feel like those developers are still not through their kindergarten. I understand that the permissions cannot be mathematically precisely figured out. Well, go with the least common denominator. Damn, anything but this! (I agree, it's not completely a UI issue, but it's outrageous!)
The Controversial (bah nothing is as elegant as I wanted it to be):
- Window model's understanding of "close app" is separate from the process model understanding of "close app". That is, you close a window, but the process is still running. I haven't made my mind about this completely, but I see lots of peole mess with menus to reconcile this inconsistency.
- Horizontal placement of workspaces. Why not let me do vertical? Flipping on the long side feels more stable and fast.
- Upd: I cannot run an app, knowing just its name, from the command line. This is a huge barrier between the visual stuff and command line stuff (and it negates the argument "oh well you can always jump to cmd if you hardcore guys need to"). But I understand there are deeper technical reasons for that, which is a different organization of app installation. After all, terminals were never an advertised feature of MacOS. One workaround is using the open command.
New items are to be added as discovered.
Wednesday, January 16, 2013
Friday, December 21, 2012
Students' Revelations about ImNotSure and Static Analysis
A small note on students reacting to ImNotSure.
Wednesday, November 9, 2011
Minimizing Mouse Usage
So far I've noticed that there's a relatively constant set of things that make me switch to my mouse (which is bad because a hand moves from the keyboard). The motivation to summarize all this is to be able to systematically search for solutions/workarounds.
Sunday, September 18, 2011
Language Switching Shortcut
Now I'm finally coming to an idea of having an unusual keyboard shortcut for language switching, as opposed to the conventional LCtrl+LShift or LAlt+LShift. Both of these suck when I'm using the keyboard to paste into a terminal (Ctrl+Shift+V) or reverse-cycle through windows (Alt+Shift+Tab) because they get triggered accidentally (at least, in most desktop environments). Also, I want to have the same shortcut on all of my systems, which means it should consist of two simultaneous key presses and be keyboard-independent because that's the common denominator for most shortcut config dialogs I've seen.
Trying LCtrl+RCtrl right now. This is worse since it takes both hands, but we'll see how it works.
Update: settled on LShift + RShift. Deemed it the most cross-platform and ergonomic combination ever.
Trying LCtrl+RCtrl right now. This is worse since it takes both hands, but we'll see how it works.
Update: settled on LShift + RShift. Deemed it the most cross-platform and ergonomic combination ever.
Wednesday, August 17, 2011
Popular Password Bug
Do you want to annoy your website users yet another way, in addition to thousands of others?
Follow these steps:
1) Set up a website with authorization.
2) Set the length limit for user passwords.
3) When a user signs in, automatically cut the over-limit password tail, without notifying the user.
Done! The next time a user with a long password tries to login, his password is incorrect. The only way out for users is password recovery.
I've stumbled into this stuff a couple of times. Now it has been reminded by the T-Mobile website.
Follow these steps:
1) Set up a website with authorization.
2) Set the length limit for user passwords.
3) When a user signs in, automatically cut the over-limit password tail, without notifying the user.
Done! The next time a user with a long password tries to login, his password is incorrect. The only way out for users is password recovery.
I've stumbled into this stuff a couple of times. Now it has been reminded by the T-Mobile website.
Location:
Mobile Street, Pittsburgh, PA 15207, USA
Tuesday, May 24, 2011
Undergrad Thesis Defended!
The defense speech went pretty well; on the other hand, all the preparation had been much more exhausting.
Wednesday, April 20, 2011
Weird bug: Old New Friend
I just had a funny bug here that took me a while to catch. There was a container of pointers to objects. One of objects got deleted by someone else and didn't notify the container. Later, a new object was created at the same address and added to the container. The container was very happy to see an old friend :)
Conclusion: don't forget to assign zero to invalid pointers.
Conclusion: don't forget to assign zero to invalid pointers.
Friday, March 25, 2011
Developing in Eclipse
I recently started using Eclipse (used to work with MS Visual Studio, NetBeans, and command line before), and I already hate two things in Eclipse:
1. The popping up on every update console, which can't be tamed. I think I saw an option 'open only on errors', but I don't see it now. Besides, even if I can keep it opening only on errors, it is very annoying anyway. And don't tell me to open it manually on every build!
2. The apply patch interface. It's terrible! It doesn't [almost] mark which lines are new and which are not, it has very awkward scrolling and no obvious way to say 'yes, I've merged this file' other than going to another file and saying 'yes' in a modal dialog.
How and why does a popular IDE have so obvious UI bugs for such a long time?
P.S. Debugging KDevelop in Eclipse is very weird. But I guess this is true about any IDE.
1. The popping up on every update console, which can't be tamed. I think I saw an option 'open only on errors', but I don't see it now. Besides, even if I can keep it opening only on errors, it is very annoying anyway. And don't tell me to open it manually on every build!
2. The apply patch interface. It's terrible! It doesn't [almost] mark which lines are new and which are not, it has very awkward scrolling and no obvious way to say 'yes, I've merged this file' other than going to another file and saying 'yes' in a modal dialog.
How and why does a popular IDE have so obvious UI bugs for such a long time?
P.S. Debugging KDevelop in Eclipse is very weird. But I guess this is true about any IDE.
Monday, January 17, 2011
Hate html&css
HTML & CSS. CSS & HTML. This ugly technological bundle never works the way I want it. For example: http://lvk.cs.msu.su/~bisc
Subscribe to:
Posts (Atom)
